Mobile client, f-droid without GCM push, dhtproxy and permanent notification enabled.
Receiving calls seems to work first, but after some hours it stops working.
A guess: Is the dhtproxy properly sending keep-alives to the clients every 14 Minutes? (To avoid NAT Gateway timeouts. Most mobile devices access the Internet through a device operated by the mobile service provider called a NAT (Network Address Translation) gateway. These will typically time out an idle connection after 15 minutes. https://www.isode.com/whitepapers/imap-idle.html)
Edited
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related or that one is blocking others.
Learn more.
Thanks, missing keep-alives would explain it for sure.
The 14 minute intervals are for TCP, UDP would require even shorter intervals. I'm not sure, but think I remember these NAT timeouts to be 2-5 minutes?
A stupid's question, in you PR I only see something with 60 seconds timeout.
Is that really sending keep-alive packages? For TCP connections, I think these are only required to be send like every 14 minutes, if on a private net IP and there was no other traffic, to maintain the NAT routing tables working and continue to be reachable.
In fact the 60 seconds was historic. At the beginning, the DHT proxy was not really good to support a lot of clients. So having a 60 secs timeout allowed to close the connection as soon as possible (the write operation of the socket fails if closed)
I see devices not being usable because they are becoming unreachable, and don't know what you have planned to do about this issue with its now removed milestone.
with the latest fixes of resubscribe, I consider this issue fixed. as soon as there is a new release, please verify it works for you @ringthing, cheers
@terrytw (This was meant for this issue here) The 14 minutes were just a maximum reasonable keep-alive interval I found mentioned. I have no idea what it actually is now.