Экран вызова отклоняется при принятии голосового вызова twilio, даже если приложение Swift активно в 4 - PullRequest
0 голосов
/ 09 октября 2018

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

Вот экран, который я создал для вызова, когда приложение находится на переднем плане.

Caller screen

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

Если есть какие-либо проблемы в коде или какие-либо вещи, связанные с настройкой набора вызовов, мне нужно настроить, или любая другая проблема?Пожалуйста, помогите.

1 Ответ

0 голосов
/ 22 октября 2018

Насколько мне известно, это стандартное поведение каркаса набора вызовов.При нажатии кнопки «Принять» экран исчезнет, ​​когда приложение будет на переднем плане.Если вы хотите добиться того же, что и приложение Whats, то вам нужно создать собственный экран для этого. Ниже код, который я сделал, чтобы решить эту проблему:

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

    NSLog("provider:performAnswerCallAction:")
    // TwilioVoice.configureAudioSession()

    let vc = loadVC(strStoryboardId: SB_CHAT, strVCId: idVoiceCallVC) as! VoiceCallVC
    vc.callername = name
    vc.userPhoto = userphoto
    APP_DELEGATE.appNavigation?.pushViewController(vc, animated: true)
    assert(action.callUUID == self.callInvite?.uuid)
    TwilioVoice.isAudioEnabled = false
    self.performAnswerVoiceCall(uuid: action.callUUID)
    { (success) in
        if (success)
        {
            action.fulfill()

        }
        else
        {
            action.fail()
        }
    }
    action.fulfill()
}

Вам просто нужно добавить свой собственный код отображения экрана в этомМетод делегирования каркаса набора вызовов.

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

Спасибо.

...