+cgatt:0 +cgact:1

I would like some insight on Q2426B status codes.

I have a device that I monitor, after establishing an IP connection. Initially +CGATT and +CGACT report 1. Sometime later (x hours later) +CGATT reverts to 0, while +CGACT remains at 1.

Logically, I am having trouble reconciling this combination of states.

Should I simply ignore +CGACT if +CGATT is 0? Or is my module not behaving properly? Or is +CGACT not dependent on +CGATT?

Thanks,
Greg

Is +CGATT 0 a problem for you?
You could monitor the +CGREG unsolicited messages to obtain the exact time when the change occurs (getting kicked out of GPRS after a few hours is probably normal, at least I see it all the time). And eventually you could then issue a AT+CGATT=1 command to initiate a reconnection to GPRS.

Regards,

wismo_coder

Once I connect, I keep a PPP state machine running with the module. So I do not think I receive unsolicited status messages during PPP.

I am detecting the +CGATT:0 by escaping from the PPP session periodically (+++); querying the status; resuming PPP (ATO).

Is there a better process that should be used to receive unsolicited messages while maintaining a data session?

Thanks,
Greg

Why would you need a GPRS connection if you have a PPP session? Isn’t a PPP session always handled over a GSM data call? Because in that case being connected to GPRS doesn’t make it faster or anything… correct me if I’m wrong!

Regards,

wismo_coder

The GPRS session is established as by ATD99**1#. Prior to that we set the context with AT+CGDCONT=1,“IP”,“my.apn”.

My understanding from a recent thread [PPP clarification] is that the PPP session is our data link to the wireless cpu. The wireless cpu opened the GPRS session at the time of the ATD command. It forwards packets from PPP to IP over GPRS (and back again).

Data speed was not a factor in using GPRS. We are primarily looking for reliable, cost effective communications for a normally low bandwidth application.

Regards,
Greg