DialUpSounds

Hayes AT commands cheat sheet

The Hayes AT command set was how software talked to a modem: plain text starting with AT ("attention"). These are the commands our virtual modem understands. Try them in the console under the player.

CommandWhat it does hereExample
ATDTnumberDial with tones (DTMF) and play the callATDT555-0199
ATDPnumberDial with pulses: 10 clicks per second, 60/40 break/makeATDP4159
ATHHang upATH
ATM0 / M1 / M2Speaker off / on until carrier detect (default) / always onATM2
ATL0–L3Speaker volume, quietest to loudest (default L2)ATL3
ATS11=msDTMF tone and gap length, 50–255 ms (default 95); ATS11? reads itATS11=60
AT+MS=modeChoose the modulation: V92, V90, V34, V32B, V22B, B103AT+MS=V34
ATXnResult-code detail: X0 reports plain CONNECT, X1–X4 add the speed and protocolATX0
ATZReset to defaultsATZ
ATIIdentify the modemATI

Commands can be chained: ATM2L3DT5550199 turns the speaker on for the whole call, at full volume, and dials.

Result codes

OKCommand accepted
CONNECT 52000/V.90Carrier detected; the speed and standard follow (with X1 or higher)
BUSYThe line was engaged
NO CARRIERSomething answered but no modem connection formed, or the call was hung up
NO ANSWERRinging with no reply
ERRORThe command was not understood
Ready. Press Dial.
caller
—
answerer
—
AT console (Hayes commands)
Event list (the spectrogram as text)

    The console and the controls mirror each other: change the modem menu and the console shows the AT+MS command it corresponds to. Real modems had hundreds more commands and S-registers, and the exact set varied by manufacturer. We support only the ones that change the sound. Hayes command syntax is a de facto standard, not an ITU recommendation; ITU-T V.250 later standardized much of it.