CallKit does not activate audio session on iOS 15.1

Hi! On iOS 15.1 CallKit for some reason does not call

func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession)

after call was returned from hold. But it only happens when current call was interrupted by mobile or FaceTime call and caller ended a call.

Steps to reproduce:

  1. Start call from device_1 in application using
let handle = CXHandle(type: .generic, value: title)
let action = CXStartCallAction(call: uuid, handle: handle)
  1. Call to device_1 from device_2 using FaceTime
  2. Accept call on device_1 and put active application call on hold
  3. End call in FaceTime on device_2
  4. Return call from hold on device_1 using
let action = CXSetHeldCallAction(call: uuid, onHold: false)
requestTransaction(with: action)

Expected result:

func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession)

called

Actual result:

func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession)

called

Noticed:

  1. It does not reproduced on iOS 15.0 and earlier iOS versions
  2. All works fine if FaceTime call ended on device_1
  3. All works fine if device_2 called to device_1 using Telegram/WhatsApp applications

I have the same issue and reproduced it with the Apple demo: https://developer.apple.com/documentation/callkit/making_and_receiving_voip_calls_with_callkit

and I reported an feedback to Apple, still no response yet.

Steps: Device: iPhone12 pro max - iOS: 15.1.1

make a VoIP call with the demo, the VoIP call is active 

make a native outgoing call, then the VoIP call becomes an on hold state.

End the native call 

by this side: the system "didActivate" callback comes, then the VoIP call becomes active again. (expect behavior)

by the other side, the system "didDeactivate" callback comes, then nothing changes to the current VoIP call. still on hold state. (abnormal, bug behavior)

I have exactly the same issue. The issue is reproducible only with iOS version >= 15.1 ( it is working with 15.0.1 and prior) Is there any update from Apple?

I am facing the same issue, the IOS microphone is disabled on answering the second call (when pressing hold & accept). turning ON / OFF the microphone restores audio.

Confirm we still have this issue on our VoIP application too, after digging in our code it also came down to didActivate not being triggered. Tested on 15.5 not working correctly. Tested on 15.0 working as expected.

CallKit does not activate audio session on iOS 15.1
 
 
Q