[comp.sys.sgi] How to make serial line with modem work?

jeremy@cs.adelaide.edu.au (Jeremy Webber) (09/20/90)

I have a Personal Iris, with a Hayes compatible modem attached to serial line
2.  I have written a program which resets the modem (using ATZ), sets up some
parameters, including the hangup-when-DTR-dropped state, then dials up a remote
computer, finally establishing an SL/IP connection to it.

All works well, using port /dev/ttyd2, except if the remote computer hangs up
the line.  The sliplogin program on this end does not appear to receive a
HANGUP signal.

I cannot use /dev/ttym2 because it won't allow itself to be opened until DCD is
asserted, and this does not happen until the remote dialup is complete.  I
can't establish the session with /dev/ttyd2, then close it and open /dev/ttym2,
because that would cause my modem to hang up, which I want to happen (this is
how the connection is terminated at my end).

Have I missed something?  How should I be doing this?

		-jeremy

--
--
Jeremy Webber			   ACSnet: jeremy@chook.ua.oz
Digital Arts Film and Television,  Internet: jeremy@chook.ua.oz.au
60 Hutt St, Adelaide 5001,	   Voicenet: +61 8 223 2430
Australia			   Papernet: +61 8 272 2774 (FAX)

vjs@rhyolite.wpd.sgi.com (Vernon Schryver) (09/24/90)

In article <JEREMY.90Sep20145125@chook.ua.oz.au>, jeremy@cs.adelaide.edu.au (Jeremy Webber) writes:
> 
> I have a Personal Iris, with a Hayes compatible modem attached to serial line
> 2.  I have written a program which resets the modem (using ATZ), sets up some
>parameters, including the hangup-when-DTR-dropped state, then dials up a remote
> computer, finally establishing an SL/IP connection to it.

It might be worth while to add appropriate text for your modem to
/usr/lib/uucp/Dialers to talk to your modem during call setup.  Please note
that (uu)getty lets you chat with with the modem before answering the phone.

You must not be using the SGI version of SLIP, judging from the way you
describe your SL/IP's operation.

> All works well, using port /dev/ttyd2, except if the remote computer hangs up
> the line.  The sliplogin program on this end does not appear to receive a
> HANGUP signal.

ttyd2 knows only about pins 2,3,&7.    You can't get SIGHUP unless the port
listens to DCD on pin 8.  Only ttym* and ttyf* listen to pin 8.

>I cannot use /dev/ttym2 because it won't allow itself to be opened until DCD is
> asserted, and this does not happen until the remote dialup is complete.  I
>can't establish the session with /dev/ttyd2, then close it and open /dev/ttym2,
> because that would cause my modem to hang up, which I want to happen (this is
> how the connection is terminated at my end).

The several programs we ship that support modems (including SLIP) are expected
to use ttym* or ttyf*.  They open the port with NODELAY, which allows them to
chat with the modem until DCD goes true.  The SIGHUP (and other STREAMS head
stuff) happens on the "falling edge" of DCD, which obvious can't happen
until there has been a "rising edge."

Most of the SGI modem fiddling programs, including cu, uucico, and slip, use
/usr/lib/uucp/{Dialers,Systems,Dialcodes,...}.


Vernon Schryver
Silicon Graphics
vjs@sgi.com