One-Way Speech Path After Hold/Resume VoIP Call Through CallKit

Originator:gaurang.rathod
Number:rdar://324324325 Date Originated:01/03/2017
Status:Open Resolved:
Product:iOS 10 Product Version:
Classification:CallKit Reproducible:Always
 
We've been able to establish a VoIP call using CallKit. However, Hold and Resume operation on this established VoIP call causes one-way speech path issue. I'm able to hear far-end after I hold and resume. Far-end is not able to hear me.

I've already taken Wireshark traces and confirmed that after the resume, there is only one-way audio. Audio is not sent from my device to far-end.
Since Wireshark already showed the problem, I checked WebRTC code for media session errors. I see no errors in startSend or startPlayout (audio unit processing for send and receive)
I re-checked by CallKit integration code to confirm correct sequences

HOLD OPERATION
- Press HOLD button on App UI or long-press MUTE button on CallKit UI.
- App requests CXSetHeldCallAction transaction to CallKit with onHold as YES.
- App receives provider delegate call back performSetHeldCallAction.
- App puts the call on hold and then fulfils performSetHeldCallAction.
- App receives provider delegate call back didDeactivateAudioSession.

RESUME OPERATION
- Press RESUME button on App UI or HELD button on CallKit UI.
- App requests CXSetHeldCallAction transaction to CallKit with onHold as NO.
- App receives provider delegate call back performSetHeldCallAction.
- App configures audio session (AVAudioSessionCategoryPlayAndRecord, AVAudioSessionModeVoiceChat, preferredSampleRate:44100) and then fulfils performSetHeldCallAction but remembers the call to be taken off-hold.
- App receives provider delegate call back didActivateAudioSession. Using this App takes the call off-hold (resumes the call). The call is the one that was stored in the above step.

We've already raised an Apple Ticket using bugreport (with no update) and are pursuing raising an Apple Technical Support Incident (Apple TSI).

Hoping for some valuable inputs.

Comments


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!