[Twisted-Python] twisted gprs

John Aherne johnaherne at rocs.co.uk
Wed Jan 9 08:25:43 EST 2008


About a year ago we had a look at twisted to do some work with gprs. I got
some useful feedback from that.

However, it's only now we have had a chance to move things forward.

We have done some simple work with wm5/wm6 devices sending GPS data back to
a twisted server.

And we have done various tests sending/receiving messages over gprs to see
what problems we need to overcome.

One problem we have right now to which the solution may be obvious but not
to us is :--

We have a problem at the server end when we put the pda into 'flight mode'.
Thie means that the wireless is switched off and the gprs connection goes
away.

However, the server does not see this connection go away since the network
routers keep the connection up, as far as we can see.

In various tests we have the connection take from 2 - 7 mins before a
disconnection happens. As far as I can see using 'ethereal', the server
decides itself to drop the connection since I do not see a 'FIN' be sent
from anywhere.

On the server I have set a loopingCall running every 20 seconds, so that I
can switch off various parts to see the results.

With the pda not connected, the loopingCall keeps on going and sends between
2 -4 messages without getting an ack back from the pda. Then the server
stops trying to send any data. The loopingCall keeps going but no data goes
out onto the wire. We get upto 16 - 40 loop messages being sent but only the
2-4 go onto the wire.

What I would like to be able to do is to not wait 2-7 minutes before
realising the connection is not working.

I have been through the docs and the api but can't find anything that I can
use.

Is there any call I can make use of to be able to detect the failed send
before the connection finally is broken.


Thanks for any help on this.

John Aherne





More information about the Twisted-Python mailing list