IRCDOOR 1.00 Manual Copyright (c) 1996 by Andrew Eigus Table of Contents 1. ...Introduction 2. ...Software and Hardware requirements 3. ...License agreement 4. ...Disclaimer 5. ...Installation instructions 6. ...IRC commands supported by IRCDOOR/2 7. ...IRCDOOR/2-specific commands 8. ...Comments 9. ...Registration information 10. ...IRCDOOR/2 distribution information 11. ...Contact information 1. Introduction What is IRC? IRC stands for "Internet Relay Chat". It was originally written by Jarkko Oikarinen (jto@tolsun.oulu.fi) in 1988. Since starting in Finland, it has been used in over 60 countries around the world. It was designed as a replacement for the "talk" program but has become much much more than that. IRC is a multi-user chat system, where people convene on "channels" (a virtual place, usually with a topic of conversation) to talk in groups, or privately. IRC is constantly evolving, so the way things to work one week may not be the way they work the next. Good, what is IRCDOOR? IRCDOOR/2 is an advanced 32-bit OS/2 Internet Relay Chat client with main purpose of being able to be run from a BBS (Bulletin Board System) as an external door program, that would allow BBS users to IRC. Yes, it means that you could *dramatically* increase your BBS popularity by adding IRC service for your BBS users. Imagine a user that finds out that something is much bigger, better and international than a simple teleconferencing on BBS! Imagine a user who opens your Internet service menu and starts the chat session on the Internet! How does it sound now? The following is a brief list of features that are supported in current version of IRCDOOR/2: -- natural 32-bit application capable of running simultaneously at as many lines as you wish to register it for -- as a BBS door supports TTY/ANSI interface -- supports DORINFO1/DOORSYS drop-file formats -- supports most standard IRCII 2.8 commands plus some additional /CTCP-request commands and some specific to IRCDOOR-only commands eg: /WHOELSE, /TIMELEFT, etc. -- easy to setup (most options can be specified via command line) -- can be run in local mode too as a normal IRC client program -- runs from any native OS/2 BBS that supports "hot" (open) com port handles -- flexible configuration -- extensive Maximus BBS support (MEX code provided) -- custom colors and other settings through config file 2. Software and Hardware requirements Requires IBM PC (80486 is recommended), Internet connection via ethernet, SLIP/PPP etc., IBM OS/2 version 2.0 or 3.0 and IBM IAK (Internet Access Kit) with 32-bit TCP/IP libraries (files: TCP32DLL.DLL and and SO32DLL.DLL). 3. License agreement IRCDOOR/2 IS COPYRIGHT AND PROPERTY OF ANDREW EIGUS, AN INDEPENDENT SOFTWARE DEVELOPER (FREELANCER). NONE OF THE PORTIONS CONTAINED IN THE IRCDOOR/2 DISTRIBUTION PACKAGE CAN BE RESELLED, MODIFIED, DISASSEMBLED OR REPRODUCED IN ANY WAY WITHOUT THE AUTHOR'S PERMISSION. PERMISSION IS GRANTED TO ANYONE TO DISTRIBUTE THE ENTIRE PACKAGE IN THE NON-MODIFIED FORM, PROVIDED THAT ALL FILES ARE KEPT IN THE DISTRIBUTION ARCHIVE. IRCDOOR/2 IS NEITHER PUBLIC DOMAIN, NOR FREEWARE. IRCDOOR IS SHAREWARE SOFTWARE. YOU MAY EVALUATE IT FOR A PERIOD OF 28 DAYS, AND THEN WHETHER TO REGISTER IT, OR TO DISCONTINUE USING IT. 4. Disclaimer THIS SOFTWARE PROVIDED "AS-IS", WHICH MEANS THAT THERE IS ABSOLUTELY NO WARRANTY PROVIDED BY THE AUTHOR. IN NO EVENT THE AUTHOR WILL BE LIABLE TO YOU FOR ANY DAMAGES ARISING OUT OF THE USE OF ANY PART OF THIS PROGRAM. 5. Installation instructions Installation instructions are sub-divided in two sections. Section 5.1 describes the door installation details for non- Maximus BBS users, and Maximus SysOps should probably skip this section and see section 5.2. 5.1 Installation for non-Maximus BBS systems a) Create an empty subdirectory in your BBS [doors] directory called IRCDOOR. Let's say i am using Lora BBS, and a path to my door games is C:\LORA\DOORS\, so i create a directory C:\LORA\DOORS\IRCDOOR. b) Unzip the distribution IRCDOOR archive to that directory, so it would contain AT LEAST the two following files: IRCDOOR.EXE IRCDOOR.CFG IRCDOOR.HLP c) Next, set up your BBS software for this door to be run; use either DOOR.SYS (recommended) or DORINFO?.DEF format drop- file. It should be created prior to running IRCDOOR by your BBS software (see your BBS manual for details). Your BBS software might be able to pass some information to IRCDOOR via command-line: IRC server name, port number, etc. Even some parameters in the drop-file can be overriden through command-line. See command-line switches in the Comments section for more information about IRCDOOR/2 command line parameters. Your BBS software MUST be able to pass an open com port "handle" parameter to IRCDOOR. IRCDOOR will NOT work in the remote mode without port handle and BBS drop file path specified as command-line arguments. (see -p and -d options in the command line parameters paragraph). I recommend you to create an OS/2 command file, for example IRCDOOR.CMD, that will run the door. Here is sample command file: @echo off cd \lora\doors\ircdoor if "%1"=="" goto local if "%1"=="0" goto local :remote ircdoor -p%1 -dc:\lora\node%2\door.sys -sirc.funet.fi -$6666 goto quit :local ircdoor -l -uSysOp -nSysOp -r"My Name" -sirc.funet.fi $6666 goto quit :quit cd \lora This small command file above will do the job. It requires two arguments: 1 - "hot" com port handle and 2 - path to BBS drop file where to take user information from. IRCDOOR will automatically determine drop file type by it's name. See information on command line switches for more information. d) Edit your STARTUP.CMD file in your system root directory and add there the following line: erase c:\ircdoor_home_directory\nodeinfo.* >nul This command will erase old node information files from the IRCDOOR home directory. Ircdoor_home_directory must be replaced with the directory name where IRCDOOR/2 files are located. IRCDOOR/2 creates and uses nodeinfo.* files in it's home directory and it automatically deletes them when a user exits the door. But if you encounter a system crash during the time when IRCDOOR is running, you should manually remove nodeinfo.* files from it's home directory to prevent IRCDOOR from thinking that it is running at the moment. That's why the best way to avoid this is to insert that mentioned erase command above to your STARTUP.CMD file so whenever your system reboots, old IRCDOOR node information files will be deleted. There are many different types of BBS software for OS/2, and most support passing various parameters via command line, and most are able to write standard BBS drop-files (DOOR.SYS or DORINFO?.DEF). If this is not your case, and you are experiencing problems on how to setup a door, please contact me at the address given at the bottom of this document. 5.2 Installation (for Maximus 3.x systems) * Assume that your Maximus directory is C:\MAX, and your doors are in C:\MAX\DOORS. Assume that your MEX directory is C:\MAX\M, and your MECCA directory is C:\MAX\MISC. If this is not your case, simply replace the paths where they appear in future. a) Create IRCDOOR directory under your DOORS directory: C:\MAX\DOORS\IRCDOOR. b) Unzip (copy) IRCDOOR distribution files to that directory. c) Copy IRC.CMD file into your Maximus directory and check if all the paths are specified correctly in there. d) Copy IRC.MEX (and IRC.VM) to C:\MAX\M directory (or where your MEX files are located) e) Edit MENUS.CTL and add there (where you want) something like that: Mex M\IRC Normal "IRC" so when a user selects 'I' from your Internet menu, IRC.VM mex code will be run. IRC.VM mex code will at first create a DOOR.SYS file in your node-dependant directory (for single-node BBSs edit IRC.MEX so it would call DOORSYS.BBS instead of DOORSYS2.BBS), and then will prompt a user to choose the IRC server to use. You can manually change the IRC.MEX file to present other (closer) IRC servers to your BBS users. f) Copy DOORSYS2.MEC (and DOORSYS2.BBS) to C:\MAX\MISC directory or wherelse your MECCA files are located. Edit DOORSYS2.MEC if necessary to specify YOUR BBS node directories. By default, DOORSYS2 MECCA script file will write DOOR.SYS drop-file in C:\MAX\NODEn directory, where 'n' is an active node number. Change it if your node directories are in different locations, or you are running a single node BBS. If you have a single node BBS, simply edit IRC.MEX to call DOORSYS.BBS instead of DOORSYS2.BBS, and then edit IRC.CMD so it will pass valid path to DOOR.SYS file. g) Compile IRC.MEX with MEX and DOORSYS2.MEC with MECCA (if changes were made), compile MENUS.CTL with SILT. Last time check whether everything is ok and all paths are correctly specified in the files mentioned above. h) Edit your STARTUP.CMD file in your system root directory and add there the following line: erase c:\ircdoor_home_directory\nodeinfo.* >nul This command will erase old node information files from the IRCDOOR home directory. Ircdoor_home_directory must be replaced with the directory name where IRCDOOR/2 files are located. IRCDOOR/2 creates and uses nodeinfo.* files in it's home directory and it automatically deletes them when a user exits the door. But if you encounter a system crash during the time when IRCDOOR is running, you should manually remove nodeinfo.* files from it's home directory to prevent IRCDOOR from thinking that it is running at the moment. That's why the best way to avoid this is to insert that mentioned erase command above to your STARTUP.CMD file so whenever your system reboots, old IRCDOOR node information files will be deleted. Then run Maximus and check it out. If you have problems with configuring IRCDOOR/2 for your system, first refer to the chapter 5.1 (Installation for non-Maximus BBS systems), and if you still have no luck, feel free to write to the author. See the information at the bottom of this document to find out how to reach me by electronic mail. 6.0 IRC commands supported by IRCDOOR/2 The following is a list of IRCII commands currently implemented in IRCDOOR/2: /LIST Lists all current irc channels, number of users, and topic. (slow and can terminate connection on some servers) Example on /LIST command: /LIST -min 10 /NAMES Shows the nicknames of all users on each channel /JOIN Join the named channel. All non-commands you type will now go to everyone on that channel. Channel must start with the '#' character. If you are on a channel, the /JOIN command will also automatically get you out of the channel you are cur- rently in, and will bring you to the specified one. Example on /JOIN command: /JOIN #usa /MSG Sends a private message to the specified person. Only the specified nickname will see this message. Example on /MSG command: /MSG Hoolio Hello Hoolio! /NICK Change your nickname When you're connected, your BBS login name is usually taken as the default 'nickname' for yourself. You may wish to change this with this command. Example on /NICK command: /NICK IRCD00R /QUIT or /BYE Exits IRC. /HELP Gets IRCDOOR online help menu. When using online IRCDOOR help system, use ENTER and numeric keys to navigate around. When IRCDOOR displays a [more] message on your screen, you might wish to quit listing by pressing ESCAPE or Q key. /WHO Shows who is on a given channel, including nickname, user name and host, and realname. /WHOIS Shows the "true" indentity of someone Use this often to make sure you know who you are talking to, because nicknames are NOT owned so any number of people could use a nickname. /WHOWAS This command asks for information about a nickname which no longer exists. This may either be due to a nickname change or the user leaving IRC. /MODE Allows both usernames and channels to have their mode changed. This can be only used by channel operators. The should contain valid parameters for the /MODE command i.e. the channel name, the nickname (when appropriate), and the /MODE command switches. The following listed are some most used /MODE commands: /MODE <+|->o - take/give the channel operator privileges for the specified user. /MODE <+|->i - change invite-only flag for the specified channel. /MODE <+|->p - change private flag for the specified channel. /MODE <+|->s - change secret flag for the specified channel. /MODE <+|->t - change topic-setable flag for the specified channel. /MODE <+|->n - set/unset no messages to channel from the outside flag. /MODE <+|->m - change moderated channel flag for the specified channel. /MODE <+|->l - set/unset the user limit to channel. /MODE <+|->b - set/unset a ban mask to keep the specified user out of the channel. /MODE <+|->v - give/take the ability to speak on the moderated channel. /MODE <+|->k - set/unset a channel password. Examples on /MODE command: /MODE #latvia -o Kaspariic /MODE #gonnabe +b *!*@microsoft.com /KICK The KICK command can be used to forcibly remove a user from a channel. It 'kicks them out' of the channel (forced PART). This can only be used by channel opera- tors. The consist of the spaced , and options. Note: the option is not obligate. Example on /KICK command: /KICK #ircdoor Lamer Lamers not allowed /INVITE The INVITE message is used to invite users to a channel. The should consist from parameter , which is the nickname of the person to be invited, and parameter , which is the target channel to invite the user to. Example on /INVITE command: /INVITE JohnDoe #legends /TOPIC The TOPIC message is used to change o view the topic of a channel. The can contain two parameters: the and the . The topic for channel specified in the is returned if there is no parameter given. If the topic parameter is present, the topic for that channel will be changed, if the channel modes permit this action, and if you are the channel operator. Example on /TOPIC command: /TOPIC #switzerland Weather In Switzerland /PART Lets you leave the specified channel. You may also use the /LEAVE command to leave a channel, but generally you won't need to use this command because /JOIN will automatically get you out of current channel and bring you to the specified one. /CTCP The /CTCP command sends a CTCP request to the specified user on IRC. The parameter is a valid CTCP request command. The following are supported CTCP request commands: CLIENTINFO Obtains information about other IRCDOOR/2 internal CTCP request commands. PING Will generate a reply on remote's "PING" message. TIMELEFT This is internal IRCDOOR/2 CTCP command that let's an IRC user to query how much time is left for the IRCDOOR/2 user. This only applies to remote BBS users. USERINFO Obtains user information on a client. User information includes user's name, city, nickname, IRC server he is connected to, and IRCDOOR/2 version information. VERSION Obtains version information on a client. IRCDOOR/2 version information will be sent. Examples on /CTCP command: /CTCP MisterX CLIENTINFO /CTCP JohnDoe VERSION /PING The PING message is used to test the presence of an active client at the other end of the connection. It can be used to ping clients, servers and nicknames. /VERSION The VERSION message is used to query the version of the server program. An optional parameter is used to query the version of the server program which a client is not directly connected to. Note: for getting versions for clients, use the /CTCP VERSION command. /SERVER This command allows you to change current IRC server without exiting the door. This command may not be available if SysOp doesn't want to allow remote users to change IRC servers. The consist of two parameters, and . specifies a server to connect to, and is an optional port number, or 6667 if not specified. Example on /SERVER command: /SERVER irc.funet.fi 6666 7.0 IRCDOOR/2-specific commands /TIMELEFT The /TIMELEFT command lets the user to check how much time left for his IRC session. This only applies to the remote BBS callers. For local callers, their session time is not limited. /WHOELSE The /WHOELSE command lets the user to review who else is using IRC from the same BBS at that present moment. 8. Comments ------------------------------------------------------------- As you can see, IRCDOOR/2 is full of features that could make your BBS users feel happy. There is lot of work spent to make the IRCDOOR as good as it is now, and i'd like to thank the following people who have been alpha-testing IRCDOOR and helped me a lot: Bob Juge, Andy Tarasov I am also thankful to my wife, Nataly, my father Longin, and to all my friends who were understanding me why i could not go for holidays, and for their advise on where to go next. :) ------------------------------------------------------------- Some words about me: i am independent programmer and i am interested in job opportunity in other countries. I have experience in DOS, Windows and now OS/2 programming, and i am looking for a company wishing to employ me at a constant or contract job. If you could help me with this, please let me know As Soon As Possible! You are welcome to visit my WWW home page at SIS, where i am currently working, and see my resume at http://hpe25.swh.lv/~mrbyte ------------------------------------------------------------- IRCDOOR/2 Command-line usage: ircdoor [{-p -d} | {-l}] [-h -n -u -r -s -$ -t