|
Technical Reference for Hayes(TM) Modem Users 2 November 1990 Version 1.0 Hayes Microcomputer Products, Inc. P.O. Box 105203 Atlanta, Georgia 30348 Europe Office Hayes Microcomputer Products, Inc. 1 Roundwood Avenue, Stockley Park Uxbridge, Middlesex UB11 1AE United Kingdom Asia Office Hayes Microcomputer Products, Inc. 21/F Caxton House, 1 Duddell Street Central Hong Kong 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 without notice. The Hayes Standard AT Command Set is proprietary to, and subject to the copyrights of Hayes Microcomputer Products, Inc., and distribution of this document in no way represents a waiver of those rights. Hayes, the Hayes logos, Smartcom, Smartcom II, Smartcom III, Smartcom EZ, V-series, Smartmodem, ULTRA, and ESP are trademarks of Hayes Microcomputer Products, Inc. Other trademarks identified in this document are trademarks of their respective companies. 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. To highlight the start of Chapters, 1st Level Heads, 2nd Level Heads, 3rd Level Heads and Tables, we've used the following scheme: Chapters are preceded by: ============================================================================= 1st Level Heads are preceded by: ***************************************************************************** 2nd Level Heads are preceded by: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3rd Level Heads are preceded by: ............................................................................. Table heads are separated from table listings by: ----------------------------------------------------------------------------- Document 44-00012 AA K10 (BBS Version) © 1990 Hayes Microcomputer Products, Inc. All rights reserved. Table of Contents Chapter One: The Hayes Standard AT Command Set 1.1 AT Command Listing A - Answer Command B - Select Communication Standard C - Carrier Control Selection D - Dial Command (and dial modifiers) E - Command State Character Echo Selection F - On-line State Character Echo Selection H - Hook Command Options I - Internal Memory Tests L - Speaker Volume Level Selection M - Speaker On/Off Selection N - Negotiation of Handshake Options O - On-Line Command P - Select Pulse Dialing Method Q - Result Code Display Options Sr= - Write to an S-Register Sr? - Read an S-Register T - Select Tone Dialing Method V - Result Code Format Options W - Negotiation Progress Message Selection X - Call Progress Options Y - Long Space Disconnect Options Z - Soft Reset Command &B - V.32 Auto Retrain Options &C - Data Carrier Detect Options &D - Data Terminal Ready Options &F - Recall Factory Profile &G - Guard Tone Selection &J - Jack Type Selection (Auxiliary Relay Options) &K - Local Flow Control Options &L - Line Type Selection (Dialup/Leased) &O - PAD Channel Selection &Q - Communications Mode Options &R - RTS/CTS Options &S - Data Set Ready Options &T - Test Options &U - Trellis Coding Options &V - View Configuration Profiles &W - Write Active Profile to Memory &X - Synchronous Transmit Clock Source &Y - Select Stored Profile For Hard Reset &Zn=x - Store Telephone Number 1.2 Result Code Listing 1.2.1 Command Response and Call Progress Monitoring 0 - OK 1 - CONNECT 2 - RING 3 - NO CARRIER 4 - ERROR 5 - CONNECT 1200 6 - NO DIALTONE 7 - BUSY 8 - NO ANSWER 10 - CONNECT 2400 11 - CONNECT 4800 12 - CONNECT 9600 14 - CONNECT 19200 22 - CONNECT 1200/75 23 - CONNECT 75/1200 28 - CONNECT 38400 1.2.2 Negotiation Progress Messages 40 - CARRIER 300 44 - CARRIER 1200/75 45 - CARRIER 75/1200 46 - CARRIER 1200 47 - CARRIER 2400 48 - CARRIER 4800 50 - CARRIER 9600 66 - COMPRESSION: CLASS 5 67 - COMPRESSION: V.42BIS 68 - COMPRESSION: ADC 69 - COMPRESSION: NONE 70 - PROTOCOL: NONE 71 - PROTOCOL: ERROR-CONTROL/LAP-B 72 - PROTOCOL: ERROR-CONTROL/ LAP-B/HDX 73 - PROTOCOL: ERROR-CONTROL/LAP-B/AFT 74 - PROTOCOL: X.25/LAP-B 75 - PROTOCOL: X.25/LAP-B/HDX 76 - PROTOCOL: X.25/LAP-B/AFT 77 - PROTOCOL: LAP-M 78 - PROTOCOL: LAP-M/HDX V.42 79 - PROTOCOL: LAP-M/AFT 80 - PROTOCOL: ALT 91 - AUTOSTREAM: LEVEL 1 92 - AUTOSTREAM: LEVEL 2 93 - AUTOSTREAM: LEVEL 3 1.2.3 Information Text (INFO-TEXT) 1.3 S-Register Listing S0 - Ring to Answer After S1 - Ring Count S2 - Escape Sequence Character S3 - Carriage Return Character S4 - Line Feed Character S5 - Backspace Character S6 - Wait Before Blind Dialing S7 - Wait for Carrier after Dialing S8 - Duration of Delay for Comma Dial Modifier S9 - Carrier Detect Response Time S10 - Delay Between Lost Carrier and Hang Up S11 - Multi-Frequency Tone Duration S12 - Escape Sequence Guard Time S18 - Modem Test Timer S25 - DTR Detection S26 - RTS to CTS Interval S30 - Inactivity Time-out S33 - AFT Options S36 - Negotiation Failure Treatment S37 - Desired DCE Line Speed S38 - Delay Before Forced Hang up S44 - Asynchronous Framing Technique Selection S46 - Error-Control Protocol Selection S48 - Enabling/Disabling Feature Negotiation S49 - ASB buffer size lower limit S50 - ASB buffer size upper limit S53 - Global PAD Configuration S63 - Leased line carrier level S69 - Link Layer Window Size S70 - Maximum Number of Retransmissions S71 - Link Layer Time-out S72 - Loss of Flag Idle Time-out S73 - No Activity Time-out S74, S75 - Minimum Incoming Logical Channel Number (LCN) S76, S77 - Maximum Incoming Logical Channel Number (LCN) S78, S79 - Outgoing Logical Channel Number (LCN) S80 - Packet Layer N20 Parameter S81 - Packet Layer T20 Parameter S82 - Break Signaling Technique S84 - Adaptive start up negotiation (ASU) S85 - ASU Negotiation Report S86 - Connection Failure Cause S92 - MI/MIC Options S93 - V.25bis DTE interface speed S94 - Command Mode Selector S95 - Negotiation Message Options 1.4 Additional Command Set Definitions AT - Command Prefix +++ - Escape Sequence <CR> - End-of-line Character A/ - Repeat Last Command Chapter Two: V-series(TM) X.25 Communications 2.1 Modem Configuration for X.25 Communications 2.1.1 Controlling Automatic Feature Negotiation 2.1.2 PAD Channel Selection 2.2 PAD Configuration 2.2.1 PAD Commands ACC - Accept Call Command CALL - Call Command (and Call Facilities) CHAN - Channel Selection Command CLR - Clear Channel Command EXEC - Execute String Command EXIT - Exit PAD Command INT - Interrupt Command PAR? - Read Parameter Command PROF - PAD Profile Command RESET - PAD Reset Command RPAR? - Read Remote PAD Parameter Command RSET - Set Remote PAD Parameter Command STAT - Status of Current Channel Command SET - Set PAD Parameter Command 2.2.2 PAD Parameters Parameter 1 - PAD Recall Using a Character Parameter 2 - Echo Parameter 3 - Selection of Data Forwarding Signal Parameter 4 - Selection of Idle Timer Delay Parameter 5 - Ancillary Device Control Parameter 6 - Control of PAD Result Codes Parameter 7 - Action on Receipt of Break from Terminal Parameter 8 - Discard Output Parameter 9 - Padding after Carriage Return Parameter 10 - Line Folding Parameter 11 - Terminal Speed Parameter 12 - Flow Control of the PAD by Local Terminal Parameter 13 - Line Feed Insertion after Carriage Return Parameter 14 - Line Feed Padding Parameter 15 - Editing Parameter 16 - Character Delete Parameter 17 - Line Delete Parameter 18 - Line Display Parameter 19 - Editing PAD result codes Parameter 20 - Echo Mask Parameter 21 - Parity Treatment Parameter 22 - Page Wait National Parameter 70 - Streaming Data Forwarding National Parameter 71 - Character Format National Parameter 72 - Break Signal Timing National Parameter 73 - Break Signal Duration National Parameter 74 - Disable PAD Parameter by the Remote PAD National Parameter 100 - Default Maximum Packet Size National Parameter 101 - Default Maximum Window Size National Parameter 103 - Reset Request Response Timer National Parameter 104 - Clear Request Response Timer National Parameter 105 - Interrupt Response Time National Parameter 106 - Reset Request Retransmission Counter National Parameter 107 - Clear Request Retransmission Counter National Parameter 108 - Channel Allocation Parameter 2.3 PAD Profiles Factory-Set Profile CCITT Simple Standard Profile CCITT Transparent Standard Profile Error-Control/LAP-B Profile 2.4 Typical X.25 Scenarios Appendix A: Communication Options A.1 Transmission and DTE Types A.1.1 Asynchronous Transmissions A.1.2 Synchronous Transmissions A.2 Communication Modes - &Q A.2.1 Asynchronous Mode - &Q0 A.2.2 Synchronous Mode 1: sync/async - &Q1 A.2.3 Synchronous Mode 2: stored number dial - &Q2 A.2.4 Synchronous Mode 3: manual dial with data/talk switch- &Q3 A.2.5 Synchronous Mode 4: Hayes AutoSync - &Q4 A.2.6 Error-Control Mode - &Q5 A.2.7 Asynchronous Mode with Automatic Speed Buffering (ASB) - &Q6 Appendix B: Troubleshooting Tips B.1 The Communication Link B.2 Troubleshooting the Process B.2.1 Problems in Getting Started B.2.2 Problems Encountered During Communications B.3 Special Environment Considerations B.3.1 Custom Modem Setup for Mainframe or Minicomputer Host B.3.2 Custom Modem Setup for Telephone System Requirements B.4 Using AT Commands to Test Modem Circuits B.4.1 Available Tests B.4.2 Performing a Test B.4.3 Testing with Analog Loopback B.4.4 Testing with Digital Loopback B.4.5 Testing the Tone Dialer - &T2 B.5 Testing the Cable B.5.1 Cable Quality B.5.2 Checking Cable Signals - &T19 B.6 Testing Internal Memory Appendix C: Modem-to-DTE Interface C.1 EIA 232-D/CCITT V.24 Interfaces C.2 Signals Used in the EIA 232-D Interface C.3 EIA 232-D Signal Definitions C.4 Modem Interface Connector Appendix D: Modem Application Development D.1 Modem Identification D.2 Result Code Recognition D.3 Modem Preparation D.3.1 Reset D.3.2 Setup D.4 Connect Processing D.4.1 Originating a Call D.4.2 Answering a Call D.4.3 Using the CD Line D.4.4 Aborting a Connect Request D.5 Carrier Loss Detection D.5.1 Using the CD Line D.5.2 Scanning the Incoming Data Stream D.6 Escape and Hang Up D.6.1 Escaping the Modem to Command State D.6.2 Using DTR to Escape or Hang Up D.7 Modem Re-configuration D.8 Timing Considerations D.8.1 Programming for Time D.8.2 When to Consider Time D.8.3 Recovering When "Out of Sync" D.9 General Tips and Techniques Index ============================================================================= Introduction This Technical Reference for Hayes Modem Users offers additional information about 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 on the AT Command Set Reference Card that accompanied your modem. All of the commands in the set are included in this document. You'll 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 DTE (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 Products. Any of these fine programs will fully control the modem for almost any telecommunication requirements. ***************************************************************************** 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 which 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 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 folder provided with your modem for location and telephone number.) ***************************************************************************** How this Reference is Organized This reference is divided into two chapters and four appendices: Chapter One: The Hayes Standard AT Command Set... includes definitions of the Hayes AT Command Set including the commands, result codes, and S-registers. Chapter Two: V-series(TM) X.25 Communications... includes definitions of the commands used for X.25 packet switched communications, PAD and National Parameters, and 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 the AT command set. ***************************************************************************** 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 to which commands can be entered and sent through the serial port to the modem. Although commands are not required when using Hayes Smartcom(TM) products, Smartcom EZ(TM), Smartcom II(TM), and Smartcom III(TM) all support a command line interface to the modem. Refer to the Smartmodem Product User's Reference or V-series System Product User's Reference (depending on the modem you purchased) for descriptions of the features that are enabled by the AT Commands and S- Registers defined here. These user's references both explain how to issue AT Commands, and read and set S-Registers/PAD Parameters. Please note that this reference is not a list of the features supported by your modem, but a general guide to the Hayes AT Command Set as used to control Hayes modems. For a list of features supported by your modem, refer to the documentation included with your modem. This Modem Technical Reference is a supplement to the documentation provided with your modem, not a replacement. ============================================================================= Chapter One: The Hayes Standard AT Command Set This chapter is divided into three sections: AT commands, Result Codes, and S- Registers. The first section defines individual AT commands. Commands are listed in 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 Smartmodem 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 Hayes Standard AT Command Set are also included. For the factory setting and available options/ranges for commands and registers, use the AT Command Set Reference Card provided with your modem. Unless a command, register, or result code is listed on this card, 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 the feature set that has enhanced the definition of the Hayes standard. The diagram below shows the major steps in the process. 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<CR>. 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 modems return the CONNECT XXXXX result code. 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. 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 Values Description ----------------------------------------------------------------------------- 0 or none V.22 when modem is at 1200 bps 1 U. S. Domestic 212A when modem is at 1200 bps 2 V.23 R1200/T75 bps ASB when modem is at T1200/R1200 bps 3 V.23 T1200/R75 bps ASB when modem is at T1200/R1200 bps 4 V.23 T1200/R75 bps split speed when modem is at T1200/R75 bps 5 V.23 1200 bps half duplex when modem is at T1200/R1200 bps GROUP 2 Values Description ----------------------------------------------------------------------------- 10 V.23 R1200/T75 bps split speed when modem is at R1200/T75 bps 11 U. S. Domestic 212A when modem is at 1200 bps GROUP 3 ----------------------------------------------------------------------------- Values Description 15 V.21 when modem is 110/300 bps 16 U. S. Domestic 103 when modem is at 110/300 bps GROUP 4 ----------------------------------------------------------------------------- Values Description 20 V.23 R600/T75 bps ASB when modem is T600/R600 bps 21 V.23 T600/R75 bps ASB when modem is T600/R600 bps 22 V.23 T600/R75 bps split speed when modem is T600/R75 bps 23 V.23 600, half duplex when modem is 600 bps GROUP 5 ----------------------------------------------------------------------------- Values Description 30 V.22bis when modem is 2400 bps 31 V.27ter when modem is 2400 bps GROUP 6 ----------------------------------------------------------------------------- Values Description 40 V.27ter when modem is 4800 bps 41 V.32 full duplex when modem is 4800 bps 42 V.32 half duplex when modem is 4800 bps 44 V.23 half duplex when modem is 4800 bps GROUP 7 ----------------------------------------------------------------------------- Values Description 50 V.29 HDX when modem is 7200 bps GROUP 8 ----------------------------------------------------------------------------- Values Description 60 V.32 full duplex when modem is 9600 bps 61 V.32 half duplex when modem is 9600 bps 63 V.29 half duplex when modem is 9600 bps C - Carrier Control Selection The C command is used by some Hayes modems, such as Smartmodem 1200, to control the transmit carrier. In these instances, C0 instructs the modem not to 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 <CR> 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 255-character 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 within 5 seconds If W dial modifier is processes and then 3 seconds of 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 255 characters 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 ; 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, ATDT9W1552368!@#71234; <CR> instructs the modem to use tone dialing to access a number outside a PBX, wait for dial tone, dial the number 1552368, 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 used to specify what numbers the modem will 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. 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 1552368, 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 1552368 @ 85939 W 423 <CR>. ! - Timed Break Recall (Hookflash) The ! dial modifier issues a timed break recall signal, which causes the modem to hang up for 75 milliseconds, 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 <CR>), 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 1552368; <CR> Dials bank using pulse method OK Command executed, but keeps the modem in command state (no carrier handshake takes place) ATDT 4768; <CR> 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 escape sequence 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<CR> were issued, for example, the modem would dial the string stored in memory location three 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 dialling (D) command string, before the <CR>. 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, F! 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 selftest conditions H1 Go off hook; do not execute the Handshake Process 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 for the purpose of determining 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(TM) 120 Smartmodem 1200(TM), Smartmodem 1200B(TM), Smartmodem 1200C(TM), Smartmodem 1200A(TM) 240 Smartmodem 2400(TM), Smartmodem 2400B(TM), Smartmodem 2400P(TM), Smartmodem 2400Q(TM), Smartmodem 2400M(TM), V-series Smartmodem 2400, V-series Smartmodem 2400B, V-series Smartmodem 2400P, V-series Smartmodem 2400M 960 Smartmodem 9600, V-series Smartmodem 9600(TM), V-series Smartmodem 9600B(TM), V-series Smartmodem 9600P(TM), V-Series ULTRA Smartmodem 9600 I1- display ROM checksum The I1 command instructs the modem calculate the value of the ROM checksum. The response is a 3-digit decimal information text, the sum of all of the bytes in ROM. I2 - perform ROM checksum test This command instructs the modem to verify the ROM checksums. Depending on whether the ROM checksum has been found to be correct, the modem produces an info text that resembles a verbose 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 value in the way the I1 one command does, 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 info- 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 are subject to change and expansion. The I4 info-text displayed: a097800C204C264<CR><LF> <CR><LF>bF60410000<CR><LF> <CR><LF>r1031111111010000<CR><LF> <CR><LF>r3000111010000000 surrounded by additional <CR> and <LF> characters as are required by the V command option in effect. According to convention, all <CR> and <LF> 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 encoded by characters, hex symbols following the "a" character, each of which represents four bits. 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: Stand alone modem product Bit 1: Supports &H0 through &H4 Bit 0: Supports &I0 through &I4 D7 Bit 3: Supports V.22 at 1200 bps Bit 2: Supports Bell 212A Bit 1: Supports ASB (&Q6) in V.23 75xmt/1200rcv Bit 0: Supports ASB (&Q6) in V.23 1200xmt/75rcv D8 Bit 3: Supports V.23 1200xmt/75rcv Bit 2: Supports V.23 1200 half duplex Bit 1: Supports V.23 75xmt/1200rcv Bit 0: Supports V.23 75xmt/600rcv D9 Bit 3: Supports V.21 100/300 Bit 2: Supports ASB (&Q6) in V.23 75xmt/600rcv Bit 1: Supports ASB (&Q6) in V.23 600xmt/75rcv Bit 0: Supports V.23 600xmt/75rcv D10 Bit 2: Supports V.22bis at 2400 bps Bit 1: Supports V.27ter at 2400 bps Bit 0: Supports V.27ter at 4800 bps D11 Bit 3: Supports V.32 full duplex at 4800 bps Bit 2: Supports V.32 half duplex at 4800 bps Bit 1: Supports (Reserved) at 4800 bps Bit 0: Supports V.29 half duplex at 4800 bps D12 Bit 3: Supports V.29 half duplex at 7200 bps Bit 2: Supports V.32 full duplex at 9600 bps Bit 1: Supports V.32 half duplex at 9600 bps Bit 0: Supports (Reserved) at 9600 bps D13 Bit 3: Supports V.29 half duplex at 9600 bps Bit 2: Supports Bell 103 110/300 bps D15 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 nine bytes (D1-D9). The bit map for each byte is defined as follows: b D1 D2 D3 D4 D5 D6 D7 D8 D9 D1 V.42 Alternate Protocol Supported Bit 4: V.42 LAPM Protocol Supported Bit 2: X.25 Protocol Supported Bit 1: LAPB (Original V-series Point-to-Point error-control) Protocol Supported D2 Bit 8: Reserved (should be set to zero) Bit 4: MNP Class 5 Supported Bit 2: V.42bis Supported Bit 1: 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 I4 "r1" 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 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 <CR><LF>'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<n>), all subsequent characters contain the DTE rate maps. All maps have the same mapping for convenience to software. (Refer to the chart below.) 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 and r3 Strings Character Bit # DTE Rate ----------------------------------------------------------------------------- 3:1 bit 0 45.45 bps 3:2 bit 1 50 3:4 bit 2 75 3:8 bit 3 75/600 (xmt is 75, rcv is 600) 4:1 bit 4 75/1200 4:2 bit 5 110 4:4 bit 6 134.5 4:8 bit 7 50 5:1 bit 8 300 5:2 bit 9 450 5:4 bit 10 600 5:8 bit 11 600/75 6:1 bit 12 1200 6:2 bit 13 1200/75 6:4 bit 14 1800 6:8 bit 15 2000 7:1 bit 16 2400 7:2 bit 17 3000 7:4 bit 18 3600 7:8 bit 19 4200 8:1 bit 20 4800 8:2 bit 21 5400 8:4 bit 22 6000 8:8 bit 23 6600 9:1 bit 24 7200 9:2 bit 25 7800 9:4 bit 26 8400 9:8 bit 27 9000 10:1 bit 28 9600 10:2 bit 29 12000 10:4 bit 30 14400 10:8 bit 31 16800 11:1 bit 32 19200 11:2 bit 33 21600 11:4 bit 34 24000 11:8 bit 35 26400 12:1 bit 36 28800 12:2 bit 37 31200 12:4 bit 38 33600 12:8 bit 39 36000 13:1 bit 40 38400 13:2 bit 41 43200 13:4 bit 42 48000 13:8 bit 43 52800 14:1 bit 44 56000 14:2 bit 45 57600 14:4 bit 46 62400 14:8 bit 47 64000 15:1 bit 48 67200 15:2 bit 49 72000 15:4 bit 50 76800 15:8 bit 51 81600 16:1 bit 52 86400 16:2 bit 53 91200 16:4 bit 54 96000 16:8 bit 55 100800 17:1 bit 56 105600 17:2 bit 57 110400 17:4 bit 58 115200 17: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 Low speaker volume 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 an 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 for 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, Ping Pong, V.22bis, V.22, and V.21 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, Ping Pong, V.22bis, V.22, V.23, and V.21 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, Ping Pong, V.22bis, V.22, and V.21 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, Ping Pong, V.22bis, V.22, V.23, and V.21 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 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. Note that the value of S0 is of course storable; it is the pointer to S0 that is not storable. Sr=n - Write To An S-Register The Sr=n command is writes a value to a specified register. The value of n is written to the S-Register specified by r, overriding the previous value. If no n suffix is present, the address previously selected via Sr is used. If no n suffix is present, the value 0 is written. Sr? - Read An S-Register The contents of S-Register r are sent to the DTE as three decimal digits. This informational text response is formatted with <CR><LF> 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: ? 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 messages) are displayed as numbers or words. V0 Result codes displayed in numeric form V1 Result codes displayed in verbose form 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), 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 by the W command option 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; and that 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 V-Series System Products. However, selecting W0 and setting S95 as required allows you to tailor result codes 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. Result code definitions are covered 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, and 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 linespeed 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 linespeed 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 linespeed 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 linespeed 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 in effect. 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. 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 &B - V.32 Auto Retrain Options The &B command is used to enable and disable auto retrain in V.32 mode. During a V.32 or a V.22bis 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 connections only. &B and &B0 Disable V.32 Auto Retrain &B1 Enable V.32 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 Half-Duplex Operation &C0 &C1 &C2 ---------------------------------------- &Q1 E C C &Q2 E C C &Q3 E C C &Q4 E C C &Q5 A E A &Q5 (S10=255) A C F DCD Behaviors for Full-Duplex Operation &C0 &C1 &C2 ---------------------------------------- &QO A B D &Q1 B B B &Q2 B B B &Q3 B B B &Q4 B B B &Q5 A E A &Q6 A B D &Q5 (S10=255) A B D 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 S9: 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<CR> 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 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 in 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<CR> 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 Legend for Table Above - 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 process. 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 process. 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 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 factory configuration. For the commands and registers stored and their factory-set values, see the AT Command Set Reference Card accompanying your modem. &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 in the transmitting in the answer mode and during the answer handshake. &G0 Guard tones disabled &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, but 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) &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. 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 is 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-V-series 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-V-series 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 chars DLE, DC1, and DC3 are transparentized by sending DLE followed by the character XORed with 21hex &L - Line Type Selection (Dialup/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 the Installation Guide for information on setting carrier level. &L0 Select Dial up line operation &L1 Select Leased line 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: V-series 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 and is unique to V-series system products. Depending upon which V-series system product is being used, any one of 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 Asynchronous Automatic Speed Buffering is useful 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) is 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 Chapter Three. 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 EIA 232-D/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 EIA 232-D interface) indicates when the modem is connected 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 EIA 232-D specification (as described in Chapter Three). 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 &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. &T0 - Terminate Test In Process If a V.54 Loopback Test is in process 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 2 s 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 than 1200 or 2400 bps ERROR if the RDL acknowledgment signal is not received &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 selftest 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 AL Selftest 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 This test is used to determine whether the DTE-to-DCE cable supports the RTS and CTS signals necessary for hardware flow control. This procedure should be used by software before RTS/CTS flow control (&K3) is used. The modem takes the following action when the &T19 command is issued: 1. Turns OFF CTS (normally ON) and starts a 500 ms timer. 2. Monitors RTS for ON and OFF states. 3. After the 500 ms timeout or when both level-high and level-low states of RTS are detected, the modem restores CTS to the ON condition and ends the test. 4. If both the on and off conditions of RTS are NOT detected, the modem returns the ERROR result code; otherwise, it issues the OK result code. &U - Trellis Coding Options The &U command is used to enable and disable Trellis coding for V.32 connections. This selection affects V.32 9600 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 the &V info-text when the factory profile is loaded and then stored into the stored profiles, and an arbitrary phone number is stored in one of the stored numbers locations. 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. &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 on the AT Command Set Reference Card. 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 (EIA 232-D) &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 (EIA 232-D) &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 powerup &Y1 Select Stored Profile #1 on powerup &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=1552368<CR> writes 1552368 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 <dial string><CR> &Z= <dial string><CR> &Zn= <dial string><CR> ... 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 <CR><LF> characters between info-texts and not within them. V0 V1 ------------------------------------------------- Information Text text <CR><LF> <CR><LF> text <CR><LF> Result Codes numeric code <CR><LF> <CR> verbose code <CR><LF> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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, 9600,19200, or 38400 bps. If the modem is not operating in error-control mode, this is the same as the line speed. See other CONNECT messages and CARRIER messages. 2 - RING This result code indicates the modem as 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 40 characters for Smartmodem Products or 255 characters for V-series System Products, this result code will be returned. 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 or 1200/75, 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. 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. 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 V-series system 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. 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). 50 - CARRIER 9600 This message indicates that a carrier signal has been detected at 9600 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/LAP-B This message indicates that an error-control connection was negotiated with LAPB protocol. This protocol is the one used by the first V-series System Products. 72 - PROTOCOL: ERROR-CONTROL/ LAP-B/HDX This message indicates that a half-duplex error-control connection was negotiated with LAPB protocol. This protocol is the one used by the first V- series System Products communicating at 9600 bps. 73 - PROTOCOL: ERROR-CONTROL/LAP-B/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/LAP-B 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/LAP-B/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/LAP-B/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 with a carrier speed of 1200, 2400, 4800, or 9600 bps. 78 - PROTOCOL: LAP-M/HDX V.42 This message indicates that a half-duplex error-control connection using the V.42 LAPM protocol was established with a carrier speed of 4800 or 9600 bps. 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 error-control connection using the V.42 LAPM alternative protocol was established with a carrier speed of 1200, 2400, 4800, or 9600 bps. 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 connection. This technique provides for multiplexing of multiple virtual channels, with transparent control of one PAD (non-simultaneous). 93 - AUTOSTREAM: LEVEL 3 This message indicates that Hayes AutoStream Level 3 has been negotiated for the connection. This technique provides for multiplexing of multiple virtual channels, with transparent control of all PADs (simultaneous). Negotiation progress messages are reported in the following order: CARRIER PROTOCOL AUTOSTREAM COMPRESSION CONNECT If AutoStream is not used, no message is reported. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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. The V command has no effect on the format of this command response. ***************************************************************************** 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 AT Command Set Reference Card that came with your modem for the S-Registers and their ranges/factory settings that your modem supports. Note that 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 (Register 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 this register to 0. Note that two short ring bursts within a ring cycle are counted as two rings. S2 - Escape Sequence Character This register 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 This register holds the ASCII value of the line terminating character. The factory-set value is ASCII 13 - carriage return (<CR>) - 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 This register holds the ASCII value of the line feed character. The factory setting is 10; the range is 0-127. S5 - Backspace Character This register 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 This register 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 X3 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 Blind Dialing call progress monitoring feature (W dial modifier) applies only to detection of a second dial tone and is independent of any S-Register settings. S7 - Wait for Carrier after Dialing This register 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 This register determines the duration of the delay generated by the comma (,) dial modifier. S9 - Carrier Detect Response Time This register 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 This register 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, the modem ignores the value of this register. S11 - Multi-Frequency Tone Duration This register 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 This register 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 This register 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 This register 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 This register 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 This register 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 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(TM) 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 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 transparentizes 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 7 Attempt a V.42 Alternative Protocol connection (MNP compatible); if negotiation fails, attempt an asynchronous connection using automatic speed buffering 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. 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. 0 Attempt to connect at 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 Reserved 9 Attempt to connect at 9600 bps Note that this is the speed of modems across the telephone line, not the speed at which the modem communicates with the attached DTE. S38 - Delay Before Forced Hang up This register 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. S44 - Asynchronous Framing Technique Selection 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/LAP-B 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. 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. 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 to 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 This register specifies the error-control method used for subsequent connections. A V-series System Product supports at least one additional protocol. 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 choose one based on the user-configuration for the communication session. For example, if a V-series System Product is configured to use the X.25 protocol, but connects with a V-series System Product without X.25 capability, an error-control protocol is automatically selected because both modems support it. However, if a V-series System Product with X.25 connects with another V-series System 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# 136 LAPM only 138 LAPM with data compression# 134 X.25 # 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 This register 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 V-series System Product 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 This register 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 This register 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 V-series System 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 S63 - Leased line carrier level This register 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 Guide for information. S69 - Link Layer Window Size This register 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 Ö 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. A Note on Registers S74, S75, S76, S77, S78, and S79 (Logical Channel Number Selectors) Although V-series System Products supports 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 V-series System 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 A Note on Registers S80 and S81 (Packet Layer Parameters) The values in these two registers combine to set time and duration for packet layer restart requests. S80 - Packet Layer N20 Parameter This register 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 This register 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 This register 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. 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 negotiation (ASU) This register selects the adaptive start up method to be negotiated for subsequent connections. 0 Do not negotiate ASU connection 128 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 This register indicates whether adaptive start up and method were negotiated for the current connection. To read this register, issue the escape sequence to place the modem in the command state, then issue ATS85? <CR>. The modem will report one of the values below. 0 ASU not negotiated; fixed start up in use 128 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 This register 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? <CR>. 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. S92 - MI/MIC Options This register enables (chooses method) 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. For particulars as to how the jack setting specified with the &J command interacts with this register, see the modem's Installation Guide. 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 that this feature is not available to all modems. Refer to the feature list in the modem's Installation Guide. S93 - V.25bis DTE interface speed This register 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 9 9600 bps Note that the V.25bis feature is not available to all modems. Refer to the feature list in the modem's Installation Guide. S94 - Command Mode Selector This register 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, DIP switches 3 and 4 must both be in the UP position (factory setting). 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 (Character framing) using addressed access 5 Asynchronous V.25bis using direct access 6 Synchronous V.25bis (HDLC framing) using direct access 7 Synchronous V.25bis (Character framing) using direct access 9 Asynchronous V.25bis using addressed access with EBCDIC character set option 10 Synchronous V.25bis (HDLC framing) using addressed access with EBCDIC character set option 11 Synchronous V.25bis (Character framing) using addressed access with EBCDIC character set option 13 Asynchronous V.25bis using direct access with EBCDIC character set option 14 Synchronous V.25bis (HDLC framing) using direct access with EBCDIC character set option 15 Synchronous V.25bis (Character framing) using direct access with EBCDIC character set option S95 - Negotiation Message Options This register 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 differennt 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=32 <CR> will then enable the COMPRESSION negotiation messages. Refer to the Wn and Xn commands for additional and related information. ***************************************************************************** 1.4 Additional Command Set Definitions The following items are critical parts of the AT Command Set, although they are not "commands." The AT prefix, the escape sequence, end-of-line character, and repeat last command function round out the elements of the command set. 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 the Installation Guide for the speeds, formats, and transmission methods supported by your modem. +++ - Escape Sequence The escape sequence is used to take the modem from the on-line state ( or "on- line" command state) to the command state without breaking the connection. This provides a means of changing a setting then going back on-line. Not actually a command, the escape sequence tells the modem to "escape" or leave the on-line state and enter the command state. The sequence consists of a single character issued three times in succession. A one-second "guard time" interval prevents the modem from mistaking a random occurrence of the same three characters as the escape sequence. The character used in the sequence and the duration of the guard time can be changed by writing values to S2 and S12, respectively. The escape sequence is issued by typing the plus key three times (+++) in succession. A pause of at least a second should precede and follow the three characters. The modem will return the OK result code as an indication it is ready to accept commands. <CR> - End-of-line Character This key 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 <CR>. For example, the command line ATV0 <CR> 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 Two: V-series X.25 Communications This chapter includes information about the use of X.25 communications with V- series System Products. The command and parameter descriptions are more detailed than those offered in the V-series System Product User's Reference. Also included are four recommended PAD 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 V-series System 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 controlling connection type selection are described in the sections that follow. An overview of the the 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 system has X.25; otherwise, use LAP-B point-to-point connection) 5 0 3 6 3 X.25 only (Point-to-point connection) 5 0 3 134 3 X.25 network without feature negotiation: 5 0 3 6 0 X.25 network with feature negotiation 5 0 3 6 3 X.25 network with feature negotiation and AFT 5 0 2 6 3 The suggested configuration for establishing a synchronous X.25 connection with a packet switched network or a remote V-series System Product that supports X.25, can be selected with AT&Q5 S44=3 S46=6 S48=0 <CR>. Refer to the S-Register Listing in Chapter One 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/LAP-B mode). Example of &O command use: String Result Code/Explanation AT&O1 <CR> OK (PAD channel 1 selected) AT&O9 <CR> ERROR (value entered is out of selectable range) See the description of the &O command in the AT Command Listing in Chapter One. ***************************************************************************** 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 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 use with later. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 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 <CR>. This action and most other conventions for editing a line and entering commands are the same as those use 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 addendum, 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? [<parameter>][,<parameter>...] 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] [<facility> -] 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 [<facility> -] 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] [<facility>] Parameter Description ----------------------------------------------------------------------------- [R] Instructs the network that you will accept charges for the call if requested to do so <facility> Represents optional call facilities 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] [<facility>] [<called> [,[<calling>] [,<lcn>] ] ] [CALL] <facility> D <user_data> [CALL] <called> D <user_data> [CALL] <facility> <called> [,[<calling>] [,<lcn>] ] D <user_data> Parameter Description ----------------------------------------------------------------------------- <facility> 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 (-) <called> Represents remote system's address containing up to 15 digits (0-9) <calling> Represents source address containing up to 15 digits (0-9) <lcn> X.25 logical channel number (1-4095) <user_data> 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 <facility> 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 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 <NUI> Provides network with network user ID, identifying the caller to the network T <RPOA> 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 <num> 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 Parameter 100 is used W <num> Requested maximum window size (2-7). If W is not specified, the default value (2) of National parameter 101 is used X <hex> 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 <channel> Parameter Description ----------------------------------------------------------------------------- <channel> Specifies which virtual channel to switch to, indicated by an ASCII digit (1-4) Result Codes: Description ----------------------------------------------------------------------------- ERR Invalid <channel> 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 <extended_codes> -] [<diagnostic_code>] Parameters Description ----------------------------------------------------------------------------- <extended_codes> Hexadecimal data (0-9, A-F) supporting facilities not supported by the V-series X.25 product <diagnostic_code> 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? <CR>. Sample EXEC sequence: To use the EXEC command, from the PAD command state type EXEC <CR>. 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 <CR> 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 <CR> In this EXEC string, the PAD is instructed to: ANS Respond to an incoming call request PROF VSM Load the V-series emulation PAD profile SET 0:0 Set the National marker in order to change a National 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 <CR> 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 display the current EXEC string (if any) stored in memory, type EXEC? <CR>. 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 <CR> the OK result code is sent from the modem to the attached computer then type: ATH0 <CR> This AT command hangs up the modem, breaking the physical connection to 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 ----------------------------------------------------------------------------- <CR/LF> 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>] [,<parameter>...] Parameter Description ----------------------------------------------------------------------------- <parameter> Number of specific PAD parameter setting 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 <parameter>: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 <identifier> Parameter Description ----------------------------------------------------------------------------- <identifier> 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 V-series Error-Control/LAP-B 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 <identifier> The V-series Emulation Profile (VSM) is automatically set if feature negotiation results in an Error-Control/LAP-B connection on virtual channel 1 (Error-Control/LAP-B 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 <CR> to move to channel 3. At the prompt, type in the PAD parameters you want to adjust and store, issuing them with <CR>. To save the settings as a profile, issue PROF SAV <CR>. RESET - PAD Reset Command The RESET command resets the virtual channel. If your system locks up unexpectedly, or data transfer has stopped, or you are unable to reach the remote system, you may wish to reset the virtual channel and start over. Issuing the RESET command may result in lost data. Example Format RESET [ <diagnostic> ] Parameter Description ----------------------------------------------------------------------------- <diagnostic> 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>] [,<parameter>...] Parameter Description ----------------------------------------------------------------------------- <parameter> 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 <parameter>:INV Invalid parameter entered; or remote system does not support parameter specified For example, issuing RPAR? 1,4,0,70,71 <CR> 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: RPAR? the settings for all of the remote system's PAD parameters are displayed. RSET - Set Remote PAD Parameter Command To set and display the remote system's PAD parameters, use the RSET command. Example Format RSET [?] [<parameter>:<value>] [,<parameter>:<value>] [, ...] Parameter Description <parameter> Specifies the number of the remote system's PAD parameter you want to set/display <value> Value that you want to set for the specified PAD parameter Result Codes Description ----------------------------------------------------------------------------- ERR Invalid command format <parameter>:INV Invalid parameter or value For example, entering RSET 2:1 <CR> sets the remote system's PAD parameter 2 to a value of 1. To display the setting, type: RSET? 2:1<CR>. 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>:<value>] [,<parameter>:<value>] [, ...] Parameter Description ----------------------------------------------------------------------------- <parameter> Specifies the number of the PAD parameter to set/display <value> Value that you want to set for the specified PAD parameter Result Codes Description ----------------------------------------------------------------------------- ERR Invalid command format <parameter>:INV Invalid parameter or value For example, issuing SET 2:1 <CR> sets PAD parameter 2 to a value of 1. To display the setting, type: SET? 2:1 <CR>. 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 Parameters. Twenty- two PAD parameters (1-22) and an additional set of "National Parameters" offer configuration options. National Parameters (numbers starting at 70) are used to support and control the enhanced functionality provided by the Hayes 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 the 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 Value 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 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 <value> 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 0-31 Factory Setting: 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, escape from the data transfer state using the break signal 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 READ ONLY; no factory setting 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 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 <BS> <SP> <BS> 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 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 Parameter 70 - Streaming Data Forwarding National 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/LAP-B 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 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. 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 Parameter 72 - Break Signal Timing National Parameter 72 is used to control whether or not break timing information via National Parameter 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 Parameter 73 specifies the duration of the break signal transmitted by the PAD. If National Parameter 72 is set to value 0, the indication of break PAD message is sent normally, and will be compatible with all networks. If National Parameter 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 Parameter 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 Parameter 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 Parameter 73. Values Description ----------------------------------------------------------------------------- 0 No break timing information sent with signal (factory setting) 1 Break timing information is sent with the break signal National Parameter 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 Parameter 73 is usually set by the remote PAD, if the remote PAD supports National Parameter 72. Values: 0-255 ---------------------------------- Factory Setting: 18 (180 msec) National Parameter 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 Parameter 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 Parameter 101 - Default Maximum Window Size This parameter sets the default maximum window size. Values: 2-7 Factory Setting: 2 National Parameter 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: 1-255 Factory Setting: 20 (200 seconds) National Parameter 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: 1-255 Factory Setting: 18 (180 seconds) National Parameter 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: 1-255 Factory Setting: 18 (180 seconds) National Parameter 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: 1-255 Factory Setting: 18 (180 seconds) National Parameter 106 - Reset Request Retransmission Counter This parameter defines the maximum number of times a reset request packet should be retransmitted. Values: 0-255 Factory Setting: 1 retransmission National Parameter 107 - Clear Request Retransmission Counter This parameter defines the maximum number of times a clear request packet should be retransmitted. Values: 0-255 Factory Setting: 1 retransmission National Parameter 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. The four standard profiles are listed below. Factory-Set Profile PAD Values Description Default Param. ----------------------------------------------------------------------------- 1 0-126 PAD recall using a character 0 (disabled) 2 0,1 Echo 0 (disabled) 3 0-127 Selection of data forwarding signal 0 (disabled) 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,8,16 Response to break from terminal l5 (send interrupt 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,12-16 Terminal speed (speed of terminal indicated) 12 0,1 Flow control of PAD by terminal 0 (XON/XOFF disabled) 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, 32-126 Editing PAD result codes 2 (display terminals) 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 settings by 0 (parameters set 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 timer 20 (200 seconds) 103* 1-255 T22 reset request response timer 18 (180 seconds) 104* 1-255 T23 clear request response timer 18 (180 seconds) 105* 1-255 T26 interrupt response timer 18 (180 seconds) 106* 0-255 R22 reset request retransmission 1 retransmission 107* 0-255 R23 clear request retransmission 1 retransmission 108* 0-3 Channel allocation parameter 3 (normal channel allocation) *National Parameters CCITT Simple Standard Profile PAD Values Description Default Param. ----------------------------------------------------------------------------- 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 control signal 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,8,16 Response to break from terminal 2 (send reset packet) 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,12-16 Terminal speed (speed of terminal indicated) 12 0,1 Flow control of PAD by terminal 1 (XON/XOFF disabled) 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,8, 32-126 Editing PAD result codes 1 (printing 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 settings 0 (parameters set by 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 timer 20 (200 seconds) 103* 1-255 T22 reset request response timer 18 (180 seconds) 104* 1-255 T23 clear request response timer 18 (180 seconds) 105* 1-255 T26 interrupt response timer 18 (180 seconds) 106* 0-255 R22 reset request retransmission 1 retransmission 107* 0-255 R23 clear request retransmission 1 retransmission 108* 0-3 Channel allocation parameter 3 (normal channel allocation) *National Parameters CCITT Transparent Standard Profile PAD Values Description Default Param. ----------------------------------------------------------------------------- 1 0-126 PAD recall using a character 0 (disabled) 2 0,1 Echo 0 (disabled) 3 0-127 Selection of data forwarding signal 0 (disabled) 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,8,16 Response to break from terminal 2 (send reset packet) 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,12-16 Terminal speed (speed of terminal indicated) 12 0,1 Flow control of PAD by terminal 0 (XON/XOFF disabled) 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,8, 32-126 Editing PAD result codes 1 (printing 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 settings 0 (parameters set 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 timer 20 (200 seconds) 103* 1-255 T22 reset request response timer 18 (180 seconds) 104* 1-255 T23 clear request response timer 18 (180 seconds) 105* 1-255 T26 interrupt response timer 18 (180 seconds) 106* 0-255 R22 reset request retransmission 1 retransmission 107* 0-255 R23 clear request retransmission 1 retransmission 108* 0-3 Channel allocation parameter 3 (normal channel allocation) *National Parameters Error-Control/LAP-B Profile PAD Values Description Default Param. ----------------------------------------------------------------------------- 1 0-126 PAD recall using a character 0 (disabled) 2 0,1 Echo 0 (disabled) 3 0-127 Selection of data forwarding signal 0 (disabled) 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,8,16 Response to break from terminal 5 (send interrupt 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,12-16 Terminal speed Š (speed of terminal indicated) 12 0,1 Flow control of PAD by terminal 0 (XON/XOFF disabled) 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, 32-126 Editing PAD result codes 2 (display terminals) 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 settings 0 (parameters set 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 timer 20 (200 seconds) 103* 1-255 T22 reset request response timer 18 (180 seconds) 104* 1-255 T23 clear request response timer 18 (180 seconds) 105* 1-255 T26 interrupt response timer 18 (180 seconds) 106* 0-255 R22 reset request retransmission 1 retransmission 107* 0-255 R23 clear request retransmission 1 retransmission 108* 0-3 Channel allocation parameter 3 (normal channel allocation) *National 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. 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 <CR>. 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 <CR> (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/LAP-B 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 <CR> - 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 alphanumeric 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 <CR>. This clears the current virtual connection. The network responds with CLR CONF FAC: (followed by network information as alphanumeric characters X000...). Note: All virtual calls should be cleared before returning to the AT command state. Step 6: Exiting the PAD EXIT <CR> - Leaves PAD command state and enters the AT command state. Step 7: Terminating the network connection ATH0 <CR> - Breaks the physical connection to the network node. This action hangs up the telephone, in the same way other communication sessions are terminated. Establishing a Virtual Connection The example log-on and results below illustrate a successful attempt to establish a virtual connection. Activity: User dials CompuServe(TM), 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 <address> <facility_codes> COM <user_data> 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(TM) and issues CALL command to go on-line with CompuServe: Enter AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 <CR> Result CARRIER 2400 PROTOCOL: X.25/LAP-B CONNECT 2400 Enter CALL R-311020200202 <CR> Result CON COM: W2:2,P7:7,X 0277 COM 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 <clear_cause_codes> <diagnostic_codes> <address> <facility_codes> 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 <CR> Result CARRIER 2400 PROTOCOL: X.25/LAP-B CONNECT 2400 Enter CALL R-311020200202 <CR> Result CLR DTE 157 FAC: X0000C10400000000C208080000000100000062 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 an 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 <reset_cause_codes> Example Log-on: n/a 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 <reset_cause_codes> <diagnostic_codes> Example Log-on: n/a 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 <CR> Result CARRIER 2400 PROTOCOL: /X.25 CONNECT 2400 Enter CALL R-311020200202 <CR> Result CON W2:2,P7:7,X 0277, COM Enter User ID: <CR> Result * Enter Ctrl-P to return to the PAD command state Result CLR CONF FAC: X0000C104000000103C208000000008800000004 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 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 <facility_codes> COM <user_data> Example Log-on: n/a 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 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 <restart_cause_codes> ============================================================================== 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. Flow diagrams illustrate the states and conditions through which the modem passes in each mode. Setup 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: Start 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 the Installation Guide accompanying the modem, under the feature list. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 mode 4, Hayes AutoSync. The only exceptions are the modems designed for the Apple(TM) Macintosh(TM) 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(TM) PC XT(TM), for example) has a synchronous adapter card installed, then a Hayes standalone Smartmodem or V-series System Products that support 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 (error-control mode) for V-series System Products. When a Hayes V-series System Product attempts an error-control connection with a remote modem that cannot perform error-control, the V-series System Product can either fall back to a connection supported by the other modem or hangup, depending on the value of S36. When the use of &Q5 results in 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 System 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 V-series System Products capable of 9600 bps line speeds (ULTRA(TM) 96, for example) 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 both the Smartmodem Product User's Reference and the V-series System Product User's Reference. 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 One. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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/EIA 232-D 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 One. 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 One. 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 external Smartmodem and V-series System 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 One. 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 One. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ A.2.6 Error-Control Mode - &Q5 The error-control mode is a feature available only between Hayes V-series System Products, and other 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 One. Error-control mode is automatically selected in &Q5 communication mode (factory setting) for V-series System 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 V-series System Product cannot complete an eror-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 V-series System 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 One, and the modem's Installation Guide 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 transparentized 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 One. ============================================================================== Appendix B: Troubleshooting Tips This appendix offers suggestions for remedying problems in modem communications. 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. The first section of the appendix covers the following topics: * Problems in Getting Started - the computer cannot communicate with the modem, or the connection is inconsistent or otherwise substandard * Problems in Establishing Communications - DTE 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 problem with modem use. The second part of the appendix describes testing that can be performed using AT commands. ***************************************************************************** B.1 The Communication Link Because there is more to the connection than the modem, all of the components should be verified. The diagram below depicts the components in a communication link with 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 configuration above is the context of modem use in which the communication link is discussed in this section. Although your modem may be an internal one, that is, installed inside the computer, the operational concepts are still 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 scenarios and tips before assuming the problem is something more. The suggestions in this section require some familiarity with the AT Command Set, DTE requirements, EIA 232- D/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: getting started with the modem, making the connection, and the on-line connection. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ B.2.1 Problems in Getting Started If a newly-installed modem does not work properly, here 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, if the MR (modem ready) light does not come on, the modem may have a problem. Or if the HS light (external Smartmodem and V-series System Products) 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 (supported only by V-series System 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 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<CR>. 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<CR> to restore the modem's factory configuration. If the modem is a V- series System Product, try issuing AT&Q0<CR> 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 Five) are returned, the modem is operating as it should. Try changing a few configuration settings, then resetting the modem with ATZ<CR>. 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<CR> to enable command state echo. If characters are double, issue ATE0<CR> 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 were 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: If 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 documentation accompanying the modem to determine whether this capability is supported. DTE Processor Restrictions Some multi-tasking 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 Port(TM) (ESP(TM)) 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 V-series System Products 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 S- Registers 49 and 50, 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 "watchdog" 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 been "flowed off," that is, the character that stops data transfer has been inadvertently sent. 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 One. In addition, the problem could be the result of incompatible EIA 232-D/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 Limitation Hayes Solution ----------------------------------------------------------------------------- Can't control DTR or issue Select &D0 : Modem ignores changes in escape sequence 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 to (older IBM Hosts) handshake negotiation Must see DSR at all times Select &S0: DSR always asserted (VAX systems) Timing will not support lengthy Select &S2: DSR asserted after handshake handshakes (re-associated with negotiation, but before CONNECT result some high-speed modems) code is 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 spikes Increase S10 setting: Lost on the telephone line Carrier-to-Hang-UP Delay Security problems with incoming calls Decrease S10 setting; if S10 connecting onto prior host sessions - is set to 255, the modem will indicating that host can't reset soon enough not hang up when carrier is lost. System needs to be able to originate calls Issue the R command within a in answer mode for call-back security dial string (Reverse mode) Telephone system is too slow to be able to Increase register S11 setting: respond to auto-dial DTMF (tone dialing) Tone dialing speed pulses Business telephones (multi-line key systems) Check setting of &J command; exhibit false "busy" light indications use the &J1 setting with RJ-12 and RJ13 type phone jacks. System must be able to call past After accessing the PBX, issue unattended operator positions 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 the 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<CR>), a test, when initiated, will continue for 10 seconds. Setting S18 to zero (ATS18=0<CR>) 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 (+++) and 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 analogue 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 analogue 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) <CR> The modem will transmit a continuous tone pair until the <CR> 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 of characteristics like shielding that quality of the cable is full pinning should be used according to the EIA232-D/CCITT V.24 standards descriptions at the end of this chapter. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 One. The signals tested by this command are according to the EIA 232-D/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 test 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 One. ============================================================================== Appendix C: Modem-to-DTE Interface This appendix discusses the requirements and capabilities of the modem's interfaces to the DTE line. External modems interface to the DTE according to the EIA 232-D standard. The particulars of this interface for Smartmodem 300, Smartmodem 1200, Smartmodem 2400, Smartmodem 9600, V-series Smartmodem 2400, and V-series Smartmodem 9600 are described. Hayes internal modems use the EIA 232-D signals, although the specific use of these circuits is determined by the bus interface of the computer. ***************************************************************************** C.1 EIA 232-D/CCITT V.24 Interfaces EIA 232-D 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). This standard has typically been referred to as RS 232-C; however, when it became an accepted standard (EIA) rather than a recommended standard (RS), the Association revised the version "D." Although not exactly the same, EIA 232-D 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. EIA 232-D supports speeds up to 20 Kbps at a distance of 50 feet. EIA 232-D falls under layer one (physical layer) of the OSI (Open Systems Interconnection) model. Hayes modems support the electrical portion of the EIA 232-D standard completely. However, signal definition varies from modem to modem. ***************************************************************************** C.2 Signals Used in the EIA 232-D Interface The following signal types are used in the EIA 232-D 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 EIA 232-D signals and their CCITT equivalents are outlined below: Inter- CCITT Description Pin To To change equiva- DTE DCE circuit lent -------------------------------------------------------------------- AA 101 Protective Ground 1 AB 102 Signal Ground 7 BA 103 Transmitted Data 2 * BB 104 Received Data 3 * CA 105 Request to Send (RTS) 4 * CB 106 Clear to Send (CTS) 5 * CC 107 Data Set Ready (DSR) 6 * CD 108.2 Data Terminal Ready (DTR) 20 * CE 125 Ring Indicator (RI) 22 * CF 109 RLSD (DCD) 8 * CG 110 Signal Quality Detector 21 * CH 111 Data Signal Rate Detect DTE 23 * CI 112 Data Signal Rate Detect DCE 12 * DA 113 Transmitter Signal Element 24 * DB 114 Transmitter Signal Element 15 * DD 115 Receiver Signal Timing 17 * SBA 118 Secondary Transmit 14 * SBB 119 Secondary Receive 16 * SCA 120 Secondary RTS 19 * SCB 121 Secondary CTS 13 * SCF 122 Secondary DCD 12 * ***************************************************************************** C.3 EIA 232-D Signal Definitions This section provides definitions of the signals used for modem operation. The circuit is first defined according to EIA 232-D, 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 the modem case for external Smartmodem and V- series System 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 External modems typically interface to the attached computer or other DTE through a serial port connector. The connector used on external Smartmodem Products and V-series System 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 table below indicates the way Hayes modems with this type of connector use the pins to carry EIA 232-D and CCITT V.24 signals. The DTE may use certain signals differently, or may not use them at all. Pin Signal Name ------------------------------------------------------------------- 1 Protective Ground - PG 2 Send Data - SD 3 Receive Data - RD 4 Request to Send - RTS 5 Clear to Send - CTS 6 Data Set Readey - DSR 7 Signal Ground - SG 8 Carrier Detect - CD 9 Reserved for Test 10 Reserved for Test 11 Unassigned 12 Secondary Carrier Detect 13 Secondary Clear to Send 14 Secondary Transmitted Data 15 Transmit Timing - TT 16 Secondary Received Data 17 Receiver Timing - RT 18 Unassigned 19 Secondary Request to Send 20 Data Termfifnal Ready - DTR 21 Signal Quality Detect 22 Ring Indicate - RI 23 Data Signal Rate Select 24 Transmit Timing TT 25 Unassigned 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: Modem Application Development This appendix offers suggestions for developing applications software using the 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?). If the AT command controller portion of the software will be designed to work with a known set of modems, the controller can be much simpler as the variables it must address are fewer as the predictable behavior of the modems within the given feature set that will be addressed by the 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 V-series 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 three digit 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 V- series System Product capable of 9600 bps, which has additional commands and behaviors. The I4 command option was added when the V-series System Products were introduced. This option provides a reliable means of communicating specific features and modulation protocols to software. The responses to the I4 command are strings delimited by <CR> 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 One. The tables show the decoding of the hex-map returned in the "a" (Smartmodem features), and "b" (V-series features) 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 different of lengths than previously implemented. In spite of the modifications to this command necessary to maintain currency 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 <CR><LF>. 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 three digit 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 <CR> response: <CR><LF>a087840C004424<CR><LF> <CR><LF>bF60410000<CR><LF> <CR><LF>cUS<CR><LF> <CR><LF>m0000000001001FFFF<CR><LF> <CR><LF>OK<CR><LF> Note: each I4 result is surrounded by <CR><LF>, not all responses are hex- strings, and some responses may not be expected at all. ***************************************************************************** D.2 Result Code Recognition Hayes-compatible modems support verbose and numeric forms of result codes. Unless echo may be a problem and will be installing the controller in a limited-growth environment, verbose results rather than numeric results are preferable. 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): AT ... S9=20 <CR> The resulting data, echoed by the modem, would be followed by the numeric result code zero, meaning OK: AT ... S9=20<CR>0 <CR> Software may become confused by seeing a 0<CR> result which is actually part of the command echo, then another 0<CR> which is the numeric result. A program can become out of synchronization 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 of 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 one outlined below. This state machine recognizes strings surrounded by <CR><LF> characters and store the string in a character array. <CR><LF> are defined by the S3 and S4 registers. Sample State Machine Initialize with: state = 1 ; ch = <next character from the input> 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 */ <process result in 'buf'> 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 setup 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 setup prior to running the software, and all the program does is send the Z command to recall the the desired profile. Even more basically, software can assume the 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 commands 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 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 verbose (recommended) or numeric 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 step S12=10 Set the escape guard time to 200ms to hasten the escape for hang-up process. Also reduces the probability of inadvertent user escapes S2=* Change the escape character for two reasons: To avoid inadvertent user escapes, and to provide different escape characters for answer and originate sides. This prevents inadvertent escaping when data is echoed S4=* Modify the linefeed character to make the <CR><LF>NO CARRIER<CR><LF> result code more unique if you scan for it to detect carrier loss A typical setup sequence using these recommendations is shown below: AT E Q V S0=0 H S12=10 S2=28 S4=31 <CR> Note that where the zero suffix is used, it is omitted. 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.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, change DTE speed to the indicated baud rate. CARRIER ____ * DCE carrier speed (information only) PROTOCOL: ____ * V-Series protocol being used Ignore other responses, but continue to wait for CONNECT ___ 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 V-series 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 for V-Series System Products. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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-in to 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 EIA 232-D 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 EIA 232-D 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 (hangŠup) 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<CR> 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 <CR><LF>OK<CR><LF>. ***************************************************************************** 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 to clean-up. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ D.5.1 Using the CD line If you can be confident of the environment and cabling, and have access to the EIA 232-D 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 powerup. 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 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 <CR><LF>NO CARRIER<CR><LF> 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<CR> to undo the effects of your changes. In any case, clean up is necessary even if the connection were 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 guard time (specified by S12), then issue the escape 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 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 recognition process. It is important that the serial transmitter be permitted to be idle for the escape 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 characters. After sending the escape characters, the OK result will be received after another 200 millisecond wait. This completes the escape 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 EIA-232-D 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 last set. This also requires the cable to be properly wired. Unless the software will operate in a highly-controlled environment, this technique is discouraged over the escape 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 reliably in all environments if it is properly utilized. ***************************************************************************** D.7 Modem Re-configuration When the 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 issuing a Z command option to ensure the modem is restored to its powerup 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 powerup 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 "TickCount" function will return the number of vertical- retrace ticks since computer power up. Each tick represents one sixtieth 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 = TickCount() + 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. V-Series 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 time out 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 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 System Products which specify this with S37). Any dependency on proper cabling can be eliminated by avoiding techniques that depend on EIA 232-D 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 System Products rather than with RTS/CTS signals * The escape process and H command should be used to hang-up instead of terminating 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<CR> 00034 ATZ<CR> 00068 (one second to do reset) 01068 0<CR> (V0 stored as default) 01084 (delay additional 600ms) 01684 ATEQV1S0=0S12=10S4=3HI<CR> 01884 ATEQV1S0=0S12=10S4=3HI<CR> (echo) 02084 <CR><LF>960<CR><LF> 02142 <CR><LF>OK<CR><LF> (19200 bps) 02192 ATM0X4L1S12=10S2=1&Q5W1S36 =7S37=9&K5<CR> 02206 <CR><LF>OK<CR><LF> 02209 ATDT9W14045551212<CR> 38000 <CR><LF>CARRIER 2400<CR><LF> 45000 <CR><LF>PROTOCOL: NONE<CR><LF> 45010 <CR><LF>CONNECT 2400<CR><LF> (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 <CR><LF>OK<CR><LF> 00538 ATHE1S2=43S12=50W0&Q0<CR> 00630 <CR><LF>OK<CR><LF> ------------------------------------------------------------------------ END