Trouble reading messages with AT+CMGL="ALL"

user1024858 picture user1024858 · Dec 19, 2012 · Viewed 10.2k times · Source

I'm programming a modem using AT commands. When I execute AT+CMGL="ALL", sometimes, it does not return anything. At other times, it returns the list of messages.

Could you tell me why?

Answer

hlovdal picture hlovdal · Apr 1, 2013

It depends on whether the phone is configured to PDU mode or text mode. The 27.005 standard says:

<stat> integer type in PDU mode (default 0), or string type in text mode (default
"REC UNREAD"); indicates the status of message in memory; defined values:
       0 "REC UNREAD"   received unread message (i.e. new message)
       1 "REC READ"     received read message
       2 "STO UNSENT"   stored unsent message (only applicable to SMs)
       3 "STO SENT"     stored sent message (only applicable to SMs)
       4 "ALL"          all messages (only applicable to +CMGL command)

So you should run

AT+CMGF=1
AT+CMGL="ALL"

(Possibly also AT+CPMS to be sure of which storage you are reading from (notice that you probably want to specify both <mem1> and <mem2))