From version < 51.28 >
edited by Simon Morlat
on 2020/06/25 18:29
To version < 51.29 >
edited by Simon Morlat
on 2020/06/25 18:32
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -413,22 +413,24 @@
413 413  
414 414  ==== Adding actions in user notifications: UNNotificationContentExtension ====
415 415  
416 -We have implemented the UNNotificationContentExtension app extension in addition of the UNNotificationServiceExtension. We use it to **reply** and **mark as seen** new messages.
416 +Linphone also uses the UNNotificationContentExtension app extension in addition of the UNNotificationServiceExtension, in order to implement the **reply** and **mark as seen** buttons.
417 417  
418 -The user notifications displayed by the NotificationService extension needs a NotificationContent extension to add a **NotificationCategory**as well as some **actions** attached to this category. The categories and actions declared in the main app won't work when the app is in background.
418 +The user notifications displayed by the NotificationService extension need a NotificationContent extension to add a **NotificationCategory **as well as some **actions** attached to this category. The categories and actions declared in the main app won't work when the app is in background.
419 419  
420 -We have implemented the actions **reply** and **mark as seen**. That requires to start an Linphone Core. If the app is in foreground, the NotificationContent extension won't be able to start a Shared Core so the app will handle the actions.
420 +If the app is in foreground, the NotificationContent extension won't be able to start a Shared Core so the app will need to handle the actions.
421 421  
422 -So, for the notifications launched by the NotificationService extension, you need to declare the notification categories in BOTH the NotificationContent extension and the app for the case the NotificationContent extension cant do the processing because the app is in foreground.
422 +To summarize, the notification categories and attached actions must be declared in both the NotificationContent extension and the main app, despite the Notification Service Extension is centralizing the incoming push notifications and the display of the IM.
423 423  
424 -== 7 - Update Contact URI parameters ==
424 +==== Update Contact URI parameters ====
425 425  
426 -In order to get push notification, the iOS app must send its push token(s) to Flexisip. Flexisip can then send a push notification request to the APNs server.
426 +In order to get push notifications, the iOS app must send its push token(s) to the SIP server.
427 427  
428 428  These push paramers are sent in the Contact URI parameter in the REGISTER.
429 429  
430 -We have updated the names and the syntax of the push parameters to follow the RFC 8599 about push notifications. Here are the new parameters we use :
430 +We recommend the syntax and principles of [[RFC8599 - Push Notification with the Session Initiation Protocol>>https://tools.ietf.org/html/rfc8599]], on top of which we had unfortunately to plug extension to cover the specificities of iOS since version 13, because the app will actually need two different push notification tokens (one for Callkit, one for Remote Notifications).
431 431  
432 +The extensions we made are summarized by this ABNF grammar:
433 +
432 432  * "pn-prid=“ token [ “:” service ] *( “&” token “:” service )
433 433  * "pn-param=" TeamId ”.” BundleId ”.” service *( “&” service )
434 434  * "pn-provider=apns"
... ... @@ -447,12 +447,10 @@
447 447  * pn-param=DEF123GHIJ.org.linphone.phone.remote
448 448  * pn-provider=apns
449 449  
450 -The "voip" service is PushKit. You must provide the token provided by the PushKit API if you wan't to use PushKit.
452 +The "voip" service stands for PushKit kind of notifications, while the "remote" service is for the basic "Remote Notification" system.
451 451  
452 -The "remote" service is the "basic" push notification service. This is the service that we now have to use for instant messaging due to iOS13 push policy.
454 +These parameters must be added at application to the ProxyConfig object using linphone_proxy_config_set_contact_uri_parameters().
453 453  
454 -These parameters must be added manually to the proxy config contact URI using linphone_proxy_config_set_contact_uri_parameters().
455 -
456 456  = Notes =
457 457  
458 458  == iOS < 12 UNNotificationServiceExtension limitation ==