Используя одно из примеров приложений для видеозвонков, предоставленных Twilio (VideoCallKitQuickStart), я пытается вызвать входящий вызов, отправив уведомление VoIP в приложение. Но приложение не вызывает входящий звонок. Я также пытался держать приложение открытым при отправке уведомления VoIP, и приложение вылетало, выбрасывая исключение ниже
NSInvalidArgumentException: попытка вставить объект списка не относящихся к свойствам 'PKPushPayload: 0x16e44af0' для ключевой полезной нагрузки
Может кто-нибудь, пожалуйста, помогите мне или укажите в правильном направлении, как инициировать входящий звонок в приложении, когда получено уведомление VoIP.
Ниже мой код в файле ViewController.swift
func pushRegistry(registry: PKPushRegistry!, didReceiveIncomingPushWithPayload payload: PKPushPayload!, forType type: String!) {
// Process the received push
self.reportIncomingCall(uuid: UUID(), roomName: "testRoom", completion: nil)
}
func reportIncomingCall(uuid: UUID, roomName: String?, completion: ((NSError?) -> Void)? = nil) {
let callHandle = CXHandle(type: .generic, value: roomName ?? "")
let callUpdate = CXCallUpdate()
callUpdate.remoteHandle = callHandle
callUpdate.supportsDTMF = false
callUpdate.supportsHolding = true
callUpdate.supportsGrouping = false
callUpdate.supportsUngrouping = false
callUpdate.hasVideo = true
callKitProvider.reportNewIncomingCall(with: uuid, update: callUpdate) { error in
if error == nil {
NSLog("Incoming call successfully reported.")
} else {
NSLog("Failed to report incoming call successfully: \(error?.localizedDescription).")
}
completion?(error as? NSError)
}
}