- PVSM.RU - https://www.pvsm.ru -

Один из последних трендов — онлайн чат-боты. Но, что делать с теми клиентами, которые находятся оффлайн? Большой процент людей предпочитает звонить по телефону. Для них нужен или большой штат операторов, или решение по автоматизации работы с голосом. Предлагаем решение для уменьшения работы и затрат (и даже почти не нагрузит вашего программиста).
Как быстро и легко программировать любое голосовое меню, автоинформатор, робота-секретаря с привязкой к своей базе клиентов?
Спойлер: Все реализовано на webhooks и приведен пример на PHP.
Обсуждаем под катом.
Например, у вас служба доставки либо интернет-магазин со своей службой логистики. Часть клиентов звонит чтобы узнать, как дела с их посылкой/товаром и это можно легко автоматизировать. Аналогично — гео-локация такси, сбор данных со счетчиков, вообще любая индивидуальная онлайн информация, которую вы можете дать клиенту и не тратить на “справку” время живых операторов.
Автоматизировать это очень просто, ниже опишем пример. И, ах, все это можно сделать абсолютно бесплатно.
Конечно, все можно сделать и на Asterisk, но тут кроме разработчика потребуется и администратор, причем со знаниями в части безопасности голосовых сетей (так как их особенно любят взламывать).
Рассматриваем самую простую реализацию решения поставленной задачи — на вебхуках.
Для работы нам понадобится всего 2 новых метода, но каждый из них дает много возможностей, а главное — неограниченные циклы. Благодаря циклам можно получить голосовое меню любой глубины и информатор на любую тему.
Подробное описание методов для копипаста доступно в описании API [1].
Для запросов NOTIFY_START и NOTIFY_IVR можно «на лету» изменять сценарий работы по текущему звонку, отправив в ответ один из следующих вариантов:





По факту, клиент звонит и слушает приветствие, потом донабирает определенный номер (например, номер заказа), мы отправляем уведомление с цифрами которые он набрал, скрипт абонента проверяет по базе и отправляет ответ на уведомление к нам. В ответе, может содержаться id голосового файла или вариант стандартного голосового сообщения.
У нас есть стандартная система воспроизведения чисел, поэтому не нужно записывать предварительное голосовое сообщение, то есть из базы берется нужное уведомление и оно воспроизводится роботом как число. Либо же можете создать до 100 вариантов шаблонных голосовых уведомлений и отправлять их в ответ на запрос клиента (Ваш товар находится на складе, Вы можете получить ваш товар с 9 утра до 10 вечера ежедневно кроме воскресенья, Ваша посылка находится в пункте выдачи — метро Белорусская).
Чтобы секретарь смог ответить, нужен как минимум номер телефона и АТС. Также стоит заранее загрузить либо автоматически начитать ответы секретаря.


Чтобы показать разные возможности мы создали 4 примера работы с IVR на PHP.
Первые три примера доступны на Github [4]. В примере прописаны все необходимые элементы, нужно подставить только файлы с начиткой (которые предварительно загрузить или начитать в АТС).
Задача 4: пользователю произносится голосовое приветствие и просят ввести свой идентификационный номер, после ввода номера система произносит баланс, прощается, используя фразу из списка популярных, и завершает звонок.
Приводим пример кода под описанную задачу.
Код на PHP:
$request = new Request();
$notify = self::getEvent([AbstractNotify::EVENT_START, AbstractNotify::EVENT_IVR]);
if (!$notify) {
return;
}
switch ($notify->event){
case AbstractNotify::EVENT_START:
$request
->setIvrPlay(self::INFO_FILE_ID)
->setWaitDtmf(TIMEOUT , ATTEMPTS, MAXDIGITS, DTMF_NAME, DEFAULT_BEHAVIOUR);
break;
case AbstractNotify::EVENT_IVR:
if (!empty($notify->wait_dtmf->digits)) {
$balance = getBalance($notify->wait_dtmf->digits);
$request->setIvrSayNumber($balance, 'en');
} elseif (!empty($notify->ivr_saynumber)) {
$request->setIvrSayPopular(POPULAR_PHRASE_NUM, 'en');
} else {
$request->setHangup();
}
}
$request->send();
Исследуем необходимость дальнейшего расширения функционала методов и собираем обратную связь, пожелания в комментариях приветствуются. Кроме этого доступно множество других методов вебхуков и api. Полный список есть на сайте [5].
Автор: Павел Карев
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/314966
Ссылки в тексте:
[1] в описании API: https://zadarma.com/ru/support/api/#webhook
[2] Бесплатная АТС: https://zadarma.com/ru/services/pbx/
[3] номера: https://zadarma.com/ru/tariffs/numbers/
[4] Github: https://github.com/zadarma/user-api-v1/blob/master/examples/webhook.php
[5] на сайте: https://zadarma.com/ru/support/api/
[6] Источник: https://habr.com/ru/post/448178/?utm_source=habrahabr&utm_medium=rss&utm_campaign=448178
Нажмите здесь для печати.