roy@phri.UUCP (Roy Smith) (02/22/89)
Various people have been grousing about the "+++" in-band escape Hayes-like modems have to cut off a call. While I agree in principle that there should be a way to turn it off (and a out-of-band way, like a dip switch), I wonder how much of a problem it is in practice. On every modem I've seen, the escape signal is really "<one second pause>+++<one second pause>". The odds of that happening by random are pretty damn small, and I would be amazed if it ever happened in any kermit, uucp, SLIP, or other machine-generated data stream. I've seen worse. One modem I once had (Century Data Systems 2400?? It's been a long time) used ^T as the escape signal. That's it, just a plain ^T, a single control character, with no timing requirements. Now that's what I call brain-damage! Want to guess how often ^Ts occur in a typical binary data stream (like compressed news batches over uucp?). It's no fun in emacs either. My Trailblazer uses BREAK to signify "go from data to command mode". This is quasi out-of-band. I say quasi because 1) sometimes I really do want to send a break and 2) break is easy enough to hit by mistake on most keyboards. The blazer is at least smarter than most modems; you can configure it about 6 different ways to deal with breaks and if you are in the break-means-escape mode, you just have to type "ato" to go back on line as if nothing happened. The only missing feature is an at command which means "send a real break down the line". Then you could use break as your escape and still be able to send breaks by doing "break, atwhatever, ato". -- Roy Smith, System Administrator Public Health Research Institute {allegra,philabs,cmcl2,rutgers}!phri!roy -or- phri!roy@uunet.uu.net "The connector is the network"
vjs@rhyolite.SGI.COM (Vernon Schryver) (02/23/89)
In article <3695@phri.UUCP>, roy@phri.UUCP (Roy Smith) writes: > Various people have been grousing about the "+++" in-band escape > Hayes-like modems have to cut off a call. While I agree in principle that > there should be a way to turn it off (and a out-of-band way, like a dip > switch), > -- > Roy Smith, System Administrator > Public Health Research Institute > {allegra,philabs,cmcl2,rutgers}!phri!roy -or- phri!roy@uunet.uu.net It's easy to turn off '+++' in the modems I've played with, including Hayes, Everex, and Telebit, by setting the '+' character to 128. In some modems, one must also avoid turning on 8-bit matching. I vaguely recall at least one manual recommending this hack. With HDB UUCP, its easy to turn it off when computers are supposed to be talking to computers, but leave it on for trusted humans. (Think of the "use" a bad guy can make of '+++'.) Vernon Schryver Silicon Graphics vjs@sgi.com
dave@onfcanim.UUCP (Dave Martindale) (02/26/89)
In article <3695@phri.UUCP> roy@phri.UUCP (Roy Smith) writes: > > Various people have been grousing about the "+++" in-band escape >Hayes-like modems have to cut off a call. While I agree in principle that >there should be a way to turn it off (and a out-of-band way, like a dip >switch), I wonder how much of a problem it is in practice. On every modem >I've seen, the escape signal is really "<one second pause>+++<one second >pause>". The odds of that happening by random are pretty damn small, and I >would be amazed if it ever happened in any kermit, uucp, SLIP, or other >machine-generated data stream. The place where it *is* a real pain is with a modem connected to a UNIX machine as a dialin line. The user at home wants to escape temporarily into command mode *on the modem at home* and types the escape sequence. The home modem transmits the +++ to the host, since it doesn't know it's an escape sequence until after the second one-second pause. The UNIX host *echos* the +'s back to the answer modem, and puts it into command mode too. From that point, there is nothing you can do to get the answer modem out of command mode. So, you really need some way of turning off the in-band escape sequence for a modem used as an answer modem. Yet, if the same modem is also used for dialout, you can't disable command mode entirely.
bill@ssbn.WLK.COM (Bill Kennedy) (02/26/89)
In article <17584@onfcanim.UUCP> dave@onfcanim.UUCP (Dave Martindale) writes: >In article <3695@phri.UUCP> roy@phri.UUCP (Roy Smith) writes: >> >> Various people have been grousing about the "+++" in-band escape [ ... ] > >The place where it *is* a real pain is with a modem connected to >a UNIX machine as a dialin line. [ scenario about remote user wanting local modem's attention ] >So, you really need some way of turning off the in-band escape >sequence for a modem used as an answer modem. Yet, if the same modem >is also used for dialout, you can't disable command mode entirely. There's another reason to change the personality but it's easily done. Most of ssbn's modem events are uucp transfers and the Trailblazers here work best with all handshaking defeated. The occaisional dial up user < PEP speeds, however, needs XON/XOFF handshaking because the interface speed is locked at 19,200bps and a big cat or ls can easily over run the TB's buffer. This gets set up in /etc/profile as the user is getting logged in. If they say they need flow control, get the modem's attention, enable XON/XOFF, and proceed. It gets disabled by the DTR transition/reset at disconnect. What Dave points out is correct. If you use +++ you're very likely to get the attention of both modems. That happened to me when I was testing /etc/profile. For a modem with NVRAM that will reset on a DTR transition, this is no problem, just change the attention character. My Hayes, USR, and Telebit book says that's S2. I changed mine from 43 (+) to 126 (~) and saved it with &W. The USR doesn't have NVRAM, but you could achieve the same result by issuing the S register change prior to actually spawning the uu/getty. SCO has a dial program that allows you to fondle the modem before and after an outbound call, or a dirt simple uu/getty program to issue the command and exec to the real uu/getty should be easy enough. You only need to do that if your modem can't save the current register set. The sword has two blades if you are as thoughtless as I am. You have to remember what the new attention character is if you need to talk to the modem. Further, if everyone in the world changes to the same attention character, you're right back where we started with +++ :-) To save myself from me, I change S2=43 in the dial script so that I can mindlessly pound on + in cu and not run afoul of neighbors' modems that have done what I did with ~ for answer calls. -- Bill Kennedy usenet {killer,att,cs.utexas.edu,sun!daver}!ssbn!bill internet bill@ssbn.WLK.COM or attmail!ssbn!bill
dwtamkin@chinet.chi.il.us (David Tamkin) (02/27/89)
In <17584@onfcanim.UUCP> Dave Martindale wrote: | So, you really need some way of turning off the in-band escape | sequence for a modem used as an answer modem. Yet, if the same modem | is also used for dialout, you can't disable command mode entirely. If possible, as it is with Hayes-compatibles by writing a new ASCII code to register S2, pick a different character from decimal 043. Many modems don't retain S2 in NVR and you have to rewrite it every time you turn the modem on, but if you use it for auto-answer you probably don't flip the power switch too many times in a day. Yes, a hacker will still be able to try every code from null through rubout but you won't have the answering modem knocked off line because a caller was innocently trying to get his or her own modem into command state. Another suggestion is to disable escaping to command mode when you set up for auto-answer and to re-enable it when you place an outgoing call. David W. Tamkin Post Office Box 567542 Norridge, Illinois 60656-7542 dwtamkin@chinet.chi.il.us CIS: 73720,1570 GEnie: D.W.TAMKIN Anyone on Chinet who agrees with me is welcome to speak up on his or her own.
patrick@chinet.chi.il.us (Patrick A. Townson) (02/27/89)
In article <17584@onfcanim.UUCP> dave@onfcanim.UUCP (Dave Martindale) writes: >The user at home wants to escape temporarily into command mode *on the >modem at home* and types the escape sequence. The home modem transmits >the +++ to the host, since it doesn't know it's an escape sequence >until after the second one-second pause. The UNIX host *echos* the +'s >back to the answer modem, and puts it into command mode too. From >that point, there is nothing you can do to get the answer modem out >of command mode. > >So, you really need some way of turning off the in-band escape >sequence for a modem used as an answer modem. Yet, if the same modem >is also used for dialout, you can't disable command mode entirely. Well generally the attention command can be changed from three plusses to something else. One of the S registers stores the value of what you want to use for escape on that particular modem. I thought it went without saying that any site with dialup modems, from the smallest BBS sysop to the largest most sophisticated site automatically changed that register to something else if for no other reason than to avoid the hangups you are talking about. When the appropriate S register is set to some value larger than 127 in most cases, then the modem won't respond at all to an attention getting command. Then the three plusses sent by you only affect you and not the other end. And on better quality modems at least, such as the US Robotics Courier 2400 which I use, a dip switch on the unit indicates if the three plusses (or symbol of choice) should cause the modem to disconnect on receipt or merely suspend output and act locally on what follows. And in all the calls I've made via dialup to various sites, such as chinet, eecs.nwu.edu, and bu-cs.bu.edu, I have yet to see a case where the distant site got hung because of my three plus entry. I assumed they either were using modems that don't work that way or else had changed the escape code. The same thing comes up when calling outbound through a connecting modem, such as PC Pursuit. You connect to some outdialer somewhere, and then find you need to make adjustments on your end. You give the three plusses and they are grabbed not only by your own modem but by the distant outdialer modem as well. If it was the outdialer modem you were attempting to adjust, you simply enter ATO, which puts your modem back in line, then subsequent commands affect the distant outdialer modem, since the ATO put yours back to sleep, etc. Once adjusted, a second ATO puts the outdialer modem back on line to wherever. In reverse, if it was your modem that required the adjustment, after doing so enter ATO to rejoin the connection, then immediatly give ATO a second time. Your modem will ignore it and the distant end will re-establish itself. Some modems also are built to listen to the incoming stuff at all times regardless of whether they are in command mode or not, meaning that your three plusses, intended for yourself did echo back and shut down the other side, but your ATO turn you back on and a second ATO issued immediatly will also hit the other end and echo back, restoring the other modem (while yours ignores it when echoed-back, since it acted on it a split second prior). Other modems are designed that once suspended, only an appropriate entry from its side will force it to start up again, thus it being a good idea to change the register away from + as the attention getter. -- Patrick Townson patrick@chinet.chi.il.us / US Mail: 60690-1570 (personal zip code) FIDO: 115/743 / AT&T Mail: 529-6378 (!ptownson) / MCI Mail: 222-4956