TECHNICAL REFERENCE FOR HAYES (TM) MODEM USERS 15 Sept 1992 Version P2.0 Hayes Microcomputer Products, Inc. P.O. Box 105203 Atlanta, Georgia 30348 U.S.A. Hayes Microcomputer Products, Inc. 1 Roundwood Avenue, Stockley Park Uxbridge, Middlesex UB11 1AE, U.K. United Kingdom Hayes Microcomputer Products (Asia) Limited 39/F Unit B, Manulife Tower 169 Electric Road, North Point Hong Kong Hayes Microcomputer Products (Canada) Limited 295 Philip Street, Waterloo Ontario, Canada N2L 3W8 Hayes Microcomputer Products, Inc. Hayes ISDN Technologies 501 Second Street, Suite 300 San Francisco, California 94107 Hayes Technical Service Station 40 Xue Yuan Road Beijing, P.R. China Postal Code 100083 Notice: Hayes Microcomputer Products, Inc. (Hayes) provides the information contained in this document to you for your convenience. Hayes does not guarantee the accuracy of the information and reserves the right to change this document, as well as the hardware and software products described herein at any time and without notice. The Hayes Standard AT Command Set Specification is proprietary to, and subject to any copyrights, patents, trade secrets and other proprietary rights of Hayes Microcomputer Products, Inc., which may apply, and distribution of this document in any way represents a waiver of those rights or a license under any of those rights. If you desire more information regarding the licensing available under Hayes Intellectual Property rights, please contact Hayes Business Development at Hayes Microcomputer Products, Inc., P. O. Box 105203, Atlanta, Georgia 30348 U.S.A. This document may be copied for your use or to give away, but you cannot sell or lease the copies. Hayes, the Hayes icon, the Hayes logo, Smartcom, Smartcom II, Smartcom III, Smartcom EZ, Smartcom Exec, V-series, Smartmodem, ULTRA, Express, OPTIMA, ACCURA, and ESP are trademarks of Hayes Microcomputer Products, Inc. MNP is a trademark of Microcom, Inc. Other trademarks mentioned in this document are trademarks of their respective companies. (c) 1990, 1992 Hayes Microcomputer Products, Inc. All rights reserved. 44-00012 AA H32 (BBS Version) Note: This version of the "Technical Reference for Hayes Modem Users" is a special version edited for bulletin-board downloading. As a plain ASCII character file, it therefore cannot contain any of the illustrations and graphic elements provided in the printed version. The following graphic characters are used to denote the start of Chapters, 1st Level Headings, 2nd Level Headings, 3rd Level Headings and Table Headings: Chapter Headings are preceded by: ============================================================================= 1st Level Headings are preceded by: ***************************************************************************** 2nd Level Headings are preceded by: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3rd Level Headings are preceded by: ............................................................................. Table Headings are separated from table listings by: ----------------------------------------------------------------------------- ======================================================================== CHANGE RECORD: Date Description of Change ------------------------------------------------------------------------ 31 October 91 Added Change Record to document 31 October 91 Updated Table of Contents 31 October 91 Expanded the Hayes fast-turnaround "Ping Pong" protocol description to : Express 96 -a Hayes proprietary protocol that simulates full-duplex 9600 bps operation (formerly known as Hayes fast-turnaround "Ping-Pong" protocol). 31 October 91 Added Result Code 14400 31 October 91 Added O3 command Initiate the CCITT V.32bis renegotiation sequence 31 October 91 Added &A commands Auto-answer Mode Options 31 October 91 Added &G1 command description 31 October 91 Added MI/MIC cross-reference to &J command 31 October 91 Expanded description of &K5 transparent flow control 31 October 91 Added note to &T description 31 October 91 Added description of &T19 RTS/CTS Cable Test 31 October 91 Added &V6 command View Blacklisting Entries 31 October 91 Added Result Codes 13, 24, and 25 31 October 91 Added Negotiation Progress Messages 49, 51,and 52 31 October 91 Added S36 Developer's Tips 31 October 91 Added 1200 and 14400 bps options to register S37 31 October 91 Added description of register S43 Current DCE Speed 31 October 91 Added description of register S55 AutoStream Protocol Request 31 October 91 Added description of register S56 AutoStream Protocol Status 31 October 91 Added description of register S57 Network Options Register 31 October 91 Expanded description of S87 Fixed Speed DTE Interface 31 October 91 Added description of S91 PSTN Transmit Level Adjustment 31 October 91 Added options 10-13 to register S93 31 October 91 Expanded description of register S94 31 October 91 Added description of register S97 V.32 Automode V.22/V.22bis Probe Timing 31 October 91 Added description of register S105 Link Layer (N401/V.42 or N1/X.25) Frame Selector 31 October 91 Added description of register S108 Signal Quality Selector 31 October 91 Added description of register S109 V.32bis Carrier Speed Selector 31 October 91 Added description of register S110 V.32/V.32bis Selector 31 October 91 Expanded description of Escape Sequence +++ 31 October 91 Added S95=60 description to paragraph D.3.2 Setup 31 October 91 Added para. D.3.3 Establishing the Desired Connection and Fallback Strategy (S36 Developers Tips) 31 October 91 Added COMPRESSION and AUTOSTREAM to para. D.4.1 Originating a Call 31 October 91 Added para. D.9 Transparent XON/XOFF Local Flow Conrtol in Hayes V-series modems. 26-August-92 Content edit, proof, correction throughout. OPTIMA and ACCURA EC product information added. ======================================================================== Introduction Chapter 1: The Hayes Standard AT Command Set Chapter 2: X.25 Communications Appendix A: Communications Options Appendix B: Troubleshooting Tips Appendix C: Modem-to-DTE Interface Appendix D: Application Suggestions ======================================================================== INTRODUCTION This Technical Reference for Hayes Modem Users offers additional information about Hayes modems and the Hayes Standard AT Command Set for users who want to use the command set to control the modem, rather than using full-featured software. To help you do this, the complete command set is defined in greater detail than that provided in the user documentation that accompanied your modem. All of the commands are described in this document. You will also find additional discussions on some of the more complicated options, such as synchronous communications, and the interactions between communication standards, negotiation commands, and modem speeds. In addition, information about the connections between the modem and the computer or terminal is included. With the information provided here, you should be able to configure your modem with AT commands for a variety of communication environments. If you are just starting out with communications programming, this reference should provide you with sufficient tips to address the modem's features through a software program of your own. If this reference seems more technically oriented than you anticipated, we suggest that you purchase one of Hayes Smartcom (TM) communications software products. Any of these fine programs will fully control the modem in almost any telecommunication environment. ************************************************************************ Who Should Use this Reference Users of full-featured communications software such as Hayes Smartcom products will not need this reference. This reference is provided for... *Users of communications software packages that require the user to enter modem configuration strings. *Users who will be installing and operating Hayes modems in a non- PC environment. *Users who control their modems directly with terminals or terminal emulation software. *Technical personnel responsible for custom installations and applications. Additional information is available for communications software developers. If you are, or would like to become, a registered Hayes Software Developer, you may receive additional technical material on Hayes products. For information on qualification and registration procedures, contact your nearest Hayes Customer Service facility. (Refer to the Customer Service Information provided with your modem for location and telephone number.) ************************************************************************ How This Reference is Organized This Reference is organized as follows: Chapter 1: The Hayes Standard AT Command Set Provides definitions of the Hayes Standard AT Command Set including the commands, result codes, and S-registers. Chapter 2: X.25 Communications Includes definitions of the commands used for X.25 packet-switched communications, PAD and National Parameters, and command listings for four PAD profiles. Appendix A: Communication Options Describes the various asynchronous and synchronous transmission modes supported by Hayes modems and includes a discussion of the AT commands related to these modes. Appendix B: Troubleshooting Tips Provides special environmental considerations and offers suggestions for remedying problems in modem communications. Appendix C: Modem-to-DTE Interface Discusses the requirements and capabilities of the modem's data terminal equipment (DTE) interface. Appendix D: Modem Application Development Offers suggestions for developing applications software using AT commands. ************************************************************************ How to Use this Reference The commands and procedures described in this Reference are intended for use with a program that provides a command line interface to the modem, or if the modem is connected to an asynchronous terminal from which commands can be entered and sent through the serial port to the modem. Although commands are not required when using Hayes Smartcom products, Smartcom EZ (TM), Smartcom Exec (TM), Smartcom II (TM), and Smartcom III (TM) all support a command line interface to the modem. Refer to your user documentation for descriptions of the features in your modem that are enabled by the AT commands and S-registers defined here. The user documentation explains how to issue AT commands, and read and set S-registers/PAD parameters. This Reference is not a list of the features supported by your modem, but a general guide to the Hayes Standard AT Command Set as used to control Hayes modems. For a list of features supported by your modem, refer to the user documentation included with your modem. This Technical Reference for Hayes Modem Users is a supplement to the documentation provided with your modem, not a replacement. ======================================================================== CHAPTER 1 THE HAYES STANDARD AT COMMAND SET This chapter is divided into three sections: "AT Commands Listing," "Result Code Listing," and "S-register Listing." The first section defines individual AT commands. Commands are listed alphabetically for easy reference. The second section defines the result codes that can be returned by Hayes modems. These are listed in numeric order. The third section defines Hayes S-registers. These, too, are in numeric order. For completeness, definitions of the AT command prefix, the end-of-line character, and other information related to the use of the Hayes Standard AT Command Set are also included. Note: For the factory setting and available options/ranges for commands and registers, refer to the user documentation provided with your modem. Unless a command, register, or result code is listed in the user documentation, it is not supported by your modem, although it appears in this document. ************************************************************************ 1.1 AT Command Listing Each step in the evolution of Hayes modems has added to a feature set that has enhanced the definition of the Hayes standard. A - Answer Command The A command instructs the modem to go off hook and respond to an incoming call, then handshake with the remote modem. When the modem returns the RING result code, issue ATA. The modem will send an answer carrier signal to the originating modem and wait for an originate carrier signal. When the modem receives the carrier from the originating modem, the modems go through a`handshaking' process then go on-line. The modem returns the CONNECT XXXXX or CARRIER XXXXX result code (see "Result Code Listing" in this chapter). If no carrier signal is received within the time specified in register S7, the modem hangs up, returns the NO CARRIER result code, and enters the command state. By using the &An command, the modem can be forced to answer in the originate mode. B - Select Communication Standard The B command is used to specify the desired communications standard setting at a particular modem line speed. Because options can select between groups of options, more than one combination of communication standard and speed can be selected. For example, you can issue B1 and B16; both will be in effect because they do not reference the same line speed. However, choosing B1 then B5 selects B5, and replaces B1 as the standard for 1200 bps communications. The most recent selection chosen from any given group will be in effect for that parameter group. Group 1 Command Description ------------------------------------------------------------------------ B or B0 V.22 when line speed is at 1200 bps. B1 U. S. Domestic industry standard 212A when line speed is at 1200 bps. B2 V.23 R1200/T75 bps Auto Speed Buffering (ASB) when line speed is at T1200/R1200 bps. B3 V.23 T1200/R75 bps Auto Speed Buffering (ASB) when line speed is at T1200/R1200 bps. B4 V.23 T1200/R75 bps split speed when line speed is at T1200/R75 bps. B5 V.23 1200 bps half duplex when line speed is at T1200/R1200 bps. ------------------------------------------------------------------------ Group 2 Command Description ----------------------------------------------------------------------- B10 V.23 R1200/T75 bps split speed when line speed is at R1200/T75 bps. B11 V.23 R600/T75 bps split speed when line speed is at R600/T75 bps. ------------------------------------------------------------------------ Group 3 Command Description ------------------------------------------------------------------------ B15 V.21 when line speed is 110/300 bps. B16 U. S. Domestic industry standard 103 when line speed is at 110/300 bps. ------------------------------------------------------------------------ Group 4 Command Description ------------------------------------------------------------------------ B20 V.23 R600/T75 bps ASB when line speed is T600/R600 bps. B21 V.23 T600/R75 bps ASB when line speed is T600/R600 bps. B22 V.23 T600/R75 bps split speed when line speed is T600/R75 bps. B23 V.23 600, half duplex when line speed is 600 bps. ------------------------------------------------------------------------ Group 5 Command Description ------------------------------------------------------------------------ B30 V.22bis when line speed is 2400 bps. ------------------------------------------------------------------------ Group 6 Command Description ------------------------------------------------------------------------ B41 V.32 full duplex when line speed is 4800 bps. B42 Express(TM) 96* when line speed is 4800 bps. ------------------------------------------------------------------------ * Express 96 - a Hayes proprietary protocol that simulates full-duplex 9600 bps operation (formerly known as Hayes fast-turnaround "Ping-Pong" protocol). ------------------------------------------------------------------------ Group 7 Command Description B50 V.29 HDX when line speed is 7200 bps. ------------------------------------------------------------------------ Group 8 Command Description ------------------------------------------------------------------------ B60 V.32 full duplex when line speed is 9600 bps. B61 Express 96 when line speed is 9600 bps. B63 V.29 half duplex when line speed is 9600 bps. ------------------------------------------------------------------------ C - Carrier Control Selection The C command is used by some Hayes modems, such as Smartmodem(TM) 1200, to control the transmit carrier. In these instances, C0 instructs the modem to not send carrier (i.e., puts modem in a receive-only mode). High- speed modems (those capable of speeds greater than 1200 bps) accept C1 without error in order to assure backward compatibility with communications software that issues C1. However, these modems do not support C0. C0 Transmit carrier always off (not supported in high-speed modems) C1 Normal transmit carrier switching D - Dial Command The D command places the modem in originate mode; it then functions as an auto-dialer. Whether the command is issued on a line by itself, or followed immediately by the telephone number, it must be preceded by the AT prefix and terminated with a . (Note that is the notation used throughout this reference to represent the carriage return, enter, or return function on your keyboard.) The dial string is a combination of dial digits and dial modifiers. If the modem is off hook, it will neither initially wait nor attempt to detect dial tone before proceeding. The D command is not valid when the modem is on-line or if either &Q2 or &Q3 is in effect. Parentheses and hyphens in a dial string are ignored by the auto-dialer, but are counted as characters in the command buffer. The command buffer for most Hayes Smartmodem products can contain as many as 40 characters. Hayes V-series (TM) products can hold as many as 255 characters in their command buffers. Check your user documentation to determine the maximum number of characters supportted in your modem's command buffer. Result Codes Description ------------------------------------------------------------------------ BUSY If X3 or X4 are selected or W dial modifier is used and busy is detected. NO DIALTONE If X2 or X4 are selected and 1 second of dial tone is not detected; in response to a W dial modifier if dial tone is not detected within the time specified by S7. ERROR If the S=n dial modifier is processed and the n value is out of range (refer to the S dial modifier in this section) or if the total number of characters in the command line plus the stored dial string exceeds the command buffer limit. NO ANSWER If @ dial modifier is used and then no signal is detected for at least five continuous seconds before the time specified by S7. OK If aborted by DTR ON-to-OFF whenever certain combinations of &D and &Q are in effect. Refer to the &D command in this chapter for details; if the semicolon (;) dial modifier is processed in the dial string; if aborted by a character from the DTE during the dialing process. ------------------------------------------------------------------------ Dial Modifiers Dial modifiers can be combined with the dial (D) command to perform a series of operations within a single command line. For example, ATDT9W5552368!@#71234; instructs the modem to use tone dialing (T) to access a number outside a PBX (9), wait for dial tone (W), dial the number 5552368, enter a timed break recall (!), wait for quiet answer (@), and issue the PBX transfer code (#7) before dialing extension number 1234, then return to the command state; before initiating the handshake. 0-9 A B C D # * - Digits/Characters for Dialing The digits/characters 0-9 A B C D # * are numbers and characters the modem can dial. The characters A B C D # * represent specific tone pairs and therefore can be used only when tone dialing is selected; these symbols are ignored when pulse dialing is used. P - Pulse Dialing Method The P dial modifier selects the pulse method of dialing. The P modifier can be issued with the dial command, or alone, to indicate the method used for subsequent dialings. The factory-set method is pulse. Once this method is selected, it is used until the other is chosen, or the modem is reset. T - Tone Dialing Method The T dial modifier selects the tone method of dialing. The T modifier can be issued with the dial command, or alone, to indicate the method used for subsequent dialings. Once this method is selected, it is used until the other is chosen, or the modem is reset, reinstating pulse dialing. W - Wait for Second Dial Tone The W dial modifier instructs the modem to wait for dial tone before proceeding. If dial tone detection is not completed within the preset time limit, the modem hangs up and returns the NO DIALTONE result code. Some PBXs do not return a secondary proceed indication (second dial tone). The W dial modifier is not effective in such systems and should not be used. , - Delay Processing of Next Character The comma (,) dial modifier in a dial string causes the modem to pause before processing the next character or symbol in the command line. The duration of the pause is determined by the value held in register S8. The comma is frequently inserted after the 9 (digit generally used to gain outside access from a PBX) to allow sufficient time for the dial tone to occur before the modem dials the telephone number. @ - Wait for Quiet Answer The @ dial modifier instructs the modem to listen for five seconds silence before continuing. The number of seconds the modem waits for silence is determined by the value held in S7. This modifier is useful when dialing telephone systems that produce no dial tone. If a five-second silence has not been detected within the period set in S7, the modem hangs up and returns the NO ANSWER result code. If it detects the five seconds of silence, the modem processes the remaining characters in the dial string. Note that the modem does not listen for silence until it first detects dial tone and some other signal, such as a ringing signal, that lasts longer than 210 milliseconds. For example, to dial 5552368, wait for a quiet answer, then dial a security code 85939, wait for a second dial tone, and dial extension 423 you would issue the following command: ATDT 5552368 @ 85939 W 423 . ! - Timed Break Recall (Hookflash) The ! dial modifier issues a timed break recall signal, which causes the modem to hang up briefly, then reconnect. This feature can be used to access such PBX features as call transfer. ; - Return to Command State after Dialing The semicolon (;) dial modifier, used only at the end of a command line (just before the ), instructs the modem to return to the command state immediately after dialing, without breaking the connection. The ; is useful when calling an electronic service, such as that offered by a bank, that permits you to use tones to transmit numbers once a connection has been established. The modem can send tones even if your telephone cannot. The example below illustrates the use of the semicolon modifier in communications with an electronic banking service. ------------------------------------------------------------------------ ATDP 5552368; Dials bank using pulse method. OK Command executed, but keeps the modem in command state (no carrier handshake takes place). ATDT 4768; Sends an ID code via tones and maintains modem in command state. OK Modem in command state; command executed. ------------------------------------------------------------------------ In this example, the ; differs from the +++ in that the Hayes improved escape sequence with guard time places the modem in the command state only when two modems have completed a handshake. The semicolon keeps the modem in command state; no CONNECT XXXXX result code is displayed. DS=n - Dialing a Stored Telephone Number A stored number can be dialed from an asynchronous terminal by following the dial (D) command with the S modifier, an equal sign, and the location of the stored number (see &Zn=x command at the end of this section). The format of the modifier is S=n, where n is location 0-3. If ATDS=2 were issued, for example, the modem would dial the string stored in memory location 3 of its "telephone book." R - Originate a Call in Answer Mode The dial modifier R (Reverse mode) enables the modem to dial an originate only modem by placing a call in answer mode. This modifier must be entered at the end of the dialing (D) command string, before the . The R modifier directs the modem to act as if it had been sent an A command in that part of the command string. E - Command State Character Echo Selection The E command determines whether characters are echoed to the DTE from the modem when it is command state. Some computers and terminals do not send the characters you type to the screen; they only transmit them to the remote system through the serial port. In this case, if Command State Character Echo were not enabled by the modem, you would be unable to see what you type. If the DTE does echo the characters you type in command state, and this function is enabled in the modem, each character typed will appear twice. ----------------------------------------------------------------------- E0 Command state character echo disabled. E1 Command state character echo enabled. ----------------------------------------------------------------------- F - On-line State Character Echo Selection The F command is used by some Hayes modems, such as Smartmodem 1200, to determine whether characters are echoed to the DTE from the modem when it is in the on-line state. High-speed Hayes modems do not support the F0 option. However, because the F command may be issued by older communications software, F1 is supported to assure backwards compatibility. ------------------------------------------------------------------------ F0 On-line character echo enabled (where not supported, ERROR result code is returned). F1 On-line character echo disabled. ------------------------------------------------------------------------ H - Hook Command Options The H command provides control over the line relay. Its most common use is with the H0 option to initiate the Hangup Process and place the modem on hook. H1 takes the modem off hook. ------------------------------------------------------------------------ H0 Execute the Hangup process if in the "on-line" command state or the local analog loopback and analog loopback self-test conditions. H1 Go off hook; do not execute the Handshake Process. H2 Operate line relay only (applies to certain Smartmodem 1200 products). ------------------------------------------------------------------------ I - Internal Memory Tests The various forms of the I command instruct the modem to query its memory for information about itself. The results of these tests are frequently used by programmers to determine compatibility with software. Because these commands request information about the modem's firmware, they are not run when a connection has been established with a remote modem. I0 - Display Product Code This option reports the product code of the modem to the DTE. The modem produces information text dependent upon its highest DCE line speed. The responses below are examples: Result Codes Description ------------------------------------------------------------------------ 300 Smartmodem 300. 120 Smartmodem 1200, Smartmodem 1200B, Smartmodem 1200C, Smartmodem 1200A. 240 Smartmodem 2400, Smartmodem 2400B, Smartmodem 2400P, Smartmodem 2400Q, Smartmodem 2400M, V-series Smartmodem 2400, V-series Smartmodem 2400B, V-series Smartmodem 2400 Quad, V-series Smartmodem 2400M, Smartmodem OPTIMA (TM) 24, Smartmodem OPTIMA 24 + FAX96, ACCURA (TM) 2400 EC/FAX96. 960 Smartmodem 9600, V-series Smartmodem 9600, V-series Smartmodem 9600B, V-series ULTRA (TM) Smartmodem 2400, V-series ULTRA Smartmodem 9600, V-series ULTRA 24 with Express 96, Smartmodem OPTIMA 9600, Smartmodem OPTIMA 96 + FAX96, ACCURA 9600 EC/FAX96. 14400 V-series ULTRA Smartmodem 14400, Smartmodem OPTIMA 144, Smartmodem OPTIMA 144 + FAX144, ACCURA 14400 EC/FAX144. ------------------------------------------------------------------------ I1- Display ROM Checksum The I1 command instructs the modem to calculate the value of the ROM checksum. The response is a number, the sum of all of the bytes in ROM. I2 - Perform ROM Checksum This command instructs the modem to verify the ROM checksum. Depending on whether the ROM checksum has been found to be correct, the modem produces text that resembles a result code. The modem memory test compares the ROM checksum and tests it against the correct sum, also stored in ROM. Rather than returning a numeric value as in I1, the I2 command generates a result code. When the checksum is valid, the response is: OK. When the ROM checksum fails, the modem responds with ERROR. I4 - Identify Product Features The capabilities and features of the modem are encoded into a string of text that consists of several strings that are ASCII character representations of hex numerals which are bit-mapped. The first character of each string identifies which bit maps are in that string. For example, the "a-string" starts with a lower case "a" and identifies most of the basic modem capabilities such as modulation standards supported and support for AutoSync. Since the following tables identify features for Hayes modem products, the values included here and the number of strings are subject to change and expansion. The maximum length per string is 40 characters. The I4 text is displayed in the following form: a097800C204C264 bF60410000 r1031111111010000 r3000111010000000 surrounded by additional and characters as are required by the V command option in effect. According to convention, all and characters are defined by S3 and S4, respectively. The meanings of the a, b, r1, and r3 strings currently defined are described below. I4 "a" String The first string, the a-string, is composed of the ASCII character "a" followed by a series of hexadecimal characters (D1-D16 in this example). The bit map for each byte is defined below. a D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18.... ------------------------------------------------------------------------ D1, D2 Reserved D3 Bit 3: Indicates modem based on SM1200FE commands Bit 2: Indicates modem based on SM2400 commands Bit 1: Indicates that modem supports &J commands Bit 0: Indicates that modem supports &L commands D4 Bit 3: Indicates that modem supports AutoSync (&Q4) D5 Bit 3: Plug-in board modem product Bit 2: Standalone modem product Bit 1: Supports &H0 through &H4 Bit 0: Supports &I0 through &I4 D6 Bit 3: Reserved Bit 2: Supports M4 command Bit 1: Supports 32-bit FCS (frame check sequence for AutoSync) Bit 0: Supports AutoSync II D7 Bit 3: Supports V.22 at 1200 bps (B0) Bit 2: Supports 212A (B1) Bit 1: Supports ASB in V.23 75 bps xmt/1200 bps rcv (B2) Bit 0: Supports ASB in V.23 1200 bps xmt/75rcv (B3) D8 Bit 3: Supports V.23 1200 bps xmt/75 bps rcv (B4) Bit 2: Supports V.23 1200 half duplex (B5) Bit 1: Supports V.23 75 bps xmt/1200 bps rcv (B10) Bit 0: Supports V.23 75 bps xmt/600 bps rcv (B11) D9 Bit 3: Supports V.21 100/300 bps (B15) Bit 2: Supports ASB in V.23 75 bps xmt/600 bps rcv (B20) Bit 1: Supports ASB in V.23 600 bps xmt/75 bps rcv (B21) Bit 0: Supports V.23 600 bps xmt/75 bps rcv (B22) D10 Bit 3: Supports V.23 600 bps half-duplex (B23) Bit 2: Supports V.22bis at 2400 bps (B30) Bit 1: Supports V.27ter at 2400 bps (B31) Bit 0: Supports V.27ter at 4800 bps (B40) D11 Bit 3: Supports V.32 full duplex at 4800 bps (B41) Bit 2: Supports Express 96 at 4800 bps (B42) Bit 1: Reserved Bit 0: Supports V.29 half duplex at 4800 bps (B44) D12 Bit 3: Supports V.29 half duplex at 7200 bps (B50) Bit 2: Supports V.32 full duplex at 9600 bps (B60) Bit 1: Supports Express 96 at 9600 bps (B61) Bit 0: Reserved D13 Bit 3: Supports V.29 half duplex at 9600 bps (B63) Bit 2: Supports 103 110/300 bps (B16) Bit 1: Supports V.32bis (7200/12000/14400 bps) Bit 0: Reserved ------------------------------------------------------------------------ ------------------------------------------------------------------------ D1, D2 Reserved D14 0: Reserved 1: Personal Modem 1200 2: Personal Modem 2400 3: Personal Modem 1200 Plus 4: Personal Modem 2400 Plus 5: Pocket Edition D15 Bit 3: Reserved Bit 2: Supports $ dial modifier and NO DIALTONE result code. Bit 1: Supports S95 Bit 5 for COMPRESSION: result code Bit 0: Supports S95 Bit 4 for AUTOSTREAM: result code D16 Bit 3: Supports S95 Bit 3 PROTOCOL: result code Bit 2: Supports S95 Bit 2 CARRIER result code Bit 1: Supports S95 Bit 1 CONNECT/ARQ result code Bit 0: Supports S95 Bit 0 CONNECT XXXX (for DCE rate) ------------------------------------------------------------------------ I4 "b" String The second string, the b-string, is composed of the ASCII character "b" followed by a series of hexadecimal characters (D1-D9). The bit map for each character is defined as follows: b D1 D2 D3 D4 D5 D6 D7 D8 D9.... ------------------------------------------------------------------------ D1 Bit 3: V.42 Alternate Protocol Supported Bit 2: V.42 LAPM Protocol Supported Bit 1: X.25 Protocol Supported Bit 0: LAPB (Point-to-point error control) protocol supported D2 Bit 3: Reserved (should be set to zero) Bit 2 MNP (TM) Class 5 supported Bit 1: V.42bis supported Bit 0: Compression through the X.25 network supported D3/D4 These combine to indicate the number of AutoStream Type A channels which are supported. The formula (D3*16 + D4) is used. Zero means AutoStream is not supported D5 Bit 3: Reserved Bit 2: Reserved Bit 1: Adjustable startup (ASU) is supported Bit 0: Negotiates adjustable startup D6 Bit 3: &K5 not supported Bit 2: &K5 supported Bit 1: Unidirectional flow control Bit 0: S105 N104 parameter supported ------------------------------------------------------------------------ I4 "r1, r2" and "r3" strings These ID strings allow software to determine the available speeds that may be used to send AT commands. The r1-string contains a bit map that indicates at which DTE rates the autobaud process is supported. The presence of the r2-string in the I4 result infers that S87 is supported and is required for autobauding at the higher speeds. To autobaud at one of the speeds indicated in the r2-string requires that S87 be set to match that speed. The r3-string is issued if synchronous DTE speeds are supported. The map indicates which DTE rates are supported in synchronous modes. Each r- string begins with the lower case letter "r" and may be followed by as many as 39 additional characters, not counting 's that will be used to separate them from other strings. Those 39 additional characters are limited to the ASCII-HEX alphabet 0-9 and A-F. After the two lead-in characters (i.e., r), all subsequent characters contain the DTE rate maps. All maps have the same mapping for convenience to software. (Refer to the following chart.) Not all bit assignments are possible: for example, the split speeds have no meaning in the r3 synchronous map and are always filled with zeros. In r1, if the bit is filled with a 1, the corresponding DTE rate is supported for sending AT commands to the device. A zero indicates that DTE rate is not supported for AT commands. In the r3 map, the bits simply indicate which DTE rates are supported for synchronous operation on-line. This does not indicate, however, the supported rates for synchronous V.25bis commands. Split speeds if available are marked in the r1 string only when the appropriate B command option has been selected. Future expansion of these strings may include new speeds that are not in strict ascending order. DTE Rate Bit Map for r1, r2 and r3 Strings Character Bit # DTE Rate ------------------------------------------------------------------------ 3: 1 bit 0 45.45 bps 2 bit 1 50 4 bit 2 75 8 bit 3 75/600 (xmt is 75, rcv is 600) 4: 1 bit 4 75/1200 2 bit 5 110 4 bit 6 134.5 8 bit 7 50 5: 1 bit 8 300 2 bit 9 450 4 bit 10 600 8 bit 11 600/75 6: 1 bit 12 1200 2 bit 13 1200/75 4 bit 14 1800 8 bit 15 2000 7: 1 bit 16 2400 2 bit 17 3000 4 bit 18 3600 8 bit 19 4200 8: 1 bit 20 4800 2 bit 21 5400 4 bit 22 6000 8 bit 23 6600 9: 1 bit 24 7200 2 bit 25 7800 4 bit 26 8400 8 bit 27 9000 10: 1 bit 28 9600 2 bit 29 12000 4 bit 30 14400 8 bit 31 16800 11: 1 bit 32 19200 2 bit 33 21600 4 bit 34 24000 8 bit 35 26400 12: 1 bit 36 28800 2 bit 37 31200 4 bit 38 33600 8 bit 39 36000 13: 1 bit 40 38400 2 bit 41 43200 4 bit 42 48000 8 bit 43 52800 14: 1 bit 44 56000 2 bit 45 57600 4 bit 46 62400 8 bit 47 64000 15: 1 bit 48 67200 2 bit 49 72000 4 bit 50 76800 8 bit 51 81600 16: 1 bit 52 86400 2 bit 53 91200 4 bit 54 96000 8 bit 55 100800 17: 1 bit 56 105600 2 bit 57 110400 4 bit 58 115200 8 bit 59 reserved ("0") ------------------------------------------------------------------------ L - Speaker Volume Level Selection The L command setting determines the volume level of the speaker, when supported by the modem. Some modems use the speaker of the computer in which they are installed. In this case, where supported, the L command adjusts the speaker volume as indicated in the options below for the duration of the communications session. ------------------------------------------------------------------------ L0, L1 Low speaker volume L2 Medium speaker volume L3 High speaker volume ----------------------------------------------------------------------- M - Speaker On/Off Selection The M command setting determines whether the speaker function of the modem is on or off. Some modems use the speaker of the computer in which they are installed. In this case, where supported, the M command turns the speaker on and off as indicated in the options below for the duration of the communications session. ------------------------------------------------------------------------ M0 Speaker always off. M1 Speaker on until carrier detected. M2 Speaker always on; stays on after carrier is detected. M3 Speaker off as digits are dialed, but on during ringback and on until carrier signal is detected. ------------------------------------------------------------------------ N - Negotiation of Handshake Options The N command selects whether or not the local modem performs a negotiated handshake with a remote modem when the communications speeds of the two modems are different. The options for this command are useful when a particular speed and communication standard are required. Both symmetrical and asymmetrical protocols can be selected. Note that the options supported by this command vary significantly between country- specific implementations. ------------------------------------------------------------------------ N0 When originating or answering, handshake only at the communication standard specified by S37 and B command. N1 When originating, begin handshake at the communication standard specified by the B command and S37. During handshake fallback to a lower speed may occur. When answering, negotiate according to the following sequence of communication standards: V.32, Express 96, V.22bis, V.22/212A, and V.21/103. N2 When originating, begin handshake at the communication standard specified by the B command and S37. During handshake fallback to a lower speed may occur. When answering, negotiate according to the following sequence of communication standards: V.32, Express 96, V.22bis, V.22/212A, V.23, and V.21/103. N3 When originating, handshake only at the communication standard specified by S37 and B command. When answering, negotiate according to the following sequence of communication standards: V.32, Express 96, V.22bis, V.22/212A, and V.21/103. N4 When originating, handshake only at the communication standard specified by S37 and B command. When answering, negotiate according to the following sequence of communication standards: V.32, Express 96, V.22bis, V.22/212A, V.23, and V.21/103. N5 When originating, begin handshake at the communication standard specified by B command and S37. During handshake fallback to a lower speed may occur. When answering, handshake only at the communication standard specified by S37 and B. ------------------------------------------------------------------------ O - On-Line Command If the modem is in the on-line command state, then the O0 command causes it to go to the on-line state of the previously established connection. If the O1 command is issued (modems supporting 2400 bps and higher), the modem goes to on-line state and retrains its adaptive equalizer. If the O3 command is issued (modems supporting V.32bis), the modem goes to on- line state and initiates the CCITT V.32bis renegotiation sequence. If the modem is off hook in the idle state, then O0 and O1 (modems supporting 2400 bps and higher) cause it to go to the handshaking state. Originate or answer mode is determined from the last D or A command or R dial modifier that was selected. If the modem is on-hook, idle, or if the modem is in a test condition, a command execution error results. Note that O1 serves a different purpose in lower speed modems (e.g., Smartmodem 1200 and Smartmodem 300). P - Select Pulse Dialing Method The P command instructs the modem to use pulse dialing. Dialed digits will be pulse dialed until a T command or dial modifier is received. This command is also discussed under "Dial Modifiers," in conjunction with the D command. Q - Result Code Display Options The Q command controls whether the result codes generated by the modem are displayed to the attached DTE. Some software does not function properly when modem responses are returned. ---------------------------------------------------------------------- Q0 Result codes enabled Q1 Result codes disabled Q2 Disables the RING result code. In answer mode, also disables CONNECT and NO CARRIER result codes. ----------------------------------------------------------------------- Sr - Addresses An S-register The Sr command points to a specific S-register. Subsequent commands, such as ? and =, may read or write to the selected register. Note that S0 is the factory-set pointer for this command, and that the S-address is not stored in a stored profile. Thus, the &F, Z0, and Z1 commands will select S0 and possibly affect subsequent ? and = commands unless they are preceded by an Sr command. command points to a specific S- register. Subsequent commands, such as ? and =, may read or write to the selected register. Note that S0 is the factory-set pointer for this command, and that the S-address is not stored in a stored profile. Sr? - Read An S-register The content of S-register r are sent to the DTE as three decimal digits. This informational text response is formatted with as determined by the V command currently in effect. If no n (suffix) is present, the last register selection is assumed. (Refer to the Sr command.) On power up, the factory-set selection is 0. Note that ? is interpreted by the modem as Sr?. T - Select Tone Dialing Method The T command instructs the modem to send DTMF tones while dialing. Dialed digits will be tone dialed until a P command or dial modifier is received. This command is also discussed under "Dial Modifiers," in conjunction with the D command. V - Result Code Format Options The V command determines whether result codes (including call progress and negotiation progress result codes) are displayed as numbers or words. ------------------------------------------------------------------------ V0 Result codes displayed as numbers V1 Result codes displayed as words ------------------------------------------------------------------------ W - Negotiation Progress Message Selection The W command works in conjunction with S95 (where supported) to determine which result codes will be used to describe the type of connection and protocol, etc., that resulted from handshaking and negotiation. The W command supports extended result codes in addition to the CONNECT result code. When the modem is operated in error-control mode (&Q5 is in effect), the W command and S95 together allow the user to select these additional result codes: CARRIER PROTOCOL AUTOSTREAM COMPRESSION CONNECT Any result codes enabled by the W command and S95 will be generated in the order indicated above. If AutoStream is not being used, no AUTOSTREAM result code is returned. Result codes not enabled when the W command option is in effect may be turned on by setting certain bits in S95. The W command options below are available when S95 is configured for any setting other than the factory-setting of 0. ------------------------------------------------------------------------ W0 CONNECT result code reports DTE speed, and if S95=0, then disable all extended result codes. W1 CONNECT result code reports DTE speed, and if S95=0, then enable the CARRIER and PROTOCOL extended result codes. W2 CONNECT result code reports DCE speed, and if S95=0, then disable all extended result codes. ------------------------------------------------------------------------ Refer to the S95 bit map description in the next section. Note that selecting W0 and setting S95=12 is the same as selecting W1; and that selecting W0 and setting S95=1 is the same as selecting W2. S95 cannot be configured to force W2 to report DTE speed in the CONNECT result code; there is no setting of S95 that will force W1 not to produce the CARRIER and PROTOCOL result codes. S95 extends the functionality of the W command. The W command with S95=0 (factory setting) maintains backwards compatibility with previous Hayes Products. However, selecting W0 and setting S95 as required allows you to tailor result code characteristics to your own requirements. X - Call Progress Options The X command enables tone detection options used in the dialing process. As these functions are enabled and disabled, the modem's result code reporting is also affected. For this reason, this command is frequently used to control the modem's range of responses; however, its primary function is that of controlling the modem's call response capabilities. Some call progress options are not available in certain countries due to PTT regulations. Refer to the user documentation supplied with your modem for applicable X commands and result codes. Result code definitions are provided in the next section. ------------------------------------------------------------------------ X0 Busy and dial tone detection are disabled. Only result codes 0-4 are enabled. Only the CONNECT result code is permitted, but with no indication of the telephone line speed. This setting overrides any other result code selections made with the W command and S95. X1 Busy and dial tone detection are disabled. Result codes 0-5 are enabled and line speed reporting with CONNECT XXXX messages. W command options and S95 are enabled. X2 Busy detection is disabled. Dial tone detection is enabled. Result codes 0-6 are enabled and line speed reporting with CONNECT XXXX messages. W command options and S95 are enabled. X3 Busy detection is enabled. Dial tone detection is disabled. Result codes 0-5 and 7 are enabled and line speed reporting with CONNECT XXXX messages. W command options and S95 are enabled. X4 Busy and dial tone detection are enabled. Result codes 0-7 are enabled and line speed reporting with CONNECT XXXX messages. W command options and S95 enabled. ------------------------------------------------------------------------ The @ and W dial modifier result codes are not affected by the X command. The @ dial modifier enables result codes 8 (NO ANSWER) and 7 (BUSY) each time it occurs in the dial string. The W dial modifier enables result codes 6 (NO DIALTONE) and 7 (BUSY) each time it occurs in the dial string. Y - Long Space Disconnect Options The Y command determines if the modem will disconnect a call upon receiving a long space (1.6 sec break) signal from the distant end. If Y1 is selected, the modem will send a 4-second break (space) before going on hook when an H0 command is issued or, if &D2 is selected, when DTR goes off. Refer also to register S82 for more information. ------------------------------------------------------------------------ Y0 Disable long space disconnect Y1 Enable long space disconnect ------------------------------------------------------------------------ Z - Soft Reset Command The modem can be reset by issuing the Z command. The command tells the modem to go on hook and restore the selected stored profile. Any non- storable parameters previously set by commands are returned to their factory settings. The modem aborts execution of all commands following the Z command on the same command line. Subsequent commands on the same line are ignored. Refer to the &W command for description of which modem parameters are included in a stored profile. Z0 recalls stored user profile 0, stored with &W0; Z1 recalls stored user profile 1, stored with &W1. ------------------------------------------------------------------------ Z0 Recall stored profile 0 Z1 Recall stored profile 1 ------------------------------------------------------------------------ &A - Select Originate or Answer Role for Auto-Answer Mode The &A command determines whether the modem will attempt to connect as the originating or answering modem when auto-answering calls. ------------------------------------------------------------------------ &A0 Connect as answering modem when auto-answering &A1 Connect as originating modem when auto-answering ------------------------------------------------------------------------ Notes: 1. S0 must be set to a non-zero value to enable AutoAnswering. 2. The &An setting only affects the mode of AutoAnswered calls. The &An setting does not affect the mode or behavior of ATA, ATD, ATDR, DTR- Dial, MI/MIC, KDS, or Power-Up initiated connections. 3. The &A or &A0 setting is exactly equivalent to traditional Auto- Answered connections. It is controlled by register S0. Answer Tone is issued if the modulation standard requires it, and handshaking proceeds in the answer direction. 4. When &A1 has been selected and S0 is non-zero and the modem AutoAnswers an incoming call, the modem performs the Answer process and then the Handshake process with the exception that the Handshake process is performed in the Originate mode and Answer Tone is not issued. 5. If parameter values greater than 1 are attempted, an ERROR result code is issued, and no change is made to the &An setting. &B - V.32/V.32bis Auto Retrain Options The &B command is used to enable and disable auto retrain in V.32/V.32bis mode. During a V.32 or a V.32bis connection, the modem continually monitors line quality. The &B command determines whether the modem ignores a line quality problem or attempts to correct the situation by retraining. The selection made with this command affects V.32/V.32bis connections only. ------------------------------------------------------------------------ &B and &B0 Disable V.32/V.32bis Auto Retrain &B1 Enable V.32/V.32bis Auto Retrain ------------------------------------------------------------------------ &C - Data Carrier Detect Options The &C command determines how the state of the DCD lead relates to the carrier from the distant end. The command will take effect immediately when issued. The behavior patterns for DCD depend on the specific &C and &Q commands in effect. Also, DCD patterns depend on whether on-line operation is half or full duplex. Finally, if &Q5 is in effect, DCD behavior depends on whether S10=255 or S10<255. DCD circuit operation is according to the descriptions below. DCD Behaviors for Full-Duplex DCD Behaviors for Half-Duplex Operation Operation ------------------------------------------------------------------------ &C0 &C1 &C2 &C0 &C1 &C2 &QO A B D &Q1 E C C &Q1 B B B &Q2 E C C &Q2 B B B &Q3 E C C &Q3 B B B &Q4 E C C &Q4 B B B &Q5 A E A &Q5 A E A &Q5 A C F &Q6 A B D S10=255 &Q5 A B D S10=255 ------------------------------------------------------------------------ See Legends that follow for explanation of table entries A-F. Table Legend: ------------------------------------------------------------------------ A The DCD circuit is ON at all times. B DCD=0 in idle; DCD tracks carrier in On-Line State with S9 The DCD circuit is OFF while the connection attempt is being made. It goes ON immediately after the CONNECT result code is issued, and goes OFF immediately after loss of remote carrier. If the remote carrier is restored and the S9 (carrier detect response time) delay is completed before the S10 (lost carrier to hang-up) delay expires, then hang-up is avoided and the DCD circuit goes ON again as the modem goes on-line. Otherwise, DCD remains OFF during the hang-up process prior to the result code message. If S10=255, hangup will not occur unless initiated by the DTE. C DCD=0 in idle; DCD tracks carrier in On-Line State without S9 The DCD circuit is OFF when the modem is idle. It goes ON immediately after the CONNECT result code is issued, and goes OFF immediately after loss of remote carrier. If the remote carrier is restored, then DCD will go ON regardless of the S9 value in effect. D DCD=1 in idle; DCD tracks in On-Line with S The DCD circuit is normally ON when the modem is idle, and it is ON while the remote carrier is present and the modem is on-line. The signal goes OFF immediately after loss of remote carrier. If the remote carrier is restored, then DCD will go ON again regardless of S9. If the Hangup Process is initiated by the DTE using DTR or issuing ATH from the on-line state, then DCD will return ON just prior to the modem issuing the OK result code. If S10<255 (lost carrier to hang-up delay) and a timeout equal to S10 expires before the remote carrier is restored, then the hang-up process begins during which DCD=0. DCD will return ON again just prior to the issue of the NO CARRIER result code. If the remote carrier is restored and the S9 delay is completed before the S10 delay expires; then the modem does not hangup, and DCD will go ON again when the modem returns on-line. E DCD=0 in idle; DCD=1 in On-Line State (no tracking) The DCD circuit is OFF when the modem is idle in the command state. DCD goes ON immediately after the CONNECT result code is issued, and it goes OFF when the modem begins the hangup process. DCD does not track the presence of remote carrier energy. F DCD=1 in idle; DCD tracks in On-Line without S9 This behavior pattern is associated only with (&C2, &Q5, S10=255, half duplex), and it only occurs at 4800 and 9600 bps when Express 96 is in effect (Hayes proprietary V.32 half-duplex operation (Ping Pong)). The DCD circuit is normally ON when the modem is operating in half duplex and idle in the command state, and it is ON while the remote carrier is present in the on-line state. It goes OFF approximately 3 seconds after loss of remote carrier. If the remote carrier is restored, then DCD will go ON again (regardless of S9). If the hangup process is initiated by the DTE using DTR or escaping to command state and issuing ATH when on-line, DCD will return ON just prior to the modem issuing the OK result code. The modem will not begin the hangup process if S10=255. ------------------------------------------------------------------------ &D - Data Terminal Ready Options The &D command affects how the modem will respond to the state of the DTR signal and changes to this circuit. The effects of DTR states and changes are also very dependent upon the &Q command that is in effect. The test modes associated with certain &T commands are only affected by DTR changes when &D3 is in effect and are not affected by &Q command options. Below, DTR-related behaviors are defined in relation to the &D and &Q commands in effect in smart mode. In dumb mode, the behavior is as defined below for &D2 regardless of the actual &D command in effect. DTR Behaviors in Smart Mode ------------------------------------------------------------------------ &D0 &D1 &D2 &D3 &Q0 none E I, H R &Q1 H E I, C, H R &Q2 I, D, H I, D, H I, D, H I, D, R &Q3 I, O, H I, O, H I, O, H I, O, R &Q4 H E I, C, H R &Q5 none E I, S R &Q6 none E I, S R ----------------------------------------------------------------------- Legends: Auto-Answer Function ------------------------------------------------------------------------ I The DCD circuit is ON at all times. ------------------------------------------------------------------------ DTR OFF-to-ON Effects ------------------------------------------------------------------------ D If S1=0 and in the idle condition, DTR OFF-to-ON signals the modem to go off hook and start the dialing process using the dial string stored by the last &Z0= command. S25 does not affect the modem's reactions to DTR going OFF-to-ON. O If S1=0 and in the idle condition, DTR OFF-to-ON signals the modem to go off hook and start the originate handshake process. S25 does not affect the modem's reactions to DTR going OFF-to-ON. C Following a CONNECT result code, DTR must go ON before the time specified by S25 (in seconds), or CTS will not go ON and the modem will go to the Hangup Process, issue the NO CARRIER result code, at the Response Speed, and go to the idle condition. ------------------------------------------------------------------------ DTR ON-to-OFF Effects ------------------------------------------------------------------------ E If in the on-line state, DTR ON-to-OFF signals the modem to exit the on-line state, issue an OK result code at the response speed, and go to command state, while maintaining the connection. DTR transitions to OFF that do not persist more than the time specified by S25 will not cause the modem to exit the on-line state. H If in the on-line state, or in the handshaking, dialing, or answer process, DTR ON-to-OFF signals the modem to execute the hangup process, issue an OK result code at the response speed, and go to the idle condition. The modem is not reset by DTR. This will also abort any dial, handshake, or answer in progress. DTR transitions to OFF that do not persist more than the time specified by S25 will not trigger a transition to the hangup process. R DTR ON-to-OFF signals the modem to immediately perform a hard reset regardless of state. All processes are aborted. S25 does not affect the modem's reactions to DTR going OFF-to-ON. There is no result code. S If in on-Line, or in the handshaking, dialing processes, or answer process, a transition of DTR ON-to-OFF signals the modem to shut down the communications link. When the modem has completed transmitting the data placed into its buffer by the DTE and has completed sending the received data to the DTE, the modem will execute the hangup process, issue an OK result code at the response speed, and remain idle in the command state. The modem is not reset by DTR. This will also abort any dial, handshake, or answer in progress. DTR transitions to OFF that do not persist more than the time specified by S25 will not trigger a transition to the hangup process. ------------------------------------------------------------------------ &F - Recall Factory Profile The &F command recalls the configuration stored and programmed in ROM at the factory. This operation completely replaces the command options and S-register values in the active configuration with those comprising the ROM configuration. For the commands and registers stored and their factory-set ROM default values, see your user documentation. &G - Guard Tone Selection The &G command tells the modem which guard tone, if any, to transmit while transmitting in the high band (answer mode). Guard tone is transmitted only while the modem is transmitting in the answer mode and during the answer handshake. ------------------------------------------------------------------------ &G0 Guard tones disabled &G1 550 Hz guard tone enabled (V.22, V.22bis only) &G2 1800 Hz guard tone enabled (V.22,V.22bis only) ------------------------------------------------------------------------ &J - Jack Type Selection (Auxiliary Relay Options) The &J command designates the type of jack with which the modem is connected to the telephone line. This selection is made by changing the way the auxiliary relay is controlled. The auxiliary relay connects the A lead to the A1 lead, and is normally open. ------------------------------------------------------------------------ &J0 The auxiliary relay is never closed (suitable for RJ-11, RJ-41S, or RJ-45S type phone jack) &J1 The auxiliary relay is closed while modem is off hook (suitable for RJ-12 or RJ-13 type phone jack) ------------------------------------------------------------------------ Note: To determine the jack setting for MI/MIC operation, refer to the description of S92. &K - Local Flow Control Options The &Kn command is used to select the local flow control method for use when the modem is operating in error-control mode or asynchronous mode with Automatic Speed Buffering (ASB). ASB is used for communication environments requiring a "Fixed Speed Interface" between the modem and the DTE. Note that local flow control is unidirectional in &Q6 mode and bidirectional in &Q5 mode. S39 stores the current flow control setting. Flow control is always inhibited in command state and is valid only when on-line in error- control mode. Bi-directional flow control regulates the data stream between the DTE and the modem. Specific functions depending on parameter value are as follows: ------------------------------------------------------------------------ &K0 All flow control is disabled. May be selected for use during error-control mode at the risk of overflowing the buffers and losing data. &K1 RTS/CTS flow control is enabled. Note that the DTE-to-modem cable must have the supporting wires. The &T19 command may be used by software to determine if the cable is properly wired. &K2 XON/XOFF flow control is enabled. These characters are not programmable and are fixed at DC1 and DC3, respectively. This method should not be used when XON/XOFF characters will be sent as user data or as part of a file transfer protocol. &K3 RTS/CTS flow control is enabled. Note that the DTE-to-modem cable must have the supporting wires. The &T19 command may be used by software to determine if the cable is properly wired. &K4 XON/XOFF flow control is enabled. These characters are not programmable and are fixed at DC1 and DC3, respectively. This method should not be used when XON/XOFF characters will be sent as user data or as part of a file transfer protocol. &K5 Transparent XON/XOFF. The data stream is controlled by characters DC1 and DC3. The characters DLE, DC1, and DC3 are made transparent by sending DLE followed by the character XORed (Exclusive ORed) with 21hex. See notes on &K5 transparent flow : control in "Appendix D: Transparent XON/XOFF Local Flow Control in Hayes Modems." ------------------------------------------------------------------------ &L - Line Type Selection (Dial-up/Leased) The &L1 command instructs the modem to alter its function for leased line environments. The modem will act as if S10=255 and M0 are in effect. It will not dial numbers or send answer tone. The modem must receive an X1D or A command to go on-line. The modem will then go to the dialing or answering process, respectively. Once the handshaking process is completed, the modem tries to stay in the on-line state. When it loses carrier, it returns to the dialing or answering process. Carrier level is determined in one of several techniques, depending on the particular modem. See your user documentation for information on setting carrier level. ------------------------------------------------------------------------ &L0 Select Dial-up line operation &L1 Select Leased line (Private Circuit) operation ------------------------------------------------------------------------ &O - PAD Channel Selection The &O command instructs the modem to move from AT command state to a PAD waiting state where it is ready to receive X.25 commands. A Reset operation (see Chapter Two: X.25 Communications) is performed on the selected channel. This command can be issued while off-line so that the PADs may be configured prior to making a connection. ------------------------------------------------------------------------ &O0 Move to the PAD command state of the last channel accessed (or to channel 1 if no previous channel has been selected). &O1 Move to the PAD command state for channel 1. &O2 Move to the PAD command state for channel 2. &O3 Move to the PAD command state for channel 3. &Q4 Move to the PAD command state for channel 4. ------------------------------------------------------------------------ &Q - Communications Mode Options The &Q command selects the communication mode. The &Q command determines how the modem will treat transmitted and received data while in the on- line state (i.e., asynchronous, synchronous, AutoSync, or error-control) and establishes certain call setup procedures. Refer also to the &C, &D, and &S commands in this section. Command On-Line State Special Features ------------------------------------------------------------------------ &Q0 Asynchronous DCD and DSR behaviors are unique. Refer to &C and &S commands. &Q1 Synchronous DTR must be ON after CONNECT when timer value in S25 expires. &Q2 Synchronous DTR OFF-to-ON executes dialing process; the D command invalid DTR ON-to-OFF executes the hangup process; the A command is invalid. &Q3 Synchronous Dialing and Voice allowed from phone set when DTR is OFF. DTR OFF-to-ON executes the handshaking process (in originate mode); the D command is invalid. DTR ON- to-OFF executes hangup process; the A command invalid. &Q4 Hayes AutoSync DTR must be ON after CONNECT when timer equal to S25 expires. DTE data speed is 9600 bps which is not equal to response speed or line speed, yet all result codes are at the response speed. &Q5 Error-control This enables error-control. Depending which Hayes product is being used, any one of the several point-to-point protocols can be negotiated: LAPB, LAPM, X.25 or MNP. After the modem handshake is complete, feature negotiation (see S48) is used to determine which protocol (see S46) will be used for the communication session. If no common protocol is found between the local and remote modems, the fall back options (see S36) will be used. &Q6 Buffered Automatic Speed Buffering is useful Asynchronous for DTEs that cannot adjust to changing transmission speeds. This mode ensures the DTE-modem speed is set at a constant rate regardless of the line speed determined during the modem handshake. With the exception of flow control (&Kn) between the DTE and the attached modem, this mode is identical to the standard asynchronous mode (&Q0). ASB operation is also a fall back option (see S36) when the modem is set for error-control mode (&Q5). Because the DTE and DCE speeds are different in ASB, a 256 byte buffer is provided so that flow control does not occur on every character transmission. Some DTEs are sensitive to the buffer size so S-registers are provided to control the lower (S49) and upper (S50) boundaries. ------------------------------------------------------------------------ &R - RTS/CTS Options The functions of CTS and RTS in synchronous modes (&Q1, &Q2, and &Q3) are determined by the &R command. The &R command has no effect if &Q0, &Q4, &Q5, or &Q6 is in effect. See also the discussion of the CTS and RTS signals in Appendix A. Refer to the &K command for other RTS and CTS functions. Note when &Q4 is in effect (AutoSync operation), RTS and CTS behaviors are not unlike those specified by RS-232/CCITT V.24. In Synchronous Modes (&Q1, &Q2, and &Q3): ------------------------------------------------------------------------ &R0 CTS tracks RTS while the modem is in on-line state and observes the RTS-to-CTS delay determined by S26. &R1 CTS is ON while the modem is in the On-Line State, and RTS is ignored. ------------------------------------------------------------------------ In other modes (&Q0, &Q4, &Q5, and &Q6), the &R option in effect does not control the RTS and CTS functions. &S - Data Set Ready Options The &S command controls the functions of the DSR circuit. The DSR circuit (pin 6 of the RS-232 interface) indicates when the modem is connected to a communication channel and is ready. In synchronous mode, when originating a call, DSR goes high when dialing is completed and an answer tone is detected from the remote modem. When answering a synchronous call, DSR goes high when the modem begins transmitting the answer tone. In asynchronous or error-control mode, the &S command can be used to configure the modem to keep the DSR signal high at all times or to have it operate according to the RS-232 specification (as described in Appendix A). When &Q0, &Q5, and &Q6 are in effect: ------------------------------------------------------------------------ &S0 DSR circuit is always on. &S1 DSR=0 in the idle state and when in a test mode. DSR circuit is turned ON at start of the handshaking process. DSR is turned OFF when hangup process is started. &S2 DSR=0 in the idle state and when in a test mode. DSR circuit is turned ON at end of handshake prior to issuing of the CONNECT result code. DSR is turned OFF when hangup process is started. ------------------------------------------------------------------------ When &Q1 to &Q4 are in effect: ------------------------------------------------------------------------ &S0-1 DSR=0 in the command state and at idle. DSR circuit is turned ON at start of the handshaking process. DSR is turned OFF when hangup process is started. &S2 DSR=0 in the command state and at idle. DSR circuit is turned ON at end of handshake prior to issuing of the CONNECT result code. DSR is turned OFF when hangup process is started. ------------------------------------------------------------------------ &T - Test Options The following &T command options are used to configure and place the modem in various test modes as defined by CCITT V.54. These tests can be used to verify the analog and digital portions of the modem's operation, as well as those of the remote modem. Some of these tests require a connection be established before running the procedure. The &T19 command (not a CCITT V.54 test) can be used to test the RTS/CTS functions of the cable used to attach the modem to the DTE. Note: &T commands can only be used when the modem is configured for &Q0 (unbuffered asynchronous mode). &T0 - Terminate Test In Progress If a V.54 Loopback Test is in progress as a result of executing an &Tn command, then the &T0 command will cause that test to be terminated provided that the modem is in the command state, or a V.54 state that accepts commands from the DTE. See specific &T command descriptions for termination actions. &T1 - Initiate Local Analog Loopback The modem goes on hook and configures itself for analog loopback (using low frequency band if no suffix or "O" suffix, and high frequency band if "A" suffix). DSR is turned off (if &S1 is in effect), the analog loopback state is entered, and the test timer is set to the value in S18. A CONNECT result code is sent to the DTE, and the test timer then begins its count down. The test terminates when the test timer expires. If S18 equals 0, then the test must be terminated by an &T0, H0, or Z command. While any command may be entered while the modem is in this test state, the modem response is not specified except for H0, &T0, and Z - any of which will terminate the test. Upon termination of the test, the modem enters the command state. Result Codes Description ------------------------------------------------------------------------ CONNECT When local analog loopback state is entered. ERROR If any other &Tn test is active (except &T0) or if in the on-line command state. OK After test is stopped by test timer, the H0 command, or the &T0 command. ------------------------------------------------------------------------ &T3 - Perform Local Digital Loopback The modem must be in the command state with a connection established when this command is issued. Otherwise an ERROR result code occurs. This command establishes a loopback of received data, after demodulation, and sends it back to the distant end. The modem is configured for local digital loopback, DSR is turned off (if &S1 is in effect), the test timer is started with the value in S18, and an OK result code is sent to the DTE . If S18 contains a 0, the test must be terminated by a &T0, H0, or Z command. The latter two result in the modem going on hook. If S18 does not contain 0, the test is terminated after the number of seconds stored in S18. Result Codes Description ----------------------------------------------------------------------- OK After 2s delay. ERROR If any other self test is active (&T1,&T6-&T8) or if in idle state. OK When test is terminated. ------------------------------------------------------------------------ &T4 - Grant RDL Requests When in the on-line state the modem will honor a remote digital loopback request from a distant modem if it occurs. This will result in an ERROR if the command is given while any V.54 test is active (&T1, &T3, &T6, &T7, or &T8). &T5 - Deny RDL Requests The modem will not respond to a remote digital loopback request from a distant modem. This will result in an ERROR if the command is given while any V.54 test is active (&T1, &T3, &T6, &T7, or &T8). &T6 - Initiate Remote Digital Loopback The command is valid only if the modem is in the command state with a connection at 1200 or 2400 bps. The modem sends the remote digital loopback request signal to the distant modem (see CCITT V.22 and V.54). After the RDL acknowledgment signal is received from the distant modem, DSR is turned off (if &S1 is in effect), the on-line state is entered, a CONNECT result code is sent to the DTE, and the test timer is set to the value in S18. If the modem does not receive the RDL acknowledgment signal from the distant end in three seconds, it sends an ERROR result code to the DTE and returns to the command state. The modem sends the signal specified in CCITT V.22 to release the remote digital loopback when the test is terminated. The test may be terminated by the H0, Z, or &T0 command. The test will also terminate when the test timer expires (sending the modem to the command state) or carrier is lost (causing a NO CARRIER result code and the modem to go on hook in the command state). Result Codes Description ------------------------------------------------------------------------ CONNECT When on-line state is entered. ERROR If any V.54 test is active (&T1, &T3, &T6-&T8). ERROR If not in on-line command State. ERROR If command is issued at other than 1200 or 2400 bps. ERROR If the RDL signal is not acknowledged. ------------------------------------------------------------------------ &T7 - Initiate RDL With Self Test The command is only valid if the modem is in the command state with a connection at 1200 or 2400 bps. The modem sends the remote digital loopback request signal to the distant end (see CCITT V.22). After the RDL acknowledgment signal is received from the distant end, DSR is turned off (if &S1 is in effect), the on-line state is entered, an OK result code is sent to the DTE, and the test timer is set to the value in S18. While the test is active the modem sends a test message to the distant end and counts the errors in the received (looped back) signal. The modem stays in the command state during the test. When the test is terminated (except by a loss of carrier), the modem sends the release signal to the distant end, as in &T6, and reports the three-digit error count to the DTE. The information text is followed by an OK result code. See the V command for formats. The test is terminated by loss of carrier, or an H0, &T0, or Z command, and by the S18 timer running out. Result Codes Description ------------------------------------------------------------------------ OK When command executed is started. OK After error count is sent to DTE. ERROR If any other self test is active (&T1,&T3,&T6-&T8). ERROR If not in on-line command state. ERROR If command is issued at other thatn 1200 or 2400 bps. ERROR If the RDL signal is not acknowledged. ------------------------------------------------------------------------ &T8 - Local Loopback With Self Test The modem goes on hook and is configured for analog loopback (low frequency band if none or O suffix, high frequency band if A suffix). The test timer is started at the time indicated by S18, DSR is turned off (if &S1 is in effect). A self test condition is entered, and an OK result code is sent to the DTE. During the test the modem sends a test message and counts errors in the looped back signal. The test is terminated when the timer times out (S18) or the &T0, H0, or Z command is issued. When the test is terminated, the three-digit error count is sent to the DTE. An OK result code follows the error count. Result Codes: Description ------------------------------------------------------------------------ OK If a self test state is entered. OK After error count is sent to DTE. ERROR If any other V.54 test is active &T1,&T3,&T6,&T7), or if on-line. ------------------------------------------------------------------------ &T19 - Perform RTS/CTS Cable Test Software can use &T19 to help determine whether the DTE-to-Modem cable supports the RTS and CTS signals necessary for hardware flow control, which is selected by the &K3 command. &T19 in the modem works interactively with the DTE to confirm the RTS and CTS signal. Only the DTE can detect CTS, and only the modem can detect RTS. The modem cannot verify both signals without the active involvement of the DTE software. The modem performs the following algorithm in response to the AT&T19 command: 1. Turns OFF CTS (normally ON). 2. Starts a 500 millisecond timer. 3. Monitors RTS for ON and OFF states. 4. If both states of RTS are detected before the 500ms timer expires then: a. Restore CTS to the ON state. b. End the test (stop the timer). c. Return the OK result code (meaning the modem has verified RTS). 5. If the timer expires before both states of RTS are detected then: a. Restore CTS to the ON state. b. Return the ERROR result code (meaning the modem has not verified RTS). Note: By itself, the modem cannot verify either signal. The DTE must toggle RTS during the test in order for the modem to be able to detect a change. Also, the DTE should look for CTS to drop during the test to verify it is connected. The following algorithm is used by Hayes Smartcom software in its use of the &T19 test: 1. Issue AT&T19 Note: For more predictable timing, do not combine other commands on the same command line with &T19. Also, higher DTE port speeds improve the timing resolution. 2. Wait 500ms for CTS to drop. If CTS does not drop in that time, then the test fails. 3. If CTS drop is detected, then: a. Drop RTS, wait 50ms, raise RTS, wait 50ms, repeat up to 6 times, or until CTS is detected high. b. If CTS is detected returning high before 6 iterations, then the test is passing (and an OK result code may be expected soon), or if all 6 iterations did not result in CTS being raised, then the RTS part of the test is failing (and an ERROR result code may be expected after the 500ms timer expires). 4. Process the result code from the modem. Success during Step 3 above and an OK result code implies that RTS and CTS are both wired correctly. Failure during Step 3 or an ERROR result code implies that either RTS or CTS is not wired in the cable. Note: Keep in mind that the result code may arrive while you are still in Steps 2 and 3 above. A modification to the software algorithm could be made to permit software to detect which signal is missing from the cable. After issuing the AT&T19 command, give the modem about 100ms to drop CTS. Then, even if the CTS drop is not detected, proceed to toggle RTS anyway, keeping in mind that the CTS part of the test has failed. RTS/CTS flow control is preferred because it is "out of band", that is, it does not consume any of the 256 serial codes from the user data. XON/XOFF flow control uses DC1 (ASCII 17) and DC3 (ASCII 19). If RTS/CTS is not supported, then Transparent Flow Control (&K5) is the next best option (IF the software supports it) because it accomplishes Xon/Xoff flow control without interfering with the user data (e.g. during binary file transfers). &U - Trellis Coding Options The &U command is used to enable and disable Trellis coding for V.32 connections. Trellis coding is a method of forward error correction that adds information to the base modulation scheme to record successive dependencies between transmitted signal points. This selection affects V.32 9600 bps and 4800 bps transmissions only. ----------------------------------------------------------------------- &U0 Enable Trellis coding &U1 Disable Trellis coding ----------------------------------------------------------------------- &V - View Configuration Profiles The &V command is used to display the active and stored profiles (commands and S-register settings) along with any stored telephone numbers. Input from the DTE is ignored while this view configuration information is being sent to the DTE. The example below illustrates typical &V information supplied when the factory-set default configuration profile is loaded and then stored into the stored profiles, and an arbitrary phone number is stored in one of the stored numbers locations. Note that the contents and structure of these profiles vary from modem to modem. ACTIVE PROFILE: B0 B41 B60 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C0 &D0 &G0 &J0 &K3 &Q5 &R0 &S0 &T4 &U0 &X0 &Y0 S00:000 S01:000 S02:043 S03:013 S04:010 S05:008 S06:002 S07:030 S08:002 S09:006 S10:014 S11:070 S12:050 S18:000 S25:005 S26:001 S36:005 S37:000 S38:020 S44:003 S46:002 S48:007 S49:008 S50:016 S95:000 STORED PROFILE 0: B0 B41 B60 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C0 &D0 &G0 &J0 &K3 &Q5 &R0 &S0 &T4 &U0 &X0 S00:000 S02:043 S06:002 S07:050 S08:002 S09:006 S10:014 S11:095 S12:050 S18:000 S25:005 S26:001 S36:005 S37:000 S38:020 S44:003 S46:002 S48:007 S49:008 S50:016 STORED PROFILE 1: B0 B41 B60 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C0 &D0 &G0 &J0 &K3 &Q5 &R0 &S0 &T4 &U0 &X0 S00:000 S02:043 S06:002 S07:050 S08:002 S09:006 S10:014 S11:095 S12:050 S18:000 S25:005 S26:001 S36:005 S37:000 S38:020 S44:003 S46:002 S48:007 S49:008 S50:016 TELEPHONE NUMBERS: 0= 1=T9W14045551212 2= 3= The three-digit numbers after each S-register number are decimal representations of the S-register contents. &V6 - View Blacklisting Entries This command displays "blacklisted" telephone numbers, the number of attempts to each listed number, and the number of calls attempted since the last connection to a modem. Note that this command is only available in modems subject to "blacklisting" regulations set by certain modem approval agencies. Refer to the your user documentation to see if this command applies. &W - Write Active Profile to Memory The &W command stores certain command options and S-register values into one of the modem's two nonvolatile stored profile memory locations. The command options and register values stored depend on the particular modem. These are indicated in the user documentation for your modem. In addition, the AT speed and parity are stored, according to the values used at the time the command is issued. ------------------------------------------------------------------------ &W0 Store the Active Profile into Stored Profile 0 &W1 Store the Active Profile into Stored Profile 1 ------------------------------------------------------------------------ &X - Synchronous Transmit Clock Source The &X command determines how the DTE transmit clock is generated while the modem is in the synchronous mode. ------------------------------------------------------------------------ &X0 Modem generates the transmit clock and applies it to pin 15 (RS-232). &X1 DTE generates the transmit clock on pin 24 (EIA 232D) and the modem applies this clock to pin 15 (EIA 232D). This setting is available for external modems only. &X2 Modem derives the transmit clock from the receive carrier signal and applies it to pin 15 (RS-232). ------------------------------------------------------------------------ &Y - Select Stored Profile For Hard Reset The &Y command selects which stored profile will be copied into the active profile subsequent to a hard reset (including power-up). The &Y command execution is nonvolatile, stored at the time the command is executed, not by the &W command. The value selected with this command is not affected by the &F command, although &Y0 is selected as part of the overall factory setup. ------------------------------------------------------------------------ &Y0 Select Stored Profile 0 on power-up &Y1 Select Stored Profile 1 on power-up ------------------------------------------------------------------------ &Zn=x - Store Telephone Number The &Zn=x command is used to store up to four dialing strings in the modem's nonvolatile memory for later dialing. The format for the command is &Zn="stored number" where n is the location 0-3 to which the number should be written. For example, the line AT&Z2=5552368 writes 5552368 as the third of four possible numbers to the modem's "telephone book" in nonvolatile memory. The &Zn=x command can be used to store a number with as many as 36 characters. Any dialing string can be saved except the S dialing modifier (this would cause a stored dialing string to attempt to dial another stored string), or the ; modifier if used for automatic dialing in synchronous mode 2. If no dial string follows the command, the referenced stored number will be cleared. ------------------------------------------------------------------------ &Z &Z= &Zn= ... where n=0-3 ------------------------------------------------------------------------ If the delimiter (=) is not present, the characters following the &Zn=x are treated as telephone numbers and/or modifiers and are stored in location 0. For example, in &Znxxxx, the n is a part of the phone number. If the delimiter is present the characters following it are stored in the location specified by the character preceding the delimiter (which must be in the range 0-3). If no character precedes the delimiter, the number is stored in location 0. If an invalid location is specified (n) the modem sends an ERROR result code. Characters not listed above as storable are ignored. For example, the command &Z1=3456H;AX would store 3456;A. ************************************************************************ 1.2 Result Code Listing This section defines the result codes returned by Hayes modems in response to commands. The table below shows the various formats in which modem responses can be presented. Note that the "text" of the info-text may consist of multiple lines of text. The formats depicted here only refer to the characters between info-texts and not within them. ------------------------------------------------------------------------ V0 V1 Information Text text text Result Codes numeric code verbose code ------------------------------------------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1.2.1 Command Response and Call Progress Monitoring This set of result codes includes responses to commands and call progress monitoring responses. They are available to all modems within the capabilities of the modem. For example, the result code CONNECT 9600 is not available to Smartmodem 2400. The factory setting for all high- speed modems enables the extended set of call progress monitoring (X4). When set up in this way, the modem performs and reports full call progress monitoring (RING, NO CARRIER, NO DIALTONE, and BUSY). It also indicates the speed of the connection (CONNECT 1200 as opposed to simply CONNECT). The factory setting for Smartmodem 300, Smartmodem 1200, and all others whose highest speed is 1200 bps is basic call progress monitoring (X0). The command response and call progress monitoring result codes are defined below: 0 - OK This result code indicates that a command or command string was executed. Note that if more than one command were included on a line and an ERROR result code received, this means that one or more of the commands was not processed. If one or more were executed properly, but even one was invalid, no OK will be issued, only the ERROR. 1 - CONNECT This result code indicates a connection was made between the DTE and the modem. If X4 (extended set of call progress monitoring) were selected, the code indicates that a connection from at 0 to 300 bps was made. However, if X0 (basic set of call progress monitoring) were selected, the connection could be 0-300, 1200, 1200/75, 75/1200, 2400, 4800, 7200, 9600, 14400, 19200, or 38400 bps. If the modem is not operating in error-control or ASB mode, this is the same as the line speed. See other CONNECT messages and CARRIER messages. 2 - RING This result code indicates the modem has detected a ring signal. No distinction can be made as to whether this is a voice call, a modem call, a fax call, or other type. 3 - NO CARRIER This result code indicates that no carrier signal was detected, or that the signal was lost. This is the response the modem will give when no connection is made; see CONNECT result code. The modem will also return this message when the connection is broken, either intentionally as when the hangup process completes, or if line difficulties break the connection. 4 - ERROR This result code indicates that an invalid command was issued, or that there was an error in the command line. For example, if the command line exceeds the character limit for your modem, this result code will be returned. See your user documentation to determine the character limit for your modem. This result code is also returned in response to the I1 command requesting a ROM checksum, if the modem detects an error in the computation. 5 - CONNECT 1200 This result code indicates a connection has been established at 1200, 1200/75 or 75/1200 bps between the modem and the DTE. If the modem is not operating in error-control mode, this is the same as the line speed. This result code is disabled by X0. Only CONNECT is reported. 6 - NO DIALTONE This result code indicates that no dial tone was detected when the modem went off hook. Dial tone detection and this result code are enabled by X2 or X4, or the W dial modifier. 7 - BUSY This result code indicates that the modem detected a busy signal when it attempted to connect with the modem at the number dialed. Busy signal detection and this result code are enabled by X3 or X4. 8 - NO ANSWER This result code indicates no silence was detected when dialing a system not providing a dial tone. Enabled by the @ dial modifier. 10 - CONNECT 2400 This result code indicates a connection has been established at 2400 bps between the modem and the DTE. If the modem is not operating in error- control mode, this is the same as the line speed. This result code is disabled by X0. Only CONNECT is reported. 11 - CONNECT 4800 This result code indicates a connection has been established at 4800 bps between the modem and the DTE. This result code is disabled by X0. 12 - CONNECT 9600 This result code indicates a connection has been established at 9600 bps between the modem and the DTE. This result code is disabled by X0. 13 - CONNECT 14400 This result code indicates a connection has been established at 14400 bps between the modem and the DTE. This result code is disabled by X0. 14 - CONNECT 19200 This result code indicates a connection has been established at 19200 bps between the modem and the DTE. This result code is disabled by X0. 22 - CONNECT 1200/75 This result code indicates a connection has been established at 1200 bps when transmitting data and 75 bps when receiving data between the modem and the DTE. 23 - CONNECT 75/1200 This result code indicates a connection has been established at 75 bps when transmitting data and 1200 bps when receiving data between the modem and the DTE. 24 - CONNECT 7200 This result code indicates a connection has been established at 7200 bps between the modem and the DTE. This result code is disabled by X0. 25 - CONNECT 12000 This result code indicates a connection has been established at 12000 bps between the modem and the DTE. This result code is disabled by X0. 28 - CONNECT 38400 This result code indicates a connection has been established at 38400 bps between the modem and the DTE. This result code is disabled by X0. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1.2.2 Negotiation Progress Messages Hayes products report special result codes during error-control negotiation. Whether or not these messages are displayed is selected with the W command (not to be confused with the W dial modifier). The factory setting is messages disabled (W0) to avoid conflict with software programs that do not support this additional level of call progress monitoring. Negotiation progress messages are reported in the following order: CARRIER PROTOCOL AUTOSTREAM COMPRESSION CONNECT If AutoStream is not used, no message is reported. 40 - CARRIER 300 This message indicates that a carrier signal has been detected at 300 bps (modem-to-modem line speed). 44 - CARRIER 1200/75 This message indicates that a carrier signal has been detected at 1200 bps when transmitting and at 75 when receiving (modem-to-modem line speed). 45 - CARRIER 75/1200 This message indicates that a carrier signal has been detected at 75 bps when transmitting and at 1200 bps when receiving (modem-to-modem line speed). 46 - CARRIER 1200 This message indicates that a carrier signal has been detected at 1200 bps (modem-to-modem line speed). 47 - CARRIER 2400 This message indicates that a carrier signal has been detected at 2400 bps (modem-to-modem line speed). 48 - CARRIER 4800 This message indicates that a carrier signal has been detected at 4800 bps (modem-to-modem line speed). 49 - CARRIER 7200 This message indicates that a carrier signal has been detected at 7200 bps (modem-to-modem line speed). 50 - CARRIER 9600 This message indicates that a carrier signal has been detected at 9600 bps (modem-to-modem line speed). 51 - CARRIER 12000 This message indicates that a carrier signal has been detected at 12000 bps (modem-to-modem line speed). 52 - CARRIER 14400 This message indicates that a carrier signal has been detected at 14400 bps (modem-to-modem line speed). 66 - COMPRESSION: CLASS 5 This message indicates that data compression using MNP Class 5 has been negotiated for the connection. 67 - COMPRESSION: V.42BIS This message indicates that data compression using CCITT V.42bis has been negotiated for the connection. 68 - COMPRESSION: ADC This message indicates that data compression using Hayes Adaptive Data Compression has been negotiated for the connection. 69 - COMPRESSION: NONE This message indicates that data compression was not negotiated for the connection. 70 - PROTOCOL: NONE This message indicates that no protocol was negotiated for the connection. A standard asynchronous connection was made. 71 - PROTOCOL: ERROR-CONTROL/ LAPB This message indicates that an error-control connection was negotiated with LAPB protocol. 72 - PROTOCOL: ERROR-CONTROL/ LAPB/HDX This message indicates that a half-duplex error-control connection was negotiated with LAPB protocol. 73 - PROTOCOL: ERROR-CONTROL/LAPB/AFT This message indicates that an error-control connection was negotiated using the Hayes Asynchronous Framing Technique. This protocol is used for connections between modems such as Smartmodem 1200 that do not communicate synchronously across the telephone line. AFT enables an error-control protocol to be used. 74 - PROTOCOL: X.25/LAPB This message indicates that an error-control connection using the X.25 protocol was established with a carrier speed of 1200, 2400, 4800, or 9600 bps. 75 - PROTOCOL: X.25/LAPB/HDX This message indicates that a half-duplex error-control connection using the X.25 protocol was established with a carrier speed of 4800 or 9600 bps. 76 - PROTOCOL: X.25/LAPB/AFT This message indicates that an asynchronous error-control connection using the X.25 protocol was established with a carrier speed of 1200 bps. The Hayes Asynchronous Framing Technique was used. 77 - PROTOCOL: LAP-M This message indicates that an error-control connection using the V.42 LAPM protocol was established. 78 - PROTOCOL: LAP-M/HDX This message indicates that a half-duplex error-control connection using the V.42 LAPM protocol was established. 79 - PROTOCOL: LAP-M/AFT This message indicates that an asynchronous error-control connection using the V.42 LAPM protocol was established with a carrier speed of 1200 bps. The Hayes Asynchronous Framing Technique was used. 80 - PROTOCOL: ALT This message indicates that an errorge indicates that an error-control connection using the V.42 LAPM alternative protocol was established. This protocol is MNP Classes 2, 3, and 4 compatible. 91 - AUTOSTREAM: LEVEL 1 This message indicates that Hayes AutoStream Level 1 has been negotiated for the connection. This technique provides for multiplexing of multiple virtual channels. 92 - AUTOSTREAM: LEVEL 2 This message indicates that Hayes AutoStream Level 2 has been negotiated for the connectionsage indicates that Hayes AutoStream Level 2 has been negotiated for the connection. This technique provides for multiplexing of multiple virtual channels, with transparent control of one PAD (non- simultaneous). Level 3 has been negotiated for the connection. This technique provides for multiplexing of multiple virtual channels, with transparent control of all PADs (simultaneous). 93 - AUTOSREAM LEVEL 3 This message indicates that Hayes Autostream Level 3 has been negoitiated for the connection. This technique provides for multiplexing of multiple virtual channels, with transparent control of all PADs (simultaneous). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1.2.3 Information Text (INFO-TEXT) Some commands, such as &V and Sr? return information text as opposed to numeric or verbose codes. The alpha characters are headings and commands and the numbers are command options, ASCII values, counter values, etc. The example below illustrates a modem response to a command with information text. ACTIVE PROFILE: B0 B41 B60 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C0 &D0 &G0 &J0 &K3 &Q5 &R0 &S0 &T4 &U0 &X0 &Y0 S00:000 S01:000 S02:043 S03:013 S04:010 S05:008 S06:002 S07:030 S08:002 S09:006 S10:014 S11:070 S12:050 S18:000 S25:005 S26:001 S36:005 S37:000 S38:020 S44:003 S46:002 S48:007 S49:008 S50:016 S95:000 Information Text is always a combination of alpha and numeric characters. The V command has no affect on the format of this command response. Note that the contents and format of the profile may vary from model to model. ************************************************************************ 1.3 S-Register Listing The following definitions include all S-registers defined for the various families of Hayes modems. Some factory settings and ranges are included here because they are almost universally implemented with these values; however, be sure to consult the user documentation that came with your modem for the S-registers and their ranges/factory settings that your modem supports. Note that S-register numbers not included in this listing are those for which no function has been assigned. S0 Ring to Answer After S0 sets the ring number on which the modem automatically answers a call when auto-answer mode is selected. S0=0, the factory setting, disables auto-answer. S1 Ring Count When the modem is in the command state and set for auto-answer (S0>0), the modem automatically tracks the number of times the phone rings, incrementing and writing the value in S1. The value reverts to 0 if no ring occurs for 8 seconds. Once a connection is made, the modem resets the value of S1 to 0. Note that two short ring bursts within a ring cycle are counted as two rings. S2 Ecape Sequence Character S2 holds the ASCII value of the escape sequence character. The factory- set value is ASCII 43, the plus sign (+). The value for this register can be set to any ASCII value between 0 and 127. Setting S2 to a value greater than 127 disables the escape sequence, preventing the modem from returning to the command state and disabling command recognition. S3 Carriage Return Character S3 holds the ASCII value of the line terminating character. The factory- set value is ASCII 13 - carriage return () - the range for the register is 0-127. This character is used both as the command line terminator and the result code terminator. S4 Line Feed Character S4 holds the ASCII value of the line feed character. The factory setting is 10; the range is 0-127. S5 Backspace Character S5 holds the ASCII value of the backspace character. The factory-set value is ASCII 08; the range for the register is 0-32, 127. This character moves the cursor left, removing the previous character. As this value actually represents the combined operation of three characters (a backspace, a space, and another backspace), the time allotted to process the backspace character must not be any less than the time required by the modem to transmit three characters. For this reason, a repeat-key function may not operate properly on backspaces. S6 Wait Before Blind Dialing S6 determines how long the modem waits after going off-hook before it dials. This delay allows time for the central telephone office to detect the off-hook condition of the line and apply dial tone. This wait time only applies to the first dial tone. S6 is used only if X0, X1, or X3 is selected. Selecting X2 or X4 enables dial tone (call progress) detection and disables blind dialing, thus making the setting of S6 irrelevant. The value of this register can be set for any number from 4 through 7 seconds. This feature allows you to increase the time delay if you have difficulty obtaining dial tone within 4 seconds. Note: The Wait Before Dialing call progress monitoring feature (W dial modifers) applies only to detection of a second dial tone and is independent of any S-register setting. S7 Wait for Carrier after Dialing S7 determines the modem's time delay between dialing and responding to an incoming carrier signal after initial connection. If the modem does not detect a carrier within this time, the modem hangs up and returns the NO CARRIER result code. If the modem detects a carrier within the specified time, it goes on line. S8 Duration of Delay for Comma Dial Modifier S8 determines the duration of the delay generated by the comma (,) dial modifier. S9 Carrier Detect Response Time S9 determines how many seconds a carrier signal must be present for the modem to recognize it and issue a carrier detect. The value for the register is measured in tenths of a second. The factory setting is 6 (0.6 second); the range is 1 (0.1 second) to 255 (25.5 seconds). Note: The S9 value affects the time required to recognize the presence of carrier only if X3 or X4 is selected. The modem also ignores the value in register S9 when operating in half-duplex synchronous or asynchronous mode. S10 Delay Between Lost Carrier and Hang Up S10 specifies the time between loss of remote carrier and local modem disconnect. The delay permits the carrier to disappear momentarily without causing the modem to hang up. The value for the register is measured in tenths of a second. The range for most modems is 1 (0.1 second) to 255 (25.5 seconds). The modem recognizes a carrier after the period of time specified in S9. Therefore, if the value of S10 is less than that set for S9, even a momentary loss of carrier will cause the modem to disconnect. Setting the register to 255 causes the modem to ignore actual carrier status and assume a carrier is always present. When operating in half-duplex synchronous mode, S10 specifies the maximum time (in seconds) that a carrier may be continuously present or absent before causing the modem to disconnect. S11 Multi-Frequency Tone Duration S11 determines the duration and spacing of tones in multi-frequency tone dialing. The value in this register has no effect on the speed of pulse dialing. S12 Escape Sequence Guard Time S12 holds the value of the delay required prior to and following the escape sequence. The guard time also dictates how quickly the escape sequence characters must be entered, since the interval between entry of each of the three characters must be of shorter duration than that specified for the guard time. If guard time is set to 0, timing is not a factor. S18 Modem Test Timer S18 establishes the duration of the modem's diagnostic tests. When a test is active for a length of time equal to the value chosen for this register, the modem automatically terminates the test. A setting of zero (0) disables the test timer (factory setting). The range for this register is 0-255 seconds. S25 DTR Detection S25 serves two purposes. When the modem is operating in synchronous mode 4, the value assigned to S25 specifies the length of time the modem waits after a connection has been made, before examining the DTR circuit. This allows the modem to ignore an on-to-off transition of DTR and gives the user sufficient time to disconnect the modem from the asynchronous terminal and attach it to a synchronous terminal, without forcing the modem back to the asynchronous command state. During this time, the value of S25 is read in full seconds (e.g., the factory-set value of 5 equals 5 seconds, instead of 0.05 seconds). In all other modes, and after call establishment in synchronous mode 4, the value is read in 1/100 seconds. In any mode, a change in DTR (on or off) that persists for a period shorter than the value held in S25 is ignored by the modem while it is on-line. The range of values for S25 is 0-255. S26 RTS to CTS Interval S26 is used to specify the interval to delay before turning on CTS after an off-to-on transition of RTS. This value takes effect when the &R0 command option has been selected. This setting applies to synchronous modes 1, 2, and 3 only. The factory-set value is 1 (.01 seconds) with a range of 0-255. S30 Inactivity Timeout S30 monitors the line to prevent unnecessary connection time. If no data transfer is detected (while the modem is in the on-line state) for a duration specified by this register, the modem hangs up and returns to the idle state. When the value of S30 is set to 0, the timer is disabled. The factory setting is 0 seconds; the range is 0-255 units of 10 seconds. Note that S30 is only effective in &Q0, &Q5 or &Q6 modes; it is not enabled in any synchronous modes. S33 AFT Options Register S33 applies only to communications using a V-series Modem Enhancer with a Smartmodem 1200 which has an asynchronous DTE link. This register selects the options to be used with Hayes Asynchronous Framing Technique (See the description of S44). AFT offers options to prevent certain characters (like XON and XOFF) from being sent. Normally AFT uses all 256 ASCII character codes; that is, it uses characters with 8 data bits. If intervening equipment is limited to 7-bit operation, the Eight-Bit Data Transparency option (S33=4) can be enabled. With this option, AFT limits itself to using characters with 7 data bits. This pertains only to the communication link between the two modems, not to the format of the data. The data itself is unaffected by enabling any AFT transparency options. ------------------------------------------------------------------------ 0 No transparency options required (factory setting). 1 Flow Control Transparency. AFT makes transparent the XON and XOFF control characters sent from the DTE to the modem. The XON and XOFF characters themselves are not sent over the communication link; characters that substitute for these functions are transmitted, instead. 2 Select Control Character Transparency. 4 Select Eight-Bit Data Transparency. 5 Select both Flow Control Transparency and Eight-Bit Data Transparency. 6 Select both Control Character Transparency and Eight-Bit Data Transparency. ------------------------------------------------------------------------ If feature negotiation is active, the transparency option selected by one modem is used by both modems. S36 Negotiation Failure Treatment When an attempt to make an error-control connection fails, the modem reads this register to determine whether to terminate the connection, make an asynchronous connection (otherwise selected with &Q0), or make an asynchronous connection with ASB (otherwise selected with &Q6). This register is referenced only when the error-control mode has been selected with the &Q5 command (factory setting) and this communication mode cannot be negotiated. ------------------------------------------------------------------------ 0 Hang up. 1 Attempt a standard asynchronous connection (&Q0). 3 Attempt an asynchronous connection using automatic speed buffering (&Q6). 4 Attempt a V.42 Alternative Protocol connection (MNP compatible); if negotiation fails, hang up. 5 Attempt a V.42 Alternative Protocol connection (MNP compatible); if negotiation fails, attempt a standard asynchronous connection. 6 Attempt a V.42 Alternative Protocol connection (MNP compatible); if negotiation fails, hang up. 7 Attempt a V.42 Alternative Protocol connection (MNP compatible); if negotiation fails, attempt an asynchronous connection using automatic speed buffering (ASB). ------------------------------------------------------------------------ In asynchronous mode, the CONNECT XXXX message will be returned with a successful connection. This message indicates the speed of the connection, which is also the speed of data transmitted from computer to modem. Note: The selected fallback option can be initiated immediately with S48. For example, a connection attempt using the Alternative Protocol can be forced by setting S48=128 and S36=5 or 7. The following table shows the order in which the bits of S36 are evaluated: (Remember, these steps only occur after the S46/S48 selections have failed to make a LAPBased error-controlled connection in &Q5 mode.) --------------------------------------------------------------------------- S36 Bit 7-3=0 reserved First Bit 2 (4) If set, means try MNP protocol; reset means don't use MNP. Third Bit 1 (2) If set, means fall back to ASB; reset means direct async. Second Bit 0 (1) If set, means fall back based on Bit 1; reset means hang up. ------------------------------------------------------------------------ Also see Appendix D,"Establishing the Desired Connection and Fallback Strategy." S37 Desired DCE Line Speed The modem attempts to connect with a remote modem at the highest supported DCE speed that does not exceed the value specified by this register. If S37 is set to a speed higher than that supported by the modem, it will attempt to connect at its highest capability. Note that this is the speed of modems across the telephone line, not the speed at which the modem communicates with the attached DTE. --------------------------------------------------------------------------- 0 Attempt to connect at highest line speed that does not exceed the speed of last AT command issued. 1 Attempt to connect at 75 bps 2 Attempt to connect at 110 bps 3 Attempt to connect at 300 bps 4 Reserved 5 Attempt to connect at 1200 bps 6 Attempt to connect at 2400 bps 7 Attempt to connect at 4800 bps 8 Attempt to connect at 7200 bps 9 Attempt to connect at 9600 bps 10 Attempt to connect at 12000 bps 11 Attempt to connect at 14400 bps ---------------------------------------------------------------------------- S38 Delay Before Forced Hang up S38 specifies the delay between the modem's receipt of the command to hang up (or on-to-off transition of DTR if the modem is configured to follow the signal) and the disconnect operation. This register is useful for error-control communications to ensure that data in the modem buffers is sent before the connection is terminated. The factory setting is 20 (seconds). If this register is set between 0 and 254, the modem will wait that number of seconds for the remote modem to acknowledge receipt of all data in buffers before hanging up. If this timeout occurs before all data can be sent, the NO CARRIER (3) result code will be sent to indicate that data has been lost. If all data is transmitted prior to the timeout, the response to the H0 command will be OK. If S38 is set to 255, the modem does not timeout, and continues to attempt to deliver data in buffers until the connection is lost, or the data is delivered. S43 Current DCE Speed The value in S43 indicates the DCE speed of the last carrier established. This is a read-only register. --------------------------------------------------------------------------- 0 No connection 1 Reserved 2 110 bps 3 300 bps 4 Reserved 5 1200 bps 6 2400 bps 7 4800 bps 8 7200 bps 9 9600 bps 10 12000 bps 11 14400 bps --------------------------------------------------------------------------- S44 Asynchronous Framing Technique Selection Register S44 applies only to communications using a V-series Modem Enhancer with a Smartmodem 1200 that connects using an asynchronous link across the telephone line. S44 sets the use of the Hayes Asynchronous Framing Technique. Connections to a packet-switched network or between two error-control modems using either Error-control/LAPB or X.25 protocol are usually synchronous connections, even though the user interface is always asynchronous. Some environments may require asynchronous to synchronous conversion in the protocol because equipment is limited to asynchronous operation, or an asynchronous to synchronous conversion is already in place. For example, most Hayes 1200 bps modems support only asynchronous communication over the telephone line. When one of these modems is connected to a V-series Modem Enhancer, the interface between the two is always asynchronous. A feature provided by the V-series Modem Enhancer called the Asynchronous Framing Technique (AFT) makes this possible. When AFT is enabled, the output of the error-control protocol is asynchronous instead of synchronous. The values of S44 are as follows: ------------------------------------------------------------------------ 2 Use AFT. When AFT is selected, the data output is asynchronous instead of synchronous. AFT is required if the path your call takes passes through asynchronous-only equipment. 3 The modem automatically selects whether or not to use AFT. V-series Modem Enhancer, when connected to a Smartmodem 1200, automatically uses AFT (factory setting). ------------------------------------------------------------------------ If the modem is configured to use feature negotiation, and the other modem is using AFT, both modems automatically select AFT. S46 Error-control Protocol Selection S46 specifies the error-control method used for subsequent connections. Because the factory setting will be a protocol for point-to-point communications, other connections, such as the X.25 protocol must be enabled by setting S46. Feature negotiation enables two communicating modems to identify the common protocols, and chooses one based on the user-configuration for the communication session. For example, if an ULTRA product is configured to use the X.25 protocol, but connects with a V-series product without X.25 capability, an error-control protocol is automatically selected because both modems support it. However, if a ULTRA product with X.25 connects with another ULTRA product with X.25, both can use X.25 protocol if configured to do so (S46=6). When attempting a connection to a packet-switched network, automatic feature negotiation is usually disabled because unless an X.25 connection can be made, further network connections cannot be made. To disable automatic feature negotiation and make an X.25 connection or hang up, set S46=134. The options for this register are described below: ------------------------------------------------------------------------ 0 Either LAPM or fallback to LAPB 1 LAPB only 2 LAPM or fallback to LAPB; use data compression* 3 LAPB with data compression* 6 X.25 or fallback to LAPB; use data compression* 134 X.25 136 LAPM only 138 LAPM with data compression* ------------------------------------------------------------------------ * Note: The technique negotiated is determined by capabilities and configuration of both modems. V.42bis is attempted first, then Hayes Adaptive Data Compression. If neither method is supported by both modems, or if either modem has compression disabled, no compression will be used. S48 Enabling/Disabling Feature Negotiation S48 selects how feature negotiation is used when making connections with the remote system. The negotiation process can be tailored to suit a connection, or bypassed altogether. For example, when the capabilities of the remote modem are known, negotiation is unnecessary. The factory setting is 7, negotiation enabled. With feature negotiation disabled, the modem assumes that the remote modem is configured the same as itself, and proceeds to activate the error-control protocol specified by the S46 (protocol options) setting. Use 128 when calling a packet-switched network that does not support feature negotiation. ------------------------------------------------------------------------ 0 Negotiation disabled; presume the remote modem is configured for and has the capabilities necessary for the connection selected with S46. 3 Negotiation enabled, but originating modem remains silent during detection phase. For connections with MNP modems; however, this setting defeats the negotiation sequence with other V.42 modems. 7 Negotiation enabled. 128 Negotiation disabled; forces fallback options specified in S36 to be taken immediately. ------------------------------------------------------------------------ S49 ASB buffer size lower limit S49 sets the lower limit of the modem's buffer when communicating in asynchronous mode with ASB. The range of this register is 1-249. The factory setting is 8 bytes. S50 ASB buffer size upper limit S50 sets the upper limit of the modem's buffer when communicating in asynchronous mode with ASB. The range of this register is 2-250 bytes. The factory setting is 16 bytes. S53 Global PAD Configuration S53 defines a set of behavior switches that control the PAD and all four channels in the Hayes product. This fixed user interface provides software and users with a consistent PAD command interface regardless of current PAD parameter settings. The fixed user interface is effective in all states except the on-line (data transfer) state. For example, the factory-set value of PAD parameter 2 is zero, which turns off character echo. This is required for a transparent on-line state (e.g., for Smartmodem product emulation). However, since it may be difficult to enter PAD commands without seeing them echoed at your terminal, a method of controlling the PAD despite the parameter settings would be necessary. The fixed user interface affects the following in all states, except the on-line state: * Transmission of all PAD result codes, including the prompt PAD result code. * Echo control via the E command. * Fixed editing characters (delete character is defined by S5, delete line character is Control-X, line display character is Control-R). * Echo mask masks only the editing characters. The fixed PAD control interface affects the following in all states: * Disables PAD recall using a character (PAD parameter 1) or a break signal. * Disables all PAD flow control (PAD parameters 5, 12). * Disables carriage return (PAD parameter 9) and line feed (PAD parameter 14) padding. * Disables line folding (PAD parameter 10). * Existing result codes use result codes for terminal (PAD parameter 19). * Disables page wait (PAD parameter 22). * Disables execution of ANS and EXEC strings. * Disables EXEC command. If the value of S53 includes any bit value except 1, the PAD prompt character changes from * to -. The change in the prompt PAD character provides an indication that the PAD is not in CCITT mode. The register's values are provided below: ------------------------------------------------------------------------ 0 Normal CCITT-compatibility mode. 1 Normal CCITT-compatibility mode. PAD prompt is an asterisk (*) and appears with the channel number (e.g., 1*). 2 Fixed user interface. PAD prompt is a hyphen (-). 3 Fixed user interface. PAD prompt is a hyphen and appears with the channel number (e.g., 1-) (factory setting). 4 Fixed control interface. PAD prompt is a hyphen. 5 Fixed control interface. PAD prompt is a hyphen and appears with the channel number. 6 Fixed user and fixed control interface. PAD prompt is a hyphen. 7 Fixed user and fixed control interface. PAD prompt is a hyphen and appears with the channel number. ------------------------------------------------------------------------ S55 AutoStream Protocol Request S55 allows the user to request one of the AutoStream levels. The range is 0 to 3 with a factory setting of 0. Parameter Description Value ------------------------------------------------------------------- 0 No AutoStream. 1 Request AutoStream Level 1 (allows multiplexing of multiple virtual channels on the DTE). 2 Request AutoStream Level 2 (allows transparent control over one PAD at a time - non simultaneous). 3 Request AutoStream Level 3 (allows transparent control over all PADs simultaneously). ------------------------------------------------------------------------ S56 AutoStream Protocol Status S56 reflects the status of the current AutoStream level. An alternative to reading this register is examining the extended result codes (see W1). The range is 0 to 3 with a factory setting of 0. This register applies to Hayes modems that support X.25 and AutoStream. Parameter Description Value ------------------------------------------------------------------------ 0 Indicates no AutoStream. 1 Indicates AutoStream Level 1 (allows multiplexing of multiple virtual channels on the DTE). 2 Indicates AutoStream Level 2 (allows transparent control over one PAD at a time - non simultaneous). 3 Indicates AutoStream Level 3 (allows transparent control over all PADs simultaneously). ------------------------------------------------------------------------ S57 Network Options Register This bit-mapped register allows configuration of the packet layer for operation with different networks. This register applies to Hayes modems that support X.25 and AutoStream. Bit 0: Address may be sent in the call accept or clear request packets. Otherwise, the address length is set to zero. Bit 1: Neither address, facility, nor data fields may be set in call accept or clear request packets. Address is not sent, even if used in combination with bit value 1. ------------------------------------------------------------------------ S57=0 In call accept or clear request packets, the address length is set to zero, but facility and data fields may be present (factory setting). S57=1 In call accept or clear request packets, address, facility, or data fields may be present. S57=2, 3 In call accept or clear request packets, no fields may be sent. ------------------------------------------------------------------------ S63 Private Circuit (Leased Line) Carrier Level Adjustment S63 selects the carrier power level in dBm for leased line operation. This register specifies a nominal carrier level value. The range for this register is 0-15 (0 dBm to -15 dBm). The factory setting is 0. Note that for those modems supporting leased line operation, carrier level (if adjustable) may be set by other means. Please refer to the modem's installation information for details. S69 Link Layer Window Size S69 sets the number of frames (packets) sent between acknowledgements from the remote system. Each frame is one packet and the window size is how many frames you can send before you must stop and wait for the remote end to send an acknowledgement that it received the frames and is ready to receive more frames. The range is 1-15 with a factory setting of 15. LAPM connections use a window size of 1-15; LAPB connections and X.25 connections use a window size of 1-8. If a LAPB or X.25 connection is made, any value greater than 8 is treated as 8. Reducing window size can reduce performance. Reduce the window size only when so instructed by the network (this rarely occurs). S70 Maximum Number of Retransmissions S70 limits the number of times the modem will retransmit a frame. Retransmissions become necessary when data errors introduced by noise disrupt the reception of a frame. When the limit set by S70 is reached, the modem hangs up. Raising this limit may be necessary if, for example, telephone lines are extremely noisy. The retransmission delays may be undesirable, but the modem will not hang up. The range for this register is 0-255, with a factory setting of 10. S71 Link Layer Timeout When the link layer sends a character, it starts a timer referenced in the formula below as "T1." If the remote end does not respond after T1 seconds, the link layer retransmits. The value of T1 is computed automatically based on the connection speed and maximum packet size. T1 = 2 * (maximum packet size + 11) * (8 V bits per second) + T2 + 500 msec The S71 setting is represented by the "T2" in the formula. The setting affords some control over the final value of T1. You can increase T1 by increasing T2. You may want to do this if your communication environment has unusually long delays transmitting information from one end to the another (such as with satellite connections), or if the computer at the other end takes a long time to respond. The range for this register is 1-255 milliseconds, with a factory setting of 20. S72 Loss of Flag Idle Timeout A transmitter not currently sending data to send is described as "idle." Normally, idle transmitters send a repeating pattern called "flag idle." Your modem always monitors the line to make sure the remote end of the communication link is either sending data or a flag idle. This ensures that the modem is operating. S72 determines how long the local modem waits before hanging up when it no longer is receiving data or a flag idle. In some systems, periods of "mark idle" (periods where all ones are transmitted instead of the flag pattern) are normal. When using such a system, it may be necessary to increase the value in S72. If the register is set to 0, this monitoring function is disabled. The range for this register is 1-255 seconds; the factory setting is 30. S73 No Activity Timeout If your modem is receiving good carrier and flag idle from the remote modem but does not receive any data for the time period specified by S73, it will send a query (called an "RR") to the remote modem to make sure the modem is operating properly. The range for this register is 1-255 seconds; the factory setting for this register is 5. Decreasing this value causes the modem to test more frequently for malfunctions at the remote end. However, the modem will not hang up for approximately 2 * T1 * N2 seconds because it retransmits the RR query several times. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1.3.1 Logical Channel Number Selectors - PS74, S75, S76, S77, S78, S79 Although Hayes products supporting X.25 support four virtual channels, numbered 1 through 4, packet-switched networks can support up to 4096 channels (numbered 0-4095). Each network has its own channel numbering system to support multiple users. For example, if there are 15 calls, each with four virtual connections, the packet-switched network can support all 60 (4*15) virtual calls, but each has to have a different logical channel number. Networks often set up their system so that all incoming calls are within one range and all outgoing calls are within another range. Logical Channel Numbers are automatically assigned by the Hayes product, but the ranges need to be configurable in order to be compatible with different network requirements. S74, S75 Minimum Incoming Logical Channel Number (LCN) S74 and S75 combine to specify the lowest incoming Logical Channel Number the packet layer will report or accept. The value used is formed by using S74 as the two high decimal digits and S75 as the two low decimal digits, or the value can be expressed by the formula S74*100+S75. If the resulting value is outside the range (0-4095), the value is assigned to the appropriate corresponding limit (e.g., if a value of 4099 is used, it is assigned to the upper limit value of 4095). ------------------------------------------------------------------------ S74=0 Factory setting from a range of 0-40 S75=1 Factory setting from a range of 0-99 ------------------------------------------------------------------------ S76, S77 Maximum Incoming Logical Channel Number (LCN) S76 and S77 combine to specify the highest incoming Logical Channel Number the packet layer will report or accept. The value used is formed by using S76 as the high two decimal digits and S77 as the two low decimal digits, or the value can be expressed by the formula S76*100+S77. If the resulting value is outside the range (0-4095), the value is assigned to the appropriate corresponding limit (e.g., if a value of 4099 is used, it is assigned to the upper limit value of 4095). ------------------------------------------------------------------------ S76=40 Factory setting from a range of 0-40 S77=95 Factory setting from a range of 0-99 ------------------------------------------------------------------------ S78, S79 Outgoing Logical Channel Number (LCN) The setting of registers S78 and S79 should be adjusted if the network requires a range of Logical Channel Numbers outside those specified with the combination of these two registers. S78 and S79 combine to determine the outgoing Logical Channel Number the packet layer will use to place a call. The value is derived using S78 as the two high decimal digits and S79 as the low two decimal digits, or the value can be expressed by the formula S78 * 100 + S79. If the resulting value is outside the range (4-4095), the value is then assigned to the appropriate limit. The highest Logical Channel Number would be that derived from the above formula, and the lowest would be the value minus the maximum number of channels supported plus one. The user has the ability to override this factory setting and explicitly specify an LCN using the PAD selection command (CALL). ------------------------------------------------------------------------ S78=0 Factory setting from a range of 0-40 S79=16 Factory setting from a range of 0-99 ------------------------------------------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1.3.2 Packet Layer Parameters - PS80, S81 The values in S80 and S81 combine to set time and duration for packet layer restart requests. S80 Packet Layer N20 Parameter S80 sets the maximum number of times a restart request can be retransmitted. The factory setting is 1 (S80=1) from a range of 0-255. Setting this register may be necessary if the network requires a restart attempt to abandon a connection earlier than planned. S81 Packet Layer T20 Parameter S81 sets the maximum amount of time the transmitter will wait for acknowledgment of a restart request frame before initiating a recovery procedure, in 10-second increments. The factory setting is 18 from a range of 0-255. Setting this register may be necessary if the network requires a restart attempt to abandon a connection earlier than planned. S82 Break Signaling Technique S82 selects a method of break signal handling for V.42 communications: in sequence, expedited, and destructive. Break signals provide a way for you to get the attention of the remote host. The break type used depends on your application. The values for S82 are: ------------------------------------------------------------------------ 3 Expedited signaling regardless of its sequence in data sent and received; data integrity maintained. 7 Destructive signaling regardless of its sequence in data sent and received; data in process at time is destroyed. 128 In sequence signaling as data is sent and received; data integrity maintained ahead of and after break. ------------------------------------------------------------------------ S84 Adaptive Start Up (ASU) negotiation S84 selects the adaptive start up (ASU) method to be negotiated for subsequent connections. ------------------------------------------------------------------------ 0 Do not negotiate ASU connection. 126 Negotiate ASU with fixed start up. 129 Negotiate ASU with fast start up on both sides. 130 Negotiate ASU with smooth start up on both sides. 131 Negotiate ASU with configuring modem using fast start up and the other modem using smooth start up. 132 Negotiate ASU with configuring modem using smooth start up and the other modem using fast start up. ------------------------------------------------------------------------ S85 ASU Negotiation Report S85 indicates whether adaptive start up and method were negotiated for the current connection. To read S85, issue the escape sequence to place the modem in the command state, then issue ATS85? . The modem will report one of the values below. ------------------------------------------------------------------------ 0 ASU not negotiated; fixed start up in use. 126 ASU negotiated with fixed start up. 129 ASU negotiated with fast start up on both sides. 130 ASU negotiated with smooth start up on both sides. 131 ASU negotiated with reporting modem using fast start up and the other modem using smooth start up. 132 ASU negotiated with reporting modem using smooth start up and the other modem using fast start up. ------------------------------------------------------------------------ S86 Connection Failure Cause S86 can help you determine the cause of a connection failure. When the modem issues a NO CARRIER result code, a value is written to this register. To read this register, following the connection failure, issue ATS86? . The modem will report one of the values below. ------------------------------------------------------------------------ 0 Normal hang up; no error occurred. 4 Physical carrier loss. 5 Feature negotiation failed to detect presence of another error-control modem at the other end. 6 Other error-control modem did not respond to feature negotiation message sent by this modem. 7 Other modem is synchronous-only; this modem is asynchronous-only. 8 Modems could not find a common framing technique. 9 Modems could not find a protocol in common. 10 Feature negotiation message sent by other modem incorrect. 11 Synchronous information (data or flags) not received from other modem. Modem waited 30 seconds before hanging up. 12 Normal disconnect initiated by other modem. 13 Other modem did not respond after many transmissions of the same message. Modem made 10 attempts then hung up. 14 Protocol violation occurred. 15 Compression failure. ------------------------------------------------------------------------ Note: Multiple occurrences may contribute to a NO CARRIER message; S86 records the first event that occurred. S87 Fixed Speed DTE Interface (Default High AT Speed) The modem always accepts AT commands up to and including 9600 bps. Above 9600 bps, the S87 setting determines which additional speed will be available for autobauding. (Autobauding is the process by which a modem determines the DTE speed from the A (and possibly T) of an AT command). Refer to the description of the r2-string in the I command description. The following list identifies the possible values of S87. The factory default value is the lowest available value in the modem. Refer to the user documentation supplied with your modem to determine if S87 is supported by your modem and which values of S87 it supports. Value Indicated Speed ------------------------------------------------------------------------ 14 19200 28 38400 ------------------------------------------------------------------------ S91 PSTN Transmit Level Adjustment The PSTN (Public Switched Telephone Network) line transmit level can be adjusted using register S91. This register specifies a carrier level value that is not to be exceeded. The allowable range for register S91 is listed in your modem's user documentation. S92 MI/MIC Options S92 enables and selects or disables the mode indicate/mode indicate common interface. The settings available for this register support various combinations of edge and level detection in either originate or answer mode with ring indicator (RI) pulse enabled or disabled. To see if your modem supports MI/MIC and if it does, for particulars as to how the jack setting specified with the &J command interacts with this register, see your modem's user documentation. ------------------------------------------------------------------------ 0 MI/MIC disabled 1 level triggered, originate mode, RI pulse enabled 3 edge triggered, originate mode, RI pulse enabled 5 level triggered, answer mode, RI pulse enabled 7 edge triggered, answer mode, RI pulse enabled 9 level triggered, originate mode, RI pulse disabled 11 edge triggered, originate mode, RI pulse disabled 13 level triggered, answer mode, RI pulse disabled 15 edge triggered, answer mode, RI pulse disabled ------------------------------------------------------------------------ Note: This feature is not available to all modems. Refer to the feature list in your modem's installation information. Setting S92 to a value other than its factory-set default of 0 automatically redefines the telephone line jack setting specified by the &J command. S93 V.25bis DTE Interface Speed S93 selects the speed used when the modem is configured for V.25bis mode. When autobauding in any mode other than V.25bis, the modem uses the value held in S37. ----------------------------------------------------------------------- 3 300 bps 5 1200 bps 6 2400 bps 7 4800 bps 8 7200 bps 9 9600 bps 10 12000 bps 11 14400 bps 12 19200 bps 13 38400 bps ------------------------------------------------------------------------ Note that the V.25bis feature is not available in all modems and if supported, not all values may apply. Refer to the feature list in your modem's user documentation. S94 Mode Selection Register S94 provides an alternative to setting internal DIP switches when choosing between the AT command mode (factory setting) and the various CCITT V.25bis command modes supported by the modem. To use this register, the related DIP switches in the modem must be set to select the "AT Command Mode" (factory setting). See your modem's installation information. With the modem's DIP switches set to select "AT Command Mode," the operating mode after a soft reset is determined by S94. This register is read from nonvolatile memory at power-on; the &W command saves the current setting of this register in nonvolatile memory. Here are the values for S94: Synchronous Operation Value Sync/ AT/ Addressed/ HDLC/BSC ASCII/EBCDIC ------------------------------------------------------------------------ Async V.25bis Direct 0 Async AT -- -- -- 1 Async V.25bis Addressed -- -- 2 Sync V.25bis Addressed HDLC ASCII 3 Sync V.25bis Addressed BSC ASCII 4 Async AT -- -- -- 5 Async V.25bis Direct -- -- 6 Sync V.25bis Direct HDLC ASCII 7 Sync V.25bis Direct BSC ASCII 8 Async AT -- -- -- 9 Async V.25bis Addressed -- -- 10 Sync V.25bis Addressed HDLC EBCDIC 11 Sync V.25bis Addressed BSC EBCDIC 12 Async AT -- -- -- 13 Async V.25bis Direct -- -- 14 Sync V.25bis Direct HDLC EBCDIC 15 Sync V.25bis Direct BSC EBCDIC ------------------------------------------------------------------------ An alternative way of presenting the V.25bis mode selection options listed above follows: Value Mode ------------------------------------------------------------------------ 0 Standard AT command operation (factory setting) 1 Asynchronous V.25bis using addressed access 2 Synchronous V.25bis (HDLC framing) using addressed access 3 Synchronous V.25bis (BSC framing) using addressed access +4 Direct access calling procedure +8 EBCDIC character set options instead of ASCII ------------------------------------------------------------------------ S95 Negotiation Message Options S95 enables various result codes that indicate the sequence of events in the establishment of an error-control connection. This register does not affect the way in which the modem negotiates the connection; it merely enables message options. The factory setting for this register is value 0, no bits selected. To enable any combination of the bits, add the value(s) to the right of the bit number and set the register to this sum. Note: The bit values of S95 may be set to override some of the characteristics of the Wn command. Setting any of the S95 bits to "1" enables the corresponding result codes regardless of the Wn command in effect. Changing the Wn command setting does not affect the value set for this register. Bit Value Explanation ------------------------------------------------------------------------ 0 1 Verbose CONNECT result code indicates the DCE speed (rather than DTE speed). Numeric result codes are also different when CONNECT reports DCE speed. 1 2 Append "/ARQ" to CONNECT result code when an error-control connection is made. 2 4 Add CARRIER messages 3 8 Add PROTOCOL messages 4 16 Add AUTOSTREAM messages 5 32 Add COMPRESSION messages ------------------------------------------------------------------------ For example, if you want to add the compression result code (with W1 selected), you would select bit 5 (value of 32). The command line ATS95=32J will then enable the COMPRESSION negotiation messages. Refer to the Wn and Xn commands for additional and related information. S97 V.32 Automode V.22/V.22bis Probe Timing S97 sets the duration of the signal used by the modem in the answer mode during a V.32 automode handshake to determine if the calling modem is of V.22 or V.22bis type. The value of S97 also sets the time during which the modem will reject the V.22/V.22bis probe signal when executing the V.32 automode handshake in the originate mode. The range of S97 values is 15 to 70, representing 1.5 to 7.0 seconds. The default value of 30 (3.0 seconds) provides the timing necessary to connect to most V.22bis compatible modems. When compatibility with V.32 "late connecting modems" is a primary requirement, S97 should be set to 15. This value is also compatible with the timing specified in CCITT recommendation V.22bis. S105 Link Layer (N401/V.42 or N1/X.25) Frame Size Selector; S105 sets the maximum frame size (N401 in V.42, N1 in X.25) according to the following parameter value-to-frame size (in bytes) conversions: Value Explanation ------------------------------------------------------------------------ 4 16 bytes 5 32 bytes 6 64 bytes 7 128 bytes (default) 8 256 bytes 9 512 bytes ------------------------------------------------------------------------ S108 Signal Quality Selector; S108 sets the signal quality required for the modem handshake at the highest designated V.32bis speed and for automatic rate re-negotiation. If the modem determines during a carrier handshake or connection that the signal quality is less than that specified by the value assigned to S108, the modem will attempt to connect at the next lower carrier speed specified by S109 - unless the N0 command has been selected. If the N0 command has been selected, then only the carrier speed specified by S37 is used. This register only affects V.32bis connections. (Refer to the discussion of rate re-negotiation in the description of register S110 for related information.) Value Explanation ------------------------------------------------------------------------ 0 No limit. 1 Low quality. 2 Medium quality. 3 High quality. ------------------------------------------------------------------------ S109 V.32bis Carrier Speed Selector S109 controls the speeds available for V.32bis carrier handshake, retrains, and rate re-negotiation. This permits disabling speeds lower than the highest carrier speed while enabling the highest carrier speed or other carrier speeds. (Refer to the discussion of rate re-negotiation in the description of register S110 for related information.) S37 selects the highest carrier speed. If the N0 command is selected, the carrier speed specified by S37 and one of the carrier speeds specified by S109 must match; the modem will connect only at that carrier speed. While the modem is in V.32bis mode, the S37 and N0 command settings do not affect the modem speed during retrain or rate re-negotiation procedures. Caution: If speed negotiation is disabled by the N0 command and S37 indicates a V.32bis speed that is not enabled by S109, then the modem will not connect. N0 and S37 have no effect during retrains and rate re- registration. Decimal Explanation Value ------------------------------------------------------------------------- 1 reserved 2 4800 bps 4 7200 bps 8 9600 bps 16 12000 bps 32 14400 bps 64 reserved 128 reserved ------------------------------------------------------------------------ Note: The decimal values may be added to specify several speeds from which the modem can choose. For example, the factory default is 62 which is the addition of decimal values 2, 4, 8, 16, and 32 (2+4+8+16+32=62). S110 V.32/V.32bis Selector The V.32 and V.32bis carrier handshake procedures are compatible. The rate sequence (defined in V.32 and V.32bis) contains bit combinations that specify which procedure shall be used. S110 provides control of that selection for users who want to disable automatic rate re- negotiation or limit the carrier handshake procedure to that specified by V.32. (Refer to the description of registers S108 and S109 for related information.) When the value of S110 is 0, the V.32 handshake procedure follows. This means that rate re-negotiation, which is allowed by V.32bis, is disabled, and the &U command determines whether or not Trellis coding is enabled. When the value of S110 is 1, the V.32bis handshake is enabled, but automatic rate re-negotiation (defined on the next page) is disabled. The modem shall respond to a rate re-negotiation request from the other end. When the value of S110 is 2 (factory-setting), V.32bis handshake and automatic rate re-negotiation are enabled. Value Explanation ------------------------------------------------------------------------ 0 V.32 enabled. 1 V.32bis enabled. 2 V.32bis and automatic rate re-negotiation enabled. ------------------------------------------------------------------------ Retrain and rate re-negotiation may be initiated, as follows, by either modem involved in a V.32bis connection. Rate Re-Negotiation: Rate re-negotiation may be initiated by the other end modem, manually by the O3 command (while in the on-line command state), and by the modem when the signal quality or frame error rate indicate a lower or higher speed should be used. When in the V.32bis mode, the modem always responds to a rate re- negotiation request from the other modem. The speeds to be indicated to the other modem correspond to the speeds allowed by S109. Automatic Rate Re-negotiation: Retrains and rate re-negotiation initiated by the modem are called "automatic" retrains or rate re-negotiations, respectively. Automatic rate re-negotiation is always disabled when: *the &X1 command is selected and the modem is in the synchronous mode (&Q1, &Q2, or &Q3 selected) or *the modem is in asynchronous mode (&Q0 selected). When the modem recognizes that signal quality has dropped, the modem may (if enabled by the &B1 command or the value of S110) initiate a retrain or rate re-negotiation. The procedure is to try a retrain first. If that does not yield acceptable signal quality or frame error rate, the modem will try to re-negotiate a lower speed. Line speed changes are only allowed when the modem is using a constant DTE speed and in synchronous mode when the modem controls the DTE speed. That is, rate re-negotiation speed changes are allowed only when the &Q4, &Q5, or &Q6 command is selected and when the &X0 or &X2 commands and one of the synchronous mode commands (&Q1, &Q2, or &Q3) are selected. AutoSync Mode: Increases in line speed are allowed when AutoSync is in use only to the extent that the current DTE speed will support AutoSync. The following DTE speeds are required for the indicated line speeds, and are established when the initial connection is made. If the line speed is reduced from the initial line speed of a call, then the DTE speed will always support a return to the initial line speed. The following table shows the maximum line speeds (in bps) that will be supported by initial AutoSync DTE speeds. Maximum AutoSync Line Speeds Initial line speed DTE speed Maximum line speed ------------------------------------------------------------------------ 4800 9600 4800 7200 19200 12000 9600 19200 12000 12000 34400 14400 14400 34400 14400 ------------------------------------------------------------------------ Error-control Mode: When error correction is provided by the modem, automatic rate re- negotiation, if enabled, is based on the current frame error rate. Non Error-control Mode: Automatic rate re-negotiation is based on signal quality when the modem is using a constant DTE speed and not providing error correction and when the modem is operating in synchronous mode. That is, 1) when the &Q6 command is selected, or 2) &Q4 is selected and BSC mode is in use, or 3) the &X0 command is selected and the modem is in &Q1, &Q2, or &Q3 mode. Rate changes may be attempted according to the following: *If the signal quality falls below the limit set by S108, first try a retrain. If the signal quality stays below the limit, attempt the next lower speed if that speed is allowed by S109. *Never attempt to increase the line speed. Note: Sometimes a rate re-negotiation attempt will not produce a different speed because the speeds which the distant modem has enabled match the local modem speeds only at the current speed. DTE Interface Leads: Depending on the settings of &Q, and &R, interface leads CTS (circuit 106) and RD (circuit 104) may be clamped when a retrain or rate re- negotiation process starts, and released when the process is completed. S115 V.25bis Auto-answer and Character Format Options S115 is a bit-mapped register that specifies which auto-answer and character format methods the modem will use during V.25bis operation. The range of values for this register is 0-3, with a factory setting of 0. Value Explanation ----------------------------------------------------------------------- 0 Use &E1 parity and V.25bis auto-answer. 1 Use 7E1 parity and alternate auto-answer method. 2 Use 8N1 parity and V.25bis auto-answer. 3 Use 8N1 parity and alternate auto-answer method. ----------------------------------------------------------------------- The bit values for S115 specify the following: Bit Value Definition ----------------------------------------------------------------------- bit 0=0 Specifies V.25bis auto-answer, which does the following: * Auto-answer after two rings unless a DIC (disregard incoming call) is received for the DTE before the second ring of a pending call*. * Answer if a CIC (connect incoming call) is received during a pending call. * Inhibit auto-answer if DIC is received during the currebt pending call. * Issue an INV (invalid command) result code if a DIC or CIC is received between pending calls. bit0=1 Specifies an alternate auto-answer method, which does the following: * Auto-answer as specific by the S0 register. * Answer if a CIC is received while an incoming call is pending (regardless of the S0 setting). * Inhibit auto-answer if a DIC is received during the pending call. * Issue an INV result code if a DIC or a CIC is received between pending calls. bit 1=0 Specifies 7 data bits, even parity, and one stop bit. bit1=1 Specifies 8 data bits, no parity, and one stop bit. ----------------------------------------------------------------------- Note: The term "pending call" means the period of time when an incoming call attempt is active, which is indicated when S1 contains a non-zero value and which is true from the first ring until 8 seconds of no ringing has been detected. S120 Auto Answer Control through DTR S120 controls how DTR is used during auto answer. The range for S20 is 0 to 2, with a factory-set default of 0 (zero). Value Explanation ----------------------------------------------------------------------- 0 If &D2 with &Q2 (or &Q4) is in effect, then DTR must be high in order to permit S0 to enable auto-answer. 1 DTR is not required to enable auto-answer. 2 DTR must be on in order to enbable auto-answer. ----------------------------------------------------------------------- ************************************************************************* 1.4 Additional AT Command Definitions AT Command Prefix Modem commands begin with an AT prefix that gets the modem's attention. The speed and character format at which the DTE sends this prefix tells the modem the speed and format for responding to commands, and at which speed to attempt the connection. See your modem's installation information for the speeds, formats, and transmission methods supported by your modem. +++ Escape Sequence The patented escape sequence with guard time mechanism (U.S. Patent #4,549,302) returns the modem to the command state from the on-line state. The escape sequence with guard time can be used when the modem is on- line and you need to enter commands to the modem, but you do not want to disconnect from a call. The escape sequence with guard time ensures that the modem connection will not be dropped and no data will be lost while the modem is off-line in the command state. Because of this patented invention, intelligent modems can provide reliable transmission of data, distinguishing the predetermined escape sequence characters from the random occurrence of like characters in user data. A guard time must precede and follow the escape sequence to prevent the modem from interpreting similar data (for example, another series of plus (+) characters) as the escape sequence. The default guard time is 1 second. To enter the escape sequence with guard time, pause a little longer than the guard time, then type: +++ Then pause again a little longer than the guard time. The guard time pauses before and after the escape sequence, ensure that the modem will distinguish the escape sequence from random user data. When you receive OK from the modem, which acknowledges that it has "escaped" from the on-line data state, you may enter AT commands. When you are ready to resume your call to a remote system, type: ATO This is the command to return on-line. The escape sequence character and the guard time interval can be changed by assigning different values to registers S2 (for the escape character) and S12 (for the guard time). End-of-line Character represents the key on your keyboard that terminates the command line. The key enabling this function is determined by the value stored in S3. The factory setting is ASCII 13, the carriage return character. When the end-of-line character is entered, the modem executes the commands that follow the AT prefix. In this reference, this key is referred to as . For example, the command line ATV0 gets the modem's attention, then instructs the modem to display its responses to commands (result codes) as numbers. A/ Repeat Last Command A/ re-issues the command string most recently placed in the command buffer. This keystroke combination can be used to re-issue the command string last entered. For example, the A/ (if permitted by your local telephone system) is useful as a re-dial function. ======================================================================== CHAPTER 2 X.25 COMMUNICATIONS This chapter includes information about the use of X.25 communications with V-series products. The command and parameter descriptions are more detailed than those offered in the user documentaion. Also included are four recommended PAD (Packet Assembler/Disassembler) profiles that can be recalled from memory to use with the modem's PAD. The factory settings and available options/ranges for these commands and parameters are provided here because they are the same for all Hayes Products that support the X.25 feature. ************************************************************************ 2.1 Modem Configuration for X.25 Communications X.25 connections begin the same as point-to-point connections - with a modem call to a remote system. Your modem is configured from the factory to automatically negotiate the best point-to-point error-control connection. If the purpose of the call is to establish a link with an X.25 network, the modem must be re-configured with several S-registers. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.1.1 Controlling Automatic Feature Negotiation The S-registers which control and specify a connection are described in the sections that follow. An overview of the connection options that can be set with S-registers is provided in the chart below. Communication Environment &Q S36 S44 S46 S48 ------------------------------------------------------------------------ X.25 enabled (use X.25 if remote 5 0 3 6 3 system has X.25; otherwise, use LAPB point-to-point connection). X.25 only (point-to-point 5 0 3 134 3 connection). X.25 network without feature 5 0 3 6 0 negotiation. X.25 network with feature 5 0 3 6 3 negotiation. X.25 network with feature 5 0 2 6 3 negotiation and AFT. ------------------------------------------------------------------------- The suggested configuration for establishing a synchronous X.25 connection with a packet-switched network or a remote Hayes product that supports X.25, can be selected with AT&Q5 S44=3 S46=6 S48=0 . Refer to the "S-register Listing" in Chapter 1 for a description of the registers that can be used to configure the modem. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.1.2 PAD Channel Selection The &O command is used to move from the AT command state to the PAD command state in order to issue PAD commands. The optional channel number identifies the desired virtual channel number. If the virtual channel number is zero (&O0), or not specified (&O), the last channel number accessed is used. Each time &O is issued, it resets the current PAD before it enters the PAD command state (provided a virtual connection is established). Once the PAD command state is entered, the CHAN command can be used to switch among the PAD command states of the four virtual channels. If an X.25 connection has already been established and you have escaped to the AT command state, the PROTOCOL and CONNECT result codes are transmitted to your terminal. The ERROR result code is transmitted if the modem is on-line but not in X.25 mode (e.g., modem is in error- control/LAPB mode). Example of &O commands use: String Result Code/Explanation ------------------------------------------------------------------------ AT&O1 OK (PAD channel 1 selected) AT&O9 ERROR (value entered is out of selectable range) ------------------------------------------------------------------------ See the description of the &O command in the "AT Command Listing" in Chapter 1. ************************************************************************ 2.2 PAD Configuration Like your modem, the PAD can be configured according to the communications requirements of the remote systems you call. Although a small number of S-registers control some PAD options (packet and window sizes, for example), the PAD is primarily configured with separate memory locations. A set of PAD parameters can be configured for each channel. The set consists of standard X.25 PAD parameters and National PAD parameters. Although the PAD's factory-set configuration will be suitable for many applications, sets of predefined PAD parameter settings can be defined as profiles to be recalled for later use. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.2.1 PAD Commands Each PAD command consists of characters and occasionally symbols that specify the command's action. Like the AT command line, you can place as many as 255 characters on a single PAD command line. The only exception to this format is the EXEC command. This command for storing and executing a series of instructions to configure the PAD uses a plus sign (+) to tie commands together in the command string. When these commands are executed, the plus signs are treated as carriage returns. For more on storing a PAD configuration with the EXEC command, see "PAD Profiles." Issuing PAD commands PAD commands are typed at the PAD prompt, then entered with . This action and most other conventions for editing a line and entering commands are the same as those used when issuing AT commands. PAD command format Each PAD command consists of characters and occasionally symbols that specify what the command will do. A PAD command is typed on the command line, then entered using the carriage return key (factory setting for S3). When you type in a command, the PAD ignores spaces, delete characters, control characters, and upper/lower case. For example, the commands RESET, RE SET, and reset are all interpreted as the same command. The backspace key can be used to correct any mistakes made while entering a command. In this chapter, the following symbols are used when describing PAD commands. Symbol Meaning ------------------------------------------------------------------------ [ ] Indicates optional parameters, parameters which can be entered with the PAD command. < > Indicates a named parameter, such as a user ID requested by the network. ... Indicates a repeated item within brackets, for example the command PAR? [][,...]. ------------------------------------------------------------------------ These symbols represent the kinds of information that can accompany a PAD command. Do not type these symbols when entering a PAD command. Any characters that appear with a PAD command, other than the symbols mentioned above, are interpreted literally. For example, the command: ACC [R] [ -] is interpreted: Symbol Meaning ------------------------------------------------------------------------ ACC Issue the Accept command which indicates that you want to accept a call. [R] Include an optional parameter (R) instructing network that you will accept charges for the call if requested. [ -] Include an optional facility parameter, such as your user ID, or some other information required by the network. Several facilities can be strung together, separating each by a comma and ending the string with a hyphen (-). ------------------------------------------------------------------------ PAD commands are of two types: those used for call related activities, such as placing a call, answering a call, initializing and changing channels, etc., and those used to configure the PAD. These commands can be used in the following ways: * place and answer calls (CALL, ACC) * move between channels (CHAN, EXIT) * create, save, and execute a PAD command string (EXEC) * clear and initialize channels (CLR, INT) * display the current status of a call (STAT) * display one of several available PAD configuration profiles (PROF) * display the current settings of the PAD's parameters (PAR?) * display the current settings of the remote system's PAD parameters (RPAR?) * set and read the value of specific PAD parameters (SET, SET?) * set and read the value of specific PAD parameters of the remote system (RSET, RSET?) The commands supported by the PAD are listed in the following sections. Each command is defined with sample formats, allowable parameters, and possible result codes for the command. ACC - Accept Call Command When you have established a connection to the network node and a remote system on the network wants to call you, a PAD result code is sent to your computer announcing the incoming call. Enter the ACC command to accept the call and establish a virtual connection. To configure the PAD to automatically answer incoming calls, use the EXEC command described following this command. Example Format ------------------------------------------------------------------------ ACC [R] [] ------------------------------------------------------------------------ Parameter Description ------------------------------------------------------------------------ [R] Instructs the network that you will accept charges for the call if requested to do so Represents optional call facilities which may be entered ----------------------------------------------------------------------- Result Codes: Description ------------------------------------------------------------------------ CON ACC received. ERR Invalid command format, or command not entered in response to an incoming call, or virtual connection not established. ----------------------------------------------------------------------- CALL - Call Command The CALL command is the PAD command you use to make a virtual connection to a remote system. Once the PAD is configured, this is the primary command you will use. Once a physical connection to the X.25 network has been established, a virtual connection to the remote system is made with the CALL command. If the call is accepted by the remote system, the PAD enters the data transfer state. If the call is not accepted, a "call cleared" response is sent and the PAD remains in the PAD command state. Example Formats ----------------------------------------------------------------------- CALL [CALL] [] [ [,[] [,] ] ] [CALL] D [CALL] D [CALL] [,[] [,] ] D ------------------------------------------------------------------------ Parameter Description ------------------------------------------------------------------------ One or more call parameter facilities that can be strung together on a command line and separated by commas; the last facility is followed by a hyphen (-). Represents remote system's address containing up to 15 digits (0-9). Represents source address containing up to 15 digits (0-9). X.25 logical channel number (1-4095). Character string containing up to 12 ASCII characters. ----------------------------------------------------------------------- Result Codes Description ------------------------------------------------------------------------ ERR Call cannot be placed due to call in progress; or virtual connection not established. CLR Remote PAD cleared virtual connection; may be followed by a string of diagnostic characters. CON Call connected; may be followed by a string of diagnostic characters. ------------------------------------------------------------------------ Call Facilities In the above CALL command formats, notice the field. This field is provided to specify "call facilities." A call facility is an optional parameter that can be specified to meet a network's requirements, such as entering a network user ID (NUI), or indicating that charges are to be reversed (R). When subscribing to a packet-switched network, you are informed of the required or permitted call facilities. In order to respond to your CALL command, different networks may require specific call facilities. Any of the following call facilities can be entered with the CALL command. When two or more facilities are entered on a line, they are separated by commas. A hyphen (-) terminates the string. For example: CALL R,N, -. The table below provides a description of the available call facilities. Call Facility Description ------------------------------------------------------------------------ R Instructs network that you will accept charges for the call if requested to do so. N Provides network with network user ID, identifying the caller to the network. T Specifies which networks the data packets take to their destination. Any number of addresses may be specified; each address is four digits (0-9). RPOA stands for "Recognized Private Operating Agencies." P Requested maximum packet size according to the following packet size-to-bytes conversions: P4=16, P5=32, P6=64, P7=128, P8=256, P9=512. If P is not specified, the default value (128) of National PAD Parameter 100 is used. W Requested maximum window size (2-7). If W is not specified, the default value (2) of National PAD parameter 101 is used. X Hexadecimal data (0-9, A-F). Caution: Putting data directly into the facilities field of the call packet, specifies facility codes not directly supported by the modem. ------------------------------------------------------------------------ CHAN - Channel Selection Command Use the CHAN command to switch from one virtual channel to another. The modem remains in the PAD command state. Example Format CHAN Parameter Description ------------------------------------------------------------------------ Specifies which virtual channel to switch to, indicated by an ASCII digit (1-4) ----------------------------------------------------------------------- Result Codes: Description ------------------------------------------------------------------------ ERR Invalid specified ------------------------------------------------------------------------ CLR - Clear Channel Command After a virtual connection has been established, the CLR command can be used to clear (disconnect) a call on a virtual channel and place that channel in the PAD command state. Example Format ----------------------------------------------------------------------- CLR [X -] [] ----------------------------------------------------------------------- Parameters Description ----------------------------------------------------------------------- Hexadecimal data (0-9, A-F) supporting facilities not supported by the Hayes modem supporting the X.25 feature. String of up to three digits from a range of 1-255, indicating the error that has occurred. ----------------------------------------------------------------------- Result Codes Description ----------------------------------------------------------------------- ERR Virtual connection not established on this channel, or invalid parameter entered. ------------------------------------------------------------------------ EXEC - Execute String Command The EXEC command is used to define and save a PAD command and then automatically execute it when a physical connection to a network node is established. EXEC is commonly used to define the CALL command. Another common use of EXEC is to automatically answer an incoming call. The string stored in each virtual channel as the factory setting is ANS+ACC, which instructs the PAD to answer and accept incoming calls to the channel. To display the string currently stored, you can issue EXEC? . Sample EXEC Sequence: To use the EXEC command, from the PAD command state type EXEC . The PAD will display the prompt: EXEC>. After the prompt, enter the PAD command you wish to save. For example: EXEC> CALL R- 3110 20200202 This stores a CALL command for connecting to a packet-switched network. As soon as the modem establishes a physical connection to the network node, the EXEC string is processed, placing the call. In the EXEC string that you define, plus signs can be used to separate multiple commands. When the EXEC string is executed, the plus signs are treated like carriage returns. For example, the following EXEC string defines how the PAD will respond to an incoming call from remote system: EXEC> ANS+PROF VSM+SET 0:0,74:1+ACC In this EXEC string, the PAD is instructed to: ANS Respond to an incoming call request. PROF VSM Load the emulation PAD profile. SET 0:0 Set the National marker in order to change a National PAD parameter. 74:1 Change National parameter 74 to 1. ACC Accept the call. In another example: EXEC>ANS+ACC+Welcome to Hayes/M/JX.25//dial-up!/M/J the PAD is instructed to: ANS Respond to an incoming call request. ACC Accept the call. Welcome to Hayes/M/JX.25//dial-up!/M/J is sent to the remote system. "/M" means "control M," a carriage return; "/J" means "control J," a line feed This message is received by the remote system as: Welcome to hayes X.25/dial-up! To diaplay the current EXEC string (if any) stored in memory, type EXEC? . EXIT - Exit PAD Command Use the EXIT command to leave the PAD command state and enter the modem's AT command state. For example, if you are in the PAD command state (of any virtual channel) and you want to hang up the phone, first type: EXIT The OK result code is sent from the modem to the attached computer then type: ATH0 This AT command hangs up the modem, breaking the physical connection to the network; the OK result code is returned if the modem hangs up before the network; if the network hangs up first, the NO CARRIER result code is returned. Hanging up clears all virtual connections still engaged. INT - Interrupt Command During a virtual connection, the INT command can be issued to send an interrupt, placing the PAD in the on-line state. Networks respond to interrupts differently, however. This command can result in lost data. It should not be used unless its use has been cleared through the network. Example Format ----------------------------------------------------------------------- INT ------------------------------------------------------------------------ Result Codes Description ----------------------------------------------------------------------- The remote host has acknowledged the interrupt. ERR Virtual connection not established on this channel. ----------------------------------------------------------------------- PAR? - Read Parameter Command The PAR? command displays the current settings of the local PAD. Settings for selected PAD parameters can be requested or if the command is issued with no parameters, the settings for all twenty-two PAD parameters are requested. Note: To display the settings for the National PAD parameters, enter a zero (0) after the command (PAR?0). Example Format ----------------------------------------------------------------------- PAR? [] [,...] ------------------------------------------------------------------------ Parameter Description ----------------------------------------------------------------------- Number of specific PAD parameter settings to display. If no PAD parameters are specified, the settings for all 22 PAD parameters are displayed. Enter a zero (0) to display the settings for all of the National PAD parameters. ----------------------------------------------------------------------- Result Codes Description ----------------------------------------------------------------------- ERR Invalid command format. :INV Invalid parameter entered. For example, if PAR?40 were typed, PAR 40:INV would be displayed since 40 is out of the range 1-22. ------------------------------------------------------------------------ For example, issuing PAR? 1,4,0,70,71 displays the current settings for the specified parameters (1,4,0,70, 71) of the local PAD: PAR 1:0, 4:0, 0:0, 70:1, 71:0 If no parameters are specified: PAR? the settings for all twenty-two PAD parameters are displayed: PAR 1:0, 2:0, 3:0, 4:0, 5:0, 6:5, 7:5, 8:0, 9:0, 10:0, 11:14,12:0, 13:0, 14:0, 15:0, 16:8, 17:24, 18:18, 19:1, 20:65, 21:0,22:0 PROF - PAD Profile Command A "profile" is a predefined collection of PAD parameter settings used for a virtual connection, similar to the profiles that can be defined for the modem's general configuration. With the PROF command, one of four standard profiles can be selected, or a particular configuration can be defined and saved as a profile in nonvolatile memory. Example Format ------------------------------------------------------------------------ PROF ------------------------------------------------------------------------ Parameter Description ------------------------------------------------------------------------ Enter the alphanumeric characters that specify the profile to be recalled for the current channel. Possible identifiers are: DEF Selects the factory default profile. SIM Selects CCITT simple standard profile. TRA Selects CCITT transparent standard profile. VSM Selects error-control/LAPB emulation profile. NVM Selects the profile saved in nonvolatile memory. SAV Saves the current PAD configuration profile in nonvolatile memory. ----------------------------------------------------------------------- Result Codes Description ------------------------------------------------------------------------ ERR Invalid ------------------------------------------------------------------------ The Emulation Profile is automatically set if feature negotiation results in an error-control/LAPB connection on virtual channel 1 (error-control/LAPB connections always use virtual channel 1). The configuration profile is automatically restored to its factory setting when the the modem hangs up. To create a profile, use the CHAN command to move to the desired channel. For example, issue CHAN3 to move to channel 3. At the prompt, type in the PAD parameters you want to adjust and store, issuing them with . To save the settings as a profile, issue PROF SAV . RESET - PAD Reset Command A "profile" is a predefined collection of PAD parameter settings used for a virtual connection, similar to the profiles that can be defined for the modem's general configuration. With the PROF command, one of four standard profiles can be selected, or a particular configuration can be defined and saved as a profile in nonvolatile memory. Example Format ------------------------------------------------------------------------ RESET [ ] ----------------------------------------------------------------------- Parameter Description ----------------------------------------------------------------------- String of up to three numeric digits from a range of 0-255 indicating an error has occurred. ----------------------------------------------------------------------- Result Codes Description ----------------------------------------------------------------------- ERR Virtual connection not established on this channel. ------------------------------------------------------------------------ RPAR? - Read Remote PAD Parameter Command To display the current settings of the remote system's PAD parameters, use the RPAR? command. If no parameters are specified, the settings for all of the remote system's PAD parameters are displayed. Example Format ------------------------------------------------------------------------ RPAR? [] [,...] ------------------------------------------------------------------------ Parameter Description ------------------------------------------------------------------------ Specifies the remote system's PAD parameter(s) to display. ------------------------------------------------------------------------ Result Codes Description ------------------------------------------------------------------------ ERR Invalid command format, or virtual connection not established on this channel. :INV Invalid parameter entered, or remote system does not support parameter specified. ------------------------------------------------------------------------ For example, issuing RPAR? 1,4,0,70,71 displays the current settings for the specified parameters of the remote system's PAD. The string: RPAR 1:0, 4:0, 0:0, 70:1, 71:0 is displayed. If no parameters are specified, issuing RPAR? displays the settings for all of the remote system's PAD parameters. RSET - Set Remote PAD Parameter Command To set and display the remote system's PAD parameters, use the RSET command. Example Format ------------------------------------------------------------------------ RSET [?] [:] [,:] [, ...] ------------------------------------------------------------------------ Parameter Description ------------------------------------------------------------------------ Specifies the number of the remote system's PAD parameter you want to set/display. Value that you want to set for the specified PAD parameter. ------------------------------------------------------------------------ Result Codes Description ------------------------------------------------------------------------ ERR Invalid command format. :INV Invalid parameter or value. ------------------------------------------------------------------------ For example, entering RSET 2:1 sets the remote system's PAD parameter 2 to a value of 1. To display the setting, type: RSET? 2:1. The new parameter setting will be displayed: RPAR 2:1 STAT - Status of Current Channel Command The STAT command displays the current status of a virtual connection. Example Format ------------------------------------------------------------------------ STAT ------------------------------------------------------------------------ Result Codes Description ------------------------------------------------------------------------ FREE No call in progress. ENGAGED Call in progress. ------------------------------------------------------------------------ SET - Set PAD Parameter Command To set (and display) the local PAD's parameters, use the SET command. Example Format ------------------------------------------------------------------------ SET [?] [:] [,:] [, ...] ------------------------------------------------------------------------ Parameter Description ------------------------------------------------------------------------ Specifies the number of the PAD parameter to set/display. Value that you want to set for the specified PAD parameter. ----------------------------------------------------------------------- Result Codes Description ----------------------------------------------------------------------- ERR Invalid command format. :INV Invalid parameter or value. ------------------------------------------------------------------------ For example, issuing SET 2:1 sets PAD parameter 2 to a value of 1. To display the setting, type: SET? 2:1 . The new parameter setting will be displayed: PAR 2:1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.2.2 PAD Parameters PAD parameters are used to control the display and transmission of data over the packet-switched network. Parameters are of two types: PAD Parameters and National PAD Parameters. Twenty-two PAD parameters (1-22) and an additional set of "National PAD Parameters" offer configuration options. National PAD Parameters (numbers starting at 70) are used to support and control the enhanced functionality provided by the X.25 feature. All parameters are set and read the same way. Values for some parameters are calculated by adding the bit values of the options you want active. For example, in PAD parameter 3, if you want the character set to include A-Z, a-z, 0-9 (bit value=1) and CR (bit value=2), you would set the PAD parameter 3 to 3. A marker (0:0), called a "National Marker," is used to separate the National PAD Parameters from the PAD parameters. For example, in the PAD command: SET 1:1, 2:0, 0:0, 70:1, the characters to the right of the marker refer to National PAD parameters. Characters to the left of the National marker refer to PAD parameters. Parameter 1 - PAD Recall Using a Character PAD recall defines the character that will force the PAD to escape from the PAD on-line state and return to the PAD command state. When the PAD receives this character, the PAD prompt (- or *) is displayed on the user's terminal monitor. Values Description ------------------------------------------------------------------------ 0 PAD cannot be recalled using a character (factory setting) 32-126 ASCII graphic character ------------------------------------------------------------------------ To send the PAD recall character as data, enter it twice. The PAD will remain in the on-line state. Parameter 2 - Echo When parameter 2 is set, all characters received from the terminal are echoed, excluding those specified by parameter 20 (echo mask), parameter 5 (ancillary device control), parameter 12 (flow control of the PAD by Values Descriptionthe terminal) and parameter 22 (page wait). Setting parameters 12 or 22 to non-zero values causes the echo of characters DC1 and DC3 (XON and XOFF) to be suppressed, even if parameter 2 is set to value 1. Values Description ------------------------------------------------------------------------ 0 No echo (factory setting) 1 Echo ------------------------------------------------------------------------ Parameter 3 - Selection of Data Forwarding Signal The value of parameter 3 is bit-mapped; the binary bit values represent the character sets listed below. If the character(s) set by the combination of binary bit values of this parameter is received from your terminal, the current packet (including this character) is forwarded. Values Description ------------------------------------------------------------------------ 0-127 Sum of bits for selected characters. 0 No data forwarding signal (factory setting). ------------------------------------------------------------------------ BIt Values Description ------------------------------------------------------------------------ 1 A-Z, a-z, 0-9 2 CR 4 ESC, BEL, ENQ, ACK 8 DEL, CAN, DC2 16 ETX, EOT 32 HT, LF, VT, FF 64 NUL, SOH, STX, BS, SO, SI, DLE, DC1, DC3, DC4, NAK, SYN, ETB, EM, SUB, FS, GS, RS, US, DEL ------------------------------------------------------------------------ Parameter 4 - Selection of Idle Timer Delay In addition to character forwarding, this parameter provides the capability to forward data to the host based on an idle time. If data is in the buffer and no additional characters have been received for the specified period, the buffer contents are sent to the host. Parameter 4 is ignored if National PAD Parameter 70 (streaming data forwarding) is set to 1, or if parameter 15 is set to 1. Values Description ------------------------------------------------------------------------ 0 No data forwarding on timeout. 1 - 255 Data forwarding on timeout of multiplied by 0.05 seconds. 50 50 msec. timeout (factory setting) ------------------------------------------------------------------------ Parameter 5 - Ancillary Device Control This parameter specifies whether or not the PAD transmits XON-XOFF characters to the DTE. If flow control is disabled, the user must be careful not to overflow the PAD's buffer in order to prevent data loss. Local flow control is also enabled by the &K command. Values Description ------------------------------------------------------------------------ 0 No XON/ XOFF flow control (factory setting). 1 XON/XOFF flow control in data transfer state. 2 XON/XOFF flow control in both data transfer and PAD command states. ------------------------------------------------------------------------ Parameter 6 - Control of PAD Result Codes Parameter 6 controls how PAD result codes (those generated by the PAD) are to be transmitted to your terminal. Values Description ------------------------------------------------------------------------ 0 No PAD result codes are sent to your terminal. 1 PAD result codes are sent in their standard formats. The prompt PAD result code is not sent. 4 Only the prompt PAD result code is sent. 5 All PAD result codes, including the prompt PAD result code, are sent in the standard format (factory setting). ------------------------------------------------------------------------ Parameter 7 - Action on Receipt of Break from Terminal Parameter 7 is bit-mapped; binary bit values represent the following actions when the break signal is received by the PAD. Values Factory Setting ------------------------------------------------------------------------ 0-31 5 (send interrupt and indication of break) ------------------------------------------------------------------------ Bit Values Description ----------------------------------------------------------------------- 1 Send an X.25 interrupt packet to the remote system. 2 Send an X.25 reset packet to the remote system. 4 Send an X.25 indication of break packet to the remote system. 8 Escape from the data transfer state to the PAD command state. 16 Set PAD parameter 8 to 1 (discard output). ------------------------------------------------------------------------ Note: If bit 2 of S53 is set, using the break signal to escape from the data transfer state is not possible. Parameter 8 - Discard Output This parameter is set if the user wishes to abort a process running on the remote system by pressing the break key. When the break key is used, incoming data is discarded until the remote system reacts to the break signal, and sets parameter 8 back to 0. Values Description ------------------------------------------------------------------------ 0 Normal data delivery to your terminal (factory setting). 1 Discard output destined to your terminal. ------------------------------------------------------------------------ Note: Parameter 8 cannot be set using the SET command; only the remote PAD can set it. Parameter 9 - Padding after Carriage Return Parameter 9 specifies the number of ASCII NUL characters to transmit after a carriage return. This may be necessary to allow time for mechanical devices to return to a home position after a carriage return has been sent. Values Description ------------------------------------------------------------------------ 0 No padding characters sent after carriage return (factory setting). 1 Number of padding characters (NUL) sent after carriage return. ------------------------------------------------------------------------ Parameter 10 - Line Folding This parameter specifies line length. When the specified number of displayable characters have been sent to the terminal, a carriage return/line feed sequence is transmitted. Normally, this function is disabled. Values Description ------------------------------------------------------------------------ 0 No line folding (factory setting). 1 -255 Number of graphic characters per line sent by the PAD before a CR/LF is inserted. Special cases include the backspace character which decreases the count of graphic characters, and HT that follows the convention of tab stops every eighth column for display terminals, if parameter 19 = 2. ------------------------------------------------------------------------ Parameter 11 - Terminal Speed This parameter reflects the current speed of the DTE. It is automatically set by the PAD using the last AT command and may not be updated by the user or remote system (read only). Values Description ------------------------------------------------------------------------ READ ONLY None ----------------------------------------------------------------------- Value Bit Rate ----------------------------------------------------------------------- 0 110 bps 2 300 bps 3 1200 bps 4 600 bps 5 75 bps 12 2400 bps 13 4800 bps 14 7200 or 9600 bps 15 14400 or 19200 bps 16 38400 bps ------------------------------------------------------------------------ Parameter 12 - Flow Control of the PAD by Local Terminal Parameter 12 determines whether or not the PAD recognizes flow control characters issued from the DTE. If the DTE transmits an XOFF (Ctrl-S), no further data is delivered to the DTE until the PAD receives an XON (Ctrl-Q). Flow control is also enabled by the &K command. Values Description ------------------------------------------------------------------------ 0 No XON / XOFF flow control (factory setting). 1 Use of XON / XOFF flow control. ------------------------------------------------------------------------ Parameter 13 - Line Feed Insertion after Carriage Return This parameter specifies whether or not the PAD will insert a line feed character after carriage returns. This function applies only in the PAD on-line state. Values Description ------------------------------------------------------------------------ 0 No line feed inserted (factory setting). 1 Insert line feed after carriage return in the incoming data stream. 2 Insert line feed after carriage return in the outgoing data stream. 3 Insert line feed after carriage return in the data stream. 4 Insert line feed after echo of carriage return. 5 Insert line feed after carriage return in incoming data stream and also after carriage return echo. 6 Insert line feed after carriage return in the outgoing data stream and also after carriage return echo; if editing enabled (parameter 15=1), insert line feed in the next editing buffer and make available for editing. 7 Insert line feed after carriage return in the incoming and the outgoing data stream, also after carriage return echo; if editing is enabled (parameter 15=1), insert line feed in the next editing buffer and make available for editing. ------------------------------------------------------------------------ Parameter 14 - Line Feed Padding In the on-line data transfer state only, parameter 14 specifies the number of ASCII NUL characters to transmit after a LINE FEED. This parameter is required by some devices to allow sufficient time to move the platen after receiving a line feed character. Values Description ------------------------------------------------------------------------ 0 No padding after line feed (factory setting). 1-255 Number of padding characters inserted after line feed. ------------------------------------------------------------------------ Parameter 15 - Editing Parameter 15 specifies whether or not editing is used in the PAD on-line state. Parameters 16, 17, 18, and 19 describe the available editing functions. If editing is enabled, parameter 4 (forward timing) and National PAD Parameter 70 are ignored. Values Description ------------------------------------------------------------------------ 0 Editing disabled (factory setting). 1 Editing enabled. Data forwarding is suspended until the editing buffer is full, or until the character defined by parameter 3 is received. ------------------------------------------------------------------------ Whenever more data is received than can be held by the editing buffer, one full packet will be forwarded. The remaining characters are placed in the beginning of the editing buffer, and can still be edited. Parameter 16 - Character Delete The defined delete character deletes the last character in the editing buffer. After deleting the character, the PAD sends either a backslash (\) or to the DTE (depending on the setting of parameter 19). If the editing buffer is empty, then no response is sent. Values Description ------------------------------------------------------------------------ 0-127 Selects which ASCII value functions as the delete character. 8 Backspace character (factory setting). ------------------------------------------------------------------------ Parameter 17 - Line Delete This parameter defines the line delete function. When the line delete character is entered, the contents of the editing buffer are deleted. Unless the editing buffer is empty, the PAD sends a result code (XXX for printing terminals) to acknowledge the line delete function. Values Description ------------------------------------------------------------------------ 0-127 ASCII value for delete character. 24 Control-X (factory setting). ------------------------------------------------------------------------ Parameter 18 - Line Display This parameter defines the line display function. If the user enters the character specified by this parameter and editing is enabled, the contents of the editing buffer will be displayed. Values Description ------------------------------------------------------------------------ 0 Line display disabled. 1-127 ASCII value of line display character. 18 Control-R (factory setting). ------------------------------------------------------------------------ Parameter 19 - Editing PAD result codes Parameter 19 provides the PAD information about the attached DTE (terminal or printer). This ensures that the PAD sends the proper editing character sequences. For example, on a printer, the character delete function simply prints a backslash (\) for each printable character that is deleted, while a terminal is sent a BS-SP-BS sequence to backspace the cursor and erase the deleted character from the screen. The PAD uses editing PAD result codes for display terminals regardless of the value of parameter 19 when bit 2 of S53 is set. Values Description ------------------------------------------------------------------------ 0 Editing PAD result codes function disabled. 1 Editing PAD result codes for printers. 2 Editing PAD result codes for computers (factory setting). 8, 32-126 Editing PAD result codes using the character represented by the ASCII value. ------------------------------------------------------------------------ Parameter 20 - Echo Mask Parameter 20 is bit-mapped and defines the set of characters that are to be excluded from the echo function. Characters specified by bit value 64 are masked only when editing is active. Values Description ------------------------------------------------------------------------ 64 All characters, except editing characters, are echoed (factory setting). 0-255 Sum of bits selecting characters to be echoed. ------------------------------------------------------------------------ Bit Values Description ------------------------------------------------------------------------ 1 CR 2 LF 4 VT, HT, FF 8 BEL, BS 16 ESC, ENQ 32 ACK, NAK, STX, SOH, EOT, ETB, ETX 64 Parameters 16, 17, 18 (editing characters) 128 NUL, SO, SI, DLE, DC1, DC2, DC3, DC4, SYN, CAN, EM, SUB, FS, GS, RS, US ------------------------------------------------------------------------ Parameter 21 - Parity Treatment This parameter controls the parity and character format used by the terminal. Values Description ------------------------------------------------------------------------ 0 No parity checking or generation (factory setting). 2 Parity is applied to data sent to the terminal according to the parity specified by National PAD Parameter 71. ------------------------------------------------------------------------ Parameter 22 - Page Wait Parameter 22 defines the number of lines (text separated by line feeds) that are displayed before "PAGE" is displayed. No further data is transmitted to the terminal until the user sends an XON character, sets parameter 22 to zero, or escapes from the data transfer state (PAD recall). Values Description ------------------------------------------------------------------------ 0 Page wait disabled (factory setting). 1-255 Number of line feed characters sent to the terminal before the page wait condition. ------------------------------------------------------------------------ National PAD Parameter 70 - Streaming Data Forwarding National PAD Parameter 70 affects PAD data forwarding timing. When set to value 0, the data forwarding timing is controlled by PAD parameter 4. When set to value 1, "streaming mode" is set. This parameter, among others, may be set to configure a "streaming mode PAD" identical to that used in error-control/LAPB connections. In streaming mode, a character received by the PAD is placed in a packet immediately, instead of being buffered until a timeout occurs. For example, assuming the modem transmitter is idle, a character received by the PAD is forwarded immediately. This packet remains "open" in case another character is received by the PAD. The additional character can be added while the packet is actually transmitting. The result is "instantaneous" forwarding, which generally results in the best interactive performance. This may cause more packet traffic. This is no problem in point-to-point connections, but may be of some concern for networks that charge by the packet. Values Description ------------------------------------------------------------------------ 0 PAD Parameter 4 controls data forwarding timeout (factory setting). 1 Streaming data forwarding timeout. ------------------------------------------------------------------------ National PAD Parameter 71 - Character Format This parameter specifies the character format (number of data bits and parity) required by the network for the PAD, and is used to generate the proper parity on all PAD result codes and data delivered to the terminal. Individual networks specify particular settings for this parameter. National PAD Parameter 71 also determines whether or not all 8 data bits or only 7 data bits are examined when testing characters for specific values (e.g., for CR or XOFF). Values Description ------------------------------------------------------------------------ 0 Format/parity used on last AT command (factory setting) 1 8 data bits, no parity 2 7 data bits, odd parity 3 7 data bits, even parity 4 7 data bits, mark parity 5 7 data bits, space parity ------------------------------------------------------------------------ National PAD Parameters 72 - Break Signal Timing National PAD Parameters 72 is used to control whether or not break timing information via National PAD Parameters 73 is sent with the indication of break PAD message. In most PADs, when a break signal is received from the terminal, the PAD sends an X.25 interrupt packet, followed by an indication of break PAD message. The remote PAD will usually ignore the interrupt packet, and will transmit a break signal to the remote system when the indication of break PAD message is received. The duration of the break signal is normally fixed. National PAD Parameters 73 specifies the duration of the break signal transmitted by the PAD. If National PAD Parameters 72 is set to value 0, the indication of break PAD message is sent normally, and will be compatible with all networks. If National PAD Parameters 72 is set to value 1, break timing information is sent along with the indication of break PAD message, by adding a parameter/value field to the indication of break PAD message. This sets the remote PAD's National PAD Parameters 73 to a value that corresponds to the length of break as timed by the local PAD, so the break signal transmitted by the local PAD is very close to the length of the break signal received by the remote PAD. Setting National PAD Parameters 72 to value 1 could possibly confuse some networks, and should be used only in cases where you know that the remote PAD supports National PAD Parameters 73. Values Description ------------------------------------------------------------------------ 0 No break timing information sent with signal (factory setting). 1 Break timing information is sent with the break signal. ------------------------------------------------------------------------ National PAD Parameters 73 - Break Signal Duration This parameter is used to set the duration of a break signal transmitted by the PAD in increments of 10 milliseconds. The factory setting is 18 (180 msec.). National PAD Parameters 73 is usually set by the remote PAD, if the remote PAD supports National PAD Parameters 72. Values Factory Setting ------------------------------------------------------------------------ 0-255 18 (180 msec) ------------------------------------------------------------------------ National PAD Parameters 74 - Disable PAD Parameter Setting by the Remote PAD The remote system may try to re-configure the parameter settings of the local PAD (capability also available to the local modem user with the RSET command) to facilitate communications. However, doing this may not be the best configuration for your terminal. Register S57 allows you to disable the remote PAD's ability to change your PAD parameter settings. Values Description ------------------------------------------------------------------------ 0 Remote PAD can reset your PAD parameters (factory setting). 1 All set or set and read PAD messages return the INV result code to the remote system indicating that the parameter value cannot be altered from the current setting. ------------------------------------------------------------------------ National PAD Parameters 100 - Default Maximum Packet Size This parameter sets the default maximum packet size according to the following parameter value-to-packet size (in bytes) conversions: Values Description ------------------------------------------------------------------------ 4 16 bytes 5 32 bytes 6 64 bytes 7 128 bytes (factory setting) 8 256 bytes 9 512 bytes ------------------------------------------------------------------------ National PAD Parameters 101 - Default Maximum Window Size This parameter sets the default maximum window size. Values Factory Setting ------------------------------------------------------------------------ 2-7 2 ------------------------------------------------------------------------ National PAD Parameters 102 - Call Request Response Timer This parameter sets the maximum amount of time the transmitter should wait for acknowledgment to a call request packet before initiating recovery procedure, in 10-second increments. Values Factory Setting ------------------------------------------------------------------------ 1-255 20 (200 seconds) ------------------------------------------------------------------------ National PAD Parameters 103 - Reset Request Response Timer This parameter sets the maximum amount of time the transmitter should wait for acknowledgment to a reset request packet before initiating recovery procedure, in 10-second increments. Values Factory Setting ------------------------------------------------------------------------ 1-255 18 (180 seconds) ------------------------------------------------------------------------ National PAD Parameters 104 - Clear Request Response Timer This parameter sets the maximum amount of time the transmitter should wait for acknowledgment to a clear request packet before initiating recovery procedure, in 10-second increments. Values Factory Setting ------------------------------------------------------------------------ 1-255 18 (180 seconds) ------------------------------------------------------------------------ National PAD Parameters 105 - Interrupt Response Time This parameter sets the maximum amount of time the transmitter should wait for acknowledgment to an interrupt packet before initiating recovery procedure, in 10-second increments. Values Factory Setting ------------------------------------------------------------------------ 1-255 18 (180 seconds) ------------------------------------------------------------------------ National PAD Parameters 106 - Reset Request Retransmission Counter This parameter defines the maximum number of times a reset request packet should be retransmitted. Values Factory Setting ------------------------------------------------------------------------ 0-255 1 retransmission ------------------------------------------------------------------------ National PAD Parameters 107 - Clear Request Retransmission Counter This parameter defines the maximum number of times a clear request packet should be retransmitted. Values Factory Setting ------------------------------------------------------------------------ 0-255 1 retransmission ------------------------------------------------------------------------ National PAD Parameters 108 - Channel Allocation Parameter This parameter is used to inform the PAD how the application software or user intends to use the current PAD channel. There are four possible settings. Values Description ------------------------------------------------------------------------ 0 Unavailable - the PAD channel will not be used; outgoing calls are not allowed, and incoming calls will be directed to incoming or free channels, or cleared. 1 Outgoing - the PAD channel will be used for an outgoing call; incoming calls will be directed to incoming or free channels, or cleared. 2 Incoming - the PAD channel will be used for an incoming call; outgoing calls are not allowed; the PAD will assign an incoming call to PAD channels assigned as incoming before those assigned as bi-directional. 3 Bi-directional - the PAD channel can be used for incoming or outgoing calls; incoming calls will be directed to free channels if no incoming channels are available (factory setting). ------------------------------------------------------------------------ ************************************************************************ 2.3 PAD Profiles For many X.25 connections, the PAD can be used without any changes to its factory configuration. For information on creating, saving, and recalling PAD profiles, see the PROF command. Four standard profiles are provided here: Factory-Set Profile PAD Values Description Default Parameter ------------------------------------------------------------------------ 1 0-126 PAD recall using a character 0 (disabled) 2 0,1 Echo 0 (disabled) 3 0-127 Selection of data forwarding 0 (disabled) signal 4 0-255 Selection of idle timer delay 1 (50 msec timeout 5 0,1,2 Ancillary device control 0 (XON/XOFF disabled) 6 0,1,4,5 Control of PAD result codes 5 (standard PAD result) 7 1,2,4, Response to break from 5 (send interrupt 8,16 terminal and break indication) 8 0,1 Discard output 0 (normal delivery) 9 0-255 Padding after carriage return 0 (disabled) 10 0-255 Line folding 0 (disabled) 11 0,2-5, Terminal speed (speed of terminal 12-16 indicated) 12 0,1 Flow control of PAD by 0 (XON/XOFF disabled) terminal 13 0-7 Linefeed insertion after CR 0 (disabled) 14 0-255 Linefeed padding 0 (disabled) 15 0,1 Editing 0 (disabled) 16 0-127 Character delete 8 (BS) 17 0-127 Line delete 24 (CAN, ^X) 18 0-127 Line display 18 (DC2, ^R) 19 0,1,2,8, Editing PAD result codes 2 (display terminals) 32-126 20 0-255 Echo mask 64 (echo all characters except editing characters 21 0,2 Parity treatment 0 (disabled) 22 0-255 Page wait 0 (disabled) 70* 0,1 Streaming data forwarding 0 (disabled) 71* 0,5 Character format 0 (set by AT autobaud) 72* 0,1 Break signal timing 0 (disabled) 73* 0-255 Break signal duration 18 (180 msec) 74* 0,1 Disable PAD parameter 0 (parameters set settings by remote PAD by remote PAD) 100* 4-9 Default packet size 7 (128 bytes) 101* 2-7 Default window size 2 (2 outstanding packets) 102* 1-255 T21 call request response 20 (200 seconds) timer 103* 1-255 T22 reset request response 18 (180 seconds) timer 104* 1-255 T23 clear request response 18 (180 seconds) timer 105* 1-255 T26 interrupt response 18 (180 seconds) timer 106* 0-255 R22 reset request 1 retransmission retransmission 107* 0-255 R23 clear request 1 retransmission retransmission 108* 0-3 Channel allocation 3 (normal channel parameter allocation) *National PAD Parameters ------------------------------------------------------------------------ CCITT Simple Standard Profile Pad Values Description Default Parameter ------------------------------------------------------------------------ 1 0-126 PAD recall using a character 1 (DLE character) 2 0,1 Echo 1 (echo on) 3 0-127 Selection of data forwarding 126 (forward on signal control characters and DEL) 4 0-255 Selection of idle timer delay 0 (no timeout) 5 0,1,2 Ancillary device control 1 (XON/XOFF enabled) 6 0,1,4,5 Control of PAD result codes 1 (standard PAD result codes enabled, no prompt) 7 1,2,4, Response to break from 2 (send reset packet) 8, 16 terminal 8 0,1 Discard output 0 (normal delivery) 9 0-255 Padding after carriage return 0 (disabled) 10 0-255 Line folding 0 (disabled) 11 0,2-5, Terminal speed (speed of terminal 12-16 indicated) 12 0,1 Flow control of PAD by 1 (XON/XOFF disabled) terminal 13 0-7 Linefeed insertion after CR 0 (disabled) 14 0-255 Linefeed padding 0 (disabled) 15 0,1 Editing 0 (disabled) 16 0-127 Character delete 127 (DEL character) 17 0-127 Line delete 24 (CAN, ^X) 18 0-127 Line display 18 (DC2, ^R) 19 0,1,2 Editing PAD result codes 1 (printing 8,32-126 terminals) 20 0-255 Echo mask 0 (echo all characters) 21 0,2 Parity treatment 0 (disabled) 22 0-255 Page wait 0 (disabled) 70* 0,1 Streaming data forwarding 0 (disabled) 71* 0,5 Character format 0 (set by AT autobaud) 72* 0,1 Break signal timing 0 (disabled) 73* 0-255 Break signal duration 18 (180 msec.) 74* 0,1 Disable PAD parameter 0 (parameters set by settings by remote PAD remote PAD) 100* 4-9 Default packet size 7 (128 bytes) 101* 2-7 Default window size 2 (2 outstanding packets) 102* 1-255 T21 call request response 20 (200 seconds) timer 103* 1-255 T22 reset request response 18 (180 seconds) timer 104* 1-255 T23 clear request response 18 (180 seconds) timer 105* 1-255 T26 interrupt response 18 (180 seconds) timer 106* 0-255 R22 reset request 1 retransmission retransmission 107* 0-255 R23 clear request 1 retransmission retransmission 108* 0-3 Channel allocation parameter 3 (normal channel allocation) *National PAD Parameters ------------------------------------------------------------------------ CCITT Transparent Standard Profile PAD Values Description Default Parameter ------------------------------------------------------------------------ 1 0-126 PAD recall using a character 0 (disabled) 2 0,1 Echo 0 (disabled) 3 0-127 Selection of data forwarding 0 (disabled) signal 4 0-255 Selection of idle timer delay 20 (1 sec. timeout) 5 0,1,2 Ancillary device control 0 (XON/XOFF disabled) 6 0,1,4,5 Control of PAD result codes 0 (disabled) 7 1,2,4, Response to break from 2 (send reset packet) 8, 16 terminal 8 0,1 Discard output 0 (normal delivery) 9 0-255 Padding after carriage return 0 (disabled) 10 0-255 Line folding 0 (disabled) 11 0,2-5, Terminal speed (speed of terminal 12-16 indicated) 12 0,1 Flow control of PAD by 0 (XON/XOFF disabled) terminal 13 0-7 Linefeed insertion after CR 0 (disabled) 14 0-255 Linefeed padding 0 (disabled) 15 0,1 Editing 0 (disabled) 16 0-127 Character delete 127 (DEL) 17 0-127 Line delete 24 (CAN, ^X) 18 0-127 Line display 18 (DC2, ^R) 19 0,1,2, Editing PAD result codes 1 (printing 8, 32-126 terminals) 20 0-255 Echo mask 0 (echo all characters) 21 0,2 Parity treatment 0 (disabled) 22 0-255 Page wait 0 (disabled) 70* 0,1 Streaming data forwarding 0 (disabled) 71* 0,5 Character format 0 (set by AT autobaud) 72* 0,1 Break signal timing 0 (disabled) 73* 0-255 Break signal duration 18 (180 msec.) 74* 0,1 Disable PAD parameter 0 (parameters set by settings by remote PAD remote PAD settings by remote PAD 100* 4-9 Default packet size 7 (128 bytes) 101* 2-7 Default window size 2 (2 outstanding packets) 102* 1-255 T21 call request response 20 (200 seconds) timer 103* 1-255 T22 reset request response 18 (180 seconds) timer 104* 1-255 T23 clear request response 18 (180 seconds) timer 105* 1-255 T26 interrupt response 18 (180 seconds) timer 106* 0-255 R22 reset request 1 retransmission retransmission 107* 0-255 R23 clear request 1 retransmission retransmission 108* 0-3 Channel allocation parameter 3 (normal channel allocation) ------------------------------------------------------------------------ *National PAD Parameters Error-control/LAPB Profile PAD Values Description Default Parameter ------------------------------------------------------------------------ 1 0-126 PAD recall using a character 0 (disabled) 2 0,1 Echo 0 (disabled) 3 0-127 Selection of data forwarding 0 (disabled) signal 4 0-255 Selection of idle timer delay 0 (no timeout) 5 0,1,2 Ancillary device control 0 (XON/XOFF disabled) 6 0,1,4,5 Control of PAD result codes 0 (no PAD result codes) 7 1,2,4, Response to break from 5 (send interrupt and 8, 16 terminal break indication) 8 0,1 Discard output 0 (normal delivery) 9 0-255 Padding after carriage return 0 (disabled) 10 0-255 Line folding 0 (disabled) 11 0,2-5, Terminal speed (speed of terminal 12-16 indicated) 12 0,1 Flow control of PAD by 0 (XON/XOFF disabled) terminal 13 0-7 Linefeed insertion after CR 0 (disabled) 14 0-255 Linefeed padding 0 (disabled) 15 0,1 Editing 0 (disabled) 16 0-127 Character delete 8 (BS) 17 0-127 Line delete 24 (CAN, ^X) 18 0-127 Line display 18 (DC2, ^R) 19 0,1,2 Editing PAD result codes 2 (display terminals) 8,32-126 20 0-255 Echo mask 64 (echo all characters except editing characters) 21 0,2 Parity treatment 0 (disabled) 22 0-255 Page wait 0 (disabled) 70* 0,1 Streaming data forwarding 1 (streaming mode selected) 71* 0,5 Character format 0 (set by AT autobaud) 72* 0,1 Break signal timing 1 (time break signal) 73* 0-255 Break signal duration 18 (180 msec) 74* 0,1 Disable PAD parameter 0 (parameters set by settings by remote PAD remote PAD) 100* 4-9 Default packet size 7 (128 bytes) 101* 2-7 Default window size 2 (2 outstanding packets) 102* 1-255 T21 call request response 20 (200 seconds) timer 103* 1-255 T22 reset request response 18 (180 seconds) timer 104* 1-255 T23 clear request response 18 (180 seconds) timer 105* 1-255 T26 interrupt response timer 18 (180 seconds) 106* 0-255 R22 reset request 1 retransmission retransmission 107* 0-255 R23 clear request 1 retransmission retransmission 108* 0-3 Channel allocation parameter 3 (normal channel allocation) ------------------------------------------------------------------------ *National PAD Parameters ************************************************************************ 2.4 Typical X.25 Scenarios The examples below provide scenarios of typical activities you might perform and/or experience with X.25 connections. Each one provides the "Activity," a reference to a command description within this document for further discussion, the "Result" of the "Activity," and an "Example Log-on" when applicable. These examples may be helpful as reference when you are writing sequences for users, or when developing software. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.1 Synopsis of a Communication Session with a Packet-switched Network The events in a typical X.25 communication session are detailed below. Establishing a Network Connection. X.25 connections begin the same as point-to-point connections - with a modem call to a remote system. Once connected to the network, however, you use the PAD to make one or more virtual connections to other nodes on the network. Making a Virtual Connection. The following procedure explains the steps for the major activities in X.25 communications. Step 1: Configuring the modem for X.25. Before placing a call to the network, you must configure the modem to make an X.25 connection. First, enter the modem's command state: Issue AT&Q5S44=3S46=6S48=0 E. This command string verifies that the modem is in the error-control mode (&Q5) and sets the values of three S- registers that control the modem's feature negotiation. S48=0 controls the negotiation process; S46=6 stipulates an X.25 connection. Now, instead of negotiating a V.42 connection, the modem attempts connections using the X.25 protocol. Step 2: Calling the network. Next, dial the number of the network to which you subscribe. This is a standard modem call made with the D command: ATDT9,555-1234 E (for example). If the call is successful, the modem will connect and issue a result code sequence. The carrier and connect messages you receive depend on the connection. If you want to see the extended messages, you must issue the W1 command. With this feature enabled, for a 2400 bps connection, the messages will be CARRIER 2400 PROTOCOL: X.25/LAPB CONNECT 4800. The PAD automatically enters the command state for channel 1. Step 3: Making a virtual connection to the remote system. To establish a virtual call to a user on the network, you must have the network address of the other node to which you wish to connect and any other information required by the network. For example, to connect to a service on the network, you would issue: CALL R-3110 20200202 . CALL is the command for initiating connections with a remote system. The (R) command permits reverse charging if the user at the other end of the virtual connection requests it. 3110 is a network ID code and 20200202 is the destination address. If the call is accepted by the remote system, the network will return the result code sequence: CON COM: W2:2,P7:7,X0277 COM. The PAD then enters the data transfer state. If the call is not accepted, the network returns a response such as CLR DTE 157 FAC: (followed by network information as alpha-numeric characters X000...). The PAD remains in the PAD command state. Step 4: Performing on-line activities. Once connected, you can perform desired communications - file transfers, interactive typing, etc. Step 5: Clearing the call. When ready to end the session, issue CTRL-P to return to the channel's command state. Then issue CLR . This clears the current virtual connection. The network responds with CLR CONF FAC: (followed by network information as alpha-numeric characters X000...). Note: All virtual calls should be cleared before returning to the AT command state. Step 6: Exiting the PAD. EXIT - Leaves PAD command state and enters the AT command state. Step 7: Terminating the network connection. ATH0 - Breaks the physical connection to the network node. This action hangs up the telephone, in the same way other communication sessions are terminated. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.2 Establishing a Virtual Connection The example log-on and results below illustrate a successful attempt to establish a virtual connection. ------------------------------------------------------------------------ ACTIVITY: User dials CompuServe, connects, then issues CALL command to establish a virtual connection. Call is accepted. REFER TO: CALL command description. RESULT: Call is accepted. Depending on the network requirements, the modem sends back the following: CON
COM Note: The data in capital letters is sent to you; the data in angle brackets may or may not be sent to you. EXAMPLE LOG-ON: User calls Telenet and issues CALL command to go on- line with CompuServe: Enter: AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 Result: CARRIER 2400 PROTOCOL: X.25/LAPB CONNECT 2400 Enter: CALL R-311020200202 Result: CON COM: W2:2,P7:7,X 0277 COM ---------------------------------------------------------------------- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.3 Attempting a Virtual Connection that is not Accepted This scenario depicts an unsuccessful attempt at establishing a virtual connection. For various reasons, the connection may not be completed. The reason(s) will be provided in result codes generated by the PAD. ------------------------------------------------------------------------ ACTIVITY: User dials packet-switched network, connects, then issues CALL command to establish a virtual connection, but call is not accepted. REFER TO: CALL command description. RESULT: Call is not accepted. Depending on the network requirements, the modem returns the following result codes: CLR
EXAMPLE LOG-ON: User calls Telenet and issues CALL command to go on- line with CompuServe: Enter: AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 Result: CARRIER 2400 PROTOCOL: X.25/LAPB CONNECT 2400 Enter: CALL R-311020200202 Result: CLR DTE 157 FAC: X0000C10400000000C208080000000100000062 ------------------------------------------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.4 Resetting a Virtual Channel While on-line to another user on the network, if the escape sequence is used to return to the PAD command state, the channel will be reset. ------------------------------------------------------------------------ ACTIVITY: User is connected to a packet-switched network, has established a virtual connection, then escapes to the PAD command state and resets the virtual channel. REFER TO: RESET command description. RESULT: The PAD resets the virtual channel and returns the following information to the user: RESET EXAMPLE LOG-ON: n/a --------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.5 Resetting a Virtual Channel a by Remote PAD As a result of network activity, the remote PAD may reset a virtual channel. If this occurs, data may be lost. The call must also be re- established. ------------------------------------------------------------------------ ACTIVITY: User is connected to a packet-switched network, has established a virtual connection, and the network resets the virtual channel. REFER TO: RESET command description. RESULT: The PAD resets the virtual channel and returns the following information to the user: RESET EXAMPLE LOG-ON: n/a ------------------------------------------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.6 Clearing a Virtual Channel This scenario is the typical way to end a virtual call following a session. This is also the process to use when other calls are to be maintained. ------------------------------------------------------------------------ ACTIVITY: User is connected to a packet-switched network, has established a virtual connection, escapes to PAD command state, and clears the call. REFER TO: CLR command description. RESULT: The PAD clears the call, sets all PAD parameters back to their values prior to establishing the virtual connection, and returns the following result codes: CLR CONF FAC: X 00 00 C1 04 00 00 01 03 C2 08 00 00 00 08 80 00 00 04 EXAMPLE LOG-ON: User calls Telenet and issues CALL command to go on-line with CompuServe: Enter: AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 Result: CARRIER 2400 PROTOCOL: /X.25 CONNECT 2400 Enter: CALL R-311020200202 Result: CON W2:2,P7:7,X 0277, COM Enter: User ID: Result: * Enter: Ctrl-P to return to the PAD command state Result: CLR CONF FAC: X0000C104000000103C208000000008800000004 ------------------------------------------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.7 Accepting a Request from Remote PAD to Establish Virtual Connection A request from a remote PAD to establish a virtual connection will be received when another network user is attempting to make a connection with you. Although the standard response is to accept, be aware that by accepting the request, you may be accepting certain network charges other than packet transmission fees. ------------------------------------------------------------------------ ACTIVITY: User using modem and receives request from remote unit to establish a virtual connection REFER TO: ACC command description. RESULT: The remote PAD sends the following result code to the user: IC COM EXAMPLE LOG-ON: n/a ------------------------------------------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.8 Clear Command Failed This scenario describes a request to clear a channel denied by the PAD. This may occur because the modem is transferring data. ------------------------------------------------------------------------ ACTIVITY: User is connected to a packet-switched network, has established a virtual connection, escapes to PAD command state, but call fails to be cleared. REFER TO: CLR command description. RESULT: The PAD sends the following result code: CLR FAILED EXAMPLE LOG-ON: n/a ------------------------------------------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.4.9 Link Restart Occurs The example result code below indicates that the virtual links have been dropped. The connections must be re-established. ------------------------------------------------------------------------ ACTIVITY: A "link restart" is a major error condition in which all virtual calls are disconnected and the virtual channels return to "start" mode. EXAMPLE: LINK RESTARTED ------------------------------------------------------------------------ ======================================================================== APPENDIX A COMMUNICATION OPTIONS This appendix describes the various methods of communication supported by Hayes modems. Set-up recommendations for each of these modes are provided. Set-up examples and environment descriptions are also included. ************************************************************************ A.1 Transmission and DTE Types Modems communicate over the telephone line by converting data from analog to digital form and vice versa. The techniques used are fundamentally the same whether the data transmission mode is synchronous or asynchronous. In most cases, communications over the telephone lines will be synchronous, regardless of the mode selected. The interface between the modem and the DTE will depend on the mode selected. 300 bps communications (for example when on-line with a Smartmodem 300) are always asynchronous between modems. At speeds of 1200 bps and higher, the modem-to-modem links are always synchronous. However, between the DTE and the modem, synchronous and asynchronous communication differ significantly. The DTE hardware and software are usually different as well. A modem operating with a synchronous DTE could connect to another modem operating with an asynchronous DTE, as the carrier signals are no different. But the data passed over the link might not be intelligible to their respective computers. The interface between the modem and the DTE is generally asynchronous for all personal computer-to-modem communications. When the modem-to-DTE link is synchronous, the DTE must be a synchronous device such as a synchronous adapter card installed within the computer. The two types of transmission differ in the techniques used to separate the characters that are transmitted. Asynchronous transmissions use bits to indicate the start and stop of the character. Synchronous transmissions use clocking signals. Hayes modems provide several communication modes to adapt to a variety of environments and operating demands. When a communications mode is selected that supports an asynchronous DTE at 1200 bps or greater, the modem converts the asynchronous data into synchronous data that is compatible with the modem-to-modem carrier signals. In some of the communications modes that support asynchronous DTEs, the start and stop bits are also converted to synchronous data over the modem-to-modem link. Naturally, the modems on both ends of the link must be in a compatible communications mode if the data is to be restored at the receiving DTE. For this reason, communications modes that support asynchronous DTEs and which actually send the start and stop bits over the modem-to-modem link are often referred to as asynchronous connections. The communications mode is controlled by the &Q command, except for Smartmodem 300 and those Smartmodem 1200s that support only asynchronous mode. This command is discussed fully in the next section. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.1.1 Asynchronous Transmissions Most communications between PCs are asynchronous. Asynchronous transmissions pass data between the modems as characters. Data is then transmitted as character bits framed by start, stop, and parity bits to mark the beginning and end of character units. The use of parity bits is optional depending on the asynchronous character format selected. When sending and receiving data, the modem supports the following asynchronous character formats: Starts Bits Data Bits Parity Stop Bits ------------------------------------------------------------------------ 1 7 even/odd 1 or more 1 7 none 2 1 7 mark/space 1 or more 1 8 none 1 or more ------------------------------------------------------------------------ At speeds of 1200 bps or higher, the modem always generates data in a 10-bit format, including the start bit. In the modem command state, information exchanged between the DTE and modem consists of commands and responses that are not transmitted or received over the phone line. The character formats supported by a particular modem are provided in your modem's installation information. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.1.2 Synchronous Transmissions Synchronous communication is a specialized form of data transmission and generally requires special hardware and software combinations. When operating in a synchronous mode, the modem functions as a pipeline, sending bits across the link between modems according to uniform blocks of time. Communication is managed through special protocols. Though techniques differ slightly, synchronous protocols assemble data in frames prior to transmission and disassemble the frames on arrival. If the communication environment supports synchronous communication, the framing - data formatting - is performed by the communications software. No data format selection is required of the modem for synchronous operation. Synchronous modes 1, 2, 3, and 4 are supported by standalone (external) modems. Hayes boardlevel (internal) modems support synchronous communications with synchronous mode 4, Hayes AutoSync. The only exceptions are the modems designed for the Apple Macintosh II family: Smartmodem 2400M and V-series Smartmodem 2400M. The Macintosh II, unlike other personal computers, supports both asynchronous and synchronous communications without an adapter card. If a personal computer (an IBM PC XT, for example) has a synchronous adapter card installed, then a Hayes standalone products that supports modes 1, 2, or 3, may be used for synchronous communications. ************************************************************************ A.2 Communication Modes - &Q The requirements of the communication link - including the software that addresses the modem and the capabilities of the local and remote modems - determine the mode to be used. For example, there are three modes for asynchronous DTEs (&Q0, &Q5, and &Q6) and three modes for synchronous DTEs (&Q1, &Q2, and &Q3). Most PC communications are performed in the asynchronous mode. Unless the modem is installed on a terminal, or computer with synchronous capability, or connected to a mainframe, communication will most likely be asynchronous. For those situations such as mainframe connections, the modem can be configured for synchronous modes. Synchronous communication requires special hardware in all but mode 4. In all synchronous modes, special software that provides the necessary protocol is required. Synchronous communication requires that the DTE (either the personal computer/data terminal or the port on the host computer) be able to exercise some degree of control over DTR. When the modem is operating in synchronous modes 1, 2, or 3, the modem's response to DTR transitions as specified by the &D command are significantly different than responses to changes in DTR when the modem is in asynchronous modes 0, 5, or 6. Modes 1, 2, and 3 are based on the 108.1 application of the CCITT Recommendation V.24 that specifies series interchange circuit designations. This alternative, "Connect Data Set (modem) To Line," is very similar to EIA/TIA-232-D (a revised version of RS 232-C). "Mode 4: AutoSync" is the Hayes alternative for synchronous communication from a personal computer. Originally developed to afford Hayes internal modems for IBM PC XTs a means of communicating with synchronous computers (mainframes such as IBM 3090 models), this feature was added to standalone modems as well. Using a personal computer and software incorporating the Hayes Synchronous Interface (HSI) software, the modem can be used synchronously from most asynchronous serial computer ports. The factory default setting is &Q0 (asynchronous mode) for Smartmodem products, and &Q5 for V-series, OPTIMA and ACCURA EC products. When a Hayes product attempts an error-control connection, the DTE asynchronous data is converted to synchronous data. The start and stop bits are discarded over the modem-to-modem link where the data is encapsulated by a synchronous framing protocol that the DTE cannot see. The specific type of synchronous framing (error-control protocol) that is used is determined by registers S36, S46, and S48. When a V-series product connects to a Smartmodem 1200 attached to a V-series Modem Enhancer, a special Asynchronous Framing Technique (AFT) is used when an error-control link is established (AFT preserves the start and stop bits in the modem-to-modem link.) The &Q0 and &Q6 modes also convert the asynchronous DTE's start and stop bits to synchronous data in the modem-to-modem link, so that those modes are compatible at each end of the same modem connection. The &Q6 mode, however, permits the DTE to operate at a faster speed than the modem link by using buffers in the modem and bi-directional local flow control between the modem and the DTE. The &Q0 mode utilizes the CCITT V.14 standard stop bit manipulation feature to accommodate the slight speed discrepancies that can occur between a modem and a DTE that are operating at the same nominal speed. The chart below lists the &Q command options currently defined for selection of communication mode. Details on these modes are provided in subsequent sections. Command Definition ------------------------------------------------------------------------ &Q0 Asynchronous mode - standard personal computer connection; call placement and connection are both asynchronous. Basic setup permitting interaction with the modem in either the command or the on-line states. &Q1 Synchronous Mode 1 - call placement takes place using asynchronous DTE, then modem switches to synchronous DTE when the connection is fully established. The switchover time is controlled by register S25. &Q2 Synchronous Mode 2 - dial stored number under control of the DTR interface circuit of a synchronous DTE. The use of an asynchronous DTE in command state is optional. &Q3 Synchronous Mode 3 - dial manually using the DTR (V.24 108.2) interchange circuit to switch between voice and data modes. Requires telephone to dial while in the voice mode. The use of an asynchronous DTE in command state is optional. &Q4 Hayes AutoSync - call placement takes place using asynchronous DTE, then modem switches to a special mode that makes an asynchronous port appear to operate synchronously after the connection is established. This mode requires software addressing the Hayes Synchronous Interface (HSI). &Q5 Error-control mode - call establishment and data transfer use an asynchronous DTE. Negotiation of error-control and compression features with other modem is controlled by registers S36, S46, and S48. With factory default settings, modem in &Q5 mode attempts the most compressed error-free connection features that the other modem will support. Modem may "fall back" to &Q6 or to &Q0 modes during the connection negotiation if the remote modem does not support an error- control protocol. &Q6 Asynchronous mode with speed buffering enabled. In addition to the features provided by &Q0, this mode allows for a DTE speed that is faster than the modem-to-modem link. Modem buffers and local flow control are used. ------------------------------------------------------------------------ Note: In addition to the modes selected and initiated with AT commands, some Hayes products also support CCITT V.25bis as an alternate method of controlling the modem. This method of modem control is discussed following the descriptions of the individual communication modes. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.2.1 Asynchronous Mode - &Q0 In this mode, the modem transmits and receives characters asynchronously to and from the local data terminal at the same nominal speed as the modem connection. Asynchronous mode can be selected with the &Q0 command option. The asynchronous mode supports both the on-line and the "on-line" command states. When connected to an asynchronous data terminal, the modem can be configured, used as a dialer, and placed on-line for data communications. A complete explanation of communications in this mode is provided in your user documentation. If the modem receives a character while dialing the telephone number, it aborts the call and sends the OK result code; if a character is received after dialing but prior to the completion of the connection, it aborts the call and sends the NO CARRIER result code. The modem exits the on-line state and returns to the command state when a loss of carrier exceeding the time interval stored in S10 is detected. For the responses associated with transitions of the DTR signal for this mode, refer to the discussions of the &D command in Chapter 1. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.2.2 Synchronous Mode 1:Sync/Async - &Q1 Synchronous mode 1 is intended to support terminals capable of communicating both synchronously and asynchronously over the same V.24/RS-232 port. In synchronous mode 1, a call may be completed using asynchronous methods from the command state with the D or A command. The modem automatically switches to the synchronous on-line state when the CONNECT XXXXX result code is delivered to the terminal. Because call establishment in this mode is initiated from the asynchronous command state, the modem must be attached to a computer port with both synchronous and asynchronous capabilities. If the modem receives a character while dialing the telephone number, it aborts the call and sends the OK result code; if a character is received after dialing but prior to the completion of the connection, it aborts the call and sends the NO CARRIER result code. The data terminal must apply an ON condition to DTR before on-line data transfer can begin. Once the CONNECT XXXXX result code is received, the modem delays a period of time determined by S25 before examining the condition of the DTR signal. If DTR is ON, the modem enters the synchronous on-line state. If DTR is OFF, the modem hangs up and returns to the asynchronous command state. For the responses associated with transitions of the DTR signal for this mode, refer to the discussions of the &D command in Chapter 1. The modem exits the synchronous on-line state and returns to the asynchronous command state when a loss of carrier exceeding the time interval stored in S10 is detected. If DTR is OFF and &D2 is selected, the auto-answer feature is disabled regardless of the value of register S0. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.2.3 Synchronous Mode 2: Stored Number Dial - &Q2 In this mode, the modem supports a synchronous-only data terminal or a computer with a synchronous adapter card. In synchronous mode 2, the modem automatically dials a number stored in location 0 (see the &Zn=x command) when the modem detects an off-to-on transition on DTR (when it is turned on). When configuring the modem for this mode, result codes should usually be turned off (the Q1 command option) as some computers do not interpret responses from the modem correctly. The modem can be configured in the asynchronous command state while &Q2 is in effect, but the D and A commands are disabled. The modem exits the synchronous on-line state and returns to the asynchronous command state when a loss of carrier exceeding the time interval stored in S10 is detected. An on-to-off transition of DTR causes the modem to hang up and return to the asynchronous command state. For the responses associated with transitions of the DTR signal for this mode, refer to the discussions of the &D command in Chapter 1. Synchronous mode 2 is similar to the CCITT Recommendation V.25bis ("Direct call and/or answer controlled by the DTE"). Once this mode has been selected, the modem may go off-hook and begin dialing the stored number as soon as the modem is connected to the terminal. To delay this transition, turn the modem off (place the power switch in the down position) before connecting the devices. When the connection is completed, turn the modem back on. Note that when DTR is off, auto-answer is disabled - regardless of the &D option selected. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.2.4 Synchronous Mode 3: Manual Dial with Data/Talk Switch - &Q3 In synchronous mode 3, the DTR interchange circuit serves as a data/talk switch. This mode supports a synchronous-only data terminal or a personal computer with a synchronous adapter card installed. A telephone set must be attached to the PHONE connector on the rear of the modem or directly to the telephone line. This mode permits the data terminal operator to initiate a call using the telephone with the modem in "talk mode," and to complete the call by switching the modem to the "data mode" by turning on the DTR interchange circuit. When configuring the modem for this mode, result codes should be turned off using the Q1 command option. The modem can be configured in the asynchronous command state while &Q3 is in effect, but the D and A commands are disabled. To originate a call in synchronous mode 3, the DTR interchange circuit must be off. This places the modem in talk mode. When the modem has been configured for this mode with the &Q3 command, the terminal operator can lift the receiver and dial the number. When the last character of the dial string has been dialed, the modem can be switched to data mode by causing the data terminal equipment to turn on the DTR signal. The operator should then hang up the receiver. When the data terminal equipment turns on DTR, the TR indicator (on the front panel of standalone Hayes products) lights up. For the responses associated with transitions of the DTR signal for this mode, refer to the discussions of the &D command in Chapter 1. The modem exits the synchronous on-line state and returns to the asynchronous command state when a loss of carrier exceeding the time interval stored in S10 is detected. If the connection fails, the modem automatically hangs up and switches from data to talk mode. To re-initiate the call, DTR must again be turned off. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.2.5 Synchronous Mode 4: Hayes AutoSync - &Q4 With communication software incorporating the Hayes Synchronous Interface (HSI), the modem can communicate synchronously without a synchronous interface adapter card. In AutoSync mode, the modem places the call asynchronously then automatically switches to synchronous operation once the telephone connection is fully established. If the modem receives a character while dialing the telephone number, the modem aborts the call and sends the OK result code; if a character is received after dialing but prior to the completion of the connection, it aborts the call and sends the NO CARRIER result code. The data terminal must apply an ON condition to DTR before data transfer can begin. Once the CONNECT XXXXX result code is received by the DTE, the modem delays for a period of time determined by S25 before examining the condition of the DTR signal. If DTR is ON, the modem enters the synchronous operation state. If DTR is OFF, the modem hangs up and returns to the asynchronous command state. The modem exits the synchronous on-line state and returns to the asynchronous command state when a loss of carrier exceeding the time interval stored in S10 is detected. For the responses associated with transitions of the DTR signal for this mode, refer to the discussions of the &D command in Chapter 1. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.2.6 Error-control Mode - &Q5 The error-control mode is a feature available between modems supporting particular protocols (e.g., CCITT V.42). This mode provides a means of controlling errors that may occur during transmission. When operating in this mode, the modem implements one of the error-control protocols that can be negotiated with the remote modem. If the modem receives a character while dialing the telephone number, it aborts the call and sends the OK result code; if a character is received after dialing but prior to the completion of the connection, it aborts the call and sends the NO CARRIER result code. For the responses associated with transitions of the DTR signal for this mode, refer to the discussions of the &D command in Chapter 1. Error-control mode is automatically selected in &Q5 communication mode (factory setting) for V-series, OPTIMA and ACCURA EC products. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.2.7 Asynchronous Mode with Automatic Speed Buffering - &Q6 Automatic Speed Buffering (ASB) is useful for computers and communication programs that do not automatically adjust to changing transmission speeds. ASB enables computer equipment to send and receive data to and from the attached modem at one particular transmission speed, regardless of the speed of the modem-to-modem connection. (If using a Hayes Smartcom product, ASB is unnecessary; Hayes communications software adjusts to changing speeds and connection types.) When a Hayes product cannot complete an error-control connection, it attempts to establish an asynchronous connection (if in factory configuration). When this occurs, the modem-to-computer (DTE) transmission speed may change, however. To accommodate computers or computers running software that cannot adjust to such a change, the local Hayes product can be configured to enable Automatic Speed Buffering when it has to fall back to asynchronous communication. For negotiation failure treatments, see the description of S36 in Chapter 1, and the modem's installation information for the options available to the specific modem. ASB buffers (stores) data temporarily, using local flow-control to parcel it from the computer as the modem is ready to receive it. The modem must be set with the &K command to use the appropriate DTE flow- control method. When using ASB, the modem signals the local computer when to start and stop sending data, depending on how full the modem's 256-byte buffer is. The factory setting for flow-control is appropriate for most computers. However, in rare instances, you may need to select another flow-control method. For example, if using XON/XOFF flow control (&K4 setting) results in undesirable interactions with the user's application software, then RTS/CTS (&K3) or transparent XON/XOFF (&K5) are available. To increase buffer size, change its "upper limit" by changing the setting of S50 from its factory setting of 16 bytes to a higher number in its range of 2-250 bytes. The value of the register reflects the number of bytes that can be stored in the buffer before the modem signals the computer to stop sending data. It is unlikely that the buffer's "lower limit," the level at which the modem signals the local computer to resume sending data, would ever need to be changed. However, this setting can be changed by writing to S49. The factory setting is 8 bytes with a range of 1-249 bytes. If these register values are set incorrectly or outside the acceptable range, they are automatically adjusted by the modem for ASB to work. If the modem receives a character while dialing the telephone number, it aborts the call and sends the OK result code; if a character is received after dialing but prior to the completion of the connection, it aborts the call and sends the NO CARRIER result code. For the responses associated with transitions of the DTR signal for this mode, refer to the discussions of the &D command in Chapter 1. ======================================================================== APPENDIX B: TROUBLESHOOTING TIPS This appendix offers solutions should you encounter any modem communications problems.The first sections discuss setup and configuration issues. The last sections describe the tests that can be run using AT commands. When problems first occur, the natural response is to question the operation of the modem on one end or the other. However, as well as the modem, problems might involve cabling (where appropriate), the computer, the communications software, and the telephone lines. All of these components are potential problem areas that should be considered before assuming the difficulty lies with the modem. ************************************************************************ B.1 The Communication Link Because there is more to the connection than the modem, all of the components should be verified. Typically, the components in a communication link are two computers, two modems, and a dial-up telephone circuit. The installation may include a dedicated leased line rather than a switched central-office connection, or a mainframe host with an asynchronous or synchronous front-end processor at one end or the other. The general principles, however, are the same. The suggestions provided in the user documentation accompanying each Hayes modem will clear up the majority of problems in an installation. Most difficulties arise from simple causes - improper or loose connections or software incompatibility. Be sure to review the installation information and tips before assuming the problem is something more. The suggestions in this section require some familiarity with the Hayes Standard AT Command Set, DTE requirements, RS-232/CCITT V.24 signals, and the telephone system. A communication link problem may simply be due to a bad switchboard connection. Before calling the local telephone system, however, you should make sure the problem is not being caused by faulty or improperly connected equipment at either end. Telephone service can be very expensive, especially if the problem is not really with the phone lines. ************************************************************************ B.2 Troubleshooting the Process Troubleshooting the communications is best handled by analyzing the entire process. The failure is typically in only one area. This section looks at the causes and solutions to problems in the three main areas: * Problems in Getting Started The computer cannot communicate with the modem, or the connection is inconsistent or otherwise substandard. * Problems in Establishing Communications DTE (computer, terminal) can communicate with the modem, but cannot make the connection with the remote system. * Problems Encountered while On-line High error rate, dropped connections, scrambled data, and locked systems are among the difficulties that may be experienced. The discussions on these areas will help in setting up and maintaining communications. In addition, the test procedures outlined in this section are useful in determining the source of a communications problem with the modem. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.2.1 Problems in Getting Started If a newly-installed modem does not work properly, here are some likely causes: * Improper physical connection (data cables not plugged in, etc.). * Power supply not plugged into receptacle and modem therefore not powered up. * Parameters set for the DTE or software preventing communication between the DTE and modem. It is uncommon for the modem itself to fail, although this does occur. Checking modem operation is fairly simple when the modem is an external device. Generally, if the modem failed its self tests on powerup, the front panel lights will indicate a problem. For example, on standalone modems, if the MR (modem ready) light does not come on, the modem may have a problem. Or if the HS light does not come on, the modem may be improperly configured. Some cases of apparent modem failure may be caused by a power surge; changed parameters in your software that prevent it from finding the modem; an incompatible component in the communication link; an improper connection; or simply a device that is not plugged in or turned on. Before initiating the V.54 tests described in this chapter, re-examine the communications equipment to make sure none of the above conditions could be causing the difficulty. ........................................................................ B.2.1.1 Verifying the DTE-to-Modem Connection The first interface to verify is the one between the DTE and the modem. This involves the cable, the modem, the software, and the DTE. Cable Requirements When a cable is used to carry signals between the DTE and the modem (external modem) any cable with transmit, receive, and ground will support standard asynchronous communications. To make sure that communications are performed properly, all other transmission modes require additional signals. For example, synchronous communication requires timing signals. Error-control communication with hardware local flow control requires RTS and CTS signals. For pinouts and descriptions of these signals, see the end of this chapter. To determine the signal capabilities of a cable, you can issue the &T19 command (not supported by all Hayes products). The &T19 command is discussed later in this section. Another cabling factor that can influence communications is shielding. If any of the cables that are connected to the DTE (not just the one connecting the modem to the computer) is not shielded, interference can occur that may result in data errors. In all cases, the connector and the cable wires themselves should be shielded to reduce the possibility of interference. DTE Port or Slot Although it may seem obvious, not every computer has a serial port (the kind necessary for modem communications). Also, that port may already be taken up by a printer. Some computers support a parallel printer, instead. If the modem is an internal modem, and it has been installed correctly, this should not be a problem. However, selection of the port is important, no matter whether it is an internal or external modem. In fact, improper port selection is one of the most frequently diagnosed problems discovered by Hayes Customer Service. Modem's Command Processor and the Software The process below may be useful for troubleshooting an unfamiliar modem/software combination. This could be either for a new program or the addition of a new modem to an existing installation. The process is oriented toward asynchronous operation. However, if troubleshooting a synchronous connection, you will need to verify the asynchronous portion of the modem's operation anyway. The steps below help verify that command information is getting from the DTE to the modem and that its command processor is operating properly. Process If using communications software (and not a terminal), consult its user's guide for suggestions and the proper procedure for issuing commands directly to the modem. Some software will not permit direct command interface with the modem. It is essential that you be able to establish a direct connection between the DTE and the modem, so that what you type is transmitted through the computer directly to the modem. Step 1: Try issuing AT. The OK result code should be returned by the modem. The modem should be receiving your commands and be responding with a result code. If commands don't seem to be reaching the modem, check the cable connection. Make sure you are addressing the desired communication port (COM1 or COM2). This option is set either with a software option or with an operating system command. For example, the Chooser is used to select the COM port for the Macintosh. The DOS SET command is used for IBM PCs and compatibles. The physical connection of the modem to a terminal determines the port. Step 2: If you can't see anything you type, or if for any other reason, you suspect that the modem's settings may be preventing the connection, issue AT&F to restore the modem's factory configuration. If the modem is a V-series, OPTIMA or ACCURA EC product, try issuing AT&Q0 to put it into normal asynchronous mode. In this mode, any software should talk to the modem. For example, local flow control will not be an issue if it is configured for standard asynchronous mode. Step 3: Try issuing commands to the modem. For example, try the I commands used to identify the modem. If OK or the expected results (see the I command descriptions in Chapter 1) are returned, the modem is operating as it should. Try changing a few configuration settings, then resetting the modem with ATZ. If OK is returned, this part of the modem's command processor is functioning properly. If no responses are returned from the modem, try issuing ATE1 to enable command state echo. If characters are double, issue ATE0 to disable command state echo, as the software is providing that echo already. Then try issuing some commands or reading some S-registers. Analysis If using different communications software before running this procedure, either that software is not compatible with the modem, or an incorrect setting (e.g., communication port) that prevented the connection was corrected with the software used to make the direct connection. This setting should be changed in the original software. If the connection was made with the same software that previously exhibited a problem, but no problem occurred when in direct connect mode, check the settings used in the command-oriented process above to make sure that the standard software interface (probably menu-driven) is storing settings such as COM port selection, speed, and character format. This may all seem too rudimentary, but a simple conflict of modem and software settings typically causes the problem. If the process works in asynchronous mode, but does not in error-control or ASB mode, you may have cabling and/or local flow control problems. ........................................................................ B.2.1.2 Checking the Dialer and the Telephone Lines Once you are certain that the modem is receiving and responding to commands from the DTE, you can verify the modem's dialing capabilities by attempting a call. This will also test the telephone lines. Process As described in the previous section, check your communications software for the procedure to issue commands directly to the modem. The steps below explain how to place a call using the D command and various dialing modifiers. Step 1: First access the modem's AT command state. When you receive an OK result code, instruct the modem to dial an actual telephone number (using the D command). If calling out of a PBX, remember to include the 9 or other outside access code in the phone number. Listen for a dial tone, followed by the tone dialing beeps. When these occur, they ensure you've entered the phone number correctly, and the local phone line is responding properly. If there is no dial tone, check the phone line by dialing with an ordinary phone. Note that some PBX systems must be modified to produce at least 48 volts DC for the modem to work. Step 2: If you hear the phone on the other end ringing, then the remote phone is responding properly. Press any key to hang up. Step 3: Try dialing another modem to see if you make a connection. A connection is indicated by two whistling sounds of different tones (the carriers), followed by a hissing sound. The modem should respond with a CONNECT XXXXX result code. Analysis When you have reached this point successfully, both modems are performing correctly. If no errors occurred with these steps, the problem is related to software, user error, or improper modem installation/setup. If this procedure indicated a problem with the modems or the communication link, go on to the next section. A common setting that might need to be changed is the software's or modem's response to the DTR signal (controlled by &D options). You can check the modem's answer capabilities (or when serving as the remote modem in the process above) by issuing the A command when the phone rings. The incoming call must be from a modem, however, not a voice call. The same sequence of carrier exchange will be made. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.2.2 Problems Encountered During Communications Another set of problems can follow establishment of a data connection. These may range from loss of carrier to data loss. The sections below discuss these situations. ........................................................................ B.2.2.1 Data Loss or Corruption A typical complaint regarding connections is that of lost or corrupted data. A number of factors can affect the transmission of data. Modem Settings "Garbled," or otherwise faulty data can occur from the time the connection is made or just a momentary problem. If all the data that comes across is incorrect, or if the modems handshake with each other successfully but not data can be transferred, suspect an error in the setting of some communications parameter. For example, both systems must use the same asynchronous character format or synchronous framing and clocking scheme. Even if the local system is operating properly, if the remote system uses a different format, the garbled data may be exactly what is sent and not the result of any modem or transmission error. Line Noise Occasional garbling or loss may be the result of noise or otherwise poor quality of the telephone line. If a dial-up connection is too noisy, the connection should be broken, and the connection re-attempted; you get a different circuit each time. One that is acceptable for voice may not be for data. With a leased line, the circuit is always the same. If you experience line noise or line drops, you should contact (or the software should recommend that the user contact) the vendor of the leased line. Transmit and Receive Levels Other factors that affect both leased and dial-up lines are the transmit and receive levels. These settings determine the signal levels used by the modem in each direction. Some Hayes modems permit these levels to be adjusted. The range and availability of these adjustments is in large part controlled by the local telephone system. For example, the recommended settings and ranges are different for modems sold in the U.K. than for those sold in the U.S. See the user documentation accompanying the modem to determine whether this capability is supported. DTE Processor Restrictions Some multitasking operating systems can occasionally lose small amounts of data if the computer is heavily loaded and cannot allocate processing time to the communications task frequently enough. In this case, the data is corrupted by the DTE itself. This could also cause incomplete data transmission to the remote system. DTE processor capabilities should be a concern when developing software for data communications when the line speed is greater than 9600 bps and the modem-to-DTE connection is 19200 bps or higher (for example, when data compression is used). The modem will provide exact transmission of the data it receives, but if the DTE cannot "keep up" with the modem because of other tasks or speed restrictions, precautions should be taken when writing software or when adding modems with extra high speed capabilities into a link. One way to avoid the problem of data loss caused by the DTE is the use of an upgraded serial port such as Hayes Enhanced Serial Por (ESP*) card. This card replaces the existing serial card, providing two ports, data buffering, and a communications co-processor to take some of the load off of the DTE processor. For information regarding this product line, contact Hayes Customer Service. Buffer Overflow Hayes products that support error-control communications provide a data buffer for overflow when the modem is transmitting data to the DTE faster than it can process it, or vice versa. The upper and lower limits of the buffer can be adjusted with S49 and S50, although the factory settings suit most situations. ........................................................................ B.2.2.2 Dropped or Lost Connections Phone line quality or features such as call waiting can cause lost connections. As described above, if the connection keeps dropping, you might want to contact the telephone company. However, you may first want to try a connection with another remote system and/or try using the modem from a different phone connection altogether. In addition to phone line problems, two other things might cause loss of connection. Call Waiting The call waiting feature available on some dial-up lines momentarily interrupts a call, causing a click, to inform voice call users that another call is coming through. This process effectively interrupts the carrier signal and may cause some modems to drop the connection. One way around this is to set S10 to a higher value so the modem tolerates a fairly long loss of carrier signal. Data loss may still occur, but the connection will not drop. Of course, the remote modem must be similarly configured. When originating the call, a special prefix can be issued as part of the dialing string to disable call waiting for the duration of the call. The exact procedure varies from area to area; contact the local telephone system for details. Automatic Timeout Some Hayes modems offer an automatic timeout feature, to prevent an inactive connection from being maintained. This inactivity delay can be set or disabled with S30. This feature prevents occurrences such as undesired long distance charges for a connection that was unintentionally maintained. System Lock-up There are situations in which systems do lock up, but in many cases it is simply that one or the other of the DTEs has inadvertently sent a character that stops data transfer. This can happen during error-control connections if the wrong kind of local flow control has been selected. For an explanation of local flow control options, see the &K command definition in Chapter 1. In addition, the problem could be the result of incompatible RS-232/CCITT V.24 signaling. The section below provides some situations and tips that will help if the communication link seems to lock up. ************************************************************************ B.3 Special Environment Considerations The charts below provide some hints for custom setups to remedy problems for DTE and telephone line peculiarities. Because Hayes modems can be configured to suit almost any combination of components in a communication link, you can adjust to compensate for limitations in almost any computer or telephone system (within the limits imposed by the local telephone authorities). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.3.1 Custom Modem Setup for Mainframe or Minicomputer Host Check the following host symptom/limitation situations for a solution involving modem re-configuration. Host Limitations Hayes Soultions ------------------------------------------------------------------------ Can't control DTR or issue Select &D0: Modem ignores changes escape sequence with guard time in DTR status (factory setting) Can reset itself but not the modem Select &D1: Modem enters command state when on-to-off transition of DTR is detected. DTR timing is not adjustable Adjust register S25 delay time Unable to monitor carrier Select &S1: Handshake asserted prior (older IBM Hosts) to handshake negotiation Must see DSR at all times Select &S0: DSR always asserted (VAX systems) Timing will not support lengthy Select &S2: DSR asserted handshakes after handshake negotiation, but (reassociated with some before CONNECT result code is high-speed modems) sent to DTE. Also select a specific negotiation handshake option (N command option.) which specifically matches the modem combinations. Must see CTS to be able to Select &R: ignore RTS; always assume talk to modem presence of CTS. RTS/CTS timing not adjustable Adjust S26 RTS-to-CTS delay time Not able to recognize FDX modem on Adjust S26 RTS-to-CTS delay time 2-wire telephone line ------------------------------------------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.3.2 Custom Modem Setup for Telephone System Requirements Check the following telephone system symptom/limitation situations for a solution involving modem re-configuration. Telephone System Limitation or Problem Hayes Solution ------------------------------------------------------------------------ Noise on telephone line causes modem to Increase S9 setting: Carrier falsely detect carrier on line Recovery Time Modem connection broken due to noise Increase S10 setting: Lost spikes on the telephone line Carrier-to-Hang-UP Delay Security problems with incoming calls Decrease S10 setting; if connecting onto prior host sessions - S10 is set to 255, the indicating that host can't reset soon modem will not hang up when enough carrier is lost. System needs to be able to originate Issue the R command calls in answer mode for call-back within a dial string security (Reverse mode) Telephone system is too slow to Increase register S11 be able to respond to auto-dial DTMF setting: Tone dialing speed (tone dialing) pulses Business telephones (multi-line Check setting of &J command; use key systems) exhibit false the &J1 setting with RJ-12 "busy" light indications and RJ13 type phone jacks. System must be able to call After accessing the PBX, past unattended operator positions issue the following dialing command modifiers: !(*;#) ------------------------------------------------------------------------ ************************************************************************ B.4 Using AT Commands to Test Modem Circuits In addition to the powerup tests the modem performs, you can also use AT commands to check the modem's functions. This section describes the tests that can be performed, provides a procedure for each test, and explains the results that can be expected. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.4.1 Available Tests As part of the modem's operation, it can be placed in several loopback conditions. These conditions are primarily for the purpose of testing the digital and analog capabilities of the modem by simulating the activities performed by these functions during the communication process. These loopback patterns can serve as diagnostics to help in determining whether the source of a communication problem is a local modem, a remote modem, or connections in between. Although these tests are oriented toward problems in a new installation, they are also useful if a previously working modem suddenly fails. Refer to the troubleshooting information provided in the documentation accompanying the modem(s) for suggestions on remedying a communications problem. Failures in a point-to-point communication link, usually characterized by unacceptably high error rates or total inability to communicate, may be the fault of either the local or remote computer, the local or remote modem, or the telephone company circuit. The modem's diagnostic and test facilities enable you to determine the source of the problem: * Local Analog Loopback: Tests the path that includes the local modem and local computer * Local Analog Loopback with Self Test: Checks the operation of the local modem with an internally generated test pattern * Remote Digital Loopback: Verifies the path that includes the local computer, local modem, remote modem, and telephone circuit * Remote Digital Loopback with Self Test: Tests the path that includes the local modem, remote modem, and telephone circuit with an internally generated test pattern. This test requires a CCITT compatible modem. * Local Digital Loopback: Tests the communication link, the local modem, and the remote modem (permits a non-CCITT compatible, remote modem to engage in a digital loopback test with the local modem). All digital loopback tests must be performed while the modem is configured for asynchronous operation. Before beginning, place the modem in the asynchronous mode with the &Q0 command. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.4.2 Performing a Test Tests are performed by issuing AT commands to the modem. Some tests require a connection be established. Others, like the internal memory diagnostics and analogue loopback tests, check the local modem only and therefore do not require a link with a remote modem. The procedures below explain how to initiate and terminate tests. ........................................................................ B.4.2.1 Initiating a Test All of the diagnostic tests must be initiated from the asynchronous command state (&Q0). To use the loopback tests: * Establish a connection (except when running Analog Loopback L3 test)), and return to the command state by issuing the escape sequence (+++), or if the &D1 DTR option is selected, by generating an on-to-off transition on DTR. * Issue the appropriate &T command once in the command state. These tests are performed from the asynchronous command state. The results of these tests may be will help check out the modem's function and the quality of the communications link. ........................................................................ B.4.2.2 Terminating a Test in Progress - &T0 A test may be terminated from the command state at any time by issuing the &T0 command to the modem. If the local analogue loopback or remote digital loopback tests are being performed, it is necessary to issue the escape sequence to return to the command state before sending the &T0 command. Commands that follow &T0 in a command line are ignored. Entering the H0 command will terminate a test, leaving the value of S18 at its current value; resetting with the Z command terminates the test, resetting the value of S18 to 0. A soft reset with the Z command re- configures the modem with the selected user profile. Both techniques break the connection. ........................................................................ B.4.2.3 Setting the Test Timer - S18= The test timer determines the duration of a test. S18, when set to a non-zero value, establishes the duration of the modem's diagnostic tests. When a test has been active for a period equal to the value chosen for this register (from 1 to 255 seconds), the modem will automatically stop the test and return to the command state. For example, if the register is set to 10 (ATS18=10), a test, when initiated, will continue for 10 seconds. Setting S18 to zero (ATS18=0) disables the test timer (factory setting). Tests are then terminated with the &T0 command or by resetting the modem. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.4.3 Testing with Analog Loopback Use the analog loopback tests if you suspect the modem is causing errors in data transmission. The local analog loopback test will verify both the local modem and the local data terminal equipment. If this test fails, the data terminal equipment rather than the modem may be at fault. The local analog loopback with self test will verify the integrity of the local modem only. If this test fails, the local modem is at fault. If the modem passes both of these tests, attempt the remote digital loopback with self test to verify the modem-to-modem communication path. ........................................................................ B.4.3.1 Local Analog Loopback L3 - &T1 Use the analog loopback test if you suspect the modem is causing errors in data transmission. The local analog loopback test will verify both the modem and the local computer. If the local analog loopback test fails, the local computer may be at fault. Note: This test may be performed with a V.21, V.22, V.22bis, or V.23 connection. Set the local computer to echo characters and the local modem to echo commands received from the local computer (the E1 option selected). Initiate the test with &T1. Type a few sentences; they will be looped back to the local computer. If the modem echoes your keyboard input to the screen as you typed it, the modem is operating correctly. If not, the modem may be faulty. To end the test, enter the command state by issuing the escape sequence with guard time (+++) and then issue the &T0 command. ........................................................................ B.4.3.2 Local Analog Loopback with Self Test - &T8 This test is used to verify the integrity of the local modem's transmit and receive circuits. During this test, an internally generated test pattern is transmitted from the modem, looped back into the receiver circuit, and compared with the original pattern for any errors. Note: This test may be performed with a V.22 or V.22bis connection (&Q0 and B0 selected). Set the computer to echo characters and the local modem to echo commands received from the computer (the E1 command selected). Initiate the test with &T8. When the test is terminated, with the &T0 command, the modem will return a three-digit test result (e.g., 000=no errors, 012=12 errors). If the error count reported is 000, the local modem passed the test. An error count of 255 indicates that 255 or more errors were detected. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.4.4 Testing with Digital Loopback Local digital loopback and remote digital loopback together test all of the components in the communication link, including the modems. Data sent from one modem is looped back to it by the other modem without going through the other modem's computer. Local digital loopback tests the communication link from the remote modem; remote digital loopback tests the communication link from the local modem. When local and remote digital loopback indicate a modem problem rather than a communication link problem, both parties should run local analog loopback to test the modems. If both modems test good but problems persist, disconnect and place another call. If the problem still exists, the phone line or another component in the communication link is faulty. ........................................................................ B.4.4.1 Remote Digital Loopback L2 - &T6 Remote digital loopback verifies the operation of both modems, the local computer, and the telephone circuit, by commanding the remote modem to loop data sent to the remote system back to the local modem. Note: This test may be performed with a V.22 or V.22bis connection and &Q0 mode selected. Before initiating remote digital loopback, establish a connection with a remote modem. Then, enter the command state and issue the &T6 command to begin the test. Type a few sentences; they will be looped back to the local computer without appearing on the remote screen. If the modem echoes your keyboard input to the screen as you typed it, the modem is operating correctly. If the received data does not match what you typed, one of the modems or the local communication link is not functioning properly. To end the test, enter the command state and issue the &T0 command. Note: The local modem requests a digital loopback with the remote modem through a special CCITT standard handshake sequence. The remote modem automatically acknowledges the request if it has been conditioned to do so with the &T4 command. (See the discussions on the &T4 and &T5 commands.) If the remote modem is not Hayes-compatible, it may not permit this test to be executed from the local modem (response will be ERROR). However, if the remote user can put the modem into local digital loopback or an equivalent state, the test can be performed from the local modem. ........................................................................ B.4.4.2 Remote Digital Loopback with Self Test - &T7 This test verifies operation of the local modem, the remote modem, and the telephone circuit. The local modem sends a self test pattern to the remote station. The remote modem, when configured to grant remote digital loopback (with &T4), loops its receive data stream back to the local system. The local modem examines the receive pattern and increments an internal error counter each time an error is detected. Note: This test may be performed with a V.22 or V.22bis connection and &Q0 mode selected. Before beginning the test, establish a connection with a remote modem. Then, enter the command state and initiate the remote digital loopback by issuing &T7. When the test is terminated with the &T0 command, the modem will return a three-digit test result (e.g., 000=no errors; 012=12 errors). If the error count reported is 000, the local and remote modems and the telephone circuit passed the test. If errors were encountered, initiating a local analog loopback test will further isolate the source of the problem. An error count of 255 indicates that 255 errors or more errors were detected. ........................................................................ B.4.4.3 Local Digital Loopback - &T3 Local digital loopback tests the communication link and the remote modem. During this test, the local modem loops incoming data directly back to the remote modem. To begin local digital loopback, establish a connection with a remote modem, then enter the command state and issue the &T3 command. The operator at the remote system should type in a few sentences. They will be looped back to the remote computer. When the operator at the remote system indicates that the test is complete, issue the &T0 command to end the test. If the operator at the remote system reports that the data came back without errors, the remote modem and the communication link are functioning properly. ........................................................................ B.4.4.4 Grant RDL Request from Remote System - &T4 This command configures the local modem to grant a request from the remote modem for a remote digital loopback test (factory setting). ........................................................................ B.4.4.5 Deny RDL Request from Remote System - &T5 This command prohibits the local modem from granting a request from the remote modem for a remote digital loopback test. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.4.5 Testing the Tone Dialer - &T2 This command allows testing of the modem's multi-frequency tone dialer by sending out continuous tones of the keypad characters (0-9, A-D, *, #). To generate any tone combination, type: AT X1 &T2 DT (followed by one of the keypad characters: 0-9, A-D) The modem will transmit a continuous tone pair until the key is pressed or &T0 is entered to terminate the test. ************************************************************************ B.5 Testing the Cable The cable (if used to connect the modem to the DTE, rather than through an internal slot) is an integral part of the communication link. Even if the DTE, serial card, and modem support all of the signals necessary for full communications, if the cable supports only transmit and receive signals, communication may be limited. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.5.1 Cable Quality High-speed and lengthy distances between the modem and the DTE are two reasons to make sure that the modem-to-DTE cable is shielded and fully supports the pin-outs (pin assignments) according to the RS-232/CCITT V.24 standards described in Appendix C. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.5.2 Checking Cable Signals - &T19 The &T19 command was created to provide a way for software to test the capabilities of the cable between the DTE and the modem, instead of assuming that the RTS/CTS lines (used for hardware local flow control) were supported in a cable. This command is implemented in Hayes Smartcom products; when setting up the modem, one of its initial operations is issuing this command. The command is fully documented in Chapter 1. The signals tested by this command are according to the RS-232/CCITT V.24 standards described in the next section. ************************************************************************ B.6 Testing Internal Memory The various forms of the I command instruct the modem to query its memory for information about itself. Although the results of these tests are most frequently used by Hayes Customer Service, some software also uses the responses when determining how to set up the modem prior to communication. These tests request information about the modem's firmware; therefore, it is unnecessary to connect with a remote system before issuing the I command. The various options for this command are explained fully in Chapter 1. ======================================================================== APPENDIX C: MODEM-TO-DTE INTERFACE This appendix discusses the requirements and capabilities of the modem's interfaces to the DTE line. Standalone modems interface to the DTE according to the RS-232 standard. The particulars of this interface used with Hayes standalone modems are described. Hayes internal modems use the RS-232 signals, although the specific use of these circuits is determined by the bus interface of the computer. ************************************************************************ C.1 RS-232/CCITT V.24 Interfaces RS-232 is the EIA (Electronic Industries Association) definition of the electrical interface used for connections of data terminal equipment (DTE) to data circuit terminating equipment (DCE). Although not exactly the same, RS-232 is compatible with CCITT V.24, V.28, and ISO IS2110 standards. This standard prescribes the interface to the local DTE and normally uses a DB-25 connector with 13 pins in one row and 12 in the other. RS-232 supports speeds up to 20 Kbps at a distance of 50 feet. RS-232 falls under layer one (physical layer) of the OSI (Open Systems Interconnection) model. Hayes modems support the electrical portion of the RS-232 standard completely. However, signal definition varies from modem to modem. ************************************************************************ C.2 Signals Used in the RS-232 Interface The following signal types are used in the RS-232 interface. All of these types are not required for all communications. Their corresponding CCITT V.24 equivalents are also provided. Ground signals are present for protection and signal reference. These signals are present on pins 1 and 7 of the interface (7 always needed). Data signals are used to transmit and receive data across the interface. The pins used are 2 for transmit and 3 for receive (always needed). Control signals are used to ensure that both the DTE and DCE are ready before any information is transmitted. These signals are also used for flow control during the transfer of data. Pins 4, 5, 6, 8, 20, and 22 are control signals (need depends on the application). Timing signals control the rate at which data is transmitted and received across the interface. These signals are only used for synchronous transmission and are located on pins 15, 17, and 24. The RS-232 signals and their CCITT equivalents are outlined below: Inter- CCITT Description Pin To DTE To DCE Change Equivalent Circuit ------------------------------------------------------------------------ AA 101 Protective Ground 1 AB 102 Signal Ground or 7 Common Return BA 103 Transmitted Data 2 X BB 104 Received Data 3 X CA 105 Request to Send (RTS) 4 X CB 106 Clear to Send (CTS) 5 X CC 107 Data Set Ready (DSR) 6 X CD 108.2 Data Terminal Ready 20 X (DTR) CE 125 Ring Indicator (RI) 22 X CF 109 Received Line Signal 8 X Detector (DCD) CG 110 Signal Quality Detector - not used CH 111 Data Signal Rate Detect 23 X (DTE Source) CI 112 Data Signal Rate Detect 12 X (DCE Source) DA 113 Transmitter Signal 24 X Element Timing (DTE Source) DB 114 Transmitter Signal 15 X Element Timing (DCE Source) DD 115 Receiver Signal Element 17 X Timing (DCE Source) ------------------------------------------------------------------------ ************************************************************************ C.3 RS-232 Signal Definitions This section provides definitions of the signals used for modem operation. The circuit is first defined according to RS-232, then its use explained according to the way it is used by Hayes modems. Protective Ground (pin 1) is connected to the equipment frame. The ground pin is electronically bonded to the modem case for standalone products, and to the computer's housing through the particular bus for internal modems. Hayes Personal Modem products do not use this signal. Transmit Data (pin 2) is data that is transmitted from the DTE to the DCE device. Data should not be placed on this pin unless the RTS, CTS, DSR, and DTR signals are on. This is the circuit that carries the data from the attached computer or terminal to the modem for transmission across the telephone lines. Receive Data (pin 3) is data that is transmitted from the DCE to DTE. This circuit carries the data from the modem to the attached computer or terminal. Request To Send (pin 4) requests the channel for data transmission and is usually ignored during asynchronous operation. It is also used to control the direction of transmission on a half-duplex link. This signal indicates whether the attached DTE is ready to receive data. When the modem is operating asynchronously, this signal is always on, indicating that the modem can send at any time. The circuit functions the same way in error-control mode, unless the RTS/CTS local flow control method has been selected. In this case, the modem uses this signal to determine when the DTE is ready to receive data. In synchronous, on-line operation, the modem can be configured to ignore RTS or respond to RTS by turning on CTS after the delay specified by S26. The modem's use of this signal is controlled by the &R command. When in command state, the modem always ignores RTS. Clear To Send (pin 5) An ON condition of this signal indicates that the modem is ready to transmit data. This signal comes high after both DSR and DCD go high. This signal indicates whether the modem is ready to accept data, from the attached DTE for transmission. When the modem is operating asynchronously, this signal is always on, indicating that the modem can receive data at any time. In error-control mode, the signal is maintained on unless RTS/CTS local flow control has been selected. In this case, the modem uses this signal to indicate to the DTE that the modem is ready to receive data. When operating synchronously, but in the asynchronous command state, the modem also maintains the CTS signal on. The modem turns CTS off immediately upon going off-hook, and maintains CTS off until both DSR and DCD are on and the modem is fully prepared to transmit and receive synchronous data. The modem can also be configured to turn CTS on in response to an off-to-on transition of RTS (see discussion of &R command). Data Set Ready (pin 6) An ON condition indicates that the modem is off hook and is not in test mode. The signal normally goes high as soon as a remote carrier is detected. This signal indicates whether the modem is connected to a communication channel and is ready to exchange control characters to initiate data transmission. In asynchronous or error- control mode, the modem can be configured to maintain this signal on at all times or have it reflect the actual state of the DSR circuit. Signal Ground (pin 7) establishes a common ground reference potential for all signal circuits. Data Carrier Detect - RLSD (pin 8) is turned on when the modem receives a signal from the remote modem that meets the criteria for demodulation. This signal indicates whether the receiver section of the modem is or is not accepting transmitted data. In asynchronous or error-control mode, the modem can be configured to maintain this circuit on at all times, or to track the presence of a data carrier from the remote modem. In synchronous mode, this circuit always tracks the presence of data carrier. See the discussion of the &C command. Transmitter Clock (pin 15) provides the DTE with bit timing clock in synchronous mode of operation. This signal synchronizes the local modem transmitter with the receiver of the remote modem receiver. The clocking for this signal can be sourced from the local modem, the receive carrier, or the attached computer (from pin 24). Selection is made with the &X command. Regardless of the source of this clock, this signal is applied by the modem to pin 15 of the RS-232 connector and is used by the DTE to time the transmission of serial data on the TD circuit (pin 2). This signal pertains to synchronous communications only. Receive Clock (pin 17) provides the DTE with receive bit timing clock in synchronous mode of operation. This signal provides the receiver section of the modem with timing information. The modem always derives this signal from the receive carrier, and applies it to pin 17. This signal is used by the data terminal to time the incoming bit stream from the local modem (RD - pin 3). This signal pertains to synchronous communications only. Data Terminal Ready (pin 20) indicates to the DCE that the DTE is ready for transmission. It may also be used for call termination. This signal prepares and maintains the connection to a remote system. The modem can be configured for a variety of responses to the DTR signal, as required for the communication mode (asynchronous versus synchronous) or communication environment (attached DTE or software). See the &D command discussion. Ring Indicator (pin 22) gives an indication of a ring being received on the telephone line. This circuit carriers signal information to indicate the modem is receiving call signals (ring/tones). The modem turns on this signal whenever an incoming ring is detected. When the modem is configured for AutoSync, this pin carries a signal to indicate the end of a synchronous frame, and does not monitor incoming rings. Transmitter Clock (pin 24) provides the modem with transmit signal element timing information (optional). If the DTE sources the transmit signal element timing on this pin, the modem can be configured to use this clock signal rather than its own internal clock. This signal pertains to synchronous communications only. Alternate Rate Select (pins 12 and 23) The modem turns on this signal on either of these pins to indicate the selection of the current line speed. ************************************************************************ C.4 Modem Interface Connector Standalone modems typically interface to the attached computer or other DTE through a serial port connector. The connector used on standalone products as the modem-to-DTE interface, is a male DB-25 connector. Personal Modem products use an eight-pin DIN connector. Internal modems interface according to the bus structure of the computer in which the modem is installed. For specific information on a particular bus structure, see the owner's manual or reference guides for that computer. The physical connector as well as the pin numbers of the end of the cable on the DTE side will vary according to the DTE's serial port. ======================================================================== APPENDIX D: APPLICATION SUGGESTIONS This appendix offers suggestions for developing applications software using the Hayes Standard AT Command Set. The techniques described apply to Hayes modems in general except where specifically indicated. Although provided here, this information is intended for experienced programmers who want assistance in modem application development. ************************************************************************ D.1 Modem Identification The initial concern for most communications software is modem identification. Before the software determines the type of modem (e.g., is it a Hayes modem, a high-speed modem, what features does it support - error-control or compression?). By limiting the AT command controller portion of the software to work with a known set of modems, you can limit the complexity of your software. Because the type of modem that will be present, certain assumptions can be made regarding modem characteristics, such as maximum transmission rate, support of AT commands or specific commands such as L or X. If a more general application is being designed for an environment about which assumptions cannot be made regarding type or brand of modem that might be used, the software's first task should be to identify the modem. The I0 and I4 command options make this process simple. In the initial versions of Smartmodem 1200, I0 returned the three digit response: 120. Since then, responses have been extended for several groups identifying modem supporting 2400 bps, 9600 bps, and other products. The I0 response simply indicates the speed category of the modem. The result of the I0 command is a number which identifies the category of modem product. Some unique I0 values can be used to identify a unique product which has specific behaviors. 960, for example, identifies a Hayes product capable of 9600 bps, which has additional commands and behaviors. The I4 command provides a reliable means of communicating specific features and modulation protocols to software. The responses to the I4 command are strings delimited by and beginning with a lowercase letter and typically followed by a hex-character bit-map. The I0 and I4 responses currently defined are detailed in the description of the I4 command in Chapter 1. The tables show the decoding of the hex- map returned in the "a", and "b" bit-mapped strings. If I4 is used to identify features of the modem, consider that new result strings are periodically defined that may be returned in addition to those expected. Fields once designated as "reserved" that held a zero may now have values assigned. The strings themselves may also be of different lengths than previously implemented. In spite of the modifications to this command necessary to be current with new modems, the I4 command is the best way for software to determine the modem type and capability, if the guidelines below are considered: * I0 or I4 commands should be issued at 1200 bps. All Hayes products (including the Smartmodem 300) respond to AT commands at 1200 bps. Most other brands also respond at 1200 bps. You can switch to a higher transmission rate once the modem has been identified. * Result codes should be parsed as strings surrounded by . The string will begin with a lower-case letter followed by up to 39 additional characters. * After all result strings have been sent, an OK result is returned that obeys the V and Q command settings. * ERROR, OK, or a numeric result in response to the I4 command should be expected. These results may be returned by products shipped before the I4 command was introduced, or by non-Hayes products. * The length of the strings may be different than anticipated. If shorter than expected, empty positions should be presumed zeros. If longer than expected, extra characters should be ignored. * Some non-Hayes brand modems return unpredictable results in response to I0 or I4 commands. One brand of modem actually responds with its configuration when the I4 command is sent. An example I4 command and response is shown below: AT E0 V1 Q0 S0=0 I4 response: a087840C004424 bF60410000 cUS J m0000000001001FFFF OK Note: Each I4 result is surrounded by ; not all responses are hex-strings; and some responses may not be expected at all. ************************************************************************ D.2 Result Code Recognition Modems that are equivalent to Hayes modems support verbose and numeric forms of result codes. Unless echo may be a problem and you will be installing the controller in a limited-growth environment, verbose results rather than numeric results are preferred. Numeric result codes were originally intended to make it easier for software to control the modem, but there are two primary reasons they should not be used: Software can be confused by a command echo. For example, if the following command were sent with echo on (E1) and numeric results (V0) on: AT ... S9=20 The resulting data, echoed by the modem, would be followed by the numeric result code zero, meaning OK: AT ... S9=200 Software may become confused by seeing a 0 result which is actually part of the command echo, then another 0 which is the numeric result. A program can become unsynchronized with the command processor in the modem. Turning off echo mode (E0) in the initial setup string would solve this problem; however, do not end that command with any digits (simply E). Another shortcoming of numeric results is that the software must anticipate all possible responses. This requires updating controller software whenever new result codes are added. For example, suppose a CONNECT 115200 result were added with a numeric value of 31. If verbose results were used instead, and the controller directed to interpret the number after the CONNECT result as simply the connection speed in bits per second, no changes to the driver are necessitated by the new result code. If, however, numeric result codes were used, the result code 31 must be added to the table, and the controller modified to interpret it appropriately. As characters are received, they should be processed through a state machine providing the functionality of the following one. This state machine recognizes strings surrounded by characters and stores the string in a character array. are defined by S3 and S4. Sample State Machine Initialize with: state = 1 ; ch = switch( state ) { case 1: /*-- Scanning for leading CR --*/ if( ch == CR ) state = 2 ; i = 0 ; break ; case 2: /*-- Scanning for leading LF --*/ if( ch == LF ) state = 3 ; else if( ch == CR ) state = 2 ; else state = 1 ; break ; case 3: /*-- Buffer result, watch for trailing CR --*/ if( ch == CR ) state = 4 ; else buf[ i++ ] = ch ; if( i > LIMIT ) state = 1 ; break ; case 4: /*-- Scanning for trailing LF --*/ if( ch == LF ) state = 5 ; else if( ch == CR ) state = 2 ; else state = 1 ; break ; } if( state == 5 ) { buf[ i ] = 0 ; /* Null terminate buffer */ state = 1 ; } This state machine can be imbedded within a loop that reads all received data one character at a time, checks for a timeout, and also checks for user abort. Once a result is recognized, that loop can be exited or continued if additional results are expected. Once a result code string is returned, it can be compared against the known result code strings. Some strings may incorporate wild-card suffixes. For example CONNECT followed by any numeric value indicates a successful connection at the indicated transmission rate. Even if a result such as CONNECT 38400 is not anticipated, if the controller has been coded for wild-card recognition, the controller will be capable of interpreting such responses correctly. This practice also facilitates interpretation of connection failed messages that are preceded by NO followed by any other character string such as DIALTONE, CARRIER, or ANSWER. ************************************************************************ D.3 Modem Preparation Once the modem has been identified, the controller can continue to program any registers or user-defined values into the modem necessary prior to initiating the connection process. Typically, the setup operation is separated from the connection processing because it is performed independently of whether the call establishment will be in the originating or answering mode. Setup commands can be issued at the highest transmission rate the modem supports as determined from the identification process or it may be fixed at a certain value if the modem is not identified. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.3.1 Reset Before issuing any other commands to the modem, it is advisable to issue a Z or &F command to the modem before the identification or setup process. No specific response should be anticipated. The modem may be set up to return numeric, or no result codes. If a reset will be used, the following points should be considered: * Even if a recognizable result within 2.6 seconds, the program should continue. (Some modems do a lengthy reset process before responding with a result; others may be in Q1 or V0 mode.) * Following an OK result, an additional 600ms delay should be imposed. Some modems will respond with an OK then do lengthy reset processing, in which case they are unable to accept additional commands. After the modem is reset, the first setup string (e.g., verbose rather than numeric result codes) should be issued, then the identification command. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.3.2 Setup Software should generally provide some modem setup. However, the software can be written to rely on modem configuration via a stored profile recalled on reset, or by DIP switches set depending on the product. In this case, any unique settings must have been set up prior to running the software, and all the program does is send the Z command to recall the desired profile. Even more basically, software can assume the modem is in the power-up state. However, unless the software will be used within a very predictable environment, these assumptions may result in failures with the controller software. Some commands will always be overridden by the controller in order to ensure its proper functioning. Other command options should either default to the factory setting, or simply act as the "transfer agent" for the commands specified by the user. Menus and dialogs can be provided to prompt the user for specific activities; the program can then interpret these requests and configure the modem accordingly, as Hayes Smartcom products do, or provide the user opportunity to enter AT command strings. Commands frequently set by a modem controller: E0 Turn off echo mode to avoid having command echoes pass through the result code scanner. &F Recall the factory profile. Q1 Enable result codes to ensure that commands are being processed, and to synchronize with the modem command processor (except for synchronous communications where result codes may cause the DTE confusion). V0 or V1 Use either numeric result codes or verbose (recommended) result codes. S0=0 Disable auto-answer during the setup process to avoid inadvertent disruption by an incoming call. H0 Ensure modem is on hook before continuing to the answer or originate process. S12=10 Set the escape sequence guard time to 200ms to hasten the escape for hang-up process. Also reduces the probability of inadvertent user escapes. S2=* Change the escape sequence character for two reasons: To avoid inadvertent user escapes, and to provide different escape sequence characters for answer and originate ends. This prevents inadvertent escaping when data is echoed. S4=* Modify the linefeed character to make the NO CARRIER result code more unique if you scan for it to detect carrier loss. S95=60 Enables the result codes which will provide the maximum amount of information about the connection when it is established. Two typical setup sequences using these recommendations are shown below: Recommendation for software design based on using pre-existing user settings: AT E Q V S0=0 H S12=10 S2=28 S4=31 S95=60 Recommendation for software design based on starting from a known factory setting: AT &F S2=28 S4=31 S12=10 S95=60 Note: Where the zero suffix is used, it may be omitted from a command. Spaces are shown above for readability, but the use of spaces between commands is not recommended. Once this setup command has been sent, and the OK response returned, the controller can continue to the originate or answer processing. If user-programmed settings are included in additional setup strings, or the user is permitted to enter AT setup strings, the software should anticipate ERROR result codes. If an ERROR is returned in response to such a command, the result does not have to be reported to the user, but the controller should not be prevented from continuing in either case. Many times a connection can be made even though some setting is in error or is inappropriate for the class of modem being addressed. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.3.3 Establishing the Desired Connection and Fallback Strategy (S36 Developers' Tips) S36 determines which fallback action will occur if the protocols and procedures set by S46 and S48 do not produce a LAP-based (LAPB) error- controlled connection. The optimum fallback control strategy depends on which Hayes error- control modem you have. The fallback behavior is determined by S36, S46, S48, and &Q5. There have been two improvements in the V-series, OPTIMA and ACCURA EC modems that affect S36: The first added &Q6 Asynchronous Speed Buffering (ASB); ASB provides the same fixed speed DTE interface and local flow control as in the error control mode but without the error control or remote flow control. The second improvement added V.42 with its Alternate Protocol (MNP). Previously, S36 only consisted of one bit, Bit 0, which permitted the user to decide whether the modem would hang up or not if it did not succeed in negotiating an error-controlled connection. The factory default for S36 was 1, which meant fall back to direct async rather than hang up if an error control protocol is not established in &Q5 mode. When &Q6 (ASB) was added, a fall back option for &Q5 mode, which can be controlled with S36, was also added. If S36 Bit 1 is set, and bit 0 is also set, the modem will fall back to ASB instead of direct async if no error control protocol is established in &Q5 mode. The factory default for S36 remained 1. When V.42 was added, it added another fall back option, MNP, to S36. If S36 Bit 2 is set, then MNP will be attempted if the primary protocol selected in S48 is not established. Bit 2 is evaluated before Bits 0, then Bit 1. If MNP is established as the protocol, then Bits 0 and 1 are ignored. The factory default became 5 and later was changed to 7 to take more advantage of ASB. Now that we know that there are three versions of S36, we may need a way to tell which version our software is controlling. First, verify that it is a Hayes error-control modem. This is done by issuing an I4 command and looking for the existence of a "b-string". A b-string begins with a lower case letter "b" and is followed by several upper case letters or numbers forming a hex value. The easiest way for software to identify whether a Hayes modem supports Asynchronous Speed Buffering (also known as ASB, Buffered Async, or Normal) is to issue the following AT command, AT &Q6 &Q5 . If the result code is OK then &Q6 is supported, and ASB is also supported as a fall back. If the result code is ERROR, then &Q6 is not supported. If this is the case, then software should be prepared to fall back to a direct async connection. The easiest way for software to identify whether a Hayes modem supports V.42 (and MNP) is to decode the first character after the leading "b" in the b-string of the I4 ID command response. The characters following the "b" in that line are "ASCII-hex" (0-9, A-F), which decode into 4 bits of ID code (3-0). If Bit 3 is set, then MNP is supported; Bit 2 is V.42. Armed with the knowledge of which S36 bits are supported, the software may now safely configure the modem and properly anticipate the fall-back action. It should be safe to set S36 bit 2 to enable V.42 (and MNP) even if those protocols are not supported in the modem. If the modem does not support ASB, then software should be prepared to follow the CONNECT XXXXX speed result code and change the DTE port speed to match the indicated line speed of the direct connection when no error controlled connection was negotiated. If software will not change port speeds in response to the CONNECT message, then when software has identified a 'pre-ASB' modem, it should set S36 to 0 or 4 so that if no protocol is negotiated, the modem will hang up. The following table shows the order in which the bits of S36 are evaluated: (Remember, these steps only occur after the S46/S48 selections have failed to make a LAPBased error controlled connection in &Q5 mode.) ------------------------------------------------------------------------ S36 Bit 7-3=0 reserved First Bit 2 (4) If set, means try MNP protocol; reset means don't use MNP. Third Bit 1 (2) If set, means fall back to ASB; reset means direct async. Second Bit 0 (1) If set, means fall back based on Bit 1; reset means hang up. ------------------------------------------------------------------------ The following table shows the meaning of each setting: ------------------------------------------------------------------------ S36=7 Try MNP, then fall back to ASB. S36=6 Try MNP, then hang up. S36=5 Try MNP, then fall back to direct async. S36=4 Try MNP, then hang up. S36=3 Don't try MNP; fall back to ASB. S36=2 Don't try MNP; hang up. S36=1 Don't try MNP; fall back to direct async. S36=0 Don't try MNP; hang up. ------------------------------------------------------------------------ There are three types of fallback stratagies which Hayes products use. Type 1: Hayes Modem Operation in &Q5 Communications Mode Applies to V-series Smartmodem 2400 up to and including Version 1.3 and V-series Smartmodem 9600 up to and including Version 1.4. Type 2: Hayes Modem Operation in &Q5 Communications Mode Applies to V-series Smartmodem 2400 Version 1.4 and V-series Smartmodem 9600 Versions 1.5 and 1.6. Type 3: Hayes Modem Operation in &Q5 Communications Mode Applies to all V-series products newer than Types 1 and 2 and all OPTIMA and ACCURA EC products. ------------------------------------------------------------------------ ATI3 Response contains... V-SERIES SMARTMODEM 2400 V-SERIES SMARTMODEM 9600 Type 1 04-00005-10 04-00015-10 04-00005-11 04-00015-11 04-00005-12 04-00015-12 04-00005-13 04-00015-13 04-00015-14 Type 2 04-00005-14 04-00015-15 04-00015-16 Type 3 Does not contain any Does not contain any of the above numbers any of the above numbers ------------------------------------------------------------------------ ************************************************************************ D.4 Connect Processing Once the setup operation has been completed, the commands to establish the connection can be issued. The instruction can be either to originate (using the D command), or to answer (using the A or S0 commands). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.4.1 Originating a Call If the D command is issued with the desired phone number, several possible result codes can be returned. The list below outlines some results to expect: Result Code Meaning ------------------------------------------------------------------------ NO CARRIER Connection failed NO ANSWER No response to '@' dial modifier NO DIALTONE No dial tone in X4 mode NO ____ Connection failed for some other reason BUSY Busy signal detected CONNECT ____ Connection successful; you may need to change DTE speed to the indicated baud rate. (See Wn and S95) CARRIER ____ * DCE carrier speed. (See Wn and S95) PROTOCOL: ____ * Error-correction protocol being used by the modems. (See Wn and S95) COMPRESSION:____ Compression technique in use by modems. (See Wn and S95) AUTOSTREAM Autostream technique in use by modems if selected by user. (See Wn and S95) ------------------------------------------------------------------------ Ignore other responses, but continue to wait for CONNECT ___, BUSY, or NO ___ responses. The CARRIER and PROTOCOL results are intermediate results and precede either a CONNECT ____ or NO ____ result. These results are only returned by Hayes modems when configured to use an error-correcting protocol. If you recognize any numeric value for the baud rate after the CONNECT result, you will have a much more robust controller able to handle many situations. You can use the PROTOCOL result to determine if the flow control requested by the &K command is in effect. Note: If you want to manually dial a call and then have the modem connect, enter the command string ATX1D (X1 disables dial tone detection) when you hear the dial tone. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.4.2 Answering a Call The simplest technique for answering an incoming call is to set S0 and wait for a CONNECT ___ result. You may get several RING results, and possibly a NO CARRIER result if the caller hangs up before connecting. These results should not cause your controller to abort. Continue to wait for a CONNECT result code. If you set S0, you may want to set it back to zero after your controller finishes the call to prevent inadvertent answering when your software is not running. By setting S0 to the number of rings you desire before the modem answers, you utilize the ring detection technology already built into the modem. You should not use the A command to answer after counting RING results because the command may collide with another RING result from the modem and be missed. The RING results may be generated in pairs depending on the ringing cadence of the phone system. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.4.3 Using the CD Line Monitoring the Carrier Detect (CD) line of the RS-232 interface is another technique for carrier detection in answer or originate mode. This assumes that &C1 or the corresponding DIP-switch has been set and the cable is wired properly. Both are risky assumptions. You will have a more robust controller if you use result code scanning rather than the RS-232 lines. If you use CD, you do not know when the modem has given up waiting for the carrier, or why. If the line is busy, you may want to re-try the dial operation. If there is no dial tone, the user needs to know this. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.4.4 Aborting a Connect Request Once the D or S0 command has been issued, the modem goes off hook (or may be off hook for S0) and it must be put back on hook (hangPup) before the abort is completed. To abort an in-progress connect command, send any character to the modem. This will typically result in a NO CARRIER response. The result code scanner should be called after the abort character is sent to prevent additional commands from being sent before the controller and the modem are again in sync. Smartcom products send AT to abort an in-progress connect command. This elicits a result code regardless of whether the modem were off-hook or not. If the modem was off-hook attempting to connect, this will abort the connect operation and return NO CARRIER. If the modem was on-hook in command mode, this simply returns OK. ************************************************************************ D.5 Carrier Loss Detection You want your application to be able to detect when the carrier has been lost so you can determine when the connection is complete. You might be unable to put this part of the code in your controller software, since the controller is typically running only during the connect or hang-up process. Once the application has detected the carrier loss event, it can call the modem controller and restore the modem settings. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.5.1 Using the CD line If you are confident of the communications environment and cabling requirements, and have access to the RS-232 signal status, then monitoring the CD line is the easiest carrier loss detection method to implement. This requires &C1 to be programmed at setup time, or be stored in the modem as the value recalled on reset or power-up. However, this is the most restrictive and risky choice. It requires a properly wired cable and support of &C1 by the modem's command set or proper DIP-switch settings. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.5.2 Scanning the Incoming Data Stream In cases where you cannot depend on 100% Hayes compatibility or want to be independent from the cable wiring, then scanning for the NO CARRIER result code is more reliable. It is also more complex to implement. Typically, at the low-level of the program all received data is retrieved through one subroutine. This subroutine can be augmented or layered to provide the service needed. As data passes through, the last fourteen characters are buffered, typically in a circular buffer. If more data passes in each call, only the last fourteen need to be copied. At a time when the processor is free, such as after 100 ms of idle time or the receive routine has returned no data for 30 to 100 calls, then the buffer is compared against the NO CARRIER result code. If a match is found, the carrier lost event is triggered. By only checking when there is idle time, or after no data has been received for a while, you reduce the CPU overhead and ensure that the modem is not falsely triggered when the string is imbedded in an actual data stream. You can also modify the linefeed character by using S4 to a different value such as S4=31 to make the result code sequence more unique. This action, however, affects other result codes generated by the modem. ************************************************************************ D.6 Escape and Hang Up When your controller has been instructed to terminate the connection, you must put the modem back in command state and issue the hang-up (H) command. In addition to hanging-up, you will also want to restore settings you changed to their factory-set values, or issue an ATZ to undo the effects of your changes. In any case, restoration of the modem settings is necessary even if the connection was terminated due to loss of carrier. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.6.1 Escaping the Modem to Command State To escape the modem, the controller must first delay the escape sequence guard time (specified by S12), then issue the escape sequence character three times (specified by S2); then wait for an OK result. Waiting for the result also enforces the required guard time after the escape sequence. Once the OK result is received, the modem has entered command state. The controller can then hang up and restore the modem. The controller software must be sure to wait the required guard time before sending the escape sequence characters. Your controller may have been called just after data was transmitted and, without the delay, your characters will just be sent without triggering the escape sequence recognition process. It is important that the serial transmitter be permitted to be idle for the escape sequence guard time, plus a few extra milliseconds to allow for error, before sending characters. For example, if S12=10, a delay of at least 200 milliseconds is required before sending the escape sequence characters. After sending the escape sequence characters, the OK result will be received after another 200 millisecond wait. This completes the escape sequence process in slightly over 400 milliseconds. If S12=50 (factory setting) is used, one full second must pass before the characters can be sent, then another second delay must transpire prior to the OK result. This completes the process in slightly over two seconds. For this reason, it is recommended that S12=10 be issued to speed up this process. A delay slightly longer than that stored in S12 should be used to allow for errors in the system clock as well as in the modem clock. 100ms is an adequate safety margin. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.6.2 Using DTR to Escape or Hang Up The DTR RS-232 signal can be used to escape the modem to command state, or to reset the modem depending on the &D command set or DIP-switch settings. This also requires the cable to be properly wired. Unless the software will operate in a highly-controlled environment, this technique is discouraged over using the escape sequence process because of the requirements to make it function properly. Leaving a call connected simply because the cable was not properly wired can be potentially expensive. The escape sequence is reliable in all environments if it is properly utilized. ************************************************************************ D.7 Modem Re-configuration When a call has been completed, a "clean-up" command should be issued to return the modem a more known configuration. For example, if verbose result codes were selected when the modem was reset, and the controller selected numeric result codes, on completing the session, the controller should reset the modem to re-select verbose result codes. In the same way, if the linefeed character were changed to suit the software or environment, the character should be set to its former value. Any other command options that were modified, should be restored to their factory- set values. The minimum the controller should do when through with the modem is issue a Z command option to ensure the modem is restored to its power-up state. ************************************************************************ D.8 Timing Considerations A modem controller inherently has a sense of time. Usually all that is needed to utilize the timing part of the controller is access to a time reference. For example, the number of milliseconds since power-up or program launch, or a "system tick" value can be used. Under DOS, the INT 1C timer tick produces an interrupt every 55 milliseconds. An ISR can be installed on this interrupt to add 55 to a long integer every time it is called. This will provide a millisecond counter. On the Macintosh, the "Tick Count" function will return the number of vertical-retrace ticks since computer power-up. Each tick represents 1/60 of a second. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.8.1 Programming for Time The time value is used to determine relative time. For example, if a loop should be executed for only 2 seconds it could be coded as: timeout = Tick Count( ) + 120 ; /* 60 tics per second = 2 seconds */ do { got_one = Check_Result( ) ; } while( ( ! got_one ) && ( SystemTick( ) < timeout ) ) ; This code fragment continues to call the Check_Result function until it returns a true value, or until two seconds have elapsed. This technique is independent of processor speed. A faster processor may make thousands of trips through the loop, where a slower one would only make a few hundred. Any anticipated result code would arrive within that two-second real-time window. Care should be given to considering when to start the timing loop. If an AT command string is sent, then a loop executed, the time interval may also include the time required to send the AT command (if data is buffered and sent by an interrupt service routine). At 300 bps, where each character takes 33ms just to transmit (10/300), a 40 character AT command would take over a second to transmit. This means a two second loop spends more than half of its time waiting for the AT command process to complete, leaving only a fraction of a second for the modem to respond with the result (again at 33ms per character). One way to avoid this is to wait until all data has been transmitted by an ISR before entering the result code scan loop. Alternatively, more time can be provided for loops to process results. Another option is to measure idle time rather then elapsed time. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.8.2 When to Consider Time The use of timing varies from command to command and operation to operation. Some commands take longer to execute. The guidelines below can be used to determine the best amount of time to wait. * For the Z command, wait two seconds for a response, then wait an additional 600 ms, whether a response were received or not. * For general setup commands, wait two seconds for the response. * For the hang-up command (H), wait up to 20 seconds for a response. Some modems may take longer to hang-up if data buffered within the modem is still waiting to be transmitted and acknowledged. This time is controlled by S38. * For dial commands (D or O) wait at least one minute or more. Values set for carrier detect time, tone versus pulse dialing, commas in the phone number, all can take additional time. If the software times out, the modem may, in fact, not be connected to the computer, disconnected, or turned off. If this is the case, enforce a reasonable timeout to the first setup or identification command. That will determine whether a modem is attached and functioning. A timeout may also occur when the software receives a result code it does not recognize. The software may continue to wait until it receives a code it does recognize. If this is the case, the controller should proceed as if an ERROR response were received. The only instance in which it is not prudent to continue is when a connect (D, A, or S0) command was issued. Before implementing a timeout, the advantages, if any, to this level of program interruption should be considered. For example, if the program times out from a dial command in one minute when it may take two minutes to complete the call, the timeout defeats the purpose of the command. The modem always responds with a result code, whether BUSY, NO CARRIER, or CONNECT, after some length of time. Idle time is the time since data was received. Elapsed time is the time since the software started looking for the result. Idle time can be measured by resetting the timeout clock each time the software receives a character. Rather than exiting the loop after two seconds of elapsed time, the logic changes to exit after no further data has been received for two seconds. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.8.3 Recovering when "Out Of Sync" Another disadvantage of timing out is that an early timeout can put the software out of sync with the modem command processor. The controller may be interpreting results sent in response to previous commands as the response to later commands. To avoid this condition, any pending receive data should be flushed before the next command is issued. ************************************************************************ D.9 Transparent XON/XOFF Local Flow Control The use of flow control during error-control modem connections is essential to avoid loss of data during error-control protocol retransmissions. Use of flow control allows the DTE-DCE interface to be run faster than the line speed, permitting the additional benefit of increased throughput due to stripping of start and stop bits by the error control protocol and data compression techniques such as V.42bis. When the interface is run at high speed, data loss due to modem buffer overrun is quite likely to occur if flow control is absent or not functioning properly. Hayes modems support the industry standard "RTS/CTS" hardware flow control (invoked by the &K3 command) and "XON/XOFF" character-based flow control (&K4) schemes. However, in some situations, it is not possible to use either of these. For example, hardware flow control cannot be used if the DTE serial port does not support the RTS and/or CTS hardware signals, if corresponding conductors are not present in the interface cable, or if intermediate equipment does not properly transfer the RTS and CTS signals. XON/XOFF flow control cannot be used if the XON and XOFF characters appear in the user data or in the control information associated with the file transfer protocol in use, since this would interfere with the use of these characters for flow control, resulting in failure of data transfer and possibly locking up the interface. Hayes addressed these problems in the design of V-series, OPTIMA and ACCURA EC modems. Desiring to provide a complete solution for all users, Hayes provided a third flow control scheme, which accommodates systems which cannot use RTS/CTS but which must transfer data containing the XON and XOFF characters. This scheme, known as Transparent XON/XOFF Local Flow Control (invoked by the &K5 command), uses only the Transmit Data and Receive Data circuits, yet provides for the transfer of all 256 possible 8-bit characters over the interface without interfering with the flow control scheme. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.9.1 Summary Transparent XON/XOFF Flow Control functions on the interface between the local DTE (computer or terminal) and local DCE (modem). When the data is placed on the link between the modems, the original characters have been restored. Neither the remote DTE nor DCE are aware, or need to be aware, of the fact that Transparent XON/XOFF Flow Control is in use. Transparent flow control can be viewed as a layered process, organized as follows. Note that this process is duplicated in the reverse direction (operates in both directions simultaneously). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.9.2 Transparentization Transparent XON/XOFF Flow Control operates by scanning the data stream for XON ($11), XOFF ($13), and DLE ($10) characters ("$" indicates hexadecimal), with either 0 or 1 in the high-order bit position. When one is found, a DLE with same parity character is inserted ahead of it. The original character is then "transparentized" by exclusive-ORing the character with the value $21 (hexadecimal 21, decimal 33, binary 00100001), which preserves the parity bit value. XON and XOFF characters are thus "hidden" in the data stream. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.9.3 Flow Control Once the XON and XOFF characters have been transparentized (hidden), the DTE and DCE are free to insert XON and XOFF characters for flow control purposes at any point in the data stream. This includes the possibility of inserting XONs and XOFFs between a DLE and the following transparentized character. XON and XOFF characters in the user data will not interfere with the flow control scheme. The operation of this XON/XOFF flow control process is identical to traditional XON/XOFF flow control. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.9.4 De-Transparentization In the de-transparentization process, the receiving device scans for DLEs. When one is found, it is discarded, and the following character is once again exclusive-ORed with the value $21, recovering the original character. Note that XONs and XOFFs that appear between the DLE and the following transparentized character are used for flow control purposes and do not affect the detransparentization process. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.9.5 Examples The following discussion is written in terms of the actions performed by the computer software. The modem performs identical actions on the reverse directions of transmission. This text is not meant to constrain implementation or to imply that better implementations are not possible, but serves simply as an example. ........................................................................ D.9.5.1 Transmitter Example Each character in the user data stream is individual examined. It it is any of the six characters $10, $11, $13, $90, $91, or $93, it is exclusive-ORed with the value $21, and prefixed by a DLE character ($10). This can also be viewed as a replacement function according to the following table: Char Replaced By ------------------------------------------------------------------------ $10 $10 $31 $11 $10 $30 $13 $10 $32 $90 $10 $B1 $91 $10 $B0 $93 $10 $B2 ------------------------------------------------------------------------ The characters are transmitted using the parity setting then in force on the DTE-DCE interface; the XOR with $21 preserves the correct value of the parity bit. If the software wants the modem to suspend delivering data, it inserts an XOFF ($13 at current parity setting) in the transmitted data stream at any arbitrary point, which may be between a DLE ($10) and the following transparentized character. The XOFF should be issued BEFORE the buffer is completely full, since there may be a lag of several characters before the modem is able to react to the XOFF and suspend delivery. To resume delivery of data, the software inserts an XON ($11 at current parity setting) at any arbitrary point. Characters inserted for flow control purposes are NOT passed through the transparency algorithm defined above. ........................................................................ D.9.5.2 Receiver Example Each character received from the modem is individually examined. A "transparency sequence in progress" flag (TSIP-FLAG) is maintained as part of a simple state machine. The initial value of the TSIP-FLAG is OFF. The following tests and actions should be undertaken in the order listed. If the character received is $13 or $93 (XOFF with either parity), it is interpreted (regardless of the setting of the TSIP-FLAG) as a request from the modem for the DTE to suspend transmission of data to the modem. The receiver portion of the software must communicate this request to the transmitter portion of the software in a timely manner, since the modem has a limited amount of buffer space to allow for additional characters to be received after it sends XOFF (about 64 characters maximum). The XOFF character is discarded from the received data stream. The TSIP-FLAG is not changed. If the character received is $11 or $91 (XON with either parity), it is interpreted (regardless of the setting of the TSIP-FLAG) as a request from the modem for the DTE to resume transmission of data to the modem, if any is available. The XON character is discarded from the received data stream. The TSIP-FLAG is not changed. If the character is neither an XON or and XOFF, the following steps are performed: If the TSIP-FLAG is ON, the received character is exclusive-ORed with $21, then delivered to the higher layer for further processing (e.g., placed in a receive data buffer). The TSIP-FLAG is then turned OFF. If the TSIP-FLAG is OFF and the character received is $10 or $90 (DLE with either parity), the beginning of a transparency sequence is indicated. The DLE is discarded from the received data stream, and the TSIP-FLAG is turned ON. If the TSIP-FLAG is OFF and the character received is neither a $10 nor $90, the character is a normal untransparentized user data character which should be delivered to the higher layer for further processing (e.g., placed in a receive data buffer). The TSIP-FLAG remains OFF (unchanged). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.9.6 Conclusion When properly implemented, Transparent XON/XOFF Local Flow Control permits a fully-functional flow-controlled interface even when only three conductors are present (Transmit Data, Receive Data, and Signal Ground). Versatile software may use the &T19 cable test feature of Hayes modems to determine whether or not RTS/CTS flow control can be used, and, if RTS/CTS is unavailable, automatically select &K5 operation to use Transparent XON/XOFF flow control, and allow the user to continue to transfer data using any protocol or data contents without concern for possible interference with the XON/XOFF flow control scheme. ************************************************************************ D.10 General Tips and Techniques The following are tips and techniques that may help in the exchange of information between the software controller and the modem command processor. * Commands in the command line should be ordered starting with the safest and ending with the most risky. Risk is defined as the potential to generate an ERROR, causing the remainder of the command line to be ignored. * Any command that may return ERROR should be anticipated. This or other unexpected results can be ignored unless the command is critical (configuration or call placement). * Send I0 or I4 at 1200 bps, which is supported by the majority of modem products. A modem reset (&F or Z) should be performed at 1200 bps before sending the identification commands. * Setup processing can be speeded by sending all but the last D or S0 command at the highest DTE rate supported by the modem. The last command must be sent at the speed at which the connection should be made (except V-series, OPTIMA and ACCURA EC products which specify this with S37). * Any dependency on proper cabling can be eliminated by avoiding techniques that depend on RS-232 signals: Have the software scan for result codes, rather than depending on the condition of the CD line. Transparent flow control should be used with V-series, OPTIMA and ACCURA EC products rather than with RTS/CTS signals. The escape sequence with guard time process and H command should be used to hangup instead of terminate a connection by dropping DTR. Any unexpected RING result codes may indicate the last command may not have been processed correctly. The command should be- issued. Sample Controller/Modem Exchange Clock Controller Speed Modem (1200) bps) ------------------------------------------------------------------------ 00000 ATZ 00034 ATZ 00068 (one second to do reset) 01068 0 (V0 stored as default) 01084 (delay additional 600ms) 01684 ATEQV1S0=0S12=10S4=3HI 01884 ATEQV1S0=0S12=10S4=3HI (echo) 02084 960 02142 OK (19200 bps) 02192 ATM0X4L1S12=10S2=1&Q5W1S36 =7S37=9&K5 02206 OK 02209 ATDT9W14045551212 38000 CARRIER 2400 45000 PROTOCOL: NONE 45010 CONNECT 2400 (2400 bps) (Connection Established) ----------------------------------------------------------------------- (2400 bps) 00000 (delay 300ms, need 200, add 100 for safety) 00300 (escape char is ^A, S2=1) 00313 (waits 200ms) 00513 OK 00538 ATHE1S2=43S12=50W0&Q0 00630 OK ------------------------------------------------------------------------ ======================================================================== WHERE TO GO FROM HERE With the information provided here, you should be able to configure your modem with AT commands for a variety of communication environments. If you are just starting out with communications programming, this reference should provide you with sufficient tips to address the modem's features through a software program of your own. If this Reference seems more technically oriented than you anticipated, we suggest that you purchase a Hayes Smartcom product. Any Smartcom program will fully control the modem to support almost any telecommunication requirements. If you are, or would like to become, a registered Hayes Software Developer, you may receive additional technical material on Hayes products. For information on qualification and registration procedures, contact Hayes Customer Service at the telephone number and/or address provided with your modem package.