GPRS attach retry mechanism | Telit Cinterion IoT Developer Community
September 4, 2018 - 10:05am, 10465 views
This is more a generic question not directly related to a specific gemalto modem:
In our application sometimes it happens that the network provider detaches the modem from GPRS service while the modem is still registered to the GSM network. We assume that this happens due to GPRS network conquestion but this isn't fully proofen yet.
The reject cause code we receive with AT+CEER is value 7, "GPRS services not allowed".
We observed that in this situation the modem does not invoke any retry or reconnection mechanism by itself, it seems that this should be performed by the application software instead.
My question is: How should a recommended retry mechanism for GPRS attach look like?
What retry intervals should be used to be quickly online again but to avoid high network loads, and should the retry intervals be constant or should they increase in time?
- We observed that in this situation the modem does not invoke any retry or re connection mechanism by itself, it seems that this should be performed by the application software instead.
Yes, in module there is no re connection mechanism, anyway it is forbidden. You can still try it by yourself. Normally that attempt will not limited by module but if you have some special SIM card like "AT&T" there will be limited. In practice there is small probability that you will have it.
- So the question is: If the network does a GPRS detach would AT+CGATT=1 perform a GPRS attach procedure on the network or do I need to deregister/register to the network first(or even perform a CFUN reset) before I can attach to GPRS service again?
Yes. You can always do attach again with AT+CGATT. There is no "blacklist" or "module somehow remember it"
I do not think so you internet services will still alive because socket is down in that way and all context will set up again. In most cases it means new IP address.
About timer between attepts to attach that 24.008 doc recommended:
"The timer value is provided by the network in an ATTACH REJECT, ROUTING AREA UPDATE REJECT, TRACKING AREA UPDATE REJECT or SERVICE REJECT message or as a "Extended wait time" value by the lower layers, or chosen randomly from a default value range of 15 – 30 minutes."
GSMA recommends not more that 60 attempts activate PDP for one hour (TS.34) but it is no for AT+CGACT.
First, thanks for the reference to 24.008.
It includes an explaination what should happen in case the network rejects the connection with cause code "GPRS Servives not allowed":
# 7 (GPRS services not allowed);
The MS shall set the GPRS update status to GU3 ROAMING NOT ALLOWED (and shall store it according to subclause 22.214.171.124) and shall delete any P-TMSI, P-TMSI signature, RAI and GPRS ciphering key sequence number. The SIM/USIM shall be considered as invalid for GPRS services until switching off or the SIM/USIM is removed. The new state is GMM-DEREGISTERED.
According to this description the gsm module will handle the SIM as an invalid SIM and therefore AT+CGATT=1 will NOT force the module to initiate another GPRS attach!!!
Instead, I need to perform a full modem reset to come out of this situation, so against your answer
"Yes. You can always do attach again with AT+CGATT. There is no "blacklist" or "module somehow remember it"
this seems to be NOT true and the modem DOES somehow remember the situation until it gets reset.
Further, I still don't know when should my application retry the GPRS attach after a reset in this situation:
You mentioned to choose it randomly between 15-30minutes but you also mention to do not more than 60 pdp context activations per hour.
Of course, I don't want to do a GPRS attach only. After the attach I like to reopen the pdp context again.
So what is the recommended interval for not having any troubles with the various network operators?
Please don't tell me to ask the network operators because in our project the gsm modems travel through whole europe so I would need to contact all of them.
I get more information from my colleague.
With regard to "# 7 (GPRS services not allowed);" How long you have that URC until restart module you won't able to attach to GPRS. Alternatively you can turn on and off "Airplane mode". And really only network provider can help you with that. But yet you have module which travel trough europe, better way will be use airplane mode or restart module.
For other issues you can use retry as I described you before.
What about the retry interval? If I do a module reset and retry the GPRS attach and the module still gets rejected, how quickly am I allowed to perform the next reset(and thus having a reset loop) until GPRS works again?
Is there a recommendation or minimum delay time I need to insert not to produce to much network load with my reset loop?
Proposed recommendations regarding to the frequency of repeating attach to the network are based on standard mechanisms of network defense against overload which network providers require from us. Complance with this should ensure that we do not exceed the number of attempts that operator allow.
Form 24.008 doc where I mentioned there says about delay from random value between 15 - 30 minutes.