Unable to handle the cancel VOIP push comes after rejecting the incoming call push

Published

I have already developed a VOIP call app that uses pushkit for VOIP push notification. Our notification server is designed to deliver all cancel notifications along with new incoming call notifications through VOIP push (This behavior can’t be changed as of now). Since it has become mandatory to report all incoming push notifications to callkit after the iOS 13 release. There are scenarios where I am not able to report the cancel PUSH notification to callkit which ultimately result in app crash

Scenario:

If the user rejects the incoming call PUSH notification (i.e. basically rejecting the incoming call), the notification server delivers a cancel PUSH notification just after that. But since the new incoming call has already been rejected and there is no active callId to report, there is no way to report the cancel PUSH notification to callkit. So, failure to report the cancel push results in in-app crash. This does happen in all those where there is no active/pending call and the client the PUSH for cancel notification.

Please help me out with how to handle this scenario.

Source: Ios Questions

Published
Categorised as apple-push-notifications, callkit, ios, push-notification Tagged , , ,

Answers

As you’ve said: starting from iOS 13 it has become mandatory to report a new incoming call for every VoIP push received.

There’s no way around that. If you can’t change the behavior of your server, the only thing you can do to avoid a crash (and the blocking of subsequent VoIP pushes delivery) is to report a fake call to make PushKit happy and immediately terminate it.

let callId = UUID()
cxProvider.reportNewIncomingCall(
    with: callId,
    update: callUpdate,
    completion: { [weak self] error in
        completion()
        self?.cxProvider.reportCall(with: callId, endedAt: nil, reason: .failed)
})

Marlene Gaylord

Leave a Reply

Your email address will not be published. Required fields are marked *

Still Have Questions?


Our dedicated development team is here for you!

We can help you find answers to your question for as low as 5$.

Contact Us
faq