From version < 49.1 >
edited by Danmei Chen
on 2020/06/25 16:23
To version < 50.1 >
edited by Danmei Chen
on 2020/06/25 16:27
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -169,7 +169,7 @@
169 169  Flexisip SIP proxy server version >= 2.0 has support for all the push notification solutions described above.
170 170  )))
171 171  
172 -=== CallKit integration ===
172 +== CallKit integration ==
173 173  
174 174  Starting from linphone-sdk >= 4.3, **Callkit** must be integrated in the following way:
175 175  
... ... @@ -188,7 +188,7 @@
188 188   }
189 189  {{/code}}
190 190  
191 -==== Answer an incoming call ====
191 +=== Answer an incoming call ===
192 192  
193 193  Since iOS 13, Apple requests **CallKit **to be invoked to display the incoming call immediately when a **PushKit** notification is received. So sometimes you can answer the **CallKit** before a **LinphoneCall** is received. In the callback **CXAnswerCallAction**, if a **LinphoneCall** has not yet been received, you need to configure your **AVAudioSession** and accept the call when you receive it. Otherwise, accept the call directly.
194 194  
... ... @@ -203,7 +203,7 @@
203 203  }
204 204  {{/code}}
205 205  
206 -==== Terminate a call ====
206 +=== Terminate a call ===
207 207  
208 208  {{code language="swift"}}
209 209  func provider(_ provider: CXProvider, perform action: CXEndCallAction) {
... ... @@ -212,7 +212,7 @@
212 212  }
213 213  {{/code}}
214 214  
215 -==== Start an outgoing call ====
215 +=== Start an outgoing call ===
216 216  
217 217  When starting an outgoing call from the application view, it must following these steps:
218 218  
... ... @@ -247,7 +247,7 @@
247 247  
248 248  {{/code}}
249 249  
250 -==== Hold/resume a call ====
250 +=== Hold/resume a call ===
251 251  
252 252  {{code language="swift"}}
253 253  func provider(_ provider: CXProvider, perform action: CXSetHeldCallAction) {
... ... @@ -258,7 +258,7 @@
258 258  
259 259  {{/code}}
260 260  
261 -==== Mute/un-mute a call ====
261 +=== Mute/un-mute a call ===
262 262  
263 263  {{code language="swift"}}
264 264  func provider(_ provider: CXProvider, perform action: CXSetMutedCallAction) {
... ... @@ -268,7 +268,7 @@
268 268  
269 269  {{/code}}
270 270  
271 -==== Play DTMF ====
271 +=== Play DTMF ===
272 272  
273 273  {{code language="swift"}}
274 274  func provider(_ provider: CXProvider, perform action: CXPlayDTMFCallAction) {
... ... @@ -277,7 +277,7 @@
277 277  }
278 278  {{/code}}
279 279  
280 -==== Group calls ====
280 +=== Group calls ===
281 281  
282 282  {{code language="swift"}}
283 283  func provider(_ provider: CXProvider, perform action: CXSetGroupCallAction) {
... ... @@ -286,7 +286,7 @@
286 286  }
287 287  {{/code}}
288 288  
289 -==== Transfer a call ====
289 +=== Transfer a call ===
290 290  
291 291  Callkit does not support call transfer when Linphone does. If you wan to realise the call transfer with Callkit, you must follow these tips:
292 292  
... ... @@ -293,7 +293,6 @@
293 293  * For callkit, an unique uuid represents a call.
294 294  * For Linphone, the referred call will use a different callid than the original call.
295 295  
296 -
297 297  == Technical solutions to advertise instant messages ==
298 298  
299 299  The table below summarizes the possible options. Remember that using PushKit is no longer possible since iOS 13 / Xcode 11.
... ... @@ -388,37 +388,7 @@
388 388  {{/code}}
389 389  
390 390  
391 -= CallKit Integration =
392 -
393 -Starting from linphone-sdk >= 4.3, **Callkit** must be integrated in the following way:
394 -
395 -* Add the **CallKit** framework into your application's dependencies in Xcode.
396 -* Implement the **CXProviderDelegate** protocol within your **ApplicationDelegate**
397 -* Add the configuration **"use_callkit=1"** in the section **"app" **or call **linphone_core_enable_callkit** before the linphone core starts.
398 -* Since iOS 13, Apple requests **CallKit **to be invoked to display the incoming call immediately when a **PushKit** notification is received. So sometimes you can answer the **CallKit** before a **LinphoneCall** is received. In the callback **CXAnswerCallAction**, if a **LinphoneCall** has not yet been received, you need to configure your **AVAudioSession** and accept the call when you receive it. Otherwise, accept the call directly.
399 -
400 -{{code language="swift"}}
401 -func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {
402 - if (call == nil || call.state != Call.State.IncomingReceived) {
403 - // configure audio session here. Use 48000 Hz as sampling rate.
404 - } else {
405 - // accept call here
406 - }
407 - action.fulfill()
408 -}
409 -{{/code}}
410 -
411 -* **CallKit** MUST inform the **LinphoneCore** when **AVAudioSession** is activated, as follows:
412 -
413 -{{code language="swift"}}
414 -func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) {
415 - lc.activateAudioSession(actived: true)
416 - }
417 -
418 -func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession) {
419 - lc.activateAudioSession(actived: false)
420 - }
421 -{{/code}}
390 +
422 422  )))
423 423  
424 424  (% class="col-xs-12 col-sm-4" %)