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

Summary

Details

Page properties
Content
... ... @@ -108,14 +108,13 @@
108 108  
109 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 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).
111 +* The [[Background Update Notifications>>https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app]], used for service like notifications. They are not real-time and severely rate limited (no more than 3 per hour). They are currently not used by Linphone, liblinphone or Flexisip.
112 112  
113 +**New limitations and restrictions were added by Apple with Xcode 11 and iOS 13:**
113 113  
114 -**New limitations and restrictions were added by Apple with Xcode 11 and iOS 13.** These restrictions are:
115 +* **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 tend to also use PushKit to get notified of incoming IM messages. Since they can wake up the app in background, it was convenient to perform background processing before displaying the message to the user.
116 +* **applications receiving a PushKit notification are required to immediately invoke Callkit to display the call to the end-user.** This is disruptive also, because at the time of receiving the push notification, the app has not yet the signaling information about the call (ie, the SIP INVITE). The end user may even accept the call while the INVITE is not yet arrived, in which case the app has to postpone the call acceptance to the actual receiving of the INVITE, and also update the CallKit view with the missing information.
115 115  
116 -* **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.
117 -* **applications receiving a PushKit notification are required to immediately invoke Callkit to display the call to the end-user.** This is disruptive also, because at the time of receiving the push notification, the app has not yet the signaling information about the call (ie, the SIP INVITE). The end user may even accept the call while the INVITE is not yet arrived, in which case the app has to postpone the call acceptance to the actual receiving of the INVITE, and also update the CallKit view with the missing information.
118 -
119 119  The next chapters explain the detailed steps to create a Liblinphone based application that comply with the above requirements. It can be used of course as a guide to upgrade an existing liblinphone based application to iOS 13 / Xcode 11.
120 120  
121 121  (% class="box infomessage" %)