Short Messages Service

Introduction

For a complete overview of SMS, see 3GPP TS 23.040 [33] and 3GPP TS 27.005 [34].
In case of errors all the SMS related AT commands return an error result code as defined in Section A.2.

Class 0 SMS

The storing of a class 0 SMS depends on the module series:
  • not stored.

<index> parameter range

The <index> parameter range depends on the memory storage type:
ME (ME message), SM ((U)SIM message) MT (ME + SM):
  • LEXI-R10 / SARA-R10
    • Values between 0 and 10: SMS stored in ME.
    • Values between 0 and n-1: SMS stored in SIM (n is the number of records of the EFSMS file in the SIM card used).
    • MT storage is not supported.
BM (Broadcast Message):
  • Broadcast Message storage is not supported.
SR (Status Report):
  • Status Report storage is not supported.

Limitations

The following limitations apply related to the SMS usage:
Single SMS
  • 160 characters if <dcs>= "GSM 7 bit default alphabet data"
  • 140 octets if <dcs>= "8-bit data"
  • 70 UCS2 characters (2 bytes for each one) if <dcs>="16-bit uncompressed UCS2 data"
Concatenated SMS (where supported) - "8-bit reference number" type
  • 153 characters if <dcs>= "GSM 7 bit default alphabet data"
  • 134 octets if <dcs>= "8-bit data"
  • 67 UCS2 characters (2 bytes for each one) if <dcs>="16-bit uncompressed UCS2 data"
Concatenated SMS (where supported) - "16-bit reference number" type
  • The limits are the same as the "8-bit reference number" type, but are decreased by one unit.
A concatenated SMS can have as many as 255 parts.

Select message service +CSMS

+CSMS
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
-

Description

Selects the <service> message service. It returns the types of messages supported by the MT.

Syntax

TypeSyntaxResponseExample
Set
AT+CSMS=<service>
+CSMS: <mt>,<mo>,<bm>
OK
AT+CSMS=1
+CSMS: 1,1,1
OK
Read
AT+CSMS?
+CSMS: <service>,<mt>,<mo>,<bm>
OK
+CSMS: 0,1,1,1
OK
Test
AT+CSMS=?
+CSMS: (list of supported <service>s)
OK
+CSMS: (0-1)
OK

Defined values

ParameterTypeDescription
<service>
Number
Allowed values:
  • 0: see 3GPP TS 23.040 [33] and 3GPP TS 23.041 [35]; syntax of AT commands is compatible with 3GPP TS 27.005 [34] phase 2; phase 2+ features may be supported if no new command syntax is required
  • 1: see 3GPP TS 23.040 [33] and 3GPP TS 23.041 [35]; syntax of AT commands is compatible with 3GPP TS 27.005 [34] phase 2+
<mt>
Number
Mobile terminated messages:
  • 0: not supported
  • 1: supported
<mo>
Number
Mobile originated messages:
  • 0: not supported
  • 1: supported
<bm>
Number
Broadcast messages:
  • 0: not supported
  • 1: supported

Notes

  • To activate correctly the manual acknowledge (see +CNMA AT command), set <service> to 1 before changing the settings of the +CNMI AT command to route the messages directly to TE.
  • Set <service> to 1 to acknowledge an incoming message (either SMS or Status Report) with +CNMA AT command.
  • If <service> is changed from 1 to 0 and one or more parameters of the +CNMI command are in phase 2+, switch the +CNMI parameters to phase 2 specific values before entering phase 2.
  • PIN is not required.
LEXI-R10801D-00B
  • The command settings are restored to the factory-programmed values after any MNO profile change (see +UMNOPROF).

Preferred message storage +CPMS

+CPMS
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
partial
Yes
No

Description

Selects memory storages <mem1>, <mem2> and <mem3>. If the chosen storage is supported by the MT but not suitable, the +CMS ERROR: <err> error result code should be returned.
See the test command for the supported memory types for each memory storage.

Syntax

TypeSyntaxResponseExample
Set
AT+CPMS=<mem1>[,<mem2>[,<mem3>]]
AT+CPMS: <used1>,<total1>,<used2>,<total2>,<used3>,<total3>
OK
AT+CPMS="BM","SM","SM"
+CPMS: 0,5,0,50,0,50
OK
Read
AT+CPMS?
+CPMS: <mem1>,<used1>,<total1>,<mem2>,<used2>,<total2>,<mem3>,<used3>,<total3>
OK
+CPMS: "MT",4,350,"MT",4,350,"MT",4,350
OK
Test
AT+CPMS=?
+CPMS: (list of supported <mem1>s),(list of supported <mem2>s),(list of supported <mem3>s)
OK
+CPMS: ("MT","ME","SM","BM","SR"),("MT","ME","SM"),("MT","ME","SM")
OK

Defined values

ParameterTypeDescription
<mem1>
String
Memory used to read and delete messages. The supported values may vary:
  • "ME": ME message storage
  • "SM": (U)SIM message storage
  • "MT": "ME"+"SM", "ME" preferred
  • "BM": Broadcast Message storage
  • "SR": Status Report storage
The default value is the currently set value. The factory-programmed value depends on the module series: see Notes for more details.
<mem2>
String
Memory used to write and send SMS. The supported values may vary:
  • "ME": ME message storage
  • "SM": (U)SIM message storage
  • "MT": "ME"+"SM", "ME" preferred
The default value is the currently set value. The factory-programmed value depends on the module series: see Notes for more details.
<mem3>
String
Memory preferred to store the received SMS. The supported values may vary:
  • "ME": ME message storage
  • "SM": (U)SIM message storage
  • "MT": "ME"+"SM", "ME" preferred
The default value is the currently set value. The factory-programmed value depends on the module series: see Notes for more details.
<used1>
Number
Number of used message locations in <mem1>
<total1>
Number
Total number of message locations in <mem1>
<used2>
Number
Number of used message locations in <mem2>
<total2>
Number
Total number of message locations in <mem2>
<used3>
Number
Number of used message locations in <mem3>
<total3>
Number
Total number of message locations in <mem3>

Notes

  • The factory-programmed value is "ME", "ME" and "ME".
  • "SR", "BM" and "MT" message storages are not supported.
  • The PIN verification is not required when the preferred memory storage is "ME".

Preferred message format +CMGF

+CMGF
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
-

Description

Indicates to the MT which input and output format of messages shall be used.

Syntax

TypeSyntaxResponseExample
Set
AT+CMGF=[<mode>]
OK
AT+CMGF=1
OK
Read
AT+CMGF?
+CMGF: <mode>
OK
+CMGF: 1
OK
Test
AT+CMGF=?
+CMGF: (list of supported <mode>s)
OK
+CMGF: (0-1)
OK

Defined values

ParameterTypeDescription
<mode>
Number
Indicates the format of messages used with send, list, read and write commands and URCs resulting from receiving SMSes messages:
  • 0: PDU mode
  • 1: text mode
The factory-programmed value is:
  • 1

Notes

  • PIN is not required.
  • The <mode> parameter is mandatory.

Show text mode parameters +CSDH

+CSDH
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
-

Description

Controls whether detailed SMS header information is shown in text mode (see the AT+CMGF=1 command).
This affects the responses of the +CMGR, +CMGL, +CSMP, +CSCA AT commands and the +CMT, +CMTI, +CDS, +CDSI, +CBM, +CBMI (see +CNMI) URCs.

Syntax

TypeSyntaxResponseExample
Set
AT+CSDH=[<show>]
OK
AT+CSDH=1
OK
Read
AT+CSDH?
+CSDH: <show>
OK
+CSDH: 0
OK
Test
AT+CSDH=?
+CSDH: (list of supported <show>s)
OK
+CSDH: (0-1)
OK

