Documentation for Telnet Door version 0.05g, the universal interface between an OS/2 BBS and the Internet. Telnet Door is a program that I initially wrote because I wanted to connect my BBS to the Internet via a UNIX system. I wrote this door to enable users of my system to login to my UNIX system via OS/2s TCP/IP networking, and from access the Internet from there (once I get a connection). I soon realised that many other sysops want to do the same thing, so I decided to release this as shareware. +++Shareware legal statement: This program is not guaranteed to do anything apart from consume space on your hard drive. If you wish to use this program for more than 30 days from the date you received it you must register it (see TELDOR.REG for details). +++System requirements: This program requires at least OS/2 version 2.0 running IBM's TCP/IP networking software version 2.0 (I believe that my program is compatible with FTP software's TCP/IP for OS/2, but I haven't been able to test it). Requirements for RAM and hard drive space are so small that it won't make an impact on the typical BBS system. +++Test system: This program has been extensively tested on an OS/2 system running OS/2 Warp version 3.00 with the Internet Access Kit running on an Ethernet network with MPTN (the IAK won't run on a LAN without MPTN nee LAPS) on a 486. The target systems of the TELNET were a 386 running Linux (kernel versions 1.1.61 to 1.1.85 and utilities from the Slackware 2.0.0 distribution). +++Compiler used: This program was compiled with IBM's Cset++ version 2.1. +++Usage of the program: Here's the help screen which is displayed when you give it incorrect command line parameters, no command line arguements or run it with the "-?" parameter: Usage: teldor [ OPTIONS ] A=host address hostname is in dotted decimal or *domain name* convention Options: h=file handle file handle of open serial port passed from external program c=com port device name for serial port fd=door config file full file and path name for DORINFO1.DEF file t=mins time in minutes that the user may be logged in d=filename debugging file name l=filename logging file name p=port TCP port/service to login to on remote machine o=options misc on/off options, see manual If multiple hostnames are entered then a menu will be displayed. Telnet Door V0.05g WIDE BETA, copyright 1995 Russell Coker. Basic usage is "teldor A=202.12.87.129" or "teldor A=snoopy.apana.org.au" or whatever the destination address is using either the dotted decimal address or the domain name system address to just TELNET in to the host system. The "A=" command is used to specify the address to connect to. NB These examples use the internet address of my UNIX box. If you actually use this address you should be able to connnect to that system. However I don't currently have a guest account set up (so you won't be able to log in). For basic BBS operation it is: "teldor fd=c:\path\dorinfo1.def A=202.12.87.129" The 'fd' parameter specifies the fully qualified path name of the DORINFO1.DEF file which contains all necessary information on the user. The 'f' stands for the file name of a settings file, and the 'd' stands for DORINFO1.DEF format. In future I will support other formats as well. NB The "COMx" line in the door file is taken to contain the number of the open OS/2 file handle for the serial port. So "COM3" does not mean serial port 3 it means file handle 3 which points to a serial port. If you don't understand this then read the documentation for Maximus or BinkleyTerm. I don't agree with that feature being used in that way, but I know 99% of you have BBSs set up like that. The preferred way of passing an open serial port handle is via the "H=x" command line parameter which overrides the parameter in the door file (all command line parameters take precedence over door file parameters). If you want Telnet Door to open the serial port (EG when called from a DOS BBS) then use the option "c=COMn" where 'n' is the number of the serial port to use. This option will cause Telnet Door to open the serial port and initialise it before doing anything else. NB You generally should not call it that way from an OS/2 BBS package. The preferred way is via the "H=handle" parameter. This program will exit if a user tries to stay online longer than they are allowed. It does not hang up on them, it merely tells them that their time is up and exits. This allows the BBS software to decide exactly what to do when someone stays online too long. The amount of time that they are allowed is taken from the command line via the "t=x" parameter, or from the door file if it's not specified on the command line (NB the doorfile is strictly optional, if you don't specify a time limit on the command line and the doorfile isn't being used then they are allowed to stay online forever). The user is given a warning 5 minutes before their time is due to expire to give them time to save files etc. The "P=x" command line parameter is used to specify the TCP port to login to on the remote machine. The default is 23 (the RLOGIN port). You can also use a service name with the "p=" parameter. EG "p=nntp" would connect you to the Net News Transfer Protocol port and allow you to read Net News (if you're masochistic). The parameters "D=" and "L=" are for specifying the debugging and logging file names respectively. The logging file will store all data sent to the user on disk and may be useful to a sysop. The debugging file will only store information on the state of my program. The intended usage of the debugging file is for you to send it to me if you encounter a bug in my program, however if you feel curious then feel free to try and decipher it. The "O=" command line parameter can be used in the following ways: "O=C" will turn the local console off. This is useful for BBS sysops who don't want to see what the user is doing. It turns off all local display and bkeyboard input. This can make TELDOR run considerably faster in some situations due to the output speed slowing the system down, a future version will display output much faster and this won't be needed for speed. "O=7" will turn off binary mode. This is necessary if you wish to login to an OS/2 system and not have the screen garbled. "O=8" will force my program to pass binary data in both directions when not in binary mode! It should never be necessary to use this feature, but I expect that there are some telnet servers out there that are buggy and require this. "O=L" will tell Telnet Door to consider the serial port a "Lame" port. This is useful when using something other than a standard serial port (eg a named pipe over a network, a serial port that has a badly written device driver, or some other interface that acts like a serial port but doesn't have the full capabilities). It tells TelDor to not try changing serial port settings. If Telnet Door doesn't run and you are using non-standard serial drivers then try using this option. If you wish to have all data displayed locally except for BEL characters then the setting O=Q (for quiet) will cause all beeps to be filtered out from local display (they will still be sent to the remote user however). You use multiple options in the following way "O=7C" to turn console output off and to use non-binary mode, or "O=8Q" to force binary transmission and filter out beeps from local display. NB The options "8" and "7" should be avoided if at all possible. They should only be necessary for some buggy Telnet Daemons and you should not need to ever use them. I have not seen a system that needs the "8" option, but I assumed that there would be one so I implemented the feature. I regularly do transfers of binary data (including Zmodem file transfers) over Telnet Door without using the "8" option. It is theoretically possible that use of the "8" option where it is not appropriate could cause problems resulting in a loss of the TELNET connection. +++Environment considerations: This program is not particularly susceptible to changes in the CONFIG.SYS file, it should work fairly well no matter what settings you have in place. However there are some guidelines that may help you in setting up your system to get maximum performance. If you are running many copies of Telnet Door you generally should not change the TIMESLICE parameter in CONFIG.SYS in an attempt to improve performance. Some people may think that when running many copies of a program they will get faster user-response time by decreasing the size of a time slice - this is generally not true and definately not true for this program. Telnet Door spends most of it's time (99.9%) blocked on IO or sleeping, so when it is doing something (which will generally be of short duration) it is better if it is allowed to complete the operation before blocking on IO or sleeping again. Otherwise CPU time will be wasted on excessive task switching and user response may be slowed down as a result. If you are running Telnet Door on a system that also runs badly behaved applications (or DOS and Windows applications which are badly behaved by definition) then it may be necessary to use the MAXWAIT parameter in your CONFIG.SYS file to ensure that users of Telnet Door (and other BBS applications) get keyboard response in a reasonable amount of time. It may be necessary to change this value to 2 or 1 to give users of your BBS an acceptable response time. This will affect all programs not just Telnet Door so any setting that works well with your favourite OS/2 BBS package should work well with Telnet Door. When you are running Telnet Door you must ensure that you have enough threads set in your CONFIG.SYS file. Telnet Door requires 4 threads for modem operation when time-limits are enforced, and 2 threads for non-modem operation without time-limits, so a 16 line BBS could require up to 64 threads for Telnet Door alone! Increasing the number of threads for the system has not been found to lower system performance so I recommend a minimum of 256 threads for a typical BBS system. More may be required depending on the number of lines and the amount of networking that is being performed. +++Error Levels: Telnet door will exit with the following error levels which you may want to use in batch files etc: 0 Normal exit - no error. 1 Command line error. 2 Carrier loss. 3 Socket error (crash of UNIX host?). 4 Serial port error (connected to wrong serial port or another program is interfering with the serial port). 5 Display error - shouldn't happen. 6 Keyboard error - shouldn't happen. 255 Really serious or unplanned error, could be a bug in Telnet Door. If this happens then let me know. +++Registering: To register post a cheque or International bank draft, or credit card payment program to the address listed in TELDOR.REG. I accept payment by VisaCard, MasterCard, and BankCard from any country in the world through my agent Multifunction Computing. If you pay me by credit card you will see the name Multifunction Computing on your next bank statement. The file TELDOR.REG contains all information necessary to register this program including pricing information. The next full release of Telnet Door will require a key file to provide full functionality. Make sure you send me your EMAIL address when you register so I can send you your key. To get the latest version and for technical support you can send EMAIL to your choice of the following addresses: rjc@snoopy.apana.org.au. Russell Coker @ 3:633/363.0 @ fidonet Or call my BBS directly on +61-3-739-7145. You can now login to my BBS via the Internet by using the VMODEM function that is built into Ray Gwinn's SIO drivers. Use address multi.apana.org.au which is IP address 202.12.87.130 with the default VMODEM port. To get the absolutely latest version FREQ "TELDOR" from 3:633/363@fidonet, download it from files area OBBS in my BBS as the latest file that matches "TELDR" (do a locate to find it), or do an anonymous FTP from my Internet system (snoopy.apana.org.au). Also many other sites have copies of my program, the systems hobbes.nmsu.edu and ftp-os2.cdrom.com get copies soon after release and they both have Internet links that are thousands of times faster than mine so you may prefer to FTP from them instead of from me. But if you are paranoid about corrupt files or something then feel free to download it from snoopy.apana.org.au. Snoopy is an Internet host that is totally administered by myself. If you wish to logon to my BBS using the Internet (to avoid paying long distance phone charges if you don't live in the same city or country as me) you can login to multi.apana.org.au using either the Telnet or Vmodem protocols. Also if you experience problems with this product and you are on the Internet then you can use either snoopy.apana.org.au or multi.apana.org.au as telnet targets for testing. These are the systems that I use for testing Telnet Door during development so you can count on these working. I am currently running a mailing list for UUencoded copies of this program. This means that people who have Internet EMAIL addresses don't have to do anything to keep up to date with the very latest versions of my program, they can just automatically receive copies in their mail account without having to do anything. If you are interested in this idea then just send me an EMAIL message to my Internet address and I'll put you on the list.