Как подключить веб-сокет голосового потока (цель - Google Voice API) к конференции Twimlets

В моем существующем приложении мы используем функцию https://www.twilio.com/labs/twimlets/conference :

      var strURI = "http://twimlets.com/conference?Name=" + channelId.ToString() + "&Message=Welcome&Music=http://bter.com/radio/radio2.xml";
TwilioClient.Init(_twilioConfiguration.AccountSid, _twilioConfiguration.AuthToken);
var application = await ApplicationResource.CreateAsync(voiceUrl:new Uri(strURI), friendlyName: channelId.ToString());

Затем мое приложение позволяет пользователям в своем браузере подключаться к специальному мосту аудиоконференции для участия в обучении. Это не касается номера телефона.

Нам необходимо направить поток в Google Speech to Text API, чтобы мы могли использовать собственный словарь.

В найденных мною примерах

      twilio phone-numbers:update 14805551212 --voice-url http://b74c35a792ff.ngrok.io

Похоже, что номер телефона настроен в Twilio так, что при подключении он открывает поток веб-сокетов к конечной точке (в примерах часто используется прокси конечной точки ngrok).

В моей ситуации я хочу программно указать динамически создаваемому конференц-залу открыть голосовой поток для определенной конечной точки (например, http://b74c35a792ff.ngrok.io ).

Есть ли вызов API, который я могу сделать в Twilio, или дополнительные настройки, которые я могу добавить на twimlets.com/conference для этого?

1 ответ

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

Когда вы настраиваете номер телефона с голосовым URL-адресом в Twilio, он не подключается через веб-сокеты. Вместо этого, когда телефонный звонок сделан на номер Twilio, он сделает HTTP-запрос, веб-перехватчик , на предоставленный вами голосовой URL. Точно так же, когда вы создаете новый вызов через REST API и предоставляете URL-адрес, Twilio будет делать HTTP-запрос на этот URL-адрес при соединении вызова.

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

Когда вы используете Conference Twimlet, предоставляемый вами URL возвращает TwiML, чтобы направить вызов в конференцию.

Conference Twimlet не позволяет передавать аудио в потоковом режиме. Фактически, конференции в целом не позволяют легко получить звук, если вы буквально не подключитесь к самой конференции. Вы можете настроить потоковую передачу звука каждого из участников конференции на свой собственный сервер websocket, разветвив их звук до того, как они присоединятся к конференции, используя <Start><Stream> перед перенаправлением на конференцию Twimlet.

Извините, это неполный ответ, но надеюсь, что это поможет.

Другие вопросы по тегам