After unholding CallKit, the audio does not restore.

In my application, I use CallKit and have supportsHolding = true set. During my phone call, another call comes in (e.g., GSM). I accept the incoming call and put the current call on hold.

If I end the active call myself, everything is fine, and CallKit calls the method provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession).

However, if the other party ends the call, the second call remains on hold. In the application, the user clicks on unhold, and I notify CallKit that the hold has ended.

But in this case, the didActivate method is not called at all. If I try to activate the audio myself after unhold, I receive the error: Domain=NSOSStatusErrorDomain Code=561017449 "Session activation failed" UserInfo={NSLocalizedDescription=Session activation failed}

AVAudioSessionErrorInsufficientPriority == NSOSStatusErrorDomain Code: 561017449

What needs to be done for CallKit to activate my audio?

I had a similar experience, https://developer.apple.com/forums/thread/715488. The way i fixed for myself was not to do anything, let the user manually select on the UnHold and then configure the audio session when performSetHeldCallAction is called.

After unholding CallKit, the audio does not restore.
 
 
Q