This module provides a reference to the Hayes-compatible AT commands which start with an &. The following list only contains the original Hayes commands. Different modems use slightly different commands. However, this list is supposed to be as "generic" as possible, and should not be extended with modem-specific commands. Instead it is recommended to provide such command lists in an Appendix.

AT& commands are in no way special, compared to other AT commands. It is just that Hayes at some point ran out of the 26 single-letter commands (ATA ... ATZ), so they introduced double-character commands. In order to avoid that these clash with single-letter commands, these double-character commands got a common prefix, the &.

This option controls the behaviour of the DCD (Data Carrier Detect, alias RLSD) RS-232 output line of the modem. The modem can either be told to keep the line always on (parameter 0), or that the line should really follow the state of the carrier on the phone line (parameter 1, default). The carrier on the phone line is the basic signal on which then (later) the data is modulated on. It is like the carrier frequency of some radio station. Carrier detection indicates if the two paired modems have been "tuned in".

In case the RS-232 DCD line is configured to be driven by the modem following the state of the carrier (parameter 1), the DTE can use this information for flow control, display progress information to the user, etc.

On the other side, setting DCD to be on all the time (parameter 0) can be used if the DTE software, e.g. some terminal program, does not handle DCD correctly, or if the DTE ignores it. However, letting DCD follow the carrier state is usually the better configuration.

The &D command specifies how the modem should react to an on-to-off transition on its DTR (data terminal ready) input line. The DTE can use this line as part of some hardware-handshake. The exact behavior of the &D command depends on other settings, as outlined below:

&D Behavior

&D

&Q

Description

0

0, 5, or 6

DTR is assumed to be always on. This allows communication with DTEs which do not provide DTR information, or wrong information.

0

1, or 4

When the DTE drops DTR (on-off transition) the modem hangs up. This does not affect auto-answer behavior.

In some telephone systems it is necessary to transmit an additional guard tone in order to disable echo supressors in the phone system. Echo supressors do interfere with data communication, because they alter (in good faith) the transmited signal, e.g. by changing the signal's delay, phase and amplitude. This disturbes the modem's signal modulation and introduces communication errors.

A guard tone tells an echo supressor (and possibly other equipment) to not alter the transmitted signal. Guard tones are standardised in telecom standards.

0

Do not use a guard tone (default)

1

Set guard tone on answering modem to 550Hz. Note, this feature is rarely implemented in todays consumer modems.

Hayes modems supported different jacks to connect the modem to a telephone or leased line. The '&J' command allows to select the type of jack which should be used. Typically, this command is not fully implemented in today's modems. Usually, the command just sets some registers and does nothing otherwise.

The &Z command allows to store up to four telephone number dial strings into the modem's NVRAM.

This feature is rarely used by modem communication software these days. DTE software preferes to keep an own list of possible phone numbers (e.g. a list of bulletin board system numbers), which can be much more than just four different numbers.

The feature is still useful in automated systems, and e.g. in cases where the DTE software is not (end user) configurable. For example, some embedded controller might be capable of running a modem communication with generic Hayes-compatible commands to allert a remote site in case of problems (burgler alarm, machine maintenance request, etc.). But for cost or other reasons the embedded system might provide no way for the end user to configure the embedded system. Instead the embedded system will use ATDS=0 (or another index) to dial and relie on the modem's setup to have a phone number stored at index 0 (or another index).

n = 0 ... 3

Index of the dial string

<x>

A dial string. This can be a simple number, but it can also contain dial modifiers as listed for the ATD (dial) command. Typically, the size of a single dial string can not extend 34 characters.

Example:

To store the number 00155512345 into register 0 for tone dialing (T) use: