Internet Starter Kit for Macintosh

Express Modem AT Commands

This file comes from Apple's Express Modem documentation. I didn't have time to format it up properly, so my apologies for the PRE text. Also, I don't know how current this information is, or how universal it is. If you find it useful, great, but don't assume it's the final word on anything. -Adam

Moving between command and on-line states

When the modem is turned on or after reset, the modem always goes to command state. It enters on-line state after successfully making a connection with a remote modem, either when answering or originating a call. While the modem is in on-line state, you can take control of it again (go back to command state). When you return to command state from on-line state, the modem goes to local command state, which allows you to maintain the connection and enter commands.

To go to local command state, type the escape sequence +++. Do not type any other commands or make entries before or after the escape sequence for a period equal to the guard time set in register S12 (normally one second). The modem will display OK.

To go back to on-line state, type ATO.

To hang up, type ATH.

AT command set

AT refers to the command prefix (attention sequence) that precedes each command to the modem. With the exception of A/ all commands must be preceded by AT and end with a carriage return ().

Special Commands

A/  Repeat last command
    The A/ command instructs the modem to repeat the last
    command line. A command line termination character 
    is not required for the execution of this command (that is,
    the command is executed as soon as the slash is typed).

+++ Return to command state (escape sequence)
    The escape sequence is used to force the modem back to local
    command state from on-line state. Do not type any other
    commands or make entries before or after the escape sequence
    for a period equal to the guard time set in register S12 (default
    is one second).

Standard AT commands

AT  The attention command prefix
    The prefix AT must precede every command. The remainder
    of the command line contains commands for the modem. The
    command line must end with a carriage return. If AT is sent
    alone (that is, it is followed by a ) then no command is
    executed but an OK result code is returned.

A   Answer
    The A command forces the modem to go off-hook in answer
    mode.

Bn  Communication protocol category preference
    This command determines which communication standard is 
    preferred for the next connection.
  0 CCITT mode 
  1 Bell 103 and Bell 212A, instead of V.21 and V.22, in case of
    fallback (default)

D   Dial
    This command signals the modem that the numbers, letters, and
    commas that follow are all part of a telephone number that it
    should dial.
  T Touch-Tone dialing
    This causes all following numbers to be Touch-Tone dialed
    (default).
  P Pulse dialing
    Selects pulse dialing, with the dialing speed fixed at 10 pulses
    per second.
  Pause
    The comma (,) modifier introduces a delay time before dialing
    the next dial character or executing the next character in the
    dial string. The pause time is the value of the S8 register,
    (default=2 seconds).
  W Dial tone detect
    The W modifier makes the modem detect a dial tone before
    sending the next digit.
  Calling Card tone detect (:)
    Same as W. The colon can detect most calling card tones.
    Place the colon in the dial string when you want to detect a
    wider range of frequencies.
  @ Wait for quiet answer before dialing
    For the time specified in the S7 register (default=50 seconds),
    the modem attempts to detect 5 seconds of silence.
  Flash
    The exclamation point (!) causes the modem to go on-hook then
    back off-hook, as if the receiver on the telephone set had been
    pressed momentarily.
  R Reverse mode
    The R modifier changes the modem from originate mode to
    answer mode after the dialing process is complete. This
    command is used only at the end of the dial string.
  ; Return to local command state after dialing
    The semicolon (;) modifier forces the modem back to the
    local command state. Placing a semicolon at the end of the
    dial string permits using the modem as a dialer and dialing
    in two or more steps. You may also force the modem to ignore
    the dial tone (blind dialing) by starting the dial string
    with ";D". This modifier may also be used in Fax Sender,
    AppleLink, and other communications applications.
  S=n
    Dial telephone number stored at location n
    Dials telephone number stored in location n, where n is
    0, 1,or 2. You must have previously saved the value with
    the AT&Z command.

En  Echo off/on
    When the echo is turned on, the characters sent to the modem
    in command state are echoed back by the modem to the host
    computer. The E command is functional only when the modem
    is in command state.
  0 Turns off the echo command.
  1 Turns on the echo command. This allows you to see that
    characters you have sent to the modem have been received
    and sent back. (default)

Hn  Hook (hang up)
    When the modem is on-line, you must first enter the +++ escape
    sequence to take the modem back to command state before
    issuing the hang up command, ATH.
  0 Forces the modem on-hook. Hangs up the modemıs connection to
    the telephone line.
  1 Forces the modem off-hook.

