Déclencher un appel VoIP entrant à l'aide de CallKit et de l'API Twilio-Video

En utilisant l'un des exemples d'application d'appel video fournis par Twilio ( VideoCallKitQuickStart ), j'essaie de triggersr un appel entrant en envoyant une notification VoIP à l'App. Mais l'application ne triggers pas d'appel entrant. J'ai également essayé de garder l'application ouverte pendant l'envoi d'une notification VoIP et l'application se bloque, en lançant l'exception ci-dessous

NSInvalidArgumentException: Tentative d'insertion de l'object de list de non-propriétés 'PKPushPayload: 0x16e44af0' pour la charge utile de key

Pourrait quelqu'un, s'il vous plaît aidez-moi ou pointez-moi dans la bonne direction sur la façon de triggersr un appel entrant dans l'App, quand une notification VoIP est reçue.

Ci-dessous mon code dans le file ViewController.swift

func pushRegistry(registry: PKPushRegistry!, didReceiveIncomingPushWithPayload payload: PKPushPayload!, forType type: Ssortingng!) { // Process the received push self.reportIncomingCall(uuid: UUID(), roomName: "testRoom", completion: nil) } func reportIncomingCall(uuid: UUID, roomName: Ssortingng?, 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) } } 

    Twilio développeur évangélist ici.

    Je ne suis pas particulièrement bon avec iOS, mais en PKPushRegistryDelegate un coup d'oeil à la documentation de PKPushRegistryDelegate il semble que votre définition de la fonction pushRegistry ne soit pas correcte.

    CA devrait etre

     func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) 

    C'est-à-dire, didReceiveIncomingPushWith plutôt que didReceiveIncomingPushWithPayload .

    Sinon, cela a-t-il quelque chose à voir avec le fait que vous avez forType to Ssortingng ?

    Swift 3.0

     func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) { NSLog("pushRegistry:didReceiveIncomingPushWithPayload:forType:") if (type == PKPushType.voIP) { print(payload.dictionaryPayload) VoiceClient.sharedInstance().handleNotification(payload.dictionaryPayload, delegate: self) } } 

    Et s'il vous plaît, ne modifiez pas datatables utiles sans les modifier pour que le SDK puisse extraire les informations d'appel entrant de la charge utile afin que le SDK puisse notifier l'application avec les appels entrants