[news.software.b] uucico

romain@salt.pyramid.com (Romain Kang) (01/18/91)

| [...]  For example, it would be REAL nice if it were able
| to detect the "BUSY" return from the modem and take appropriate
| action, rather than waiting 30 (60?) seconds for "ogin:" (which,
| of course, never shows up).

Exercising pointless pendantry, your Dialers might be tweaked to
look for something like a CONNECT message.  You'd still time out
after MAXEXPECTIME seconds (45 in our uucp.h) though.

4.3BSD and later adds an ABORT sequence that can be used in L.sys
(equivalent to Systems) or (in later versions) L-devices (roughly
equivalent to Devices + Dialers), but it will only abort on a fixed
string, rather than a full regular expression.  For example, you can
tell uucico to ABORT on "BUSY", but it will blithely continue if it
sees "NO DIALTONE".

| It would also be nice if we could
| change the timeout time for certain waits (make it 10 seconds, for
| example, rather than the default 30, but only for certain strings).

4.3BSD and later variants do this.  In the Pyramid ucb universe, one
could use the following entry in L-devices.  (Several of these features
aren't in 4.3-tahoe, but they may be in 4.3-reno.)

#caller line	calldev	class	brand	chat
ACU	ttyi48	-	2400	null	"" ATE1Q0V1 OK\r\n~4 ATS7=40 OK\r\n \
	ABORT BUSY\r\n ATDT\T CONNECT\s1200\r\n~40

Notes:

"Null" modem brand:  Normally, there would be a compiled-in brand here,
like "hayes" or "telebit"; the "null" brand allows support for any sane
modem connected via asynchronous tty ports.  As with HDB, chat scripts
are limited.  For instance, there's no way to make them change the
interface speed if the modem connects at a different rate (e.g., old
USR Courier 2400's).

[Peter Honeyman (very) briefly considered attaching a state machine
to HDB to handle these and more complicated situations, but decided the
costs of changing everything would not be commensurate with the
benefits.]

"Expect" strings:  They now do something useful if you embed backslash
sequences.  Also, there is a timeout specified using expect~timeout;
If the first "OK" doesn't appear within 4 seconds after the first "AT"
command is sent, the dial sequence will abort.  Also, expect the
"CONNECT 1200" message within 40 seconds after sending the dial command.

"ABORT BUSY\r\n":  This is what you're looking for.  If the string
"BUSY\r\n" is seen between this point and the end of the dial script,
the call will fail.

| But, is there any PD or reasonably-available source code for uucico
| anywhere?  We are currently using HoneyDanBer UUCP, so would like
| something which is "close" to that.

GNU UUCP (I forget its exact name) and other public-domain variants
exist.  However, I haven't heard of any of them ever getting installed
at hub sites with substantial UUCP loads.  In your situation, without a
source license, I would stick with HDB.  It's well documented (in the
Nutshell handbook) and it really works.

| Failing that, how about a way to communicate with H, D, or B to 
| ask if there is any way they could either (1) add some functionality
| like this to uucico or (2) create a new version of uucico which
| would allow such processing.

I believe Peter has something scanning the netnoise for any vain use of
his name.  Reasonable suggestions have a way of getting into his hands.

| Finally, if this is the WORNG (sic :-) newsgroup, I'd appreciate
| pointers...

comp.mail.uucp seems to be where the UUCP-knowledgeable are most
likely to hang out.  So much for meaningful newsgroup names...

Romain
--
"Eggheads unite!  You have nothing to lose but your yolks!"  -Adlai Stevenson

jeff@onion.rain.com (Jeff Beadles) (01/19/91)

In article <6115@qip.UUCP>  writes:
...
>I have been watching our uucico process a bit, and thinking that
>it could go MUCH faster if uucico were just a bit smarter in its
>chat script.  For example, it would be REAL nice if it were able
>to detect the "BUSY" return from the modem and take appropriate
>action, rather than waiting 30 (60?) seconds for "ogin:" (which,
>of course, never shows up).  It would also be nice if we could
>change the timeout time for certain waits (make it 10 seconds, for
>example, rather than the default 30, but only for certain strings).
...

Well, on the older-style UUCP (V2ish) I use the following:


qiclab Any;5 DIR 19200 tty00 "" \d\b "" AAAAT&E2M0S50=255S7=60 OK \
 ATDT123-4567 ABORT BUSY CONNECT-\c-CONNECT-\c-CONNECT \r \
 ogin:-\r-ogin:-\r-ogin-\r-ogin LOGIN word PASSWORD

Note, the "ABORT BUSY"  That says that the modem should abort the dial if it
receives the string "BUSY" from the modem before it sees 'CONNECT'.

Your milege may vary.  I've given up on ACU style dialing, as it never seems
to do quite what I've wanted...


Hope this helps,

	-Jeff
-- 
Jeff Beadles		jeff@onion.rain.com