Hayes AT command parameters for sending and receiving SMS messages

I want to send and receive SMS messages using my Option GSM-only or GSM 2-in-1 modem. What are the Hayes AT commands for this?

AT+CSMS: Select Message Service:

Command Possible response(s) +CSMS=<Service> +CSMS: <mt>,<mo>,<bm>

+CMS ERROR: <err>

+CSMS?+CSMS: <service>,<mt>,<mo>,<bm> +CSMS=?+CSMS: (List of supported <service>s)

<service>: 0;

<mt>,<mo>,<bm>: 0=not supported, 1=supported

--> Only <mt> and <mo> is implemented;

AT+CPMS: Preferred Message Storage:

Command Possible response(s) +CPMS=<mem1>[,<mem2>[,<mem3>]] +CPMS: <used1>,<total1>,<used2>,<total2>,<used3>,<total3> +CPMS?+CPMS: <mem1>,<used1>,<total1>,<mem2>,<used2>,<total2>,... +CPMS=?+CPMS: (List of supported <mem1>s), (List of supported <mem2>s), (List of supported <mem3>s)

<mem1>: Memory used for reading and deleting of SMS messages (+CMGL, +CMGR, CMGD


<mem2>: Memory used for writing and sending of SMS messages (+CMGW-commando)

Defined values:

ME : Mobile Equipment, the handset;

SM : SIM card;

AT+CMGF: Message Format:

Command Possible response(s) +CMGF=[<mode>]  +CMGF?+CMGF: <mode> +CMGF=?+CMGF: (list of supported <mode>s)

<mode>: 0: PDU mode;

1: text mode;

--> Only text mode is implemented.

AT+CSCA: Service Center Address:

Command Possible response(s) +CSCA=<sca>[,<tosca>]  +CSCA?+CSCA: <sca>,<tosca> +CSCA=? 

<sca> = service center address;

SCA for Proximus Belgium is "+32 75 16 16 16". This always should contain the country code number!! Sending an SMS message doesn't work when the SCA number is not entered!

AT+CSMP: Set Text Mode Parameters:

Command Possible response(s) +CSMP=[<fo>[,<vp>[,<pid>[,<dcs>]]]]  +CSMP?+CSMP: <fo>,<vp>,<pid>,<dcs> +CSMP=? 

<fo>: First octet of SMS-DELIVER, SMS-SUBMIT (default 17), SMS-STATUS-REPORT, or SMS-COMMAND (default 2);

<vp>: Validity Period, depending on <fo>-setting in integer format or in time-string format;

<pid>: TP-protocol Indentifier;

<dcs>: Data Coding Scheme in integer format;

---> Default values: +CSMP: 17,167,0,0,0

Dit is SMS-SUBMIT, VP=24 uur;


AT+CSDH: Show Text Mode Parameters:

Command Possible response(s) +CSDH=[<show>]  + CSDH?+CSDH: <show> +CSDH=?+CSDH: (list of supported <show>s)

<Show>: 0: do not show header values defined in commands +CSCA and +CSMP

(<sca>,<tosca>,<fo>,<vp>,<pid> and <dcs>) nor <length>,<toda>,<tooa> in +CMT, +CMTL,

+CMGR result codes;

1: show the values in result codes;

---> Only '0' is supported, so no extra parameters in the result codes.

AT+CNMI: New Message indication to TE

Command Possible response(s) +CNMI=[<mode>[,<mt>[,<bm>[,<ds>[,<bfr>]]]]]  +CNMI?+CNMI: <mode>,<mt>,<bm>,<ds>,<bfr> +CNMI=?+CSCB: (list of supported <mode>s,<mt>s,<bm>s,<ds>s,<bfr>s)

<mode>: 0: buffer in TA;

1: discard indication and reject new SMs when TE-TA link is reserved; otherwise forward


2: buffer new Sms when TE-TA link is reserved and flush them to TE after reservation;

otherwise forward directly to the TE;

3: forward directly to TE;

<mt>: 0: no SMS-DELIVER are routed to TE;

1: +CMTI: <mem>,<index> routed to TE;

2: for all SMS_DELIVERs except class 2: +CMT: .... routed to TE;

class 2 is indicated as in <mt>=1;

3: Class 3: as in <mt>=2;

other classes: As in <mt>=1;

<bm>: same as <mt>, but for CBMs;

<ds>: 0: No SMS-STATUS-REPORT are routed to TE;

1: SMS-STATUS-REPORTs are routed to TE, using +CDS: ...

<bfr>: 0: TA buffer is flushed to TE (if <mode>=1..3);

1: TA buffer is cleared (if <mode>=1..3);

---> Only when <mt> is different from 0, you will get a message that a new SMS has been received.

AT+CMGL: List Messages:

Command Possible response(s) +CMGL[=<stat>] +CMGL: message... +CMGL=?+CMGL: (list of supported <stat>s)

<stat>: status of messages to be read.

defined values:

0: received unread

1: received read;

2: stored unsent;

3: stored sent;

4: all;

---> Only "ALL" (4) is supported!!

AT+CMGR: Read Message:

Command Possible response(s) +CMGR=<index> +CMGR: message... +CMGR=? 

1.10 AT+CMGS: Send Message:

Command Possible response(s) +CMGS=<da>[,<toda>] +CMGS: <mr> +CMGS=? 

<da> = Destination Address;

AT+CMGW: Write Message to Memory:

Command Possible response(s) +CMGW=<oa/da>[,<tooa>/<toda>[,<stat>]] +CMGW: <index> +CMGW=? 

1.12 AT+CMGD: Delete Message:

Command Possible response(s) +CMGD=<index>  +CMGD=? 

Please check if your current firmware supports SMS commands.


+CSMS: 1,1,0 ; Only <mo> and <mt> SM's are supported


Important Note :

If the card returns ERROR, then the modem does not support SMS. Please try updating with the latest GSM Activation Kit for GSM-Ready, or for GSM-Only.


AT+CPMS: "SM",1,10,"ME",4,5


AT+CPMS="ME","SM" ; Swap memories


AT+CMGF=1 ; select text-mode (DEFAULT!!)


AT+CSCA="+3275161616" ; Enter SCA number ( for Belgium, Proximus) This number is operator and country dependent. Please check with your local provider.


AT+CNMI=1,1,0,0,0 ; Enable de reception of SM's

+CMTI: "ME",3 ; a SM is received and stored in ME, index 3

AT+CPMS="ME" ; Make sure memory is OK


AT+CMGR=3 ; Read message


Hello world


AT+CMGL=4 ; Read all messages in ME

+CMGL: 3,"REC UNREAD",,, ; --> Only index 3 en 5 are used

Hello world

Send Message :

AT+CMGS="075261001" ; Send message to "075261001"

> Honey….put my dinner in the microwave. I'm on my way!!^Z (Ctrl+Z to finish and send the message)

+CMGS: 3 ; OK, message gone


Important ERROR messages:

CMS Errors:

300: ME Failure;

302: Operation not allowed;

303: Operation not supported;

304: Invalid PDU mode parameter;

305: Invalid text mode parameter;

320: memory failure;

321: invalid memory index;

322: memory full;

330: SCA unknown;

500: Unknown error;



All trademarks or product names mentioned herein are the property of their respective owners.
Specifications subject to change without notice.
This page serves merely as an informational aid &, unless stated, does not imply any endorsement of or by the parties mentioned within.
We make no guarantees for the accuracy of the information contained herein.
Copyright 1997 Option International

Related Topics:
Hayes AT Commands

 Back to FAQ

All trademarks or product names mentioned herein are the property of their respective owners.
All specifications mentioned in these Web pages are subject to change without notice. E&OE
This page serves merely as an informational aid and, unless specified, does not imply any endoresment of or by the parties mentioned within.

Copyright 1997
Option Communications cc