PJSIP wraps the socket, but that's just one part of it. Registrations are kept alive from the client (via the KeepAliveTimeout method), because that's the mobile part -- your IP address will change periodically, and waking up every 10 minutes for a register call is how you tell Asterisk where you are now (plus it's how you keep the SIP registration active). So just make sure you're really getting suspended (as noted before), then make sure you're getting called every 10 minutes to wakeup and re-register -- only after you know those are working should you look further, to make sure the wake-on-incoming-call part is also working. I know you've seen this link, but look at it again: https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW12 -- those first 4 steps are each critical. Wrapping is just one of them.