provider:didActivateAudioSession: is not called when accepting the first incoming call via a VoIP push

Originator:Ryan.C.Payne
Number:rdar://28774388 Date Originated:14-Oct-2016
Status:Open Resolved:
Product:OS SDK Product Version:10.0.2 & 10.1 Beta 3
Classification:Serious Bug Reproducible:Always
 
We are working on adding CallKit support to <redacted>. During development and testing, we are seeing an issue where we cannot get incoming calls to work when presented via CallKit.

The issue occurs on the first launch of the application. Once the application has been launched and an incoming call is received and answered via CallKit, we are never getting the provider:didActivateAudioSession: delegate callback. However, if we place an outgoing call first, subsequent incoming calls will work.

Initially we thought it was something that was happening due to our underlying networking and infrastructure. I began testing the same scenario with the Speakerbox sample application and have been able to reproduce the issue. Out of the box, however, Speakerbox appears to work. The incoming calls are simulated by pressing the button on the bottom of the screen and the code that reports the incoming call to CallKit is tossed in a dispatch after call.

To reproduce this issue, you need to set Spearkerbox up to accept a VoIP push. I set up an app id in my account, created a VoIP certificate, and setup infrastructure to send a VoIP push to Spearkerbox. Once you send a valid push to the application, you will note that you do not get provider:didActivateAudioSession: called and you get errors logged.

Steps to Reproduce:
Start with a fresh Speakerbox sample app. 

1. Configure a VoIP certificate for the application.
2. Start the application and collect the device token.
3. Send a valid VoIP push to the device via the device token (see below for the payload I sent)
4. Answer the call via the CallKit interface

VoIP Payload: { "aps" : {}, "UUID" : "0CDC915B-6F82-42DF-870A-FA67D16D6DC2", "handle" : "+14125551212", "hasVideo" : 0}

Expected Results:
The call should be answered, provider:didActivateAudioSession: should be called and everything should work happily.

Actual Results:
provider:didActivateAudioSession:  is never called. The following is logged:

Configuring audio session  
2016-10-13 16:13:46.096232 Speakerbox[7252:1785573] [aurioc] 889: failed: 'ent?' (enable 3, outf< 1 ch,  44100 Hz, Float32> inf< 1 ch,  44100 Hz, Float32>)  
2016-10-13 16:13:46.096288 Speakerbox[7252:1785573] Error returned from setupIOUnit: 1701737535: couldn't initialize Apple Voice Processing IO instance 

Version:
iOS 10.0.2, iOS 10.1 beta 3

Notes:
I have attempted, twice, to add a reply to the following post on the developer forums: https://forums.developer.apple.com/thread/64544 however it tells me that I am being moderated.

The issue there seems to be similar or maybe the same.

Configuration:
iPhone 7plus, iPhone 6plus

Please also note that the Speakerbox sample app has been configured with the Audio and VoIP background modes as well as with the push notifications capability.

Comments

Hi Ryan, The status for this issue is still Open. We are facing this issue in iOS11. I am not sure how to confirm if this one is fixed already.

By vickyravi17 at Oct. 11, 2017, 9:07 a.m. (reply...)

Check this:

https://forums.developer.apple.com/message/169511#169511

I believe it is the same issue you are experimenting (or very similar), and the solution will more than probably solve it.

This radar is also related: https://openradar.appspot.com/27674736

Hope it helps.

By cestebanez at Oct. 24, 2016, 2:37 p.m. (reply...)

Apple requested that I provide them with the sysdiagnose information using their logging profile. After doing that I received word that this is a duplicate of issue 27823760 and mine is being closed.

By Ryan.C.Payne at Oct. 21, 2016, 2:45 p.m. (reply...)

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!