В Предыдущие учебники У вас была возможность промокнуть ноги в мире API Nexmo, совершая и получая телефонные звонки, используя Голос API и, надеюсь, также настройка этого опыта.
В сегодняшнем учебном пособии мы сделаем еще один шаг и построим голосовую службу конференций.
Пользователь вызывает предопределенный виртуальный номер и вводит идентификатор встречи, используя наборную площадку, а затем они помещаются в один и тот же конференц -звонок со всеми, кто предоставил тот же идентификатор.
Шаги:
- Предварительные условия
- Разоблачить свой локальный сервер в Интернете
- Определите конечную точку Webhook для входящих вызовов
- Определите конечную точку Webhook для входного события
- Создать голосовое приложение Nexmo
- Настройте номер для звонка
- Обработайте свои события звонка
- Попробуйте!
Предварительные условия
Прежде чем начать работу, вам понадобится несколько вещей:
- Node.js и Узел-Ред Установлено на вашей машине
- Аккаунт Nexmo – Создайте один бесплатно Если вы еще этого не сделали
- Способ разоблачить ваш сервер в Интернете. Это либо означает, что вы используете размещенную версию Node-Red, либо в случае развития локально, используя туннельную службу, такую как ngrok – Получите скорость с этим Начало работы с Ngrok в узле-красном руководство
Получение ваших полномочий
Чтобы взаимодействовать с API голоса, вам нужно будет отметить пару вещей. Как только вы создали учетную запись Nexmo, перейдите в Панель инструментов Чтобы найти свой ключ API и секрет.
Далее вам понадобится Голосовая с поддержкой виртуальный номер. Перейти к номерам> Купить номера чтобы получить один.
Настройка редактора узла-красного цвета
Во -первых, вам нужно установить время выполнения и редактор. Это может быть сделано либо на вашей локальной машине, на одном доске компьютере (например. Raspberry Pi), или через несколько вариантов облака. Этот пример будет использовать вашу локальную машину, поэтому, как только вы установите Node-Red в глобальном масштабе, введите команду ниже в своем терминале, чтобы начать.
$ node-red
Затем вы можете получить доступ к редактору Node-Red, указав ваш браузер по адресу http://localhost: 1880 Анкет
Как только вы открыте редактор, вам нужно установить узлы Nexmo. Вы можете сделать это под Управление палитрой Меню, поиск Узел-красный контриб-нексмо Пакет и нажмите «Установка».
Теперь вы должны увидеть, как все узлы Nexmo появляются на левой стороне экрана – в вашей палитре узлов, среди других узлов по умолчанию.
Разоблачить свой локальный сервер в Интернете
API Nexmo потребует доступ к этому веб -крючке, чтобы звонить против него, поэтому давайте Сделайте URL -адрес доступным через общедоступный интернет . Если вы запускаете Node-Red на общедоступном веб-сервере вместо локальной машины, вы все готовы и готовы перейти к Создайте приложение Nexmo Voice шаг.
В противном случае удобный способ сделать это – использовать туннельную службу, такую как ngrok Анкет
Во -первых, вам нужно будет установить узел NGROK. Для этого откройте Управление палитрой Из меню гамбургеров в вашем редакторе узла-красного цвета ищите Узел-красный контриб-нгрок Пакет и нажмите «Установить». После перезапуска вашего редактора, ngrok Узел должен появиться в палитре узлов.
ngrok Узел берет строки на или OFF в качестве входного ввода для запуска/остановки туннеля и выводит адрес хоста NGROK в качестве msg.payload Анкет
Самый простой способ настроить это – подключить два Inject узлы как ngrok Ввод узла, один с полезной нагрузкой строки на а другой с OFF Анкет Для облегчения использования вы также можете установить Имя Из этих узлов соответственно в свойствах узла, так что ясно, какая у них функциональность. Затем, чтобы отобразить адрес хоста на боковой панели отладки, подключите отладка Узел после ngrok Анкет
Как последний шаг, прежде чем ударить Развернуть , открыть ngrok Свойства узла и укажите номер порта. В случае узла-красного значение по умолчанию составляет 1880 Анкет Регион NGROK по умолчанию – это мы, но вы также можете установить его в Европу или Азию. Вы также можете добавить свой Authtoken для своей учетной записи NGROK, если она у вас есть. Не волнуйтесь, если нет, просто пропустите этот шаг сейчас. Узел будет предупреждать, что он не полностью настроен, но это не проблема.
И все готово! Как только вы нажмете Развернуть и нажмите на на Inject Кнопка Узела, перейдите к URL-адресу, отображаемому в области отладки (Your_url для будущей ссылки), чтобы найти свой редактор узла-красного цвета по публичному адресу.
Определите конечную точку Webhook для входящих вызовов
Вызовы nexmo контролируются с помощью NEXMO CALL CONTROL объекты , также известный как NCCOS. NCCO определяет список действий, которые следует следовать при обработке вызова. Есть много разных действий; Найдите соответствующие узлы под палитрой Nexmo в вашем редакторе Node-Red или проверьте Ссылка NCCO Чтобы узнать больше о них.
При обработке входящих вызовов вам нужен ваш NCCO, размещенный на Ответ URL Анкет В этом случае мы будем использовать говорить Действие, чтобы спросить идентификатор встречи, затем Вход действие, чтобы собрать его.
Добавить Voice Webhook Входной узел в ваш холст, за которым следует говорить Узел, Вход Узел и вернуть NCCO выходной узел.
Далее, в Voice Webhook Узел, выберите Получить как Метод и тип /отвечать В поле URL ответа.
В говорить Свойства узла Установите Текст {} Поле к сообщению, которое вы хотели бы, чтобы вас прочитали, когда ответ на звонок. Например. «Пожалуйста, введите удостоверение личности встречи». Вы также можете выбрать Голосовое имя , см. Руководство по тексту к речи Для полного списка параметров.
Наконец -то откройте Вход Редактор узлов, установка Your_url/input как URL {} и Пост как Метод Анкет
В настоящее время вы также можете установить пару других параметров для дальнейшей настройки опыта:
| Отправить на хэш: | Установите True, чтобы активность вызывающего абонента отправлялась в вашу конечную точку Webhook по адресу your_url/input после того, как они нажимают #. Если # не нажимается, результат представлен через временем секунды. Значение по умолчанию неверно. |
| Время вне: | Результат деятельности вызывающего абонента отправляется в конечную точку webhook your_url/input webhook. Значение по умолчанию составляет 3. Макс 10. |
| Максимальные цифры: | Количество цифр, которые пользователь может нажимать. Максимальное значение составляет 20, по умолчанию 4 цифры. |
Узнайте больше об этом в Ссылка NCCO Анкет
Определите конечную точку Webhook для входного события
Вам также понадобится вторая конечная точка, чтобы захватить ввод DTMF у пользователя, и на основе представленного ими кода, поместите их в разговор Анкет
Добавить еще один Голосовой веб -крюк Входной узел в ваш холст, за которым следует говорить Узел, А разговор Узел и вернуть NCCO выходной узел.
Голосовой веб -крюк
В Voice Webhook Свойства узла, выберите Пост как метод и тип /вход В поле URL ответа.
Если бы вы подключили отладка Узел после этого, после окончания и запуска потока, вы увидите параметры, возвращенные в /вход URL:
| uuid | Уникальный идентификатор ноги вызова для пользователя, инициирующий вход. |
| Survage_uuid | Уникальный идентификатор этого разговора. |
| время вышло | Возвращает True, если этот вход истекло на основе значения Time Out. |
| DTMF | Числа вводятся вашим вызывающим абонент в порядке. |
В нашем случае использование мы пытаемся получить DTMF Значение, как это идентификатор встречи, предоставленный вызывающим абонент.
Посмотрев на боковую панель отладки по завершению, мы видим, что она будет в DTMF Собственность Позвоните Объект вложенного внутри MSG объект, чтобы мы могли ссылаться на это как {{msg.call.dtmf}} в других узлах этого пути.
говорить
Далее откройте говорить Редактор узлов и установите Текст {} Поле к сообщению, которое вы хотели бы, чтобы вас прочитали, как только вызывающий абонент введет идентификатор встречи.
Обратите внимание на {} знак рядом с Текст Метка, показывая, что это значение может быть установлено динамически, используя Усы шаблон , так что вы можете пойти с чем -то вроде Присоединение встречи {{msg.call.dtmf}} Анкет
Не стесняйтесь, чтобы еще больше персонализировать опыт, выбрав Голосовое имя или используя Теги SSML
беседа
Мы используем разговор Действие по созданию стандартной конференции, поэтому единственный параметр, который мы должны установить, – это Имя {} Анкет Использование действия разговора с тем же именем повторно использует тот же постоянный разговор, поэтому удобно назвать его после идентификатора встречи, ссылаясь на {{msg.call.dtmf}} Первый человек, который вызвал виртуальный номер, назначенный для разговора, создает его.
В будущем вы можете сделать еще один шаг и создать модерируемый разговор с выборочными аудиозатоками. Проверьте Ссылка NCCO узнать больше.
Как только вы закончите с этим пути, он должен выглядеть похоже на это:
Создать голосовое приложение Nexmo
Некоторые из API Nexmo, включая Voice API, используют приложения NEXMO для хранения безопасности безопасности и конфигурации, необходимой для подключения к конечным точкам NEXMO.
В палитре Nexmo Node-Red у нескольких узлов есть возможность создавать эти приложения: GetRecording , Earmuff , Морет , вешать трубку , Передача , CreateCall , Playaudio , Playtts и playdtmf Анкет
Перетащите любой из этих узлов в свое рабочее пространство, затем дважды щелкните по нему, чтобы открыть свойства узла.
Рядом с Нексмо учетные данные , Выберите «Добавить новый Nexmovoiceapp…» из раскрывающегося меню и нажмите кнопку «Редактировать». Заполните данные ниже и нажмите Создать новое приложение Анкет
| Имя | Выберите имя для вашего голосового приложения, например, на конференц -связи. |
| API -ключ | Ваш ключ API Nexmo, показанный в обзоре вашей учетной записи. |
| API секрет | Ваш секрет Nexmo API, показанный в обзоре вашей учетной записи. |
| Ответьте URL | Your_url/ответ, вы будете размещать объект управления вызовом Nexmo (NCCO) здесь. – Подробнее об этом позже. |
| URL | Your_url/событие, вам нужно ссылаться на это при настройке обработчика событий. |
Затем Node-Red создаст новое приложение Nexmo в вашей учетной записи и заполнит идентификатор приложения и поля закрытого ключа для сохранения. После этого шага не стесняйтесь удалить используемый вы узел Nexmo, как nexmovoiceapp Узел конфигурации был создан, и который содержит все учетные данные NEXMO, которые необходимо для потока.
Настройте номер для звонка
Далее вам придется связать свой виртуальный номер с этим приложением.
Найдите только голосовое приложение, которое вы только что создали в своей панели Nexmo, навигация на Голос > Ваши приложения Анкет
Нажмите на имя этого приложения, затем под Числа Вкладка Нажмите на Ссылка Кнопка рядом с виртуальным номером, который вы арендовали ранее.
В случае, если номер, который вы хотите использовать, уже связан с другим приложением, нажмите на Управление номером и настройте его для пересылки входящих вызовов в ваше приложение.
Бонусный совет: Используйте Комментарий Узел.
Обработайте свои события звонка
Если вы хотите получить события о прогрессе вашего звонка, вы также можете настроить веб -крюк.
Подключите http Входной узел в http -ответ Узел, а также в отладка Узел, чтобы вы могли просмотреть события вызова в области отладки.
В http Входной узел, выберите Пост как Метод и заполните URL поле с /мероприятие .
http -ответ Узел должен иметь 200 установить как Код статуса , но не беспокойтесь об этом; Это также значение по умолчанию.
Попробуйте!
И это обертка! Возьмите друга или больше и возьмите его за вращение! Не забудьте заглянуть в зону отладки, чтобы следить за вашими событиями звонка. Наслаждаться!
Где дальше?
Ресурсы:
- Разговор NCCO ссылка
- Ввод NCCO ссылка
- Начните с Ngrok в узле-красном
- Голосовая ссылка API
Оригинал: “https://dev.to/vonagedev/build-a-conference-call-with-node-red-5c45”