************************************************************************** PCB Dial On Demand v2.0b (C) 1995,1996 Charles Bailey ************************************************************************** The latest version of this program can always be found on New JerseyLand (908) 918-8682 Description: This program was written out of a need to offer my callers Internet access, but without being able to afford a leased line. With this program, you can offer full Internet to your callers using a cheap PPP account! What this program does is dial your provider when it is needed, and hang up after your caller is done. In my area, unlimited time PPP accounts are going for as low as $15 a month. While they may say "Unlimited", if you try and call and never hang up (Or configure PPP to redial when the connection is broken) your provider will most likely get a bit upset. "Unlimited" usually means to use it as much as you want, as long as someone is actually USING it. By connecting only when needed, this program let's you use these cheap accounts to provide access to your callers! This program does not do any Internet functions (Such as FTP, Telnet, IRC). This program will interface with existing programs, and allow you to use them without a dedicated Internet connection. A program I use on my BBS is TELDOOR by Russel Coker. He has added DOOR.SYS support into his program, and it works nicely with PCBoard for OS/2. PCBDOD has also been tested with Clark Development's Internet Collection, as well as IRCDOOR. PCBDOD should work fine with any Internet programs that will run as a Door. I am also working on setting PPP up to work as a SERVER, letting you offer your callers World Wide Web access. I have something working now, but when I get more of the bugs worked out of it, I will add details in the next version of PCBDOD. Features: - Total dialing time is now as low as 25 seconds! This is the time from when your caller starts PCBDOD until they are able to use it. - Works well with Clark Development's PCB/IC. - Uses cheap, readily available dialup PPP accounts. No need for an expensive dedicated line. - Automated connection. Now, from a batch or .CMD file, you can bring PPP up. This is great if you want to get mail, Usenet, Files, FIDO, Etc over your PPP line. Requirements: - PCBoard 15.22 or higher running under OS/2. - A TCP/IP stack (Warp Connect, or the IAK that comes with regular Warp will work fine). - PPP. In earlier versions of Warp, PPP wasn't included. However, it can be downloaded from most good OS/2 BBS's, as well as New JerseyLand - (908)918-8682. Also, you may use an alternative to IBM's PPP, such as In-Joy. - An Internet application that can be run as a Door. PCBoard's Internet Collection, Russell Coker's Teldor, and IRCDOOR have been tested with PCBDOD. From my talk with other shareware authors, there will be more OS/2 Internet doors available in the future. List of Included Files: - PCBDOD.PPE Main Program. Install in CMD.LST - PCBDOD.CFG Configuration file - DODUTIL.EXE Utility program to do Misc. functions - PCBDOD.TXT This file! - HISTORY.TXT The History of PCBDOD - DIALOD.EXE This program should be running continuously - PPP.CFG A sample PPP Configuration file. Would go in /TCPIP/ETC - TELNET2. A sample batch file to call TELDOOR - IN-JOY09.ZIP A great Shareware replacement for OS/2's PPP and Dialer - INJOY.CMD Batch file needed to make Injoy exit on connection loss - KILLJOY.CMD Needed by INJOY.CMD Installation and Setup: If you are upgrading from a previous version, all you need to do is copy the PCBDOD.PPE and the DIALOD.EXE over your old versions. *NOTE* If you are upgrading from a version prior to 2.0b, you will need to edit the PCBDOD.CFG file. New Installation: - Copy all the files in this ZIP file to a directory, such as C:\PCB\PCBDOD - Edit the PCBDOD.CFG file as follows: Line 1 --- Your Name Line 2 --- Your BBS Name Line 3 --- First Registration Number (Leave at 00000 if Unregistered) Line 4 --- Second Registration Number (Leave at 00000 if Unregistered) Line 5 --- The name of the door You want PCBDOD to run Line 6 --- The Com Port the Internet modem is on. This is needed to take the phone off hook when not in use. If you'd like to disable this feature, put NONE here. Line 7 --- Test Address. This is an Internet address that DIALOD.EXE uses to determine when the connection is up. Your provider's Telnet address, or name server address, will work here. If you'd like to disable this feature, put NONE here. If you're using In-Joy, or another dialer that can call DODUTIL to indicate that PPP is up, you should put DODUTIL on this line. Line 8 --- 'Press Enter To Continue' flag. This will vary depending on the way your BBS is set up. When the connection is up, and you try and run PCBDOD, it will exit with a message. If you don't get a 'Press Enter To Continue' prompt after, then you should put NONE here. If You get TWO 'Press Enter To Continue' prompts, then change this to 'YES' Line 9 --- ISDN/PPP Flag. If you're connecting with your provider using ISDN, or if you can connect to your provider VERY quickly, set this flag to ISDN. Instead of returning a message that the internet connection isn't up yet, it waits silently until it is, and then runs the configured door. In case the internet connection fails for some reason, it times out after 35 seconds. If you are running a 'PPP Door', set this flag to PPP. This will display a message which says 'Waiting for PPP'. When the Internet connection comes up, OK will be displayed. Your callers can configure their Winsock scripts to wait for the 'OK'. Be aware that the Test Address must be in the PCBDOD.CFG file for both of these to work. Line 10 -- This is the full command line you want PCBDOD to run when Internet is to start. This could be just PPE.EXE. However, some people have had problems getting PPP.EXE to find their PPP.CFG. You can also specify PPP.EXE's commands on the command line, or you can specify a Configuration file. See the PPP docs for more information. If you are using In-Joy, you should make up a .CMD file that changes to your In-Joy directory, and then run In-Joy. An example might look like: CD C:\PCB\INJOY in-joy.exe CD C:\PCB\PCBDOD Put the name of your .CMD file on line 10. Line 11 -- This line is for an optional program you may want to run if the Internet connection fails. If you were using the In-Joy dialer, you could put killjoy.exe here. Line 12 -- The name of a program you want run when the Internet connection comes up. This program will run in it's own window, and PCBDOD will not kill it if Internet goes down. Line 13 -- This line is for an optional program that will run when the Internet connection goes down. It could be used to run a program that kills the configured program in line 12. **** NOTE ***** In All text messages, you can put PCBoard's @X Color codes to change the color of the text. Line 14 -- The text message you want displayed when the Internet connection is comming up. Line 15 -- The text message you want displayed when the Internet connection has started to come up, but isn't ready yet. Line 16 -- This is the text displayed when the connection has failed. Line 17 -- This optional message is displayed right before the Internet door gets run. It could give general advice on Internet, or specific instructions. Line 18 -- This Optional text is displayed after your caller comes back from the Internet door. Line 19 -- This Optional line is displayed if the person attempting to use the Internet door has a security level lower than the one on line 18. Line 20 -- This is the minimum security level required to run the Internet door. Enter 0 to disable. - Configure PPP.CFG (Located in the TCPIP/ETC directory) to dial your Internet provider. A sample CFG file is included. If You're not using PPP.CFG, make sure line 10 of PCBDOD.CFG will call your provider if it's typed on the command line in an OS/2 window. Alternatively, you can use In-Joy, included in this archive, to replace both Warp's PPP and dialer. This is highly recomended, as In-Joy is a great program, much quicker than IBM's dialer, easier to set up, and PCBDOD has some enhancements designed to work specifically with In-Joy. Using In-Joy, you can cut as much as 20 seconds off your dial time! - Set up DIALOD.EXE so that it starts upon bootup. This program sits in the background, and waits for a signal from PCBDOD.PPE - Install PCBDOD.PPE in your CMD.LST file (Usually located in \PCB\GEN\) - Set up Your Internet application as a Door. For your convenience, I've included the latest TELDOOR in this archive. I have also included a sample batch file to start up TELDOOR. TELDOOR is a separate shareware product, and is not related to PCBDOD in any way. - If using Warp's PPP, make sure that PPP.EXE is in your path. It is usually located in C:\TCPIP\BIN - If you're using In-Joy, you'll need to write a .CMD file that changes to your In-Joy directory, runs In-Joy, and then returns to your PCBDOD directory. A sample .CMD file might look like this: cd \in-joy in-joy cd \pcbdod If you don't do this, In-Joy won't be able to find the other files it needs to operate (Configuration, Script, DLL's, etc.) That's It! When your callers run the command you configured to call PCBDOD, it will check to see if the Internet connection is up. If not, it will start the Internet connection, inform your caller that Internet will be ready for use in a minute, and exit. If the connection is already comming up, it will run the Door program you configured, and pass along any parameters your caller put after the PCBDOD command. Features: PCBDOD has a number of useful features: - MULTIPLE CONFIGURATION FILES. If you want to run more than one Internet door, you will need to set up multiple configuration files. Basically, you can copy PCBDOD.PPE To another filename, such as FTP.PPE. Then, you would call your new configuration file FTP.CFG. When you call FTP.PPE, it will look for FTP.CFG instead of PCBDOD.CFG. Actually, it will look for a configuration file that has the same name as itself, but with a .CFG on the end. You must keep your PCBDOD.CFG, as this file is read by DIALOD.EXE. - DODUTIL.EXE UTILITY PROGRAM. This program has a number of options, and a number of uses. The options are as follows: /PPPISUP - This tells PCBDOD that Internet is up. Normally, PCBDOD will figure out on it's own when the Internet connection is up, but this can sometimes take 10-15 seconds. If you're using In-Joy, or another dialer, you can have the dialer run the command 'DODUTIL /PPPISUP' when the Internet connection is made. /KILLDOD - This option will make DIALOD exit. This is useful from a batch file. For instance, suppose you had your BBS make a call out every night, and you wanted it to do it on the Internet line. Running this option will exit DIALOD. This option will only work if the Internet connection is not up. If it is, you will need a separate utility to kill PPP. /BRINGUP - This will bring up the connection. Lets say you wanted your BBS to automatically Telnet out at a certain time, and exchange files or E-Mail. This will bring up the connection. You can use another utility to kill the connection, such as PPPKILL.EXE, or JOYKILL.EXE - NORMAL, PPP, AND ISDN MODE. Depending on what you want your Internet door to do, some of these options may prove helpful. In normal mode, if the Internet connection is down, and someone tries to run an Internet door, it starts up the Internet connection, and then informs the caller that the Internet connection will be up in a minute. If they run the door again before the Internet connection has come up, it will give a separate message saying Internet is not up yet. Only when the Internet connection comes up will it allow the caller to go into the door. In PPP Mode, it is assumed that your caller is using an automated script to call in. If Internet is up, it will run the door. If Internet is not up, it will wait until it is, and then output an 'OK'. Then, it will run the Internet door. In ISDN mode, it is assumed you have a relatively fast connect time. If Internet is currently up, PCBDOD will let your callers get into the door. If Internet is not up, it will just wait until it is up, and then run the door. An ISDN connection to the Internet could cut connect time down to 15 seconds or less. - PRE- AND POST-INTERNET MESSAGES. These are messages that are displayed before, and after the Internet door has run. One use for these is for a telnettable text-based WWW site. There are many sites you can telnet to to get a text-based WWW browser. Some require you to 'Log In', even though the login may only be 'WWW'. A Pre-Internet message can inform your callers to enter WWW at the login prompt. - DEFINABLE SECURITY LOCKOUT, AND LOW SECURITY MESSAGE. Instead of PCBoard's standard messages, you may want to say something specific to those trying to use an Internet door. Line 19 in the configuration file is what is displayed to callers who have a security level lower than what's on line 20 of the configuration file. - AUTOMATICALLY SETTING LOCAL IP ADDRESS. Some programs, such as Clark Development's PCB/IC, require you to set a variable to your machine's IP address. If your provider assigns you addresses dynamically, PCBDOD will find the address, and make a small CMD file, called SETIP.CMD, that you can call before running your door program. A Typical batch file might look like this: call c:\pcbdod\setip.cmd cd\pcbic pcbic SETIP.CMD is created On-The-Fly when your Internet connection first comes up. Q & A: Q. How can I offer my callers PPP accounts? A. Up until now, this has been tough to do. It required a Class C address, which usually did not come with a cheap dialup account. If you were lucky, you could Telnet to a Freenet, and get PPP that way. Now it appears you may soon have another option.... The author of In-Joy has added a feature called IP MASQUERADING. This essentially will emulate a Class C address. When I have a setup that's working well, I'll include details in the next version of PCBDOD. Q. How can I speed things up so that Internet will connect quicker? A. There are a few things you can do.... First, make sure you have Touch Tone dialing. This will save a good 10 seconds. Second, I'd recommend using a US Robotics modem, and dealing with a provider that also uses US Robotics. One of the advantages of a US Robotics modem is that it connects faster when connecting with another US Robotics. Also, US Robotics Modems support the new 33.6 speed.... And If you're going to try and run a Mini-ISP using a dialup connection, every little bandwith increase becomes important. You may try removing the 'ATZ OK' from the PPP.CFG. This will keep PPP.EXE from resetting the modem every time it dials out. Some sysops report that this works great, while others have had problems. Also, you can try and experiment with the Modem's settings. This will require you to dig out your modem's instruction manual. In particular, look for the commands that change the speed that the modem dials, and how long the modem waits to dial. Q. How long does it on average take for the Internet connection to come up? A. I've run this program without the above benefits, and it would come in at almost exactly one minute. Of course, this will vary, depending on Your modem, CPU, Provider's equipment, etc.. With Touch-tone dialing, and In-Joy, my connect time is now around 25-30 seconds. Q. Will this program work with ISDN? A. PCB Dial On Demand should work great with an ISDN adaptor that will look like a Modem to PPP. ISDN is perfectly suited for this application, as it's a lot quicker and cheaper than a 56k leased line, and ISDN takes less than a second to complete a call. To make PCBDOD work more smoothly with the shorter delay, you can set the ISDN flag. This eliminates the message telling your callers that 'Internet is comming up'. It just waits until the connection is up, and then runs the door command. This way, your callers could easily be fooled into thinking you have a 24-hour connection. Also, in many areas, ISDN is charged by the minute. If dialing when needed, and hanging up when inactive, PCBDOD should be able to save you a considerable amount of money over connecting 24 hours a day, both in phone company charges, and in your ISP's bill. Q. Why do I have to hang up when I'm done? Why not just stay connected forever? My provider says they have UNLIMITED access. A. Well, despite what they say, Unlimited almost always means a non-24 hour connection. Most PPP providers also monitor activity, and will boot you off if the PPP isn't in use. If you try and keep the line active artificially, like pinging a site every few minutes, they may get upset and suspend your access. Q. Do I REALLY Need OS/2? A. At this time, You DO need OS/2, with a TCP/IP stack for this program to work. If you're serious about running multiple nodes on a single computer, I highly recomend you consider switching to OS/2. Besides being a very good and stable multitasker, it makes adding Internet access easier and cheaper. I ran a DOS-Based BBS for years, and had severe lockup problems. The more things (Both Door programs, and hardware) I added, the worse things got. At one point I was hitting the reset button every day. Once I got settled into OS/2, things changed for the better. 2 weeks, and even a month, without a crash, are not uncommon. I imagine it would be longer, but I usually need to make some change or hardware addition which requires a reboot. As I write this, my last crash was about 4 months ago, and I believe that was hardware related. I am currently working on a DOS version of this program. Hopefully it will be out by September of 1996. However, this may change. Most Sysops are switching to OS/2, WinNT, and even Win96. If there is still demand for a DOS version, I'll release one. Q. Can more than one person use an Internet door at the same time? A. Absolutely! You can support at least 2 Telnet sessions on one PPP line, and on average, probably support as many as 5 simultaneous Telnet sessions. As many as 10 IRC sessions could be run, as IRC is generally low-bandwith. This is a good alternative to a leased line, as 28.8 modems have compression, while a 56K leased line usually does not. Q. The Internet connection seems to 'Lock Up' occasionally. Sometimes I have to reset the computer. How can I fix this? A. Get the latest Fixpack (Currently #17) from IBM, or another reliable source. Q. Do I need a network to offer my callers full Internet? A. NO. OS/2 Warp comes with everything needed to connect your machine to the Internet. All you need is one connection to provide access to all of your callers. PCBDOD will also work with a network, if you have one. Q. What else should I know about PCB Dial On Demand? A. Well, the dialer portion of PCBDOD keeps the phone off hook when not in use. This prevents someone from trying to call in on that line. To avoid problems (Like the phone company thinking Your phone is broken), PCBDOD hangs up the modem every 10 minutes, so that the line gets a 'Break'. This can be disabled in the configuration file to allow using that phone line when PCBDOD isn't using it. Q. Everything works fine for a while, but after PPP dials out for the third or fourth time, there is an unusually long delay. A. I have received reports on this, but haven't experienced the problem on my machine. However, not having a SET HOSTNAME=anyname in your CONFIG.SYS could cause this. Also, using In-Joy seems to fix this. Q. Why does the DIALOD program have to be running? Does it use up a lot of CPU cycles? A. DIALOD.EXE is a Multithreaded OS/2 program that actually starts PPP. When not in use, it uses very little of the CPU's time. Q. I'm using In-Joy. It dials fine, but when it hangs up, it doesn't exit! A. This is done by running Killjoy.exe with a certain parameter. However, this parameter can't be issued before In-Joy is running. So, I wrote a quick-and-dirty set of .CMD files that would take care of this. You may have to edit these to match the paths you put IN-Joy and PCBDOD. Put these in their proper directories, and have PCBDOD call injoy.cmd instead of injoy.exe. Injoy.cmd will make another process and run killjoy.cmd, which waits a little while, and then runs the needed KILLJOY.EXE. Injoy will now exit when the connection goes down. Hopefully something easier will appear in the next version of Injoy. HELP! I can't get things to work! If things don't work, it's good to test each individual part separately. First, make sure that PPP is set up and working properly. From an OS/2 window, type exactly what you put on line 10 of the PCBDOD.CFG file. PPP should come up, call your provider, and connect. If not, then there is a problem with PPP configuration. If you're using it, Make sure PPP.CFG is correct, and in the proper directory. If not, make sure all required parameters were put on the command line. Check the documentation that came with PPP for more info. Once PPP is connecting to your provider, you need to make sure it's working. While PPP is running, try running one of the Internet programs that comes with Warp, like FTP or Telnet. If you can FTP, or Telnet to another site, chances are your PPP connection is fine. Now, you should check to make sure your Internet door application is working. To do this, from PCBoard, with PPP running, type the command you configured to run the Internet door (In the included sample configuration, this is TELNET2). If PCBoard gives you an error, make sure the door is set up in PCBoard correctly. If you still have problems, consult the documentation that came with the door. Once you've come this far, make sure that the PCBDOD.CFG file is configured properly. DIALOD.EXE should be running in the background constantly. When, from PCBoard, you enter the command you want your callers to use the Internet door, it should call PCBDOD.PPE, and the PPE should call the Internet door when PPP comes up. If you're still having problems, drop me a message, and I'll help you through it. Registration: PCB Dial On Demand is Shareware. If you use this program for more than 30 days, you are expected to register. When you register, you'll receive your registration number, which will remove the delays and beg message. Registration numbers will work on all future versions of PCB Dial On Demand for OS/2. Registration costs only $20, and can be done by cash, check, or credit card. To register, you can either send payment by mail, or you can call my BBS directly, and register online. After logging into my board, type SWREG from the main menu. If you'd rather send by snail mail, the address is: Charles Bailey New JerseyLand 426 Slocum Ave Neptune, NJ 07753-3829 Be sure to include: -Your Name -Your BBS Name Exactly as you spell and capitalize it -Your Address -Your daytime telephone number -Your Credit Card Type (Mastercard, Visa, Etc..), Card number, and exp. -Method you'd like to receive your registration number. there are a few choices: Internet E-Mail FidoNet Mail US Post Office mail (Add $5.00 for this option) I can leave it to You in a message on New JerseyLand If you don't specify which method You'd like to receive your registration, I will send it the same way I received your info. Warranty: None. I don't guarantee this program does anything, including taking up room on your hard drive. While I have extensively tested this program, and have had no problems with it, I can't guarantee that it is bug-free, that it will work in your application, or that it won't break something. How To Reach The Author: I can be reached from Fidonet at 1:107/461. My Internet E-Mail address is sysop@njland.com. Also, You can call My BBS direct at (908) 918-8682, and leave a Comment to the Staff. If you have any suggestions or comments, I'd like to hear from you. If there's a feature you need that this program won't do, let me know, and I'll see if I can include it in a future version. **************************************************************************