Feature: I have implemented QuickBlox video calling in application.
Problem: Recipient doesn't receive incoming call notification if application is in background.
Result: Video calling is working fine up to iOS 12 but only problem with iOS 13.
I have checked many links to solve the problem:
- https://docs.quickblox.com/docs/ios-quick-start?_ga=2.195456812.1462473955.1597308006-918905754.1585299886
- https://docs.quickblox.com/docs/ios-video-calling-advanced
- https://github.com/QuickBlox/quickblox-ios-sdk/tree/master/sample-videochat-webrtc-swift
- https://github.com/twilio/voice-quickstart-ios/issues/275
Also, I have posted issues on QuickBlox's GitHub repo:
- https://github.com/QuickBlox/quickblox-ios-sdk/issues/1199
- https://github.com/QuickBlox/q-municate-ios/issues/345
Crashlog of the issue:
"didReceiveIncomingPushWith called"
"[HomeVC] timeIntervalSinceStartCall > QBRTCConfig.answerTimeInterval"
2020-06-23 22:51:12.114253+0530 MyApp[2555:1050373] Apps receving VoIP pushes must post an incoming call (via CallKit or IncomingCallNotifications) in the same run loop as pushRegistry:didReceiveIncomingPushWithPayload:forType:[withCompletionHandler:] without delay.
2020-06-23 22:51:12.114529+0530 MyApp[2555:1050373] *** Assertion failure in -[PKPushRegistry _terminateAppIfThereAreUnhandledVoIPPushes], /BuildRoot/Library/Caches/com.apple.xbs/Sources/PushKit/PushKit-36/PKPushRegistry.m:343
2020-06-23 22:51:12.127602+0530 MyApp[2555:1050373] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP push callback.'
*** First throw call stack:
(0x1b7c3498c 0x1b795d0a4 0x1b7b36d1c 0x1b7f6c8f4 0x1cb735a5c 0x10b82ac04 0x10b839888 0x1cb7349cc 0x10b829828 0x10b82ac04 0x10b838c64 0x1b7bb23c4 0x1b7bad3b8 0x1b7bac8bc 0x1c1a18328 0x1bbc426d4 0x10520ac58 0x1b7a37460)
libc++abi.dylib: terminating with uncaught exception of type NSException
Message from debugger: Terminated due to signal 9