In  Information
  0 Asks the modem for its product ID code.
  1 Returns a modem code.
  2 Returns OK.
  3 Returns the modemıs country code.
  4 Returns a list of modem features.
  9 Returns Apple product code and firmware version of the modem.

Ln  Speaker volume
    This command has no effect as the speaker is a component
    of the Macintosh and set in the Sound control panel. The
    command is included for compatibility.

Mn  Speaker on/off/auto
  0 Disables speaker.
  1 Turns on the speaker until carrier is established. (default)
  2 Leaves the speaker on throughout the entire connection.
  3 Turns the speaker on until a carrier is detected, except during
    dialing.

Nn  Communication protocol preference
    Sets the modem protocol.
  0 Use S37 for speed selection. If S37=0, connect at highest
    possible speed. Otherwise, connect at speed specified in S37. 
  1 Connect at speed set in S37. Fallback if necessary. (default)
  2 Same as N1 for compatibility reasons.
       Note:  For N1 or S37=0, the setting of ATB is ignored.
       The modem automatically determines Bell or CCITT mode.

On  Return to on-line state
    Returns modem to on-line state from command state.
  0 Is used to return to the on-line state after having entered the
    command state using the escape sequence.
  1 Same as above and will retrain the carrier (possibly at a lower
    speed) before reentering on-line state.

P   Enable pulse dialing
    Sets the default dialing mode to pulse mode. This command
    can also be used as a subcommand of the D command.

Qn  Quiet  (refer to command Vn)
  0 Allows result codes to be sent to your screen. (default)
  1 Turns off the result code messages.
  2 Returns result codes when originating a call, but not when
    answering.

Sn  Select an S register
    The S registers refer to memory locations used for
    configuration. The S commands are used to assign values
    to various registers in the modemıs memory.
 n? The Sn? command (n=register number) is used for checking the
    contents of a register. The result is always expressed as a
    three-digit number, where the leading digits or all digits may
    be 0.
 Sn=r is used to change an S register value (where n is the number
    of the register and r is the assigned value).

S registers
      Default      Range       Units
S0   Number of rings to auto answer
      0           0:255       Number of rings

S1   Ring counter
      0           0:255       Number of rings

S2   Escape Character
      43 <+>       0:127       ASCII Decimal

S3   Line-termination character
      13       0:127       ASCII Decimal

S4   Line-feed character
      10       0:127       ASCII Decimal

S5   Backspace character
      8        0:127       ASCII Decimal

S6   Initial blind dialing wait
      2           2:255       Seconds

S7  Carrier wait
      50          1:255       Seconds

S8   Pause time
      2          0:255       Seconds

S9   Carrier detect response time
      6          1:255       1/10 second

S10  Disconnect timing
      14         1:255       1/10 second

S11  Duration and spacing for DTMFdialing
      95         50:255      Milliseconds
     Register S11 is preset and should remain unchanged to
     assure correct dialing.

S12  Escape code guard time
      50         20:255      1/50 second

S18  Self-test duration
      0          0:255       Seconds

S36  Negotiation failure treatment
      5         0/3/4/5      Settings
     Specifies action that should be taken when an attempt to
     connect in error-control mode fails.
  0  Attempts V.42 connection. Hangs up if remote modem doesnıt
     support V.42.
  3  Makes asynchronous connection. No error control. Same as
     AT&Q0.
  4  Attempts V.42 connection. If attempt fails, attempts MNP
     2­4 connection. If attempt fails, then hangs up.
  5  Attempts V.42 connection. If attempt fails, attempts MNP
     2­4 connection. If attempt fails, then attempts
     asynchronous connection. (default)

S37  Desired DCE connection speed
      0          0/3:11       Settings
     This value is used in conjunction with the ATN and ATB
     values to determine which modulations are attempted when
     connecting.
  0  Auto-mode  Attempts to connect at the highest possible
     speed. (default)
  3  Attempts to connect at 300 bps.
  5  Attempts to connect at 1200 bps.
  6  Attempts to connect at 2400 bps.
  7  Attempts to connect at 4800 bps.
  8  Attempts to connect at 7200 bps.
  9  Attempts to connect at 9600 bps.
  10 Attempts to connect at 12000 bps.
  11 Attempts to connect at 14400 bps.

S38  Delay before hang up.
      0          0:254       Seconds

S46  V.42 bis data compression selection
      138        136/138    Settings
 136  V.42 only
 138  V.42 with V.42 bis compression. (default)

