MOTIVATION

This Dial program is a replacement for the standard System V
"dial" subroutine documented in the V.2 and later manuals.

It appears--see ACU(7)--the standard dial program requires
a real or pseudo device driver in the kernel to support dial
out.   In ATT machines,  this driver is tied to proprietary
hardware,  and that means--by and large--dial doesn't port well.
Every vendor seems to have a unique solution to the dial-out
problem,  and most of them are a mess.

I wrote this in the hope vendors would pick it up and provide
a standard interface to dial-out lines.   It does nothing strange
and plugs into all the system V programs (I think).

The System V.2 CU program (for sure) and the System V uucico
program (I am guessing) use the DIAL subroutine to do their
dialing.   Altos was gracious enough to let me try out this
subroutine with their CU source,  so I can tell you it definitely
works with System V CU.  Unfortunately, I was unable to try it
with uucico, but I believe it will work there also.   Ah,
for access to source....

The main claim to fame this dialer has is its configurability,
portability and flexibility.

I have used it to dial out on Altos and Plexus machines, and
it went without a hitch.  It has also been used to talk to
communication equipment (eg telephone systems) and even to
defeat dialback modems.  It works with the System V spooler
too.  You can have it call your home and put a message on
the screen for example.

Anyway, read the "dialinfo" documentation.   If you find a
modem dialer it won't work with,  drop me a line and we'll
try to fix it....

INSTALLATION

1)	Get all 3 pieces of the USENET posting and "sh" them.

2)	Print out the documentation and read it.  This step is
	supposed to get you all fired up for what follows.

3)	Type "make".   This builds everything you need.   If you
	are wildly optimistic,  you might try "make install".

4)	Copy "dialinfo" to /usr/lib/uucp.

5)	Copy "dialer" and "dialprint" to /usr/lbin or wherever
	you keep your local binaries.

6)	Either copy "libdial.a" to /usr/lib so it can be used
	as a library -ldial,  or replace "dial.o" and add
	dialinfo.o and readinfo.o--in that order--to your System V
	library (usually /lib/libc.a).

7)	Take a look at "dialinfo".   If you have a hayes or
	vadic,  you are set to go.  Otherwise you may need to
	create a dialer entry.   Not to worry,  it is pretty easy
	to make a simple one.  If you use it much,  you may want
	to write a fancy one later.

8)	Try "dialprint hayes" to make sure things are basically
	working.  That should print out a hayes entry.  If you
	are using a different dialer,  try that too.

10)	Change L-devices to name the type of dialer you selected
	in the "dialinfo" file.   This entry goes in the third
	blank-separated field.   A typical entry is:

		ACU tty12 hayes 1200

	If you don't know what fields 1-2 and 4 do,  you will have
	to spend some time with the uucp documentation.   You may
	also need to figure out how to hook up a modem.

11)	Hip-hip-hooray!  Now you are ready to actually dial someone.
	Try the following,  where you replace 5551212 with a harmless
	number to dial.

		DIALDEBUG=a dialer 5551212

	This should dial out on the first available line, and wait
	for carrier.   In the mean time, it will print gobs of
	debug output on your terminal.

12)	If you have source or object copies of UUCICO and CU, you
	should just be able to compile/link them up and they should
	use the new dialer.  If not, this is the hard part.  You
	need to figure out what sort of dialer solution your vendor
	thought up,  which usually amounts to a special dial program
	in /usr/lib/uucp or elsewhere.   You must figure out what
	parameters are used to execute the program (maybe replace
	the program with an echo script) and then create a script
	to execute "dialer" with those parameters.  Usually, this
	script will look something like:

		exec /usr/lbin/dialer -n -t$1 -s$2 $3

	If all went well, you should now be able to use CU and UUCP
	with telephone numbers, dialing, and all the rest.  Chances
	are you will have to do some hacking on your system before
	that happens.  I can't give you too many hints,  because systems
	are so different in this regard.  Which is why I started this
	project in the first place.

HINTS

	Some vendors use field 3 in the L-devices file to name a
	program which actually does the dialing.  If your system
	is like this,  put the pathname of your dial script in there
	and also create a dialer with that name.   So maybe you
	have an entry that looks like:

		ACU tty12 /usr/lib/uucp/dialscript 1200

	and an entry in your dialinfo file that looks like:

		/usr/lib/uucp/dialscript,
			use=hayes,

	If you are having problems with modem control on your system,
	it is likely dip switches in the Modem,  a bad cable,  or
	straps on your computer.   This is kind of a nightmare too.
	You should be able to see your computer raise DTR (pin 20)
	on the modem when DIAL opens the communication line,  and
	sense one line back from the modem to tell when carrier is
	present.   I have seen CD (pin 8) CTS (pin 5) or DSR (pin 6)
	all used for this same purpose.  You need to check the doco
	on your modem,  or better yet, get a breakout box.  Above
	all, don't believe the LED's on the front of the modem.
	Usually there are straps between those LEDs and the RS232
	connector on the back.  Get it working with the breakout
	box, then build a cable to do the same thing.  If you are
	lucky, your vendor will have a section in the manual telling
	about the straps and cable you need.  Some vendors have an
	application note on the subject.

	As of this writing, both the Altos and Plexus systems where
	I tested have modem control problems acknowledged by the vendor.
	These can also complicate your life....

FEEDBACK

	If you find something in the dial subroutine that doesn't fit
	in with other System V programs, drop me a line, or a bug fix,
	or something.   I would really like a permanent solution to the
	System V dial problem.

	I am interested in any comments or suggestions for enhancements.

	If you feel you need to remove the Copyright notice for
	distribution,  contact me and I will give you permission.

ihnp4!quest!gene
