read new sms stored position …

11 thoughts on “read new sms stored position …

  1. Hi. I need help with some AT command.

    I after power on gsm ,  set memory for SMS SIM.

    If receive GSM module  (GE865) new SMS then store it to SIM.


    repeated control +CIND status and checks whether the state is not indicated in the memory is received unread SMS. If find that in memory is stored unread sms, can be detected in what position? 

    is possible to use for this +CNMI commamd or some else??
    I don’t want receive string (inform about new sms is stored to mem and position) from gsm module anytime, only if want.

    is it possible??




    1. With +CNMI you get such indication as URC not as a request answer; I don’t think you can have such information with an afterward request, but you can find the total and used storage memory capacity with AT+CPMS.

      1. hmm. I test it now, with +CPMS module return how many is used and how many is available . but don’t inform what position are message.

        I can use +CMGL="REC UNREAD" and receive all unread message. with information of position but I don’t have big buffer for read all unread sms .

        is possible  to set any parameter to don’t return text or define short size (message text)  if use +CMGL ???



        1. No is not possible. Some ideas:

          If your buffer is short but you have time read each position with AT+CMGR=<index> one by one until you find the one you need.

          Or, after each CIND new indication, list only new message(s), then read it/them – if you are doing this right and fast you have chances to have only one or few messages to process.



          1. yes , my cycle process is 1sec. every one sec I receive all information status about gsm. if find indicator for unread sms then can use +CMGL message and read position. but how is delay between received two SMS?? if is more then  2 sec then I can read all unread sms in CMGL command and return still only one SMS.
            I try it. 

          2. 1 second looks too fast for a m2m GSM/GPRS application, not many designs need and can process such a rate. I would re-think the application workflow, of course if your application that indeed needs speedy actions. Maybe switch to an event-driven model instead of this linear procedural one.


            As for SMS, maybe you can impose some delays between messages at sender, but even in this case the network can deliver them in bursts.

          3. on previous post I write what all I use (at command) every sec. is it fast for GE865 module or no. is dangerous using this (cycle speed time 1 sec) or can use. I can set this time more then 1sec but I want fast respond.



          4. The possible response time of various commands are given in AT Commands Reference Guide, you should take that in account.

          5. my question is not for maximal timeout of some at command , question is if it’s not problem to send every one sec request to module. if module don’t answer to some time (my timeout) then I wait and send control command (just AT). if not respond then with power pin switch module off and power on again (initialize module).


          6. Is your choice. The healthy procedure is to wait the documented answer time (not your timeout which can be smaller), then proceed further. If a command takes some time to answer but you don’t wait you will consider the module dead when in fact is not, leading to unnecessary restarts.

          7. yes , that is true. but if wait for max timeout for some at command then application will be very slow. If make call to any number I expect to start calling to 3sec.