S48  Feature negotiation action
      7          0/3/7/128   Settings
     Selects which error control features are allowed when
     making connections.
  0  Negotiation disabled: try only V.42.
  3  Negotiation enabled without detection phase.
  7  Negotiation enabled with detection phase. (default)
 128 Negotiation disabled: try MNP only. V.42 disabled.

S95  Error control negotiation message option
      32         4/8/32       Bits
     A bit map to enable different result codes. Linked to ATW
     when ATW=1.
     Bit   Value   Meaning
     0­1   1      not used
     2     4      Enables CARRIER messages only.
     3     8      Enables CARRIER+PROTOCOL messages only.
     4     16     not used
     5     32     Enables CARRIER+PROTOCOL+COMPRESSION
                  messages. (default)

T   Enable tone (DTMF) dialing
    Sets the default dialing mode to Touch-Tone mode. Can be
    used in dial string (default).

Vn  Verbalize
    The V command allows you to choose the way you want to
    display result messages: as code numbers or as English words.
    Unless these messages are being read by a program that does
    not easily recognize strings of characters, the default setting
    (V1) is recommended
  0 Displays result messages as code numbers (nonverbal).
  1 Displays result messages as English words (verbal). (default)

Verbalize result codes
  0 OK  Command is correct and has been completed
  1 CONNECT  Connection established
  2 RING  Incoming ring detected
  3 NO CARRIER  No connection or lost the carrier
  4 ERROR  Bad command
  5 CONNECT 1200  Connection established at 1200 bps
  6 NO DIALTONE  Dial tone not detected in S7 seconds
  7 BUSY  Busy tone detected
  8 NO ANSWER  See ATD . . .@. . .
 10 CONNECT 2400  Connection established at 2400 bps
 11 CONNECT 4800  Connection established at 4800 bps
 12 CONNECT 9600  Connection established at 9600 bps
 13 CONNECT 14400  Connection established at 14400 bps
 15 CONNECT 7200  Connection established at 7200 bps
 16 CONNECT 12000  Connection established at 12000 bps
 24 CONNECT 300/REL  Connection with MNP 300 bps
 25 CONNECT 1200/REL  Connection with MNP 1200 bps
 26 CONNECT 2400/REL  Connection with MNP 2400 bps
 27 CONNECT 4800/REL  Connection with MNP 4800 bps
 28 CONNECT 9600/REL  Connection with MNP 9600 bps
 29 CONNECT 7200/REL  Connection with MNP 7200 bps
 30 CONNECT 12000/REL  Connection with MNP 12000 bps
 31 CONNECT 14400/REL  Connection with MNP 14400 bps

Protocol negotiation progress codes that work with ATW1 and S95.
 40 CARRIER 300  Carrier detected at 300 bps
 46 CARRIER 1200  Carrier detected at 1200 bps
 47 CARRIER 2400  Carrier detected at 2400 bps
 48 CARRIER 4800  Carrier detected at 4800 bps
 49 CARRIER 7200  Carrier detected at 7200 bps
 50 CARRIER 9600  Carrier detected at 9600 bps
 51 CARRIER 12000  Carrier detected at 12000 bps
 52 CARRIER 14400  Carrier detected at 14400 bps
 66 COMPRESSION: CLASS 5  MNP class 5
 67 COMPRESSION: V.42BIS  V.42 bis compression
 69 COMPRESSION:NONE  No compression
 70 PROTOCOL:NONE  Asynchronous mode
 77 PROTOCOL:LAP-M  Error control mode with LAP-M protocol
 80 PROTOCOL:ALT  Error control mode with MNP protocol
128 MODEM IN USE  Modem already in use for this or another
    application

Wn  Progress result codes
    The ATW setting determines whether progress result codes
    are displayed in addition to the ATX codes. Register S95
    determines which progress result codes will be displayed.
  0 Progress codes 40 through 80 disabled.
  1 Progress codes 40 through 80 enabled. (default)
  2 Progress codes enabled; identical to W1.
    When writing a CCL script, pay attention to result codes for
    scripts that require a specific response. If progress codes
    are enabled, the following strings appear on the screen during
    a connection (in this example, V.22 bis connection with no
    error control):
        CARRIER 2400
        PROTOCOL:NONE
        CONNECT 2400

Xn  Active result code
    The result codes listed in Vn are divided into subsets that
    can be selected by the X command. Dial tone detection is
    enabled by X2 and X4. Busy tone detection is
    enabled by X3 and X4. The commands X0, X1, and
    X3 are appropriate for blind dialing. Blind dialing means the
    modem dials out even though a dial tone cannot be detected.
  0 Selects result codes 0 through 4 and 8.
  1 Selects result codes 0 through 5, 8, and 10 through 28.
  2 Selects result codes 0 through 6, 8, and 10 through 28.
  3 Selects result codes 0 through 5, 7, 8, and 10 through 28.
  4 Selects all result codes. (default)

Yn  Remote break handling
    This command sets modem behavior for responding to a long
    break signal received from a remote modem:
        Greater than 1.6 seconds for an asynchronous connection
        An attention frame for MNP or V.42.
  0 The modem ignores any long breaks received from the remote
    modem. (default)
  1 On receiving a long break from the remote modem, the modem
    goes on-hook (hangs up), and returns to command state.
  2 On receiving a long break from the remote modem, the modem
    returns to command state, but remains connected to the remote
    modem (does not hang up).

Zn  Reset
    The Z command tells the modem to perform a software reset.
  0 Loads Profile 0 into the active profile.
  1 Loads Profile 1 into the active profile.

&Cn DCD options
    Since bus modems have no DTE-DCE serial interface, this
    command has no effect and remains for scripting compatibility.
  0­2 Return OK.

&Dn DTR options
    Bus modems do not have a DTRline. For bus modems, an on-to-
    off DTR transition occurs when you close the connection tool or
    the application currently using the modem. In this case, the
    modem goes on-hook.
    This command has no effect and remains for scripting
    compatibility.
  0-3 Return OK. Default value is 3.

&F  Recall default profile
    The current active profile is replaced by the default factory
    configuration.

&Gn Guard tones
    This command specifies whether guard tones should be
    transmitted. Guard tones are used in some telephone systems
    to allow proper data transfer over the network. Guard tones are
    not used in the United States.
  0 Disables guard tone. (default)
  1 Same as 2.
  2 Sends 1800 Hz guard tone.

&Kn Local flow control
    This command specifies which kind of local flow control is
    used. Since bus modems have built-in flow control mechanisms
    between the DTE and the DCE, this command has no effect. Flow
    control characters generated by the application software are
    always passed to the line.
    This command has no effect and remains for scripting
    compatibility.
  0-5 Respond OK, no action taken

&Ln Switched/Leased line
    This command affects the modemıs behavior during the call
    setup and the carrier handshake phases at the beginning of a
    connection.
  0 Selects switched (dial-up) line. (default)
  1 Selects conditioned leased line.

&Pn Pulse mode make/break ratio
  0 Sets the dial pulse make/break ratio at 39%/61%. (default)
  1 Sets the dial pulse make/break ratio at 33%/67%.

&Qn Connection mode
    This command allows you to enable and disable error control
    mode. The &Q command setting has precedence over \N
    command setting and registers S36 and S48.
  0 Asynchronous mode (no error control, disables V.42 and MNP).
  5 Error control mode  Instructs the modem to make a connection
    using V.42/MNP, and fallback as necessary. (See S36 and S48
    registers) (default)

&Rn CTS/RTS
    Since bus modems have no DTE-DCE serial interface, this
    command has no effect and remains for scripting compatibility.
  0­1 Return OK.

&Sn DSR
    Since bus modems have no DTE-DCE serial interface, this
    command has no effect and remains for scripting compatibility.
  0­2 Return OK.

&Tn Self-tests
    The following diagnostic tests are provided. These tests are
    available only when no error protocol is engaged. The duration
    of each test is controlled by register S18.
  0 Terminate the test  Used to terminate (escape from) a test in
    progress and return to command state, if S18=0.
  1 Local analog loopback  Initiates a local analog loopback test.
    The escape sequence must be entered to terminate this test.
    This mode tests the local modem and the local data terminal
    equipment.
  3 Local digital loopback  Initiates a local digital loopback test.
    The modem echoes characters back to the remote modem
    exactly as received.
  4 Enable the remote digital loopback  Enables the modem to
    respond to a remote modem attempting to place it in digital
    loopback test. If a remote modem places the local modem in
    remote digital loopback mode, the local modem echoes
    characters back to the remote modem exactly as received from
    the remote modem.
  5 Disable the remote digital loopback  Disables the modem from
    responding to a remote modem attempting to place it in the
    digital loopback mode.
  6 Remote digital loopback test  In this mode, characters sent to
    the remote modem are echoed back to the local modem exactly
    as they were received by the remote modem. This mode tests
    both local and remote modems and the telephone circuits.
  7 Remote digital loopback with self-test  Initiates a Remote
    Digital Loopback (like &T6) with self-test data pattern
    generation and error checking.
  8 Local analog loopback with self-test  Initiates a Local Analog
    Loopback (like &T1) with self-test data pattern generation and
    error checking.
    The tests terminate when an AT&T0 command is issued or when
    register S18 expires. In the self-test mode, an error counter
    counts the number of errors and sends the final result to the
    host at the end of the test. The maximum number of errors that
    can be counted is 255.
    Note: &T1 takes an optional parameter (a single character, A
    or O) to indicate whether the analog loopback must be done in
    originate (default) or answer mode. 

