Changes between Initial Version and Version 3 of Ticket #1941


Ignore:
Timestamp:
Oct 7, 2016 6:37:48 AM (2 years ago)
Author:
ming
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1941 – Description

    initial v3  
    1 iOS 10 is coming with new features such as !CallKit, framework changes such as in !AVFoundation, and also API deprecations. This ticket will review and apply any integrations needed in PJSIP library. 
     1iOS 10 is coming with new features such as !CallKit, framework changes such as in AVFoundation, and also API deprecations. This ticket will review and apply any integrations needed in PJSIP library. 
     2 
     3== !PushKit guide== 
     4 
     5What your application needs to do: 
     61. Set up !PushKit according to [https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/OptimizeVoIP.html Apple's doc]. 
     72. Upon startup, request for push tokens. 
     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: 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: 
     9{{{ 
     10Contact: <sip:alice@alicemobile.example.com; 
     11     pn-type=acme;pn-methods="INVITE"; 
     12     pn-uri="https://pn.acme.example.com/ZTY4ZDJlMzODE1NmUgKi0K"> 
     13}}} 
     144. After a successful registration, SIP client can go background and will be woken up by the OS upon receiving push notification. 
     15 
     16Configure your SIP server: 
     171. Parse the PN info in registration. 
     182. Upon receiving an incoming SIP INVITE, SIP server should contact PN server as specified via PN URI and tokens. 
     193. After some interval (assuming the SIP client has been woken up), it then can send/forward the SIP INVITE message to the SIP client. 
     20 
     21== !CallKit support == 
     22a. AVAudioSession handling[[br]] Application needs to handle its own audio session management according to [https://developer.apple.com/reference/callkit?language=objc Apple's doc]. 
     23 
     24{{{#!comment 
     25b. !AudioUnit restart 
     26}}} 
     27 
     28== API/Symbol Deprecations == 
     29a. "{{{kCFStreamNetworkServiceTypeVoIP}}} is deprecated (first deprecated in iOS 9.0 - use !PushKit for VoIP control purposes."[[br]] See the !PushKit guide above.[[br]] If you want to disable the use of {{{kCFStreamNetworkServiceTypeVoIP}}}, set {{{PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT}}} to 0. 
     30 
     31b. AVFoundation API deprecation:[[br]] "warning: 'devices' is deprecated: first deprecated in iOS 10.0 - Use AVCaptureDeviceDiscoverySession instead."[[br]] Done in r5454. 
    232 
    333Reference: