MS-DOS KERMIT MODEM DIALING SCRIPTS Christine M. Gianone and Frank da Cruz, Columbia University John Klensin, United Nations University June 1996 The following modem dialing scripts are available for use with the DIAL command in MS-DOS Kermit. Store these files in the MODEMS subdirectory of your KERMIT directory, where Kermit expects to find them. The DIAL command is a macro defined in the standard MSKERMIT.INI file on the MS-DOS Kermit diskette. It looks up the number (or name) in your dialing directory, if any, making the appropriate substitution, and passes the phone number to your dialing script in a variable. See "Using MS-DOS Kermit" and KERMIT.HLP (MSKERM.HLP) for details about the DIAL command and the dialing directory. If you lack the DIAL macro definition, you can define your own simple DIAL macro (which does not use the dialing directory) as follows: DEFINE DIAL TAKE \v(inidir)MODEMS\xxx.SCR where xxx is the modem type, one of those listed below. The default modem type (if you are using the standard MSKERMIT.INI file) is HAYES (i.e. Hayes 1200 or 2400). To select a different type of modem for dialing, do any one of the following: 1. Type SET MODEM=xxx at the DOS prompt before starting MS-DOS Kermit, or 2. Add SET MODEM=xxx to your AUTOEXEC.BAT file and reboot your PC, or 3. Type SET MODEM xxx at the MS-DOS Kermit prompt, or 4. Type DEFINE _MODEM xxx at the MS-DOS Kermit prompt, or 5. Add SET MODEM xxx to your MSCUSTOM.INI file, or 6. Add DEFINE _MODEM xxx to your MSCUSTOM.INI file. xxx is name of the modem, corresponding to the part of the dialing script filename before ".SCR". For Telebit T3000 modems, for example, the script file is called T3000.SCR, and "xxx" would be "T3000". If you obtain these files over the network, you should rename as shown in the DOS Filename column below. Here are the dialing scripts that are supplied with MS-DOS Kermit: Modem Type DOS Filename ----------------------------------------- ------------ * AT&T DataPort 14400 or Express DATAPORT.SCR * Boca 14.4 Faxmodem BOCA.SCR * Digicom Connection144+ CONN144P.SCR * Dynalink 1414VE DYNA1414.SCR Hayes 1200 or 2400 HAYES.SCR * Hayes Ultra 144 ULTRA144.SCR * Intel 14400 Faxmodem INTEL14.SCR * Megahertz PCMCIA MHZ2144.SCR * Microcom QX/4232hs QX4232.SCR * Motorola UDS FasTalk II FASTALK2.SCR * Multitech MT1432 MT1432.SCR * Penril Alliance V.32 PENRIL.SCR * Practical Peripherals PP14400.SCR Rolm CBX DCM ROLM.SCR * SupraFAXmodem V.32bis SUPRA.SCR * Telebit QBlazer V.32 QBLAZER.SCR * Telebit T3000 V.32bis T3000.SCR * Telepath / Megahertz Xjack PCMCIA V.32bis TELEPCMC.SCR * US Robotics Sportster 14400 or 28800 SPORT.SCR ** VIVA 2442ef FAX/MODEM VIVA.SCR * Zoltrix Platinum 14400 PP14400.SCR or DYNA1414.SCR * Zoom Telephonics 14400 ZOOM.SCR * ZyXEL 1496 ZYXEL.SCR NOTE: The PP14400.SCR file should be usable with any Practical Peripherals V.32 or V.32bis model: PM9600, PM9600SA, PM9600FXMT, PM14400FXSA, PM14400FXMT. Reportedly it is also compatible with the Zoltrix Platinum 14400. If your modem does not appear in this list, feel free to adapt one of these scripts to work with your modem (and send your new script back to Columbia so others can use it too). WHAT THE DIALING SCRIPTS HAVE IN COMMON These scripts use your modem's default dialing method, pulse or tone; they do not specify one or the other, since neither method is supported by all telephones everywhere. To force Tone dialing, begin your phone number with T, for example: DIAL T7654321 Similarly, to force pulse dialing, start the phone number with P. If you give a DIAL command whose telephone number is simply = (equal sign), the modem will be initialized, but no call will be placed. In some cases, the dialing script will also ask the modem to display its configuration. When dialing a real phone number, you can include special characters in the phone number to accomplish pauses, wait for secondary dialtone, etc. See your modem manual. If you dial a number that is busy, most of these scripts will wait 30 seconds and then redial automatically, up to 5 times. You can cancel the redial operation by pressing any key after you see the message: Line is busy, will dial again in 30 seconds. Press any key to cancel... Each dialing script returns SUCCESS if dialing succeeds and FAILURE if it doesn't, so you can use an IF FAIL or IF SUCCESS statement after a DIAL command in a script. THE ROLM DIALING SCRIPT ROLM.SCR is for the Rolm/Siemens (formerly IBM) Computerized Branch Exchange (CBX) data communications module (DCM). It dials at your current speed, and does not change speeds since the DCM is speed-sensitive. It does not attempt to redial if the line is busy. For Rolm 244PCs, use HAYES.SCR, and always use Tone dialing. THE HAYES 1200/2400 DIALING SCRIPT The Hayes 2400 script, HAYES.SCR, should work on any Hayes-1200, Hayes-2400, or compatible modem. It does not change any modem settings (S registers). It assumes that the modem changes its interface speed to match the negotiated modulation speed, if the modulation speed is reported as 1200 or 2400; otherwise, Kermit does not change its interface speed. HIGH-SPEED MODEM SCRIPTS The entries marked with "*" above are for high-speed modems that include error-correction and data-compression features. (Exception: the Viva modem is a 2400 bps modem that does error correction, compression, and speed buffering). These scripts attempt to use these modems at a fixed interface speed of 57600 bps (or 38400 bps, if that is the highest speed supported by the modem), to allow the modem's data compression to operate at its full effectiveness, and they enable hardware flow control (RTS/CTS) to prevent loss of data. Note that flow control will be fully effective only if the answering modem and computer also have an effective flow control method between them. NOTE: None of these scripts contain any particular support for V.34, V.Fast, V.FC, or V.Terbo. If you have a "higher" model of one of the modems listed above, the corresponding script might need minor adjustments. The high-speed modem scripts: . Configure the modem to echo commands, issue verbose result codes, and hang up upon loss of DTR from the PC (as when you tell Kermit to HANGUP). (If Kermit's HANGUP command doesn't work with your modem, you can find a workaround in the KERMIT.BWR (MSKERM.BWR) file.) . Start out at the highest supported modulation, V.32bis, with downwards negotiation enabled (V.32, V.22bis, etc.) If a lower modulation technique is negotiated, the interface speed remains fixed and the modem does "speed buffering", for which effective flow control is an absolute requirement. . Enable error correction and compression, starting out at the highest supported levels (V.42 and V.42bis) and falling back to lower levels (usually MNP), or to none at all. . Configure to modem to pass BREAK signals through transparently when you type Alt-B. Dialing Interface Highest Error Data Script Speed Modulation Correction Compression Remarks BOCA.SCR 57600 V.32bis V.42->MNP V.42bis->MNP DATAPORT.SCR 57600 V.32bis V.42->MNP V.42bis->MNP DYNA1414.SCR 57600 V.32bis V.42->MNP V.42bis->MNP FASTALK2.SCR 57600 V.32bis V.42->MNP V.42bis->MNP INTEL14.SCR 57600 V.32bis V.42->MNP V.42bis->MNP MHZ2144.SCR 57600 V.32bis V.42->MNP V.42bis->MNP PCMCIA card PENRIL.SCR 38400 V.32(bis?) V.42->MNP V.42bis->MNP PP14400.SCR 57600 V.32bis V.42->MNP V.42bis->MNP PM14400 models PP14400.SCR 57600 V.32bis V.42->MNP V.42bis->MNP Zoltrix PP14400.SCR 57600 V.32 V.42->MNP V.42bis->MNP PM9600FXMT PP14400.SCR 38400 V.32 V.42->MNP V.42bis->MNP PM9600/9600SA QBLAZER.SCR 38400 V.32 V.42->MNP V.42bis->MNP QX4232.SCR 38400 V.32bis V.42->MNP V.42bis->MNP SPORT.SCR 57600 V.34 V.42->MNP V.42bis->MNP SUPRA.SCR 57600 V.32bis V.42->MNP V.42bis->MNP T3000.SCR 57600 V.32bis V.42->MNP V.42bis->MNP ULTRA144.SCR 38400 V.32bis V.42->MNP V.42bis->MNP VIVA.SCR 19200 V.24 V.42->MNP V.42bis->MNP ZOOM.SCR 57600 V.32bis V.42->MNP V.42bis->MNP The Telebit T3000 script should also work on the Telebit WorldBlazer. The Telebit QBlazer script should also work on the Telebit Qblazer+ and T1600. The Hayes Ultra 144 and Telepath PCMCIA modems give you a failure code if a call fails: 0 Normal hangup 4 Physical carrier loss 5 Error control was required but was not negotiated 6 Other error-control modem did not respond to feature negotiation 7 Other modem is synchronous-only 8 Modems could not find a common framing technique 9 Modems could not find a protocol in common 10 Incorrect feature negotiation message sent by other modem 11 Timed out waiting for synchronous data 12 Normal disconnect initiated by other modem 13 Other modem did not respond after many retransmissions 14 Protocol violation 15 Compression failure The PP14400 script attempts to identify the modem model and set the interface and connection speeds accordingly. If it tells you "Unknown Practical Peripherals Modem model", you'll have to add your model identification to the script; the required changes should be self-evident. For further information, read the script files themselves. They are ordinary text files that you can TYPE, PRINT, or view with a text editor such as DOS 5.0 EDIT. (End of MODEMS.DOC)