как интегрировать Callkit с Agora VOiP в swift 4 iOS? - PullRequest
0 голосов
/ 15 января 2019

Я хочу интегрировать Apple Callkit с Agora VOiP в iOS 4 Swift.

Пожалуйста, дайте какие-либо предложения Как я могу это сделать.

1 Ответ

0 голосов
/ 12 февраля 2019

Для интеграции VoIP, вы должны будете использовать оба, callKit и PushKit.

CallKit будет использоваться для отображения собственного экрана вызовов и обработчиков во время перехода вызова, в то время как Pushkit будет использоваться для вызова приложения, когда приложение убито.

Его легко интегрировать : -

Включите фоновые режимы в info.plist и отметьте опцию «Приложение предоставляет услуги передачи голоса по IP». Импортируйте Callkit в viewcontroller viewdidload / любой метод init любого класса, который вы использовали бы для реализации функций CXProviderDelegate. Благодаря этому вы будете настраивать объекты вызова, когда сообщать о поступающем вызове, принимать действия, отклонять действия и т. Д.

Реализация следующих функций:

func providerDidReset(_ provider: CXProvider) {
}

func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {
    action.fulfill()
}

func provider(_ provider: CXProvider, perform action: CXEndCallAction) {
    action.fulfill()
}

Теперь импортируйте Pushkit и внедрите функции PKPushRegistryDelegate.

а.) Настройте pushkit следующим образом

let registry = PKPushRegistry(queue: nil)
        registry.delegate = self
        registry.desiredPushTypes = [PKPushType.voIP]

b.) Реализовать функцию токена pushkit. Возможно, вам придется обновить до сервера для доставки push-уведомлений Voip

 func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) {
        print(pushCredentials.token.map { String(format: "%02.2hhx", $0) }.joined())
    }

с. Теперь, когда вы получите входящее уведомление, включите эту функцию

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
        let config = CXProviderConfiguration(localizedName: "App name")
        config.iconTemplateImageData = UIImagePNGRepresentation(UIImage(named: "any image name")!)

        config.supportsVideo = true;
        let provider = CXProvider(configuration: config)
        provider.setDelegate(self, queue: nil)
        let update = CXCallUpdate()
        update.remoteHandle = CXHandle(type: .generic, value: "Caller name")
        update.hasVideo = true
        provider.reportNewIncomingCall(with: UUID(), update: update, completion: { error in })
    }
  1. Перейдите на портал разработчика и создайте сертификат VoIP Services и установите его.
  2. Включить push-уведомления в разделе Возможности.

Это был базовый код для просмотра. Вам нужно будет добавить наблюдения для имитации входящего звонка и других настроек. Я надеюсь, что это поможет вам двигаться дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...