[comp.dcom.modems] Trailblazer dialer for uucico

jeff@tc.fluke.COM (Jeff Stearns) (01/09/88)

I now have some Trailablzer modems, and I'd like to have a good reliable
uucico dialer routine for 'em.  They'll be used for dialin/dialout, and I
want to avoid the obvious problems with getty, etc.  Yes, I know how to
write one (and *everybody* knows how to hack something up) but it would
be better to start right off with something good.

This is for 4.3BSD uucp.  Thanks!

	Jeff Stearns		(206) 356-5064
	jeff@tc.fluke.COM	{sun,microsoft,uw-beaver}!fluke!jeff

FYI: I have dialer routines that work around several problems with the
UDS Fastalk 2400, if anybody's interested.  They're more reliable than the
hys.c routines with this modem.
-- 
	    Jeff Stearns
    Domain: jeff@tc.fluke.COM
     Voice: +1 206 356 5064
      UUCP: {uw-beaver,decvax!microsof,ucbvax!lbl-csam,allegra,sun}!fluke!jeff
     Snail: John Fluke Mfg. Co. / P.O. Box C9090 / Everett WA  98206

wtm@neoucom.UUCP (Bill Mayhew) (01/12/88)

I am using a Trailblazer on my AT&T Unix PC 3b1 with Sys V, Unix PC
release 3.51.  I have a patched version of uucico that I received
from the AT&T customer hotline on Jan. 8, 1988.  The patched uucico
cures a problem with wild interrupts coming from the internal phone
hardware from crashing the system.

At present, I only a using the Trailblazer to place outgoing calls.


Here is a register dump of the Trailblazer.  These settings were
derived with the assistance of Peter Honeyman, John Blair and Mark
Horton:
-------------------------begin register dump---------------------

E1 F1 M1 Q6 T V1 X1     Version AA3.00-AB3.00
S00=000 S01=000 S02=043 S03=013 S04=010 S05=008 S06=002 S07=060 S08=002 S09=006
S10=007 S11=070 S12=050 
S45=255 S47=004 S48=000 S49=000
S50=255 S51=255 S52=002 S53=001 S54=000 S55=000 S56=017 S57=019 S58=003 S59=000
S60=000 S61=010 S62=003 S63=001 S64=000 S65=000 S66=001 S67=000 S68=255 
S90=000 S91=000 S92=001 S95=001 
S100=000 S101=000 S102=000 S104=000 
S110=255 S111=030 S112=001 
S121=000 
N0:
N1:
N2:
N3:
N4:
N5:
N6:
N7:
N8:
N9:
---------------------end register dump-----------------------

Here is a sample L-devices file from the Unix-PC

----------------------begin L-devices------------------------

#       "@(#)L-devices  5.0"
#     /usr/lib/uucp/L-devices 
#
#     There are four fields in each entry:
#       1. ACU/DIR : ACU if this is an autodial device, DIR if not
#       2. device  : the /dev special file the physical device is connected to
#       3. 0/MODEMNAME : = zero for DIR lines, otherwise the keyword MODEMNAME
#       4. SPEED   : speed of device (e.g. 300, 1200, 9600)
#
#  There are no devices initially configured, they must be added with ADMIN-KIT
#*****DO NOT LET AT&T USER AGENT SOFTWARE EDIT THIS!!!!*****#
#
#entries for the telebit.  it's ok to re-use the name "ACU" as
#long as the baud rates are different.  notice that the correct
#modemcap is picked dependent on baud rate.
ACU tty000 t9 9600
ACU tty000 t2 2400
ACU tty000 t1 1200
#
#stuff for internal modem.  due to software bugs in dial(3), you
#should only use ph1 port.
OBM ph1 UNIXPC 1200
#SOB == Slow OBM :-).  has to have a different name for some
#reason.
SOB ph1 UNIXPC 300
#
#sometimes you'd like to have control of the telebit for
#setting its internal registers, etc.  You can connect
#directly with  "cu -s <baud_rate> -d -l tty000"
#you may have to send up to 5 A's first to get the modem to
#sense the interface baud rate.
DIR tty000 0 9600
DIR tty000 0 2400
DIR tty000 0 1200
----------------------end of L-sys---------------------------

Here is the modemcap file.  Note the differences are in the
number of A's required to sense baudrate, the "quantum number" in
S50, and the delay before searching for the letter T in the word
"CONNECT".  You could get fancy so that you could do a match on the
letter "Y" in the word "BUSY" and then do an abort with error
message so that your /usr/spool/uucp/LOGFILE had more information,
but I've been to lazy to implement that yet.

----------------------begin modemcap--------------------------
#sccs   "@(#)uucp:modemcap      1.3"
 
# Modemcap file
#       Define characteristics for auto-dialling a modem using standard
#       dial(3) routine and RS232 connections to auto-dialer
#       The L-devices file should have modem name instead of cua? device
#       name. WARNING- do not use names beginning with cua!
#
# The following commands are recognized by dial:
#       pl (str ) - place call string - consists of a set of 2 character
#               commands to be executed. The commands must be defined
#               elsewhere in the entry for this modem. (required)
#       ps (char) - primary command start char
#       es (char) - primary command end char
#       ph (str ) - send (str,phone#,eh) (if not defined, then no str sent)
#       eh (str ) - end of phone string
#       pa (char) - pause character (replaces [-])
#       pw (char) - wait character (replaces [w=])
#       pt (str ) - tone dialing
#       pp (str ) - pulse dialing
#       x[a-z,0-9] (num ) - send num of milliseconds of break key
#       w[a-z,0-9] (char) - read characters until get char specified
#                           (NULLS are squashed)
#       s[a-z,0-9] (str) - send (ps,str,es) (if ps,es are defined)
#       t[a-z,0-9] (str) - send (str)
#       c[a-z,0-9] (str) - compare str to previous results of 'w' (not
#                          including terminator)
#       d[a-z,0-9] (num) - delay num seconds
#       a[a-z,0-9] (str) - abort EQUAL with string as error
#       b[a-z,0-9] (str) - abort NOT_EQUAL with string as error
#       m[a-z,0-9] (num) - skip num instructions EQUAL
#       n[a-z,0-9] (num) - skip num instructions NOT_EQUAL
#
# Telebit trailblazer modem
# same as hayes, but send a couple of "A"s first to get autobaud right
# Name=telebit9600
t9|telebit96|telebit 9600:tr=\r:wp=\r:wk=K:wt=T:\
                         :ta=AT\r:ph=ATDT:\
                         :eh=\r:\
                         :d1#1:d5#5:ti=A:wi=A:\
                         :d2#30:\
                         :pl=tid1tid1tiwid1tad1wpwpwkwpphd2wpwpwttr:
#
# Name=telebit2400
t2|telebit24|telebit 2400:tr=\r:wp=\r:wk=K:wt=T:\
                         :ta=AT\r:ph=ATDT:\
                         :tp=ATS50=3\r:\
                         :eh=\r:\
                         :d1#1:d5#5:ti=A:wi=A:\
                         :d2#15:\
                         :pl=tid1tid1tid1tiwid1tad1wpwpwkwptpwkphd2wpwpwttr:
#
# Name=telebit1200
t1|telebit12|telebit 1200:tr=\r:wp=\r:wk=K:wt=T:\
                         :ta=AT\r:ph=ATDT:\
                         :tp=ATS50=2\r:\
                         :eh=\r:\
                         :d1#1:d5#5:ti=A:wi=A:\
                         :d2#5:\
                         :pl=tid1tid1tiwid1tad1wpwpwkwptpwkphd2wpwpwttr:
---------------------end of modemcap----------------

Hope this helps some,
Bill