SMS on your Raspberry Pi…
Adapted from : http://www.smssolutions.net/tutorials/gsm/receivesmsat/
This assumes you have set up your sim card, wired your modem correctly to your Pi, and are using a terminal program such as minicom.
You may need to read above and activate your SMS or storage method before the following commands will work.
For FONA, Sim800, Sim808, sim900, and sim908 based modems, the commands below should work out of the box.
Listing the messages
Once you have successfully set the messages storage, you can list the messages available using the list command:
AT+CMGL=”ALL” <ENTER>
Please not that “ALL” has to be send in uppercase on some modems. The modem will respond with a list of decoded SMS messages:
1 2 3 4 5 6 |
+CMGL: 1,"REC UNREAD","+31625012354",,"07/07/05,09:55:16+08" Test message 1 +CMGL: 2,"REC UNREAD","+31625012354",,"07/07/05,09:56:03+08" Test message 2 OK |
The response messages are formatted like this:
+CMGL: <index>,<status>,<from_address>,<mr>,<scts><CRLF><data>
index | The memory index number, use this index to read or delete this message. |
status | The status of this message. For received messages this can be “REC READ” or “REC UNREAD” depending on whether the messages has been read or listed before. |
from_address | The subscriber number of the person who sent the message. |
mr | The reference number of this message. Most modems keep this field empty. |
scts | The time the message was forwarded to this phone or modem. |
data | The actual message data in plain text |
Reading a message
To list a single message, you have to use the read command. You must use the list command first, so you know the indexes of the messages in the storage. For instance, to read the message on memory location ‘2’ use:
AT+CMGR=2 <ENTER>
The modem will list the single message:
1 2 3 4 |
+CMGR: "REC READ","+31625012254",,"07/07/05,09:56:03+08" Test message 2 OK |
Please note that the status of the message is now “REC_READ” instead of “REC_UNREAD” because we read the message.
Deleting a message
Once you have read a message, you can free the memory by deleting the message from the storage. For instance, to delete the message on memory location ‘2’ use:
AT+CMGD=2 <ENTER>
The modem will delete the single message.