voip call disconnects active native cellular call in ios 13

We have implemented Voip call in our app and it is working perfectly in all cases, but in one case it is failing.


- If there is active cellular call in device, and Voip call comes in our app, then as per new guidelines for pushkit, we have to show incoming call screen for voip call immediately, if we do so then it terminates active cellular call and also our voip call was not activated.


- If we do same for facetime or whatsapp, then it is wokring fine and showing incoming call with hold and accept and decline options, which means our app should also behave same.


- For same scenario, if iOS version is 12 or below, it is working fine. It is failing in iOS 13 only.


- If our voip can't start then its fine but it should not disconnect cellular call, if we do not try to show incoming voip call then it will crash our app with message like "

Killing app
because it never posted an incoming call to the system after receiving a PushKit VoIP callback
"


- It another call is not native like if its whatsapp audio call or facetime call then also it showing incoming call of our voip call with proper behaviour, it is just failing in iOS 13 native cellular call.


Any help to manage this will be helpful.

Thanks.

Replies

Yes I have the problem, I submit the Feedback, but don't have response.

Hi @maheshvaghela_


Thanks for starting the thread, and yes, we are observing the same problem as in your description.

  • Happens only on devices running iOS 13+
  • Tried the same steps using Whatsapp VoIP call and did not fail the PSTN call
  • Happens only when the first call is a PSTN call and PushKit VoIP call as the second one
  • Steps
    • Make a PSTN outgoing call from the device
    • Once the PSTN call is connected, make a VoIP incoming call to this device


While investigating the issue we saw that the problem seems to only occur on the app built with Xcode11 and running on iOS 13 (the device is on 13.1.3). The PSTN call does not fail in this scenario if the app is built with Xcode 10 (Enterprise distribution version running on the same device). This could be the reason why incoming PushKit pushes in those apps do not cause this problem.


I then started looking into the device log in the Console application by plugging by device to the laptop. I noticed a couple of appearences of TUCallDisconnectedReasonComponentCrashed around the time when the call failure happened in the log like this:

error 15:02:22.975254 -0700 MobilePhone Disconnecting call with TUCallDisconnectedReasonComponentCrashed:

but so far we haven't had any luck figuring out from the context of the log what excatly caused the "crash" and the call to fail.




Bobie Chen

Quick question, any chance you're using the Twilio SDK in your app?

I'm seeing the same issue.


iOS 13 with the code developed in Xcode 11, also using the Twilio SDK.


Thus far I have been unable to reproduce the issue 100% of the time which will be difficult to troubleshoot.

Update:


I tried running the same steps with Xcode 11.2 (11B52) and the calls seemed to work on iOS 13.2 & 13.2.2 devices. Previously I was using Xcode 11.0 and iOS 13.1.3.

I was able to interrupt both PSTN outbound and PSTN inbound calls with VoIP incoming calls and continue the calls after the interruption without failing the active PSTN calls.


By the way I am using the Twilio Voice SDK.


-bobie

It seems to be fixed now: https://github.com/twilio/twilio-voice-ios/issues/22