Twilio - как производится переключение?

Я внедряю Twilio SDK в приложение, и мне удалось совершать звонки из Интернета в Интернет, а также из Интернета в телефонные звонки.

Кажется, я не могу понять, как нужно переключаться с Интернета на телефон.

Сначала я вызываю Voice.call() с идентификатором user_39, но если у пользователя нет подключения к Интернету и он не получает отправленное мной push-уведомление, как следует переключиться с Интернета на телефон? Выполняется ли это каким-то образом автоматически с помощью Twilio SDK, или я должен прислушиваться к ответу об ошибке на Voice.call() и в зависимости от статуса решить повторно совершить звонок с фактическим номером телефона пользователя?

Мне не удалось найти четкую документацию по этому поводу.


person AndreiBogdan    schedule 22.08.2018    source источник


Ответы (1)


Проповедник разработчиков Twilio здесь.

Если пользователь, которому вы пытаетесь позвонить, не в сети, вызов ему не удастся. Вам нужно будет прослушать это с помощью _ 1_ и onConnectFailure событие. Если вы обнаружите, что вызов приложению не удался, вы можете обработать сбой и перезапустить вызов на номер телефона пользователя.

Сообщите мне, если это поможет.

person philnash    schedule 23.08.2018
comment
Шак. Я надеялся, что SDK сделает это автоматически. Дайте ему идентификатор приложения пользователя, а также номер, и он будет автоматически перенаправлять. Но ладно, если это так, то я и сделаю это. Теперь понятно, почему я не смог найти решение в документации :) Будучи евангелистом Twilio, не могли бы вы посмотреть на это, пожалуйста? stackoverflow.com/questions/51974158/ - person AndreiBogdan; 23.08.2018
comment
По крайней мере, дайте мне знать, возможно ли это. Опять же ... Мне не удалось найти никакой документации по этому поводу :( - person AndreiBogdan; 23.08.2018
comment
SDK касается только одного номера / идентификатора, на который можно звонить в любое время, поэтому вы можете настроить поведение, выходящее за рамки этого. Я оставил комментарий по этому другому вопросу. - person philnash; 23.08.2018
comment
хе-хе. Да, я только что заметил, что вы тоже ответили там. Прости. Большое спасибо за вашу помощь! - person AndreiBogdan; 23.08.2018
comment
хм, интересно, он не переходит в onConnectFailure, если идентификатор указан, а пользователь не отвечает. Он переходит в onCallDisconnected без статуса, исключения или чего-либо еще, с чем я мог бы справиться ... ну, черт возьми. - person AndreiBogdan; 23.08.2018
comment
О, еще одна идея может заключаться в том, чтобы справиться с этим в вашем приложении TwiML. Вы можете отправлять параметры при вызове Voice.call, и эти параметры доступны в запросе к вашему приложению TwiML. Вы можете отправить как личность, так и номер, а затем обработать результат вызовов через <Dial> < / а>. - person philnash; 23.08.2018
comment
О, это звучит интересно. обрабатывать результат вызовов через ‹Dial›, это автоматически обрабатывается сервером, или мне нужно как-то обрабатывать его самому? Я читал о ‹Dial›, но не совсем понял, что это за идея ... - person AndreiBogdan; 23.08.2018
comment
Спасибо. Вы мне очень помогли! - person AndreiBogdan; 23.08.2018
comment
Любая идея о том, почему URL-адрес STATUS CALLBACK возвращает что-то вроде этого? pastebin.com/UEqCmg30 У меня нет здесь ничего важного, чтобы узнать, не удалось ли выполнить вызов, так что я могу сделать это снова. :( - person AndreiBogdan; 23.08.2018
comment
Я только что попробовал это на сервере. Но ... можете ли вы каким-то образом перенаправить вызов другому пользователю, но не отключать вызывающего? В настоящее время я использую метод update (), но он не будет выполнять перенаправление с идентификатора user_39 на номер телефона + xxxxxxxxx. :( - person AndreiBogdan; 23.08.2018
comment
Этот обратный вызов статуса имеет статус завершенного, что является успешным вызовом. Но вам действительно нужен ответ на action URL для <Dial>, который даст вам DialCallStatus, который будет относиться к вызову, который вы пытаетесь сделать с помощью <Dial>. Затем, если это не удастся, вы получите статус сбоя и сможете вернуть новый TwiML с новым <Dial> к номеру. - person philnash; 24.08.2018