Problem Summary: When the app is in the background and a VoIP PushKit notification arrives, we attempt to establish a DTLS handshake over our existing socket. Adding one thing to what Quinn suggested, the first thing I would actually look at here is making sure you understand exactly what actually happened when this failed. In particular, one issue I've seen multiple times is assuming that an issue like this was caused by a network/API problem, when what actually happened was simply that your app suspended before it actually did any useful work. This happens in VoIP apps because the age (introduced in iOS 4) of the VoIP background category means that it's tended to use much longer wake times (~30s) than it really should. Putting that in concrete terms, the system has three different “VoIP Push systems (PKPushRegistry, NEAppPushManager, PTChannelManager) which use a very similar architecture, but which actually have different app suspension behavior. That difference shouldn't matter because we've alwa
Topic:
App & System Services
SubTopic:
Networking
Tags: