From version < 51.1 >
edited by Simon Morlat
on 2020/06/25 16:35
To version < 51.2 >
edited by Simon Morlat
on 2020/06/25 16:48
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -104,8 +104,13 @@
104 104  
105 105  An iOS application has in general a very limited capability to run in background, for example to keep a connection to a SIP server in order to receive calls and IM at any time. **When the application goes in background, the network connections are killed and the application no longer executes.**
106 106  
107 -The solution to circumvent this limitation is to rely on Apple's push notification systems. The push notification first resumes the app in background, that can then connect to the SIP service and retrieve the pending INVITE or MESSAGE request.
107 +The solution to circumvent this limitation is to rely on **Apple's push notification** system. The push notification first launch or resumes the app, that can then connect to the SIP service and retrieve the pending INVITE or MESSAGE request. In iOS there are three kinds of push notifications:
108 108  
109 +* The [[Remote Notification>>https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1]], for general purpose notifications
110 +* The [[PushKit notifications>>https://developer.apple.com/documentation/pushkit]], dedicated to VoIP calls. Unlike Remote Push Notifications, they do not display anything by themselves.
111 +* The [[Background Update Notifications>>https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html]], used for service like notifications. They are not real-time and severely rate limited (no more than 3 per hour).
112 +
113 +
109 109  **New limitations and restrictions were added by Apple with Xcode 11 and iOS 13.** These restrictions are:
110 110  
111 111  * **applications can no longer use PushKit kind of push notifications for anything else than presenting a VoIP call with CallKit**. This is disruptive because previously, communication apps were also using PushKit get notified of incoming IM messages. Indeed, PushKit has the main advantage of waking up the application in background without displaying anything to the user. Instead, the application can silently connect to the service, receive the pending message or call, and display it with all its associated data (such as sender or caller ID) to the end-user through either a Callkit call or a notification popup.