Как подключить веб-сокет голосового потока (цель - 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.
Извините, это неполный ответ, но надеюсь, что это поможет.