Голосовое меню своими руками
Чтобы максимально упростить создание IVR через API, мы создали готовый метод, который просто настраивается под любые нужды. С этим методом можно создать сложный IVR через webhook, не написав ни одной строчки кода.
Как работает и зачем нужно голосовое меню?
Голосовое меню — это и инструмент навигации, и уменьшение ручного труда. Кроме того, помощью IVR можно автоматически обрабатывать запросы клиента. Например, клиент вводит номер заказа и узнает актуальную информацию о его статусе. Навигация в IVR обычно происходит через нажатие кнопок на телефоне абонента (DTMF-сигналы).
Управление меню через вебхуки, позволяет все решения о его поведении принимать онлайн на вашей стороне. То есть вы можете полностью интегрировать IVR со своей системой и менять его поведение по любым параметрам (хоть по фазе луны).
Строим IVR через вебхуки
Простое голосовое меню можно создать и без API, в меню настроек виртуальной АТС. Здесь можно выбрать кому когда звонить, загрузить приветствие, или начитать текст с помощью робота.
Более сложное меню (многоуровневое, либо интегрированное в вашу систему) реализуется через webhooks, с помощью готовой PHP библиотеки, которую можете найти на Github.
Библиотека максимально универсальна, IVR любой сложности задается в ее конфигурации, и менять код понадобится только для интеграции логики со своей системой.
Для разменещия библиотеки конечно нужен web сервер, куда будут приходить вебхуки.
Требования для библиотеки:
PHP >= 7.2.0
cURL
TLS v1.2
php-mbstring
Также для работы с IVR по вебхукам нужно заранее подготовить настройки (их можно подготовить и через API, но для одной своей АТС проще через личный кабинет):
- Активная беслпатная АТС
- В разделе меню «Моя АТС — Входящие звонки и голосовое меню» загружены или начитаны аудиофайлы для меню и настроены сценарии;
- В разделе «Моя АТС — Внутренние номера» добавлено нужное количество внутренних номеров согласно сценарию, и на всех номерах настроено оборудование для приема звонков
- Подключен виртуальный номер (на выбор номера в 100 странах мира и 100 городах России)
- В личном кабинете сервиса сгенерированы Key и Secret для работы с API.
- В разделе «Уведомления о звонках в АТС» настроек API, нужно задать ссылку на скрипт на вашем сервере.
Ссылка указывает на PHP скрипт с настройками:
use MultiIvr\MultiIvr;
if (isset ($_GET['zd_echo'])) {
exit ($_GET['zd_echo']);
}
require_once 'vendor/autoload.php';
$key = 'Your api key';
$secret = 'Your api secret';
$ivrMenuConfig = 'your config';
MultiIvr: default ()→handle ($key, $secret, $ivrMenuConfig);
Где $key и $secret ключи для авторизации в интерфейсе API, которые вы получили в личном кабинете. $ivrMenuConfig — текстовый файл с конфигурацией вашего меню. О нем речь пойдет чуть ниже.
Для удобства настройки вся конфигурация IVR хранится в текстовом файле. Для изменения под себя не нужно менять весь код — достаточно поменять настройки.
Пример конфигурации, создаем двухуровневое меню:
Первый уровень: Вы позвонили в компанию Вектор. Если вы находитесь в Москве — нажмите 1. Если вы находитесь в Екатеринбурге — нажмите 2.
Кнопка 1: Вы позвонили в московское отделение компании Вектор. Для связи с менеджером нажмите 1. Если хотите связаться с отделом технической поддержки — нажмите 2. Если у вас другой вопрос — дождитесь ответа оператора.
Кнопка 2: Вы позвонили в отделение компании Вектор в Екатеринбурге. Для связи с менеджером нажмите 1. Если хотите связаться с отделом технической поддержки — нажмите 2. Если у вас другой вопрос — дождитесь ответа оператора.
Файл конфигурации будет выглядеть следующим образом:
start default action=goto action-target=main
menu name=main playfile=43d8a740ec123456
menu name=main button=1 action=goto action-target=main.1
menu name=main button=2 action=goto action-target=main.2
menu name=main default action=redirect action-target=100
menu name=main.1 playfile=a279dd3a123457
menu name=main.1 button=1 action=redirect action-target=102
menu name=main.1 button=2 action=redirect action-target=1–5
menu name=main.1 default action=redirect action-target=100
menu name=main.2 playfile=a6842305f123458
menu name=main.2 button=1 action=redirect action-target=105
menu name=main.2 button=2 action=redirect action-target=6–7
menu name=main.2 default action=redirect action-target=100
Теперь рассмотрим конкретнее:
action — это тип действия. Возможны два значения:
redirect — перевод на сценарий или внутренний номер АТС;
goto — переход на голосовое меню по его имени;
В нашем примере:
- Внутренний номер 102 — менеджер в Москве
- Внутренний номер 100 — оператор первой линии, который отвечает на все звонки;
- Сценарии 1–5 — линия поддержки в Москве
- Внутренний номер 105 — менеджер в Екатеринбурге
- Сценарии меню 6–7 — линия поддержки в Екатеринбурге
- playfile=a6842305f1234568 — загруженный файл голосового приветствия. Найти ID файла можно в разделе Моя АТС — Входящие звонки и Голосовое меню — Выбрать или начитать другой файл.
Из дополнительных настроек вы можете задать, например, расписание и рабочее время. Другие примеры вы также найдете на Github.
Интеграция со своей системой
АТС Zadarma уже имеет множество готовых интеграций с популярными CRM/ERP/Helpdesk — системами. Однако, если у вас собственная система, вы также легко сможете её интегрировать с телефонией Zadarma через API. Подробная инструкция по интеграции. Вы можете легко применять данную библиотеку для IVR, в своей интеграции, что позволит управлять голосовым меню из своей системы. Управляя меню из своей системы, легко делать динамические меню, например робота опросника, или «липкие звонки» приходящие на ответственного менеджера либо просто того кто говорил с этим номером.
Надеемся данная библиотека будет полезна для простой и быстрой интеграции голосовых сервисов. Про возможности большей интеграции голоса в вашу систему, напишем в следующей статье.