Голосовое меню своими руками

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Даже в 2021 году большая часть общения с клиентами происходит по телефону. Незаменимыми остаются виртуальная АТС и голосовое меню. Но настраивать его через веб интерфейсы часто недостаточно функционально, а делать через API или asterisk сложно.

Чтобы максимально упростить создание 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, но для одной своей АТС проще через личный кабинет):
  1. Активная беслпатная АТС
  2. В разделе меню “Моя АТС — Входящие звонки и голосовое меню” загружены или начитаны аудиофайлы для меню и настроены сценарии;
  3. В разделе “Моя АТС — Внутренние номера” добавлено нужное количество внутренних номеров согласно сценарию, и на всех номерах настроено оборудование для приема звонков
  4. Подключен виртуальный номер (на выбор номера в 100 странах мира и 100 городах России)
  5. В личном кабинете сервиса сгенерированы Key и Secret для работы с API.
  6. В разделе “Уведомления о звонках в АТС” настроек API, нужно задать ссылку на скрипт на вашем сервере.


Ссылка указывает на PHP скрипт с настройками:

<?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, в своей интеграции, что позволит управлять голосовым меню из своей системы. Управляя меню из своей системы, легко делать динамические меню, например робота опросника, или «липкие звонки» приходящие на ответственного менеджера либо просто того кто говорил с этим номером.

Надеемся данная библиотека будет полезна для простой и быстрой интеграции голосовых сервисов. Про возможности большей интеграции голоса в вашу систему, напишем в следующей статье.
Источник: https://habr.com/ru/company/zadarma/blog/550362/


Интересные статьи

Интересные статьи

Приветствую вас, дорогие читатели. В данной статье описана разработка функции разделения строк. Возможно, эта функция может стать для вас хорошей альтернативой, вместо функции strtok из ...
Командная строка… Её можно любить или ненавидеть, но тому, кто пользуется Unix-подобными операционными системами, без неё не обойтись. Облегчить работу в командной строке можно с помощью ...
Привет, Хабр! Сегодня расскажу о своем лазерном стенке для резки фанеры и гравировки кожи. Цель была как всегда – максимум функционала за минимум денег). Читать дальше → ...
Little Game Engine (LGE) – это виртуальная игровая консоль выдуманной конфигурации, с выдуманным процессором и онлайн web-SDK, состоящий из компилятора С-подобного кода в ассемблер и дальнейшей п...
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.