Specifications
Chapter 12 – Short Message Service (SMS) Commands
Multi-Tech Systems, Inc. AT Commands for EDGE (E1) Modems (S000474A) 221
12.8 AT+CMGW Write Short Messages to Memory
Description: The execute and write commands transmit a short message (either SMS-DELIVER or SMS-
SUBMIT) from TE to memory storage <mem2>. Memory location <index> of the stored message
is returned. Message status will be set to ‘stored unsent’ unless otherwise given in parameter
<stat>.
After invoking the execute or write command wait for the prompt “>” and then start to write the
message. To save the message simply enter <CTRL-Z>. After the prompt a timer will be started
to observe the input.
To abort writing use <ESC>. Abortion is acknowledged with “OK”, though the message will not
be saved.
Syntax: Test Command: AT+CMGW=?
Response: OK
Exec Command: If text mode (see AT+CMGF=1):
AT+CMGW
Response: <CR> Text can be entered. <CTRL-Z>/<ESC>
+CMGW: <index>
OK
If writing fails:
ERROR
+CMS ERROR: <err>
Write Command: If text mode (see AT+CMGF=1):
AT+CMGW=<oa>/<da>[, [<tooa>/<toda>][, <stat>]]
<CR> Text can be entered.
<CTRL-Z>/<ESC>
Response: +CMGW: <index>
OK
If writing fails, see notes below.
Write Command: If PDU mode (see AT+CMGF=0):
AT+CMGW=<length>[, <stat>]<CR> PDU can be entered. <CTRL-Z>/<ESC>
Response: +CMGW: <index>
OK
If writing fails, see notes below.
Notes:
• If writing fails, for example, when a message is too long, the result code depends on the current setting of the
AT^SM20 command:
If the AT^SM20 <CmgwMode>=1 (factory default) any failure to send a message is responded with "OK".
Users should be aware, that despite the "OK" response, the message will not be written to the selected SMS
storage.
If the AT^SM20 <CmgwMode> equals 0 any failure to write a message is responded with "ERROR".
• If writing fails due to timeout, then
AT^SM20 <CmgwMode>=1 causes "+CMS ERROR: unknown error" to be returned;
AT^SM20 <CmgwMode>=0 causes "+CMS ERROR: timer expired" to be returned.
• Note that some providers do not recognize an @ symbol used in a short message. A widely used alternative is
typing “*” as defined in GSM 03.40 (GPP TS 23.40).
• For baud rates lower than 19200 it is recommended to use the line termination character only (refer to ATS3=
<n>, default <CR>) before entering the text or PDU. Use of the line termination character followed by the
response formatting character (see ATS4= <n>, default <LF>) may cause problems.
• SMS-COMMANDs and SMS-STATUS-REPORTs cannot be stored in text mode.
• All characters entered behind the “>” prompt will be recognized as GSM characters. For example, “Backspace”
(ASCII character 8) does not delete a character, but will be inserted into the short message as an additional
physical character. As a result, the character you wanted to delete still appears in the text, plus the GSM code
equivalent of the Backspace key.
• Message Length in Text Mode
The maximum length of a short message depends on the used coding scheme: It is 160 characters if the 7 bit
GSM coding scheme is used, and 140 characters according to the 8 bit GSM coding scheme.
In case UCS2 character set selected it is highly recommended to set Data Coding Scheme (<dcs> of AT+CSMP)
to 16-bit data, otherwise the length of sms user data is restricted to 88 octets. Even better for messages with
UCS2 character set is the PDU Mode.
• The length of 8-bit data coded short messages has to be greater than 0.
• This command is PIN protected.
• This command is not supported in airplane mode.