Defined values

ParameterTypeDescription
<show>
Number
Allowed values:
  • 0 (default): do not show detailed SMS header information
  • 1: show detailed SMS header information

Notes

  • The <show> parameter is mandatory in the set command.

New message indication +CNMI

+CNMI
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
partial
Yes
No
-

Description

Selects the procedure to indicate the reception of a new SMS if the MT is active (the DTR signal is ON). If the MT is inactive (the DTR signal is OFF), the message reception should be done as specified in 3GPP TS 23.038 [36].
The +UCMT URC notifies the SMS-DELIVER status for 3GPP2 Mobile Terminated SMSes; it is equivalent to +CMT but valid only for 3GPP2 SMS (i.e. 3GPP2 SMS over IMS received on Verizon MNO).

Syntax

TypeSyntaxResponseExample
Set
AT+CNMI=[<mode>[,<mt>[,<bm>[,<ds>[,<bfr>]]]]]
OK
AT+CNMI=1,1
OK
Read
AT+CNMI?
+CNMI: <mode>,<mt>,<bm>,<ds>,<bfr>
OK
+CNMI: 0,0,0,0,0
OK
Test
AT+CNMI=?
+CNMI: (list of supported <mode>s),(list of supported <mt>s),(list of supported <bm>s),(list of supported <ds>s),(list of supported <bfr>s)
OK
+CNMI: (0-2),(0-3),(0-3),(0-2),(0-1)
OK
URC
+CMTI: <mem>,<index>
+CMTI: "SM",5
URC
Text mode (+CMGF=1):
+CMT: <oa>,[<alpha>],<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data>
+CMT: "+393475234652",,"14/11/21,11:58:23+01"
Hello world
PDU mode (+CMGF=0):
+CMT: ,<length><CR><LF><pdu>
URC
Text mode (+CMGF=1):
+UCMT: <message_id>,<oa>,<scts>,[<priority>],[<privacy>],[<callback_number>],<encoding>,[<status>],[<num_sms>,<part>,<reference>],<length><CR><LF><text>
+UCMT: 1,+1231241241,"18:02:28+08",,,,2,,,,,6
Hello!
PDU mode (+CMGF=0):
+UCMT: <pdu_length><CR><LF><pdu>
URC
+CBMI: <mem>,<index>
+CBMI: "BM",48
URC
Text mode (+CMGF=1):
+CBM: <sn>,<mid>,<dcs>,<page>,<pages><CR><LF><data>
+CBM: 271,1025,1,1,1
The quick brown fox jumps over the lazy dog 0123456789
PDU mode (+CMGF=0):
+CBM: <length><CR><LF><pdu>
URC
+CDSI: <mem>,<index>
+CDSI: "MT",2
URC
Text mode (+CMGF=1):
+CDS: <fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st>
+CDS: 6,202,"+393492323583",145,"14/07/25,13:07:16+02","14/07/25,16:35:44+02",0
PDU mode (+CMGF=0):
+CDS: <length><CR><LF><pdu>

Defined values

ParameterTypeDescription
<mode>
Number
Controls the processing of URCs specified within this command:
  • 0 (default value): buffer URCs in the MT; if the MT buffer is full, the oldest indication may be discarded and replaced with the new received indications (ring buffer)
  • 1 (factory-programmed value): discard indication and reject new received message URCs when MT-DTE link is reserved; otherwise forward them directly to the DTE
  • 2: buffer URCs in the MT when the serial link is busy (e.g. data-transfer); otherwise forward them directly to the DTE
  • 3: forward URCs directly to the TE. TA-TE link specific inband technique used to embed result codes and data when MT is in on-line data mode
<mt>
Number
Specifies the rules for managing the received SMS according the message’s Data Coding Scheme (DCS):
  • 0 (default and factory-programmed value): No SMS-DELIVER indications are routed to the TE
  • 1: if SMS-DELIVER is stored in the MT, indication of the memory location is routed to the DTE using the +CMTI URC
  • 2: SMS-DELIVER (except class 2 SMS) are routed directly to the DTE (but not saved in the module file system or SIM memory) using the +CMT URC. If MT has its own display device then class 0 SMS and SMS in the message waiting indication group (discard message) may be copied to both MT display and to DTE. In this case MT shall send the acknowledgement to the network. Class 2 SMSs and messages in the message waiting indication group (storage message) result in indication as defined in <mt>=1
  • 3: Class 3 SMS-DELIVERs are routed directly to DTE using URCs defined in <mt>=2. Messages of other data coding schemes result in indication as defined in <mt>=1
<bm>
Number
Specifies the rules for managing the received Cell Broadcast messages (CBM):
  • 0 (default and factory-programmed value): no CBM indications to the DTE
  • 1: if the CBM is stored in the MT, an indication of the used memory location is routed to DTE using the +CBMI URC
  • 2: new CBMs are routed directly to the DTE using the +CBM URC
  • 3: class 3 CBMs are routed directly to DTE using URCs defined in <bm>=2. If CBM storage is supported, messages of other classes result in indication as defined in <bm>=1
<ds>
Number
Specifies the rules for managing the Status Report messages:
  • 0 (default and factory-programmed value): no SMS-STATUS-REPORTs are routed to the DTE
  • 1: SMS-STATUS-REPORTs are routed to the DTE using the +CDS URC
  • 2: if SMS-STATUS-REPORT is stored in the MT, the indication of the memory location is routed to the DTE using the +CDSI URC
<bfr>
Number
Controls the buffering of URCs:
  • 0 (default and factory-programmed value): MT buffer of URCs defined within this command is flushed to the DTE when <mode> 1…​3 is entered (OK final result code shall be given before flushing the codes).
  • 1: MT buffer of URCs defined within this command is cleared when <mode> 1…​3 is entered
<mem>
String
Same as defined in +CPMS Defined Values
<index>
Number
Storage position
<length>
Number
Two meanings:
  • in text mode: number of characters
  • in PDU mode: PDU’s length in octets without the Service Center’s address. In example: 039121430100038166F6000004E374F80D: this is a PDU with Service Center’s number +1234, that generates the address 03912143 (4 octets). Thus in this case <length>=13.
<pdu>
String
Protocol data unit: each 8-bit octet is presented as two IRA character long hexadecimal numbers, e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65)
<oa>
String
Originator address
<scts>
String
Service center time stamp in time-string format, see the <dt>
<data>
String
In the case of SMS: 3GPP TS 23.040 [33] TP-User-Data in text mode responses; format:
  • if <dcs> indicates that 3GPP TS 23.038 [36] GSM 7 bit default alphabet is used:
    • if TE character set other than "HEX" (see the +CSCS command in 3GPP TS 27.007 [9]): ME/TA converts GSM alphabet into current TE character set according to rules of Annex A
    • if TE character set is "HEX": ME/TA converts each 7-bit character of GSM 7 bit default alphabet into two IRA character long hexadecimal number (e.g. character Æ (GSM 7 bit default alphabet 28) is presented as 1C (IRA 49 and 67))
  • if <dcs> indicates that 8-bit or UCS2 data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
In the case of CBS: 3GPP TS 23.041 [35] CBM Content of Message in text mode responses; format:
  • if <dcs> indicates that 3GPP TS 23.038 [36] GSM 7 bit default alphabet is used:
    • if TE character set other than "HEX" (see the +CSCS in 3GPP TS 27.007 [9]): ME/TA converts GSM alphabet into current TE character set according to rules of Annex A
    • if TE character set is "HEX": ME/TA converts each 7-bit character of the GSM 7 bit default alphabet into two IRA character long hexadecimal number
  • if <dcs> indicates that 8-bit or UCS2 data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number