&Un Trellis coding
    Enables/disables Trellis code modulation in V.32.
  0 Enable Trellis coding. (default)
  1 Disable Trellis coding.

&Vn Display profiles
    Displays the following information:
        Active profile
        Stored profile 0
        Stored profile 1
        Stored telephone numbers (See AT&Z.)

&Wn Profile saving
    This command saves the current active profile:
  0 Saves the active profile into profile 0.
  1 Saves the active profile into profile 1.

&Xn Synchronous clock source
    Ignored. Always returns OK. The modem does not support
    synchronous modes.

&Yn Specify start-up profile
    Allows choosing between two different configurations at
    start-up.
  0 Specifies saved profile 0 as start-up configuration.
  1 Specifies saved profile 1 as start-up configuration.

&Zn=s Store phone number
    Stores the dial string s (64 characters maximum) in location n.
    The value of n can be equal to 0, 1, or 2. Note that the dial
    string s is constructed in the same fashion as the ATD
    command. It therefore must be the last command on the
    command line and have no other characters following the dial
    string.

MNP-specific AT commands

\Bn Send break
    Send a break on the line for n times 100 milliseconds (n ranges
    from 1 to 9).

%Cn Compression enable  Enables/disables MNPClass 5 data
    compression during MNP reliable connections.
  0 Disables data compression.
  1 Enables MNP 5 data compression. (default)

\Gn DCE flow control
    Enables/disables modem-to-modem flow control. Coupled with
    \X, which determines if flow control characters are passed
    through or filtered.
  0 Disables modem-to-modem flow control. (default)
  1 Enables modem-to-modem flow control.

\Nn MNP feature selection
    Determines whether MNPerror control is used in connections.
    The \N command setting also updates register S36. The &Q
    command setting has precedence over \N command setting and
    registers.
0-1 Normal mode  MNPdisabled.
  2 Reliable mode  The modem will interrogate the remote modem
    for MNPcapabilities. If the remote modem does not support MNP,
    the local modem hangs up.
  3 Auto-reliable mode  The modem interrogates the remote modem
    for MNPcapabilities. If the remote modem supports MNP, a
    reliable connection is established. If the remote modem does
    not support MNP, a normal connection is established. (default)

\O  MNP link negotiation
    Treated as ATO0 command. Modem returns to on-line state.
    MNP Link is not negotiated.

\Tn Inactivity timer
    Where n is a decimal integer between 0 and 90 specifying
    minutes. Sets the number of minutes the modem waits before
    automatically hanging up when data is not sent or received. The
    default option n=0 disables the timer.

\U  MNP link negotiation
    Treated as ATO0 command. Modem returns to on-line state.
    MNP link is not terminated.

\Vn MNP result code
  0 Disables modified MNP result codes. (default)
  1 Enables modified standard MNP result codes 24 to 28.
  2 Returns OK; no effect.

\Xn Flow control processing
  0 No pass-through flow control. If modem-to-modem flow control
    is enabled, AT\G1, XON/XOFF characters received from the line
    are filtered out of the data stream; they are not passed to the
    DTE. (default)
  1 Pass-through flow control. If modem-to-modem flow control is
    enabled, AT\G1, XON/XOFF flow control characters received
    from the line are passed through to the DTE.

\Y  MNP link signaling
    Treated as ATO0 command. Modem returns to on-line state.
    MNP link is not negotiated.

\Z  MNP termination
    Treated as ATO0 command. Modem returns to on-line state.
    MNP link is not negotiated.


Last modified in Feburary, 1997 by Adam C. Engst.
Copyright 1997, Adam C. Engst
Return to the Internet Starter Kit for Macintosh page or the TidBITS page.