Changes between Version 5 and Version 8 of Ticket #1941


Ignore:
Timestamp:
Oct 30, 2019 5:28:45 AM (5 years ago)
Author:
ming
Comment:
  • Update the RFC number
  • Add iOS 13 requirement.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1941

    • Property Status changed from new to closed
    • Property Resolution changed from to fixed
  • Ticket #1941 – Description

    v5 v8  
    661. Set up !PushKit according to [https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/OptimizeVoIP.html Apple's doc]. 
    772. Upon startup, request for push tokens. 
    8 3. Send REGISTER to SIP server with additional specific header or header params to tell the SIP server about the PN (Push Notification) info (server URI, tokens, etc). You can use {{{pjsua_acc_config.reg_hdr_list}}} or {{{pjsua_acc_config.reg_contact_params}}} (the later is available in ticket #1965).[[br]]Note: draft [https://tools.ietf.org/html/draft-ivanov-sipcore-pnsip-01 ​Push Notifications in the Session Initiation Protocol (SIP)] suggests to put it in Contact header params, for example: 
     83. Send REGISTER to SIP server with additional specific header or header params to tell the SIP server about the PN (Push Notification) info (server URI, tokens, etc). You can use {{{pjsua_acc_config.reg_hdr_list}}} or {{{pjsua_acc_config.reg_contact_params}}} (the later is available in ticket #1965).[[br]]Note: [https://tools.ietf.org/html/rfc8599 ​RFC 8599: Push Notifications in the Session Initiation Protocol (SIP)] suggests to put it in Contact header params, for example: 
    99{{{ 
    1010Contact: <sip:alice@alicemobile.example.com; 
     
    1313}}} 
    14144. After a successful registration, SIP client can go background and will be woken up by the OS upon receiving push notification. 
     15Note: starting from iOS 13, there's a new requirement: 
     16```Apps receving VoIP pushes must post an incoming call (via CallKit or IncomingCallNotifications) in the same run loop as   pushRegistry:didReceiveIncomingPushWithPayload:forType:[withCompletionHandler:] without delay. Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP push callback.'``` 
     17In order to make it work with the normal SIP flow which may require you to wait for some time to receive the INVITE message, please look at Apple's recommendation in its [https://forums.developer.apple.com/thread/117939 developer forum]. 
    1518 
    1619Configure your SIP server: