24. Deleting SMS Messages from Message Storage (AT+CMGD)

The AT command +CMGD (command name in text: Delete Message) is used to delete SMS message(s) from message storage. The message storage area from which SMS messages are deleted is specified by the +CPMS AT command (command name in text: Preferred Message Storage). Details about the +CPMS AT command can be found in the earlier section "Preferred Message Storage (AT+CPMS)" of this SMS tutorial.


24.1. Syntax of the +CMGD AT Command

The syntax of the +CMGD AT command is: (Optional parameters are enclosed in square brackets.)


+CMGD=index[,flag]


In the above line, index is an integer specifying the location of the SMS message to be deleted from the message storage area by the +CMGD AT command, and flag is an integer specifying whether to delete SMS messages according to their message status. The SMS specification has defined these flag values: 0, 1, 2, 3 and 4.

To find the flag values supported by your GSM/GPRS modem or mobile phone, you can perform a test operation using the +CMGD AT command. See the next section for the details.


24.2. Finding the Supported Indexes and Flag Values

Performing a test operation with the +CMGD AT command allows you to find all indexes that are supported by the index parameter. The test operation may also return all supported values of the flag parameter. Here is the format of the information response returned after the execution of the test command "+CMGD=?": (Optional fields are enclosed in square brackets.)


+CMGD: (list_of_indexes)[,(list_of_flag_values)]


As an example, here is the response returned from my Nokia 6021 mobile phone to Windows' HyperTerminal program after the execution of the test command "+CMGD=?":


AT+CMGD=?
+CMGD: (1-10),(0-4)

OK


From above, we know that the Nokia 6021 mobile phone allows any integer between 1 and 10 to be assigned to the index parameter of the +CMGD AT command. Also, the Nokia 6021 mobile phone supports all of the five flag values defined in the SMS specification.

Do you remember that we described the format of values inside parentheses in the section "Test Command -- Checks Whether a Certain AT Command is Supported"? If not, you may want to go back and have a look. Here are a few examples showing some of the possibilities: "(0-4)", "(0,1,2,3,4)", "(0,2-4)".


24.3. Example Demonstrating How to Use the +CMGD AT Command to Delete SMS Text Messages

Now let's see an example that demonstrates how to use the +CMGD AT command to delete an SMS text message from the message storage area. Suppose you have written an SMS text message to the message storage area by the +CMGW AT command (details about the +CMGW AT command can be found in the earlier section "Writing SMS Messages to Memory / Message Storage (AT+CMGW)" of this SMS tutorial), like this:


AT+CMGW="+85291234567"
> A simple demo of SMS text messaging.
+CMGW: 1

OK


The information response of the +CMGW AT command tells us that the SMS text message is stored in the memory location at index 1. To delete the SMS text message, specify 1 to the index parameter of the +CMGD AT command, like this:

(Important note: Make sure you are writing text messages to and deleting text messages from the same message storage area. If not, you may delete the wrong text message. Details about message storage areas can be found in the earlier section "Preferred Message Storage (AT+CPMS)" of this SMS tutorial.)


AT+CMGD=1
OK


The final result code OK indicates the SMS text message "A simple demo of SMS text messaging." was deleted successfully. If the operation fails, the final result code returned will either be ERROR or +CMS ERROR.

Here is another example. Suppose you want to delete all SMS messages stored in the message storage area. To do this, assign 4 to the flags parameter of the +CMGD AT command. The value assigned to the index parameter does not matter since it will be ignored by the GSM/GPRS modem or mobile phone.


AT+CMGD=1,4
OK


Previous Page Page 43 of 65 Next Page

Contents at a Glance (Click Here for Full Table of Contents)

Feedback Form (ExpandCollapse)

What do you think about this web page?






(Optional) Please provide us more details. For example, suppose you select option 2 above, can you tell us specifically what information is missing? You can also suggest anything that can help us improve this web page.

(Optional) Your name:

(Optional) Your email address:

Please enter again to confirm:

Due to the amount of messages we received, we may not be able to reply to all messages.

A button for going back to the top of this page