Gprs problem

Hi
I have a problem with my gprs connection. I send data via http(GPRS) to a server. I connect to GPRS only when i need to make a transmission. The problem is that (this is according to my gsm operator) the sim card at some point (probably when there is a loss/regain of gsm signal) remains stuck in one cell. Meaning that although the device is already somewhere else (in a different cell) the sim card still tries to connect to the old cell were it thinks it is. Because of this the gprs bearer fails to be started and i can’t start gprs. The restart of the application doesn’t solve this problem. The problem is solved only by calling the mobile operator and they reset the sim card. Is there a way to fix these problem?

I’ve seen this problem periodically. However, it’s not the mobile that gets stuck its the database on the network side that has the problem.
I was told that the network thinks its on one cell, the mobile hears a different cell and thinks its on that tower. Thus things don’t work in either direction.
In my case the mobiles were stopped at fixed location for a couple of months when the problem occured. In these cases it always required a power cycle of the device to get do a re-registration.
Once in a while they need to do a “flush” at the network side (basically they reset the SIM).

You might want to add into your application a CFUN=0 and restart the radio periodically or when the problem occurs.

I’ve read the documentation for at+cfun=0 and i’m a little puzzled regarding what it does. What is the difference between at+cfun=0 and at+cfun=1. I mean it say that cfun=0 does an imsi detach and sim cannot be accessed , while at+cfun=1 does a restart of the gsm stack an functionality.
Is it safe to say that when a cfun=1 is done it is safer to do a cfun=0 first?

I’m doing a cfun=1 everytime a bearer problem appears shouldn’t this be enough or i didn’t grasp exactly what this cfun command does?

I am doing cfun=0 when the problem occurs but it doesn’t seem to help solve the problem. Any other suggestion?

AT+CFUN=0 should cause the module to detach in an orderly fashion from the network;

AT+CFUN=1 should completely restart the GSM stack - so, if the network still thinks the unit is in another cell, then the problem must lies in the network - as ianmceachern said.

You need to speak to your network operator about this - if they know how to fix it, they must know what causes it…?

Well actually i talked to the network operator and they said that this thing just occurs, without any known pattern or cause :slight_smile: as far as they know. So i was hopping for a solution on my end.

Using EDGE instead of GPRS could solve this problem? Anybody has some experience in this?