<sn>
Number
CBM serial number
<mid>
Number
CBM message identifier
<dcs>
Number
Data Coding Scheme
<page>
Number
CBM Page Parameter bits 4-7 in integer format as described in 3GPP TS 23.041 [35]
<pages>
Number
CBM Page Parameter bits 0-3 in integer format as described in 3GPP TS 23.041 [35]
<fo>
Number
First octet of the SMS TPDU (see 3GPP TS 23.040 [33])
<mr>
Number
Message reference
<ra>
String
Recipient address field
<tora>
Number
Type of address of <ra> - octet
<dt>
String
Discharge time in format "yy/MM/dd,hh:mm:ss+zz"; the time zone is expressed in steps of 15 minutes. The range goes from -48 to 56
<st>
Number
Status of a SMS STATUS-REPORT
<message_id>
Number
Message-ID of the 3GPP2 SMS
<priority>
Number
3GPP2 priority:
  • 0: normal
  • 1: interactive
  • 2: urgent
  • 3: emergency
<privacy>
Number
3GPP2 privacy:
  • 0: not restricted
  • 1: restrictive
  • 2: confidential
  • 3: secret
<callback_number>
String
Callback number
<encoding>
Number
Text encoding:
  • 0: octet, unspecified
  • 2: ASCII7
  • 3: IA5
  • 4: UCS2
  • 8: ISO 8859-1
  • 9: GSM7
<num_sms>
Number
Total number of SMS
<part>
Number
Fragment part number
<reference>
Number
3GPP2 reference ID

Notes

  • PIN is not required.
  • <mode>=1 and <mode>=3 behave in the same way as <mode>=2.
  • <mt> parameter’s factory-programmed value is 2.
  • <bm>=1 is not supported.
  • <ds>=2 is not supported.
  • If the SMS notification URC is enabled (i.e. <mt> is set to 1, 2 or 3) and the related AT command interface is not busy, the arrival of SMSs is notified by the UART RI line (or the ring indicator GPIO, based on the configuration) switching from OFF to ON for 1 s; the URC can be enabled with +CNMI AT command on any AT command interface, namely USB, MAIN UART, AUX UART or MUX virtual channels.

New message acknowledgement to MT +CNMA

+CNMA
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Confirms the reception of a new message (SMS-DELIVER or SMS-STATUS-REPORT) which is routed directly to the TE (see the +CNMI command). This acknowledgement command shall be used when +CSMS parameter <service> equals 1. The MT shall not send another +CMT or +CDS (see the +CNMI command) unsolicited result codes to the TE before the previous one is acknowledged. If the MT does not get acknowledgement within required time (network timeout), the MT should respond as specified in 3GPP TS 24.011 [37] to the network. The MT shall automatically disable routing to the TE by setting both <mt> and <ds> values of +CNMI to zero. If the command is executed, but no acknowledgement is expected, or some other MT related error occurs, the +CMS ERROR: <err> error result code is returned.
In PDU mode, it is possible to send either positive (RP-ACK) or negative (RP-ERROR) acknowledgement to the network. The <n> parameter defines which one will be sent. Optionally (when <length> is greater than zero) an acknowledgement TPDU (SMS-DELIVER-REPORT for RP-ACK or RP-ERROR) may be sent to the network. The entering of PDU is done similarly as specified in +CMGS command, except that the format of<ackpdu> is used instead of <pdu> (i.e. SMSC address field is not present). The PDU shall not be bounded by double quotes.

Syntax

TypeSyntaxResponseExample
Set
Text mode (+CMGF=1):
AT+CNMA
OK
AT+CNMA
OK
PDU mode (+CMGF=0):
AT+CNMA[=<n>[,<length>
[PDU is given<Ctrl-Z>/<ESC>]]]
OK
AT+CNMA=1,5
>0007000000 <Ctrl-Z>
OK
Test
AT+CNMA=?
Text mode (+CMGF=1):
OK
OK
PDU mode (+CMGF=0):
+CNMA: (list of supported <n>s)
OK
+CNMA: (0-2)
OK

Defined values

ParameterTypeDescription
<n>
Number
Allowed values:
  • 0: the command operates similarly as defined for the text mode
  • 1: sends RP-ACK (or buffered result code received correctly)
  • 2: sends RP-ERROR (if PDU is not given, ME/TA shall send SMS-DELIVER-REPORT with 3GPP TS 23.040 [33] TP-FCS value set to 'FF' (unspecified error cause))
<length>
Number
PDU’s length in octets without the Service Center’s address

Send message +CMGS

+CMGS
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Sends a message from a DTE to the network (SMS-SUBMIT). The message reference value <mr> is returned to the DTE for a successful message delivery. Optionally (when enabled by +CSMS AT command and the network supports) <ackpdu> is returned. Values can be used to identify message upon unsolicited delivery status report result code. <Ctrl-Z> indicates that the SMS shall be sent, while <ESC> indicates aborting of the edited SMS.
The entered text/PDU is preceded by a ">" (Greater-Than sign) character, and this indicates that the interface is in "text/PDU enter" mode.

Syntax

TypeSyntaxResponseExample
Set
Text mode (+CMGF=1):
AT+CMGS=<da>[,<toda>]<CR>
> text is entered<Ctrl-Z/ESC>
+CMGS: <mr>
OK
AT+CMGS="0171112233"<CR>
> This is the text<Ctrl-Z>
+CMGS: 2
OK
PDU mode (+CMGF=0):
AT+CMGS=<length><CR>
> PDU is given<Ctrl-Z/ESC>
+CMGS: <mr>[,<ackpdu>]
OK
AT+CMGS=13<CR>
> 039121430100038166F6000004E374F80D<Ctrl-Z>
+CMGS: 2
OK
Test
AT+CMGS=?
OK

Defined values

ParameterTypeDescription
<da>
String
Destination address
<toda>
Number
Type of address of <da> - octet
<text>
String
SMS string
<mr>
Number
Message reference
<length>
Number
Two meanings:
  • in text mode: number of characters
  • in PDU mode: PDU’s length in octets without the Service Center’s address. In example 039121430100038166F6000004E374F80D: is a PDU with Service Center’s number +1234, that generates the address 03912143 (4 octets). Thus in this case <length>=13.
<PDU>
String
Protocol Data Unit: each 8-bit octet of the PDU must be written as two IRA character long hexadecimal numbers, e.g. octet with integer value 42 must be written as two characters 2A (IRA 50 and 65)
<ackpdu>
String
See the 3GPP TS 23.040 [33] RP-User-Data element of RP-ACK PDU; the format is same as for <PDU> in case of SMS

Notes

  • The <toda> parameter is ignored.
  • If the set command cannot be executed within 60 s from the entrance into SMS mode (e.g. because <Ctrl-Z> or <ESC> are not issued), an error result code is returned.

Send SMS command +CMGC

+CMGC
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Sends a command message from a DTE to the network (SMS-SUBMIT). The message reference value <mr> is returned to the DTE for a successful message delivery. Optionally (when enabled by +CSMS AT command and network supports) the <ackpdu> parameter is returned. Values can be used to identify message upon unsolicited delivery status report result code. <Ctrl-Z> indicates that the SMS shall be sent, while <ESC> indicates aborting of the edited SMS.
The entered PDU is preceded by a ">" (Greater-Than sign) character, and this indicates that the interface is in "PDU enter" mode.
The +CMT URC is issued on the reception of the SMS messages.

Syntax

TypeSyntaxResponseExample
Set
Text mode (+CMGF=1):
AT+CMGC=<fo>,<ct>[,<pid>[,<mn>[,<da>[,<toda>]]]]<CR>
> text is entered<Ctrl-Z/ESC>
+CMGC: <mr>[,<scts>]
OK
AT+CMGC=17,0<CR>
> This is the text<Ctrl-Z>
+CMGC: 20
OK
PDU mode (+CMGF=0):
AT+CMGC=<length><CR>
> <PDU> is given<Ctrl-Z/ESC>
+CMGC: <mr>[,<ackpdu>]
OK
AT+CMGC=13<CR>
> 039121430100038166F6000004E374F80D<Ctrl-Z>
+CMGC: 2
OK
Test
AT+CMGC=?
OK
URC
+CMT: [<alpha>],<length><CR><LF><pdu>

Defined values

ParameterTypeDescription
<mr>
Number
Message reference
<length>
Number
PDU’s length in octets without the Service Center’s address. In example 039121430100038166F6000004E374F80D: is a PDU with Service Center’s number +1234, that generates the address 03912143 (4 octets). Thus in this case <length>=13.
<PDU>
String
Protocol Data Unit: each 8-bit octet of the PDU must be written as two IRA character long hexadecimal numbers, e.g. octet with integer value 42 must be written as two characters 2A (IRA 50 and 65).
<ackpdu>
String
See the 3GPP TS 23.040 [33] RP-User-Data element of RP-ACK PDU; format is same as for <PDU> in case of SMS.
<alpha>
String
Alphanumeric representation of destination or originating address. See the 3GPP TS 27.005 [34].
<fo>
Number
First octet of the SMS TPDU (see 3GPP TS 23.040 [33])
<ct>
Number
TP-Command-Type (default value: 0)
<pid>
Number
TP-Protocol-Identifier (default value: 0); see the 3GPP TS 23.040 [33]
<mn>
Number
See the 3GPP TS 23.040 [33] TP-Message-Number in integer format
<da>
String
Destination address
<toda>
Number
Type of address of <da> - octet

Notes

  • If the command cannot be executed within 60 s from the entrance into SMS mode (e.g. because <Ctrl-Z> or <ESC> are not issued), an error result code is returned.

Write message to memory +CMGW

+CMGW
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Stores a message (SMS-DELIVER or SMS-SUBMIT) to memory storage <mem2> and returns the memory location <index> of the stored message. <Ctrl-Z> indicates that the SMS shall be stored, while <ESC> indicates aborting of the edited SMS.
The entered text/PDU is preceded by a ">" (Greater-Than sign) character, and this indicates that the interface is in "text/PDU enter" mode.
It is possible to write SMSes in "ME" also without the PIN insertion (no access to SIM is required when <mem2>= "ME").

Syntax

TypeSyntaxResponseExample
Set
Text mode (+CMGF=1):
AT+CMGW[=<oa/da>[,<tooa/toda>[,<stat>]]]<CR>
text is entered<Ctrl-Z/ESC>
+CMGW: <index>
OK
AT+CMGW="091137880"<CR>
> This is the text<Ctrl-Z>
+CMGW: 303
OK
PDU mode (+CMGF=0):
AT+CMGW=<length>[,<stat>]<CR>
PDU is given<Ctrl-Z/ESC>
+CMGW: <index>
OK
AT+CMGW=13<CR>
> 039121430100038166F6000004E374F80D<Ctrl-Z>
+CMGW: 303
OK
Test
AT+CMGW=?
OK

Defined values

ParameterTypeDescription
<da>
String
TP-Destination-Address Address-Value field (see the 3GPP TS 23.040 [33]); BCD numbers (or GSM 7 bit default alphabet characters) are converted to characters of the currently selected TE character set (see the +CSCS AT command); type of address given by <toda>
<oa>
String
TP-Originating-Address Address-Value field (see the 3GPP TS 23.040 [33]); BCD numbers (or GSM 7 bit default alphabet characters) are converted to characters of the currently selected TE character set (see the +CSCS AT command); type of address given by <tooa>
<tooa>
Number
TP-Originating-Address Type-of-Address octet (see the 3GPP TS 24.011 [37]); see the <toda> parameter for the default value
<toda>
Number
TP-Destination-Address Type-of-Address octet (see the 3GPP TS 24.011 [37]); when the first character of <da> is + (IRA 43) the default value is 145, otherwise it is 129)
<stat>
Number or String
Number type in PDU mode (default value: 2), or string type in text mode (default value: "STO UNSENT"); it indicates the message status in memory:
  • 0: in PDU mode or "REC UNREAD" in text mode: received unread SMS messages
  • 1: in PDU mode or "REC READ" in text mode: received read SMS messages
  • 2: in PDU mode or "STO UNSENT" in text mode: stored unsent SMS messages
  • 3: in PDU mode or "STO SENT" in text mode: stored sent SMS messages
<text>
String
SMS string
<index>
Number
Storage position
<length>
Number
The parameter meaning depends on the message format:
  • In text mode: number of characters
  • In PDU mode: PDU’s length in octets without the Service Center’s address. In example: 039121430100038166F6000004E374F80D is a PDU with Service Center’s number +1234, that generates the address 03912143 (4 octets). Thus in this case <length>=13.
<PDU>
String
Protocol Data Unit: each 8-bit octet of the PDU must be written as two IRA character long hexadecimal numbers, e.g. an octet with integer value 42 must be written as two characters 2A (IRA 50 and 65)

Notes

  • The <toda>/<tooa> parameter is ignored.
  • If the set command cannot be executed within 60 s from the entrance into SMS mode (e.g. because <Ctrl-Z> or <ESC> are not issued), an error result code is returned.

Send message from storage +CMSS

+CMSS
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Sends message with location value <index> from the preferred message storage <mem2> to the network (SMS-SUBMIT or SMS-COMMAND). If a new recipient address <da> is given for SMS-SUBMIT, it will be used instead of the one stored with the message. Reference value <mr> is returned to the DTE on successful message delivery.

Syntax

TypeSyntaxResponseExample
Set
Text mode (+CMGF=1):
AT+CMSS=<index>[,<da>[,<toda>]]
+CMSS: <mr>[,<scts>]
OK
AT+CMSS=302
+CMSS: 3
OK
PDU mode (+CMGF=0):
AT+CMSS=<index>
+CMSS: <mr>[,<ackpdu>]
OK
AT+CMSS=302
+CMSS: 4
OK
Test
AT+CMSS=?
OK

Defined values

ParameterTypeDescription
<index>
Number
Storage position
<da>
String
Destination address
<toda>
Number
Type of address of <da> - octet
<mr>
Number
Message reference
<scts>
String
3GPP TS 23.040 TP-Service-Centre-Time-Stamp [33] in time-string format (see <dt>).
<ackpdu>
String
See the 3GPP TS 23.040 [33] RP-User-Data element of RP-ACK PDU; format is same as for <PDU> in case of SMS.

Notes

  • The <toda> parameter is ignored.

Delete message +CMGD

+CMGD
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
partial
Yes
No
No

Description

Deletes the message from the preferred message storage <mem1>, if <flag>=0 or not present, in location <index>. Otherwise the messages are deleted following the rules specified by <flag>.
If the <index> value is out of range (it depends on AT+CPMS command setting), then the "+CMS ERROR: Invalid memory index" error result code is returned.
When deleting a message from an empty location, the module returns the "OK" final result code.
It is possible to read SMSes in "ME" also without the PIN insertion (no access to SIM is required when <mem1>= "ME").

Syntax

TypeSyntaxResponseExample
Set
AT+CMGD=<index>[,<flag>]
OK
AT+CMGD=3
OK
Test
AT+CMGD=?
+CMGD: (list of supported <index>s),(list of supported <flag>s)
OK
+CMGD: (1-350),(0-4)
OK

Defined values

ParameterTypeDescription
<index>
Number
Storage position
<flag>
Number
Deletion flag. If present, and different from 0, the <index> parameter is ignored:
  • 0 (default value): delete the message specified in <index>
  • 1: delete all the read messages from the preferred message storage, leaving unread messages and stored mobile originated messages (whether sent or not) untouched
  • 2: delete all the read messages from the preferred message storage and sent mobile originated messages, leaving unread messages and unsent mobile originated messages untouched
  • 3: delete all the read messages from the preferred message storage, sent and unsent mobile originated messages leaving unread messages untouched
  • 4: delete all the messages from the preferred message storage including unread messages

Notes

  • The test command returns list of occupied memory indexes e.g. (0,1,4,5). If there is no occupied memory index, an empty list is returned.

Read message +CMGR

+CMGR
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Returns the message with location value <index> from message storage <mem1> to the DTE.
The parameters <tooa>, <fo>, <pid>, <dcs>, <sca>, <tosca>, <length>, <cdata> shall be displayed only if AT+CSDH=1 is set.
The syntax AT+CMGR=0 allows to display an SMS class 0 if it is signalized to MT, because no MMI is available in the MT (see also the +CNMI AT command notes).
If the <index> value is out of range (it depends on AT+CPMS command setting) or it refers to an empty position, then "+CMS ERROR: invalid memory index" error result code is returned.
It is possible to read SMSes in "ME" also without the PIN insertion (no access to SIM is required when <mem1>= "ME").

Syntax

TypeSyntaxResponseExample
Set
Text mode (+CMGF=1):
AT+CMGR=<index>
SMS-DELIVER
+CMGR: <stat>,<oa>,[<alpha>],<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]
<data>
OK
AT+CMGR=303
+CMGR: "REC READ","+393488535999",,"07/04/05,18:02:28+08",145,4,0,0,"+393492000466",145,93
You have a missed call. Free information provided by your operator.
OK
SMS-SUBMIT
+CMGR: <stat>,<da>,[<alpha>][,<toda>,<fo>,<pid>,<dcs>,[<vp>],<sca>,<tosca>,<length>]
<data>
OK
SMS-STATUS-report
+CMGR: <stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st>
OK
SMS-COMMAND
+CMGR: <stat>,<fo>,<ct>[,<pid>,[<mn>],[<da>],[<toda>],<length>
[<cdata>]]
OK
CBM storage
+CMGR: <stat>,<sn>,<mid>,<dcs>,<page>,<pages>
<data>
OK
PDU mode (+CMGF=0):
AT+CMGR=<index>
+CMGR: <stat>,[<alpha>],<length>
<pdu>
OK
AT+CMGR=1
+CMGR: 1,,40
0791934329002000040C9193230982661400008070328045218018D4F29CFE06B5CBF379F87C4EBF41E434082E7FDBC3
OK
Test
AT+CMGR=?
OK

Defined values

ParameterTypeDescription
<index>
Number
Storage position
<stat>
Number
  • 0: in PDU mode or "REC UNREAD" in text mode: received unread SMS
  • 1: in PDU mode or "REC READ" in text mode: received read SMS
  • 2: in PDU mode or "STO UNSENT" in text mode: stored unsent SMS
  • 3: in PDU mode or "STO SENT" in text mode: stored sent SMS
<oa>
String
Originator address
<alpha>
String
Alphanumeric representation of <da> or <oa> corresponding to the entry found in the phonebook 3GPP TS 24.008 [12]. The parameter is not managed.
<scts>
String
Service center time stamp in time-string format, see <dt>
<tooa>
Number
Type of address of <oa> - octet
<fo>
Number
First octet of the SMS TPDU (see 3GPP TS 23.040 [33])
<pid>
Number
TP-Protocol-Identifier (default 0); see the 3GPP TS 23.040 [33]
<dcs>
Number
Data Coding Scheme
<sca>
String
Service center address field
<tosca>
Number
Type of address of <sca> - octet in Number format (for more details see the 3GPP TS 24.008 [12]); default 145 when string includes '+', otherwise default 129
<length>
Number
Two meanings:
  • in text mode: number of characters
  • in PDU mode: PDU’s length in octets without the Service Center’s address. In example 039121430100038166F6000004E374F80D: this is a PDU with Service Center’s number +1234, that generates the address 03912143 (4 octets). Thus in this case <length> = 13.
<data>
String
In the case of SMS: 3GPP TS 23.040 [33] TP-User-Data in text mode responses; format:
  • if <dcs> indicates that 3GPP TS 23.038 [36] GSM 7 bit default alphabet is used:
    • if TE character set other than "HEX" (see +CSCS command description): ME/TA converts GSM alphabet into current TE character set according to rules of Annex A
    • if TE character set is "HEX": ME/TA converts each 7-bit character of GSM 7 bit default alphabet into two IRA character long hexadecimal number (e.g. character Æ (GSM 7 bit default alphabet 28) is presented as 1C (IRA 49 and 67))
  • if <dcs> indicates that 8-bit or UCS2 data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
In the case of CBS: 3GPP TS 23.041 [35] CBM Content of Message in text mode responses; format:
  • if <dcs> indicates that 3GPP TS 23.038 [36] GSM 7 bit default alphabet is used:
    • if TE character set other than "HEX" (see +CSCS command description): ME/TA converts GSM alphabet into current TE character set according to rules of Annex A
    • if TE character set is "HEX": ME/TA converts each 7-bit character of the GSM 7 bit default alphabet into two IRA character long hexadecimal number
  • if <dcs> indicates that 8-bit or UCS2 data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number
<da>
String
Destination address
<toda>
Number
Type of address of <da> - octet
<vp>
Number
Format depending of the <fo> setting:
  • Relative format: validity period starting from when the SMS is received by the SMSC, in range 0-255 (default value 167); for more details see the 3GPP TS 23.040 [33]
    <vp>
    Validity period value
    0 to 143
    (TP-VP + 1) x 5 minutes (i.e. 5 minutes intervals up to 12 hours)
    144 to 167
    12 hours + ((TP-VP -143) x 30 minutes)
    168 to 196
    (TP-VP - 166) x 1 day
    197 to 255
    (TP-VP - 192) x 1 week
  • Absolute format: absolute time of the validity period termination in string format ("yy/MM/dd,hh:mm:ss+zz") (see the 3GPP TS 23.040 [33]); the time zone is expressed in steps of 15 minutes. The range goes from -48 to +56
<mr>
Number
Message reference
<ra>
String
Recipient address field
<tora>
Number
Type of address of <ra> - octet
<dt>
String
Discharge time in format "yy/MM/dd,hh:mm:ss+zz"; the time zone is expressed in steps of 15 minutes. The range goes from -48 to 56
<st>
Number
Status of an SMS STATUS-REPORT
<ct>
Number
TP-Command-Type (default 0)
<mn>
Number
See the 3GPP TS 23.040 [33] TP-Message-Number in integer format
<cdata>
String
TP-Command-Data in text mode responses
<sn>
Number
CBM serial number
<mid>
Number
CBM message identifier
<page>
Number
3GPP TS 23.041 [35] CBM Page Parameter bits 4-7 in integer format
<pages>
Number
3GPP TS 23.041 [35] CBM Page Parameter bits 0-3 in integer format
<pdu>
String
Protocol data unit: each 8-bit octet is presented as two IRA character long hexadecimal numbers, e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65)

List message +CMGL

+CMGL
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Returns SMS messages with status value <stat> from message storage <mem1> to the DTE. If status of the received message is "received unread", status in the storage changes to "received read".
It is possible to read SMSes in "ME" also without the PIN insertion (no access to SIM is required when <mem1>= "ME").

Syntax

TypeSyntaxResponseExample
Set
Text mode (+CMGF=1):
AT+CMGL[=<stat>]
Command successful and SMS-DELIVERs:
+CMGL: <index>,<stat>,<oa>,[<alpha>],[<scts>][,<tooa>,<length>]
<data>
[+CMGL: <index>,<stat>,<oa>,[<alpha>],[<scts>][,<tooa>,<length>]<data>[…​]]
OK
AT+CMGL
+CMGL: 303,"REC READ","+393401234999",,"08/08/06,10:01:38+08"
You have a missed call. Free information provided by your operator.
OK
Command successful and SMS-SUBMITs:
+CMGL: <index>,<stat>,<da>,[<alpha>],[<toda>, <length>]
<data>
[+CMGL: <index>,<stat>,<da>,[<alpha>],[<toda>, <length>]<data>[…​]]
OK
Command successful and SMS-STATUS-REPORTs:
+CMGL: <index>,<stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st>
[+CMGL: <index>,<stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st> […​]]
OK
Command successful and SMS-COMMANDs:
+CMGL: <index>,<stat>,<fo>,<ct>
[+CMGL: <index>,<stat>,<fo>,<ct>[…​]]
OK
Command successful and CBM storage:
+CMGL: <index>,<stat>,<sn>,<mid>,<page>,<pages><data>
[+CMGL: <index>,<stat>,<sn>,<mid>,<page>,<pages>,<data>[…​]]
OK
Set
PDU mode (+CMGF=0):
AT+CMGL[=<stat>]
Command successful:
+CMGL: <index>,<stat>,[<alpha>],<length>
<pdu>
[+CMGL: <index>,<stat>,[<alpha>],<length>]
<pdu> […​]
AT+CMGL=1
+CMGL: 305,1,,57
0791934329001185440ED0D637396C7EBBCB0000909092708024802A050003000303DEA0584CE60205D974791994769BDF3A90DB759687E9F534FD0DA2C9603419
OK
Test
AT+CMGL=?
+CMGL: (list of supported <stat>s)
OK
+CMGL: ("REC UNREAD","REC READ","STO UNSENT","STO SENT","ALL")
OK

Defined values

ParameterTypeDescription
<stat>
Number or String
Number type in PDU mode (default value: 4), or string type in text mode (default value: "ALL"); indicates the status of message in memory:
  • 0: in PDU mode or "REC UNREAD" in text mode: received unread SMS messages
  • 1: in PDU mode or "REC READ" in text mode: received read SMS messages
  • 2: in PDU mode or "STO UNSENT" in text mode: stored unsent SMS messages
  • 3: in PDU mode or "STO SENT" in text mode: stored sent SMS messages
  • 4: in PDU mode or "ALL" in text mode: all SMS messages
<index>
Number
Storage position
<oa>
String
Originator address
<alpha>
String
Alphanumeric representation of <da> or <oa> corresponding to the entry found in the phonebook 3GPP TS 24.008 [12]. The parameter is not managed.
<scts>
String
Service center time stamp in time-string format; see the <dt> parameter
<tooa>
Number
Type of address of <oa> - octet
<length>
Number
Two meanings:
  • in text mode: number of characters
  • in PDU mode: PDU’s length in octets without the Service Center’s address. In example 039121430100038166F6000004E374F80D: this is a PDU with Service Center’s number +1234, that generates the address 03912143 (4 octets). Thus in this case <length> = 13.
<data>
String
This is the TP-User-Data in text mode; the decoding depends on the DCS (Data Coding Scheme) and the FO (First Octet) of the SMS header 3GPP TS 23.040 [33]; format:
  • if DCS indicates that 3GPP TS 23.038 [36] GSM 7 bit default alphabet is used:
    • if TE character set other than "HEX" (see the +CSCS AT command description): ME/TA converts GSM alphabet into current TE character set according to rules of Annex A
    • if TE character set is "HEX": ME/TA converts each 7-bit character of GSM 7 bit default alphabet into two IRA character long hexadecimal number (e.g. character Æ (GSM 7 bit default alphabet 28) is presented as 1C (IRA 49 and 67))
  • if DCS indicates that 8-bit or UCS2 data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
In the case of CBS: 3GPP TS 23.041 [35] CBM Content of Message in text mode responses; format:
  • if DCS indicates that 3GPP TS 23.038 [36] GSM 7 bit default alphabet is used:
    • if TE character set other than "HEX" (see the +CSCS AT command description): ME/TA converts GSM alphabet into current TE character set according to rules of Annex A
    • if TE character set is "HEX": ME/TA converts each 7-bit character of the GSM 7 bit default alphabet into two IRA character long hexadecimal number
if DCS indicates that 8-bit or UCS2 data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number
<da>
String
Destination address
<toda>
Number
Type of address of <da> - octet
<fo>
Number
First octet of the SMS TPDU (see 3GPP TS 23.040 [33])
<mr>
Number
Message reference
<ra>
String
Recipient address field
<tora>
Number
Type of address of <ra> - octet
<dt>
String
Discharge time in format "yy/MM/dd,hh:mm:ss+zz"; the time zone is expressed in steps of 15 minutes. The range goes from -48 to 56
<st>
Number
Status of an SMS STATUS-REPORT
<ct>
Number
TP-Command-Type (default 0)
<sn>
Number
CBM serial number
<mid>
Number
CBM message identifier
<page>
Number
3GPP TS 23.041 [35] CBM Page Parameter bits 4-7 in integer format
<pages>
Number
3GPP TS 23.041 [35] CBM Page Parameter bits 0-3 in integer format
<pdu>
String
Protocol data unit: each 8-bit octet is presented as two IRA character long hexadecimal numbers, e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65)
<dcs>
Number
Data Coding Scheme

Notes

  • When parameter <stat> is omitted, the default value will be 0 (if PDU mode is active) or "REC UNREAD" (if text mode is active).
  • The <stat> parameter is blank in SMS-STATUS-report displaying case.

Read concatenated message +UCMGR

+UCMGR
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Returns the message with location value <index> from message storage <mem1> to the DTE and shows additional information when the message is a segment of a concatenated one:
  • SMS-DELIVER: the parameters <tooa>, <fo>, <pid>, <dcs>, <sca>, <tosca>, <length> shall be displayed only if +CSDH: 1.
  • SMS-SUBMIT: the parameters <toda>, <fo>, <pid>, <dcs>, <vp>, <sca>, <tosca>, <length> shall be displayed only if +CSDH: 1.
  • SMS-COMMAND: <pid>, <mn>, <da>, <toda>, <length>, <cdata> shall be displayed only if +CSDH: 1.
The syntax AT+UCMGR=0 allows to display an SMS class 0 if it is signalized to MT, because no MMI is available in the MT (see also the +CNMI AT command notes).
If the received message status is "received unread", the status in the storage changes to "received read".
The command is supported only for text mode (+CMGF: 1).
If the <index> value is out of range (it depends on the preferred message storage, +CPMS command, settings) or it refers to an empty position, then the "+CMS ERROR: invalid memory index" error result code is returned.
It is possible to read SMSes in "ME" also without the PIN insertion (no access to SIM is required when <mem1>= "ME").

Syntax

TypeSyntaxResponseExample
Set
AT+UCMGR=<index>
SMS-DELIVER
+UCMGR: <stat>,<oa>,[<alpha>],<scts>[,<tooa>, <fo>,<pid>,<dcs>,<sca>,<tosca>,<length>][,<seq>,<max>,<iei>,<ref>]
<data>
OK
AT+UCMGR=1
+UCMGR: "REC READ","+393488535999",,"07/04/05,18:02:28+08",145,4,0,0,"+393492000466",145,153,1,2,0,127
u-blox reserves all rights to this document and the information contained herein. Reproduction, use or disclosure to third parties without express permis
OK
SMS-SUBMIT
+UCMGR: <stat>,<da>,[<alpha>][<toda>,<fo>,<pid>,<dcs>,[<vp>],<sca>,<tosca>,<length>][,<seq>,<max>,<iei>,<ref>]
<data>
OK
SMS-STATUS-report
+UCMGR:<stat>,<fo>,<mr>,[<ra>],[<tora>]<scts><dt>,<st>
OK
SMS-COMMAND
+UCMGR: <stat>,<fo>,<ct>[,<pid>,[<mn>],[<da>],[<toda>],<length>
[<cdata>]]
OK
CBM storage
+UCMGR: <stat>,<sn>,<mid>,<dcs>,<page>,<pages>
<data>
OK
Test
AT+UCMGR=?
OK

Defined values

ParameterTypeDescription
<index>
Number
Storage position
<stat>
String
Indicates the status of message in memory:
  • "REC UNREAD": received unread SMS
  • "REC READ": received read SMS
  • "STO UNSENT": stored unsent SMS
  • "STO SENT": stored sent SMS
<oa>
String
Originator address
<alpha>
String
Alphanumeric representation of <da> or <oa> corresponding to the entry found in the phonebook 3GPP TS 24.008 [12]. The parameter is not managed.
<scts>
String
Service center time stamp in time-string format, refer to <dt>
<tooa>
Number
Type of address of <oa> - octet
<fo>
Number
First octet of the SMS TPDU (see 3GPP TS 23.040 [33])
<pid>
Number
TP-Protocol-Identifier (default 0); see 3GPP TS 23.040 [33]
<dcs>
Number
Data Coding Scheme
<sca>
String
Service center address field
<tosca>
Number
Type of address of <sca> - octet in Number format (for more details see 3GPP TS 24.008 [12]); default 145 when string includes '+', otherwise default 129
<length>
Number
Number of characters
<seq>
Number
Sequence number of the current short message (1-255)
<max>
Number
Maximum number of short messages in the concatenated short message (1-255)
<iei>
Number
Information Element Identifier, the possible values are the following:
  • 0: Concatenated short messages, 8-bit reference number
  • 8: Concatenated short messages, 16-bit reference number
<ref>
Number
Concatenated short message reference number:
  • 0-255: concatenated short messages, 8-bit reference number case
  • 0-65535: concatenated short messages, 16-bit reference number case
<data>
String
In the case of SMS: 3GPP TS 23.040 [33] TP-User-Data in text mode responses; format:
  • if <dcs> indicates that 3GPP TS 23.038 [36] GSM 7 bit default alphabet is used:
    • if TE character set other than "HEX" (see the +CSCS AT command description): ME/TA converts GSM alphabet into current TE character set according to rules of 3GPP TS 27.005 [34] Annex A
    • if TE character set is "HEX": ME/TA converts each 7-bit character of GSM 7 bit default alphabet into two IRA character long hexadecimal number (e.g. character Æ (GSM 7 bit default alphabet 28) is presented as 1C (IRA 49 and 67))
  • if <dcs> indicates that 8-bit or UCS2 data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))
In the case of CBS: 3GPP TS 23.041 [35] CBM Content of Message in text mode responses; format:
  • if <dcs> indicates that 3GPP TS 23.038 [36] GSM 7 bit default alphabet is used:
    • if TE character set other than "HEX" (see the +CSCS AT command description): ME/TA converts GSM alphabet into current TE character set according to rules of 3GPP TS 27.005 [34] Annex A
    • if TE character set is "HEX": ME/TA converts each 7-bit character of the GSM 7 bit default alphabet into two IRA character long hexadecimal number
if <dcs> indicates that 8-bit or UCS2 data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number
<da>
String
Destination address
<toda>
Number
Type of address of <da> - octet
<vp>
Number
Format depending of the <fo> setting:
  • Relative format: validity period starting from when the SMS is received by the SMSC, in range 0-255 (default value 167); for more details see 3GPP TS 23.040 [33]
    <vp>
    Validity period value
    0 to 143
    (TP-VP + 1) x 5 minutes (i.e. 5 minutes intervals up to 12 hours)
    144 to 167
    12 hours + ((TP-VP -143) x 30 minutes)
    168 to 196
    (TP-VP - 166) x 1 day
    197 to 255
    (TP-VP - 192) x 1 week
  • Absolute format: absolute time of the validity period termination in string format ("yy/MM/dd,hh:mm:ss+zz") (refer to 3GPP TS 23.040 [33]); the time zone is expressed in steps of 15 minutes. The range goes from -48 to +56
<mr>
Number
Message reference
<ra>
String
Recipient address field
<tora>
Number
Type of address of <ra> - octet
<scts>
String
Service center time stamp in time-string format, refer to <dt>
<dt>
String
Discharge time in format "yy/MM/dd,hh:mm:ss+zz"; the time zone is expressed in steps of 15 minutes. The range goes from -48 to 56
<st>
Number
Status of an SMS STATUS-REPORT
<ct>
Number
TP-Command-Type (default 0)
<mn>
Number
3GPP TS 23.040 [33] TP-Message-Number in integer format
<mid>
Number
CBM message identifier
<cdata>
String
TP-Command-Data in text mode responses
<sn>
Number
CBM serial number
<page>
Number
3GPP TS 23.041 [35] CBM page parameter bits 4-7 in integer format
<pages>
Number
3GPP TS 23.041 [35] CBM page parameter bits 0-3 in integer format

Send concatenated message +UCMGS

+UCMGS
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No

Description

Sends one segment of a concatenated message from a DTE to the network (SMS-SUBMIT). The message reference value <mr> is returned to the DTE for a successful message delivery. <Ctrl-Z> indicates that the SMS shall be sent, while <ESC> indicates aborting of the edited SMS.
The command is supported only for text mode (+CMGF: 1).
The entered text is preceded by a ">" (Greater-Than sign) character, and this indicates that the interface is in "text enter" mode.

Syntax

TypeSyntaxResponseExample
Set
AT+UCMGS=<da>,[<toda>],<seq>,<max>,<iei>,<ref><CR>
text is entered<Ctrl-Z/ESC>
+UCMGS: <mr>
OK
AT+UCMGS="0171112233",,1,2,0,127<CR>
> u-blox reserves all rights to this document and the information contained herein. Reproduction, use or disclosure to third parties without express permis<Ctrl-Z>
+UCMGS:2
OK
AT+UCMGS="0171112233",,2,2,0,127<CR>
> sion is strictly prohibited.<Ctrl-Z>
+UCMGS:3
OK
Test
AT+UCMGS=?
OK

Defined values

ParameterTypeDescription
<da>
String
Destination address
<toda>
Number
Type of address of <da> - octet
<seq>
Number
Sequence number of the current short message (1-255)
<max>
Number
Maximum number of short messages in the concatenated short message (1-255)
<iei>
Number
Information Element Identifier, the possible values are the following:
  • 0: concatenated short messages, 8-bit reference number
  • 8: concatenated short messages, 16-bit reference number
<ref>
Number
Concatenated short message reference number:
  • 0-255: concatenated short messages, 8-bit reference number case
  • 0-65535: concatenated short messages, 16-bit reference number case
<text>
String
SMS string
<mr>
Number
Message reference

Notes

  • Only <iei>=0 is supported.
  • The <toda> parameter is ignored.
  • If the command cannot be executed within 60 s from the entrance into SMS mode (e.g. because <Ctrl-Z> or <ESC> are not issued), an error result code is returned.

Inline send message +USMSSEND

+USMSSEND
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
Full
Yes
No
No

Description

Sends a message from a DTE to the network without using the character <Ctrl-Z>. The message reference value <mr> is returned in case of successful message delivery. Both text and PDU modes are supported, but only the mode currently configured on the AT terminal by +CMGF will be accepted.

Syntax

TypeSyntaxResponseExample
Set
Text mode (+CMGF:1):
AT+USMSSEND=<mode>,<da>,[<toda>],<text>
+CMGS: <mr>
OK
AT+USMSSEND=1,"0171112233",,"This is the text"
+CMGS: 2
OK
PDU mode (+CMGF:0):
AT+USMSSEND=<mode>,PDU is given
+CMGS: <mr>
OK
AT+USMSSEND=0,"039121430100038166F6000004E374F80D"
+CMGS: 2
OK
Test
AT+USMSSEND=?
+USMSSEND: (1),("da"),(128,129,145,161,177,193),(160)
OK

Defined values

ParameterTypeDescription
<mode>
Number
Indicates the format of messages
  • 0: PDU mode
  • 1: text mode
<da>
String
Destination address
<toda>
Number
Type of address of <da> - octet, the default value is 0 ("unknown").
<text>
String
SMS string, the maximum length is 160 characters.
<mr>
Number
Message reference
<PDU>
String
Protocol Data Unit: each 8-bit octet of the PDU must be written as two IRA character long hexadecimal numbers, e.g. octet with integer value 42 must be written as two characters 2A (IRA 50 and 65). The maximum PDU length is 180 octets without the Service Center’s address.

Notes

  • The <da> string length depends on the charset (see +CSCS AT command), the maximum length is up to 40 characters.
  • The <toda> parameter is ignored.

Set text mode parameters +CSMP

+CSMP
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No

Description

Selects values for additional parameters needed when an SMS is sent to the network or placed in a storage when text format message mode is selected. For more details see the 3GPP TS 23.038 [36] and the 3GPP TS 23.040 [33].

Syntax

TypeSyntaxResponseExample
Set
AT+CSMP=<fo>,<vp>[,<pid>[,<dcs>]]
OK
AT+CSMP=17,167,0,0
OK
Read
AT+CSMP?
+CSMP: <fo>,<vp>,<pid>,<dcs>
OK
+CSMP: 17,167,0,0
OK
Test
AT+CSMP=?
OK

Defined values

ParameterTypeDescription
<fo>
Number
First octet of the SMS TPDU (see 3GPP TS 23.040 [33]). The factory-programmed value is 17.
<vp>
Number
Format depending on the values of the bit3/bit4 of the <fo> (SMS-SUBMIT case):
Bit 3
Bit 4
Format
0
0
Validity period not present
0
1
Validity period present, relative format
1
0
Reserved
1
1
Validity period present, absolute format
  • Relative format: validity period, counted from when the SMS-SUBMIT is received by the SMSC, in range 0-255 (the factory-programmed value is 167); for more details see the 3GPP TS 23.040 [33]
    <vp>
    Validity period value
    0 to 143
    (TP-VP + 1) x 5 minutes (i.e. 5 minutes intervals up to 12 hours)
    144 to 167
    12 hours + ((TP-VP -143) x 30 minutes)
    168 to 196
    (TP-VP - 166) x 1 day
    197 to 255
    (TP-VP - 192) x 1 week
  • Absolute format: absolute time of the validity period termination in string format ("yy/MM/dd,hh:mm:ss+zz") (see the 3GPP TS 23.040 [33]); the time zone is expressed in steps of 15 minutes. The range goes from -48 to +56
<pid>
Number
TP-Protocol-Identifier (factory-programmed value: 0); see the 3GPP TS 23.040 [33]
<dcs>
Number
Data Coding Scheme. The factory-programmed value is 0.

Notes

  • Read command first reads parameter settings from NVM and then from the SIM. If parameter settings exist in the SIM, they take precedence.
  • Write command first writes parameter settings to NVM and then to the SIM.

Service center address +CSCA

+CSCA
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No

Description

Updates the SMSC address, through which mobile originated SMSes are transmitted. In text mode the setting is used by send and write commands. In PDU mode the setting is used by the same commands, but only when the length of SMSC address coded into <pdu> parameter equals zero.

Syntax

TypeSyntaxResponseExample
Set
AT+CSCA=<sca>[,<tosca>]
OK
AT+CSCA="0170111000",129
OK
Read
AT+CSCA?
+CSCA: <sca>,<tosca>
OK
+CSCA: "",129
OK
Test
AT+CSCA=?
OK

Defined values

ParameterTypeDescription
<sca>
String
Service center address.
<tosca>
String
Type of address of <sca> (for more details refer to 3GPP TS 24.008 [12]); the default value is 145 when string includes '+', otherwise the default is 129.

Notes

  • The <tosca> parameter is an octet in integer format.

Select cell broadcast message types +CSCB

+CSCB
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
partial
Yes
No

Description

Selects which types of CBM’s are to be received by the MT.

Syntax

TypeSyntaxResponseExample
Set
AT+CSCB=[<mode>[,<mids>[,<dcss>]]]
OK
AT+CSCB=0,"1,5,10-11,40",""
OK
Read
AT+CSCB?
+CSCB: <mode>,<mids>,<dcss>
OK
+CSCB: 0,"",""
OK
Test
AT+CSCB=?
+CSCB: (list of supported <mode>s)
OK
+CSCB: (0-1)
OK

Defined values

ParameterTypeDescription
<mode>
Number
Allowed values:
  • 0 (default value and factory-programmed value): message types specified in <mids> and <dcss> accepted
  • 1: message types specified in <mids> and <dcss> not accepted
<mids>
String
Contains all possible combinations of CBM message identifiers (<mid>). See the 3GPP TS 23.041 [35], chapter 9.4. When RAT is UMTS up to 2048 message identifiers can be set; defining an exceeding combination will not cause an error result code and exceeding values will be ignored.
<dcss>
String
Contains all possible combinations of CBM data coding schemes (<dcs>). See the 3GPP TS 23.038 [36], chapter 5.

Notes

  • If <mode>=0 and <mids> is an empty string, receiving of CB SMS is stopped.
  • The <mode> parameter is mandatory in the set command.
  • PIN is not required.
  • The maximum number of <mids> and <dcss> is 5.
  • The <mids> and <dcss> are not saved in NVM or SIM and only kept for limited time for duplicate check, hence these will be lost on reboot. For Japanese operators the values are kept for 1 hour. For the rest of operators the values are kept for 24 hours.
LEXI-R10801D-00B
  • The command settings are restored to the factory-programmed values after any MNO profile change (see +UMNOPROF).

More messages to send +CMMS

+CMMS
Modules
All products
Attributes
Syntax
PIN required
Settings saved
Can be aborted
Response time
Error reference
full
Yes
No
No
-

Description

Controls the continuity of SMS relay protocol link. When enabled, multiple SMS messages can be sent much faster as link is kept open.

Syntax

TypeSyntaxResponseExample
Set
AT+CMMS=[<mode>]
OK
AT+CMMS=2
OK
Read
AT+CMMS?
+CMMS: <mode>
OK
+CMMS: 2
OK
Test
AT+CMMS=?
+CMMS: (list of supported <mode>s)
OK
+CMMS: (0-2)
OK

Defined values

ParameterTypeDescription
<mode>
Number
Allowed values:
  • 0 (default value): disabled
  • 1: keep enabled until the time between the response of the latest message send command (such as +CMGS) and the next send command exceeds 5 s, then close the link and switch <mode> automatically back to 0
  • 2: keep permanently enabled. The link is closed after each send sequence, but <mode> is not switched back to 0

Notes

  • The <mode> parameter is mandatory in the set command.
  • PIN is not required.
LEXI-R10801D-00B
  • The command settings are restored to the factory-programmed values after any MNO profile change (see +UMNOPROF).
Last updated: 13 January 2025
Need help?Contact Support
Questions?Contact us