Beating the Phone Company

This article was originally published in the August 1995 edition of Boardwatch Magazine. It describes the modification of a UUCP login script to transfer batched news via an intermediary provider using rlogin. Although the dial-up BBS, and for that matter UUCP, has largely become obsolete with the spread of Internet access, this article will give you an idea of the sorts of things we were doing back in 1992-1997 when Sea of Noise was a BBS rather than a web site. - RS

I run a medium size BBS out of Monterey, California and as of just a short while ago was looking for a way to provide Internet connectivity to my users at a reasonable cost. Currently, the only provider in my area is Netcom, but when I called them to ask if they would provide me with a UUCP feed, the answer was an outright NO. The only other option I had was to find an inexpensive provider out of San Jose, a long distance call from Monterey. The good news is I did find a provider in San Jose called a2i Communications which offered me both a UUCP feed and an interactive shell account for a low monthly fee of twenty dollars. The bad news is that in order to carry the number of USENET newsgroups I wanted for my BBS (around 200-300) I was going to have to pay approximately four hundred dollars in long distance phone charges each month! There had to be a better way.

The document that follows explains in detail how to configure a uucp script to exchange batched mail via the unix rlogin command. One of the primary reasons for exchanging mail in this manner is that it enables you to dial a local Internet provider--who may not offer a uucp feed--and rlogin to a remote provider that DOES offer a uucp feed. In this way, you will avoid the often horrendous long distance phone charges associated with running an Internet/Usenet feed for your BBS.

In order to illustrate this process, let us say as an example that the only Internet provider in your town with a local access number is Netcom (as in my case). Unfortunately, Netcom (as previously mentioned) no longer offers UUCP feeds, so you are required to establish a feed account with another provider outside of your area code or local calling area. As you are no doubt well aware, a full UUCP feed (over 8,000 newsgroups) brings in about 55 megabytes of new messages each and every day. Even a small selection (100-300 conferences) will often require several hours to download each night from the provider. This can add up to BIG phone charges each month. But there is a way to avoid this and pay nothing in long distance charges.

First, you will need to establish a SHELL account with Netcom (or other local provider) and then of course a feed account with the provider outside your local calling area. Now, configure your BBS or network and ensure that your UUCP feed is working via the direct dialing of your out-of-town provider. Once you have ironed out all of the bugs and idiosyncrasies of running a UUCP feed, you are now ready to modify your uucp login script that is accessed by the program you are using to dial the provider and to initiate the transfer. Login scripts vary according to the software you are using. The example that follows is a script I wrote for PCBoard 15.21's UUXFER program. (NOTE: It runs on one continuous line; however, I have split it over multiple lines so that it formats correctly to the page.) In order to distinguish clearly the login names and passwords, let's use the following examples: for Netcom, we shall use login name `sugar' and password `uncle'; for a2i (the uucp feed) we shall use password `87jR2.Q'. There is no need to specify the login for the feed, as we will do that in the rlogin batch we will create and store in your Netcom's home directory.

| Original uucp script for direct dialing uucp provider           |
|                                                                 |
| #Systems file for a2i, created 5/25/95 by EO.                   |
|                                                                 |
| a2i f1 f2 f3 f4 g "" ATZ OK \dATDT2939010  CONNECT \c gin:--gin |
| Uamos word:--word 87jR2.Q                                       |
|                                                                 |

| MODIFIED SCRIPT FOR LOCAL NETCOM NODE                           |
| #Systems file for a2i, modified 6/09/95 by EO.                  |
| a2i f1 f2 f3 f4 g "" ATZ OK \dATDT6447850 CONNECT \c gin:--gin  |
| sugar word:-word uncle }:--} feed word:--word 87jR2.Q           |

Ok, now that we have our script for direct dialing (long distance) our provider working, let's study our modified rlogin script. First, I have changed the dial-up number from the long distance provider to the number for the local Netcom node. Then I changed the login and password to reflect the local Netcom account. Following those changes, you will notice the `}' braces. After UUXFER logs into your local Netcom account and signs on with the proper password, it needs to be told what to look for next. The Netcom server you logon to--which varies with each call--is always enclosed in braces (check the prompt your local provider uses and substitute accordingly) so I have told UUXFER that when it sees the braces that it should execute the batch file called `feed.' You now will need to call Netcom (or local provider) and after logging in, type `pico feed' at the main prompt. This will create an empty text file called `feed.' At this point we will type out the rlogin command along with the parameters we will use for logging into the feed site. Substitute the following for your particular site:

rlogin -l Uamos

Now do a ctrl-x to exit and save the file known as `feed.' At the Netcom prompt, type `chmod +x feed' and press enter. This will make `feed' executable as a batch file. Please note that you will need to find out the name of the specific server your provider uses for UUCP feeds and substitute it for the name I used: You will also have to ask your provider if he will configure his server to allow your incoming rlogin (Rahul of a2i Communications was very happy to assist me in my efforts and made all of this possible). He will need your Netcom login name to do this. Also notice the rlogin -l switch followed by the UUCP login you use with the feed site. Unfortunately, UUXFER treats any switches or other commands as separate commands or programs. Because of this, we have to tell our script to execute the batch file known as `feed.'

So, getting back to our script, we see that after UUXFER sees the braces, it will run the feed batch file which will in turn rlogin to the appropriate server with your UUCP username. The next thing that will happen is that you will be prompted for a password. When UUXFER sees `word' it will enter your UUCP password. (Please note that in the modified script I have removed the `CONNECT \c' when using rlogin to log into the UUCP server. I have done this because we are already logged in thanks to our feed batch file and the use of the `-l' parameter with rlogin. All we need do now is have our script enter the UUCP password).

Once our UUXFER script enters the appropriate UUCP password (in this case, 87jR2.Q), you should see the following message "Shere=sitename." The transfer should begin just as it would had you dialed in directly. Please note that the throughput will be nearly the same, as the feed server is processing the job at the same speed as before. The good news is that you're connected to a local number and transferring all of your batched news through Netcom! Congratulations if everything works. With enough persistence and perspicacity, you should be able to adapt this script to work with nearly any program or environment.

Addendum: In certain instances, the rlogin command may be unreliable. The rlogin command traps certain sequences of characters, when it sees a dot at the beginning of a line. If this is the case, you may want to experiment with BINARY telnet. If your provider does not support BINARY telnet, you will need to obtain the source code and recompile it on your local provider's system. With any luck your UUCP transactions will never include the character sequences trapped by rlogin, making this precaution unnecessary.

You can increase the throughput of your UUCP transfers by modifying the g parameter in PCBoard's uucp chat script. The g parameter controls the window and packet size used during the transfer. Try changing it to read g65, a setting which works well on my system (my transfer rate increased from 600cps to 1600+ cps). Consult your PCBoard manual for more detailed information.

Copyright 1995 James G. Stolich. All rights reserved. Reprinted by permission.

Table of Contents

Etext ©1997 Robert Szarka
Last Update: 19 Jun 1997