The modem initialization string consists of a series of commands which are called Hayes ("AT") commands. For many years Hayes compatible modems have been a standard. Virtual Modem Pro by Eltima Software has adhered the Hayes commands as well, however due to its Virtual Serial Ports technology some of the "AT" commands became obsolete. Those commands that aren't supported by Virtual Modem Pro will always return "ERROR" in response. In case your application needs specific Hayes commands emulation, please, contact our support team to get in touch with our developers.
The following is a partial list of the Hayes command set (called the "AT" commands). It can be divided into several groups:
A "register" refers to a specific physical location in memory. Modems have small amounts of memory onboard (ROM). This fourth set of commands is used to enter values in a particular register (memory location). The register will be storing a particular "variable" (alpha-numeric information) which can be utilized by the modem and communication software. For example, S7=60 instructs your computer to "Set register #7 to the value 60."
Note: Although most commands are defined by a letter-number combination (L0, L1, etc.), the use of a zero is optional. In this case, L0 is the same as a plain "L" - keep this in mind when reading the table below!
| Command | Description | Comments |
|---|---|---|
| A0 or A | Answer incoming call |
The A command instructs the modem to go off hook and respond to an incoming call, then handshake with the remote modem |
| B0 or B | Select Communication Standard | V.22 when line speed is at 1200 bps. |
| B1 | Domestic industry standard 212A when line speed is at 1200 bps.
|
|
| D | Dial Command | Dial the following number and then handshake in originate mode.
Dial Modifiers (These are common but most modems will have more.)
|
| E0 or E | Command State Character Echo Selection | Will not echo commands to the computer |
| E1 | Will echo commands to the computer (so one can see what one
types) |
|
| F0 or F | On-line State Character Echo Selection * | On-line character echo enabled (where not supported, ERROR result code is
returned) |
| F1 | On-line character echo disabled |
|
| H0 or H | Hook Command Options | On hook - hang up |
| H1 | Off hook - phone picked up |
|
| I0 or I | Internal Memory Tests | Connection speed |
| I1 | Checksum (usually 3 digits) |
|
| I2 | Always returns "OK" |
|
| I3 | Additional information | |
| I4 | Product name | |
| I5 - I7 | Reserved | |
| L0 or L | Speaker Volume Level Selection * | Off or low volume |
| L1 | Low volume |
|
| L2 | Medium volume |
|
| L3 | Loud or high volume |
|
| M0 or M | Speaker On/Off Selection* | Speaker always off |
| M1 | Speaker on until remote carrier detected (until the other modem is
heard) |
|
| M2 | Speaker always on; stays on after carrier is detected. |
|
| N0 or N | Negotiation of Handshake Options * | Handshake only at speed in S37 |
| N1 | Handshake at highest speed larger than S37 |
|
| Q0 or Q | Result Code Display Options | Off - Displays result codes, user sees command responses (e.g.
OK) |
| Q1 | On - Result codes are suppressed, user does not see responses |
|
| Sn? | Addresses An S-register | Query the contents of S-register n |
| Sn=r | Read An S-register | Store the value r in S-register n |
| V0 or V | Result Code Format Options | Numeric result codes |
| V1 | Verbose result codes (e.g. CONNECT, BUSY, NO CARRIER etc.) |
|
| W0 or W | Negotiation Progress Message Selection * | 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. |
|
| X0 or X | Call Progress Options | Hayes Smartmodem 300 compatible result codes |
| X0 | Busy and dial tone detection are disabled. Only result codes 0-4 are
enabled. Only the CONNECT result code is permitted, but with no indication of
the telephone line speed. This setting overrides any other result code
selections made with the W command and S95 |
|
| X1 | Busy and dial tone detection are disabled. Result codes 0-5 are enabled and
line speed reporting with CONNECT XXXX messages. W command options and S95 are
enabled |
|
| X2 | Busy detection is disabled. Dial tone detection is enabled. Result codes 0-6
are enabled and line speed reporting with CONNECT XXXX messages. W command
options and S95 are enabled |
|
| X3 | Busy detection is enabled. Dial tone detection is disabled. Result codes 0-5
and 7 are enabled and line speed reporting with CONNECT XXXX messages. W command
options and S95 are enabled |
|
| X4 | Busy and dial tone detection are enabled. Result codes 0-7 are enabled and
line speed reporting with CONNECT XXXX messages. W command options and S95
enabled |
|
| Z0 or Z | Soft Reset Command | Reset modem to stored configuration (Z0, Z1 etc. for multiple
profiles) (Same as &F (factory default) on modems with out NVRAM (non volatile memory) |
* - these commands are simple stubs that are implemented for compatibility however don't modify modem's settings.