Я реализовал вызов Android Twilio в этом руководстве, https://github.com/twilio/voice-quickstart-android Все работает отлично, как они уже упоминали. Звонит звонок. Я могу присутствовать на звонке и слушать сообщение VoiceResponse, которое я сохранил на сервере. Мое требование: мне нужно поговорить с одним приложением Android Twilio с другим Android с тем же приложением Twilio вместо получения сообщения VoiceResponse. Если я звоню на реальные телефонные номера, я могу говорить и слушать без каких-либо проблем, но от приложения к приложению разговор не работает.
Я использую node js в качестве кода сервера, код первого звонящего приведен ниже.
client.api.calls.create({
url: url,
to: phoneNumber,
from: callerId,
}, function(err, call) {
if (err) { console.error('There was a problem starting the call: ', err); }
console.info('Call with sid: ${call.sid} was started');
});
xml-ответ для URL-адреса
router.post('/callSecond', function(request, response) {
const voiceResponse = new VoiceResponse();
const dial = voiceResponse.dial({ callerId: 'client:al' });
voiceResponse.say("Congratulations! You have received your first inbound call! Good bye. Welcome to Twilio! Welcome to Twilio!!!! Welcome to Twilio");
dial.client("leo");
console.info('Response :' + voiceResponse.toString());
response.send(voiceResponse.toString());
});
Может ли кто-нибудь помочь мне найти решение для этого, разговаривая друг с другом с помощью мобильного приложения Twilio.
заранее спасибо
да. Я могу попытаться вызвать с одного телефона на другой с помощью приложения, а затем счетчик времени вызова увеличивается, и я не слышу, что говорю с одного телефона на другой телефон @AlexBaban
Что вы имеете в виду, что звонок из приложения в приложение не работает? Где ломается? У вас есть какие-нибудь журналы, которыми вы можете поделиться?
Я следовал этому руководству, чтобы создать свое приложение github.com/twilio/voice-quickstart-androidgithub.com/twilio/voice-quickstart-server-node. когда я звоню с одного телефона на другой, он дает voiceResponse.say () я настраиваю входящую функцию и отключается, нет времени разговаривать друг с другом @philnash
Хорошо, я немного запутался. Вы пытаетесь вызвать между двумя приложениями Android. Почему вы инициируете вызов с помощью Node.js, а не в приложении?
Согласно этому документу github.com/twilio/voice-quickstart-android нам нужен внутренний сервер для завершения вызова, верно? поэтому, когда я называю это плохим, идите и проверяйте URL-адрес из учетной записи Twiml и обрабатывайте его. и эта функция называется client.api.calls.create ({url: url, to: phoneNumber, from: callerId,}); Он запускается из самого приложения, затем идет бэкэнд. Я уже поднял заявку в twilio для этого, 1343231. @philnash
Когда вы выполняете вызовы между приложениями, вам нужен сервер, но он не должен инициировать вызов. Когда вы создаете маркер доступа на сервере, вы устанавливаете SID приложения TwiML для исходящих вызовов. Голосовой URL-адрес для приложения TwiML - это то место, где вам снова нужен сервер, и он должен возвращать TwiML, который соединяет вашего первоначального клиента с клиентом, который они вызывают, используя <Client>
. Затем вы инициируете вызов из своего Android-приложения, и Twilio запрашивает TwiML из вашего голосового URL-адреса и соединяет вызов с другим клиентом.
См. Шаг 10 в инструкциях по быстрому запуску и VoiceActivity
, чтобы узнать, как это должно работать в приложении.
Да, я выполнил эти инструкции. Когда я звоню из одного приложения в другое, он звонит, и я могу принять вызов, он дает мне сообщение с поздравлением и отключается. Что я должен добавить в код, чтобы звонок продолжался и разговаривал друг с другом. @philnash
Итак, для чего нужен код для инициирования вызова из Node.js?
код инициации вызова - это страница github.com/twilio/voice-quickstart-server-node/blob/master/s rc /…, здесь функция placeCall () запускает вызов, а функция incoming () - сообщение VoiceResponse выходит @philnash
Правильно, вам нужно инициировать вызов из приложения Android с помощью голосового SDK. Не с сервера. Вот часть краткого руководства, которая обрабатывает вызов из Android: github.com/twilio/voice-quickstart-android/blob/master/app/s rc /…. У вас есть от <Dial>
до <Client>
в коде из вашего вопроса. Вы можете удалить say
, и он должен работать.
Если я удалю часть say, она отключится примерно через 1 секунду. с этим ответом: <? xml version = "1.0" encoding = "UTF-8"?> <Response> <Dial callerId = "+ test_number" /> </Response> @philnash Я могу поделиться SID вызывающего абонента для этого, если вам нужно
Ах хорошо. <Dial>
не должен быть таким пустым. У вас все еще есть строка кода, вызывающая dial.client(‘leo’)
?
я уже создал вызов в части client.api.calls.create () в функции placeCall, ryt? Поэтому мне нужно снова перезвонить первому абоненту. это заставляет первого звонящего снова ответить на звонок. Я сделал что бы там звонок подключится и нет передачи голоса. звонок будет продолжен. @philnash
Поэтому я заменил функцию placecall () входящей функцией, напрямую используя dial.client () вместо client.api.calls.create (). Он работает правильно. Спасибо @philnash. Но я не слышу ни звука ни в одном из телефонов, в моей стране есть запрет на звонки по IP. это влияет на звук звонков
На вопросы о странах, запрещающих эту технологию, лучше всего отвечает Поддержка Twilio, поскольку они гораздо лучше меня осведомлены о том, как это может повлиять на вас. Рад, что он почти работает!
Да. Я уже поднял с ними билет. жду их ответа. Спасибо за помощь @philnash. действительно ценю это.
Нет проблем, надеюсь, вы разберетесь с этим!
Привет @ sha123, ты нашел решение своей проблемы? Я застрял в той же проблеме. пожалуйста, помогите мне найти решение для этого. не могли бы вы, пожалуйста, дайте мне знать, где нам нужно работать над решением? из Backend или приложения?
Я тоже застрял в подобной ситуации. Я тоже хочу добиться связи один на один без какого-либо сценария в Twiml или использования URL-адреса, который заставляет XML говорить. Я хочу, чтобы я мог поговорить с ним из своего приложения, как только получатель ответит на мой звонок.
Вы пробовали то, что здесь описано: (github.com/twilio/voice-quickstart-android#bullet10)?