начало входящего звонка в АТС
Параметры, которые отправляются на ссылку для уведомлений:
- event – событие (NOTIFY_START)
- call_start – время начала звонка;
- pbx_call_id – id звонка;
- caller_id – номер звонящего;
- called_did – номер, на который позвонили.
Составление проверочной подписи для уведомления о входящих звонках, пример на PHP:
$signatureTest = base64_encode(hash_hmac('sha1',
$_POST['caller_id'] . $_POST['called_did'] .
$_POST['call_start'], API_SECRET));
Для запросов NOTIFY_START и NOTIFY_IVR можно «на лету» изменять сценарий работы по текущему звонку. Для этого отправьте в ответ на вебхук один из следующих вариантов:
1. Перевести звонок:
(Пример 1)
Пример 1:
{
"redirect": ID,
"return_timeout": TIMEOUT (необязательное)
}
Где:
- redirect - id сценария редиректа (в формате 0-1, где 0 - номер голосового меню, 1 - номер сценария); или в формате 1, где 1 - номер сценария(номер голосового меню в этом случае 0); или меню АТС в формате 0-main, где 0 - это id меню; или внутренний номер АТС (трехзначный номер); или "blacklist" - в этом случае звонок будет отклонен с сигналом занято;
- return_timeout - Значение в секундах. Возможные значения:
- 0, звонок не вернется на меню;
- >= 3 - продолжительность звонка внутреннего номер, прежде чем звонок вернется на меню;
- rewrite_forward_number - переадресация на номер телефона. Необязательный параметр, доступен для использования только совместно с параметром redirect. Необходим для замены "на лету" номера телефона переадресации, который указан в настройках внутреннего номера АТС.
2. Завершить звонок:
(Пример 2)
Пример 2:
{
"hangup": 1
}
3. Задать имя входящего номера
Вы можете задать имя звонящего номера (SIP поле CallerName) и оно отразится в приложении. Таким образом удобно передать имя звонящего, если его номер есть в вашей системе.
(Пример 3)
Пример 3:
{
"caller_name": NAME
}
Где:
- caller_name - имя номера.
В каждом из следующих вариантов ниже (номера 4-7) может присутствовать ответ от абонента в виде цифр. Параметры ввода цифр:
(Пример 4)
Пример 4:
{
"wait_dtmf": {
"timeout": TIMEOUT,
"attempts": ATTEMPTS,
"maxdigits": MAXDIGITS,
"name": NAME,
"default": DEFAULT,
}
}
Где:
- timeout - время ожидания ввода цифр в секундах;
- attempts - количество попыток набора цифры от абонента;
- maxdigits - максимальное количество цифр, ввода которых дожидаться;
- name - имя, которое будет возвращено в ответе;
- default - действие, если не было набрано ни одной цифры (обратите внимание, что для срабатывания действия необходимо предварительно воспроизвести файл командой ivr_play согласно п.4 ниже). Возможные значения:
- id сценария редиректа (в формате 0-1, где 0 - номер голосового меню, 1 - номер сценария);
- меню АТС в формате 0-main, где 0 - это id меню;
- внутренний номер АТС (трехзначный номер);
- hangup - закончить звонок.
4. Воспроизвести файл:
(Пример 5)
Пример 5:
{
"ivr_play": "ID"
}
Где:
- ivr_play – значение из колонки ID в списке загруженных/начитанных файлов для нужного файла.
5. Воспроизвести популярную фразу:
(Пример 6)
Пример 6:
{
"ivr_saypopular": 1,
"language": "en"
}
Где:
- ivr_saypopular – номер фразы из списка;
Списки популярных фраз:
- Здравствуйте
- Добрый день
- Переадресация
- Звонок с сайта
- Добро пожаловать
- Тестовое сообщение
- Оставайтесь на линии
- Вы позвонили в нерабочее время
- Сейчас все менеджеры заняты, вам ответит первый освободившийся оператор.
- Наберите внутренний номер абонента
- Наберите внутренний номер сотрудника
- Наберите добавочный номер
- Пожалуйста ожидайте
- Наберите внутренний номер или дождитесь ответа оператора
- Пожалуйста оставьте сообщение
- Оставьте ваше сообщение после сигнала
- Перезвоните пожалуйста в рабочее время
- Благодарим за обращение в нашу компанию.
- Спасибо за звонок.
- Ожидайте ответа оператора
- Ваш звонок очень важен для нас
- Разговор записывается
- В данный момент нас нет в офисе
- Мы перезвоним вам при первой возможности
- Сегодня у нас выходной.
6. Воспроизвести цифры:
(Пример 7)
Пример 7:
{
"ivr_saydigits": "12",
"language": "en"
}
7. Воспроизвести число (в соответствии с правилами сложных числительных):
(Пример 8)
Пример 8:
{
"ivr_saynumber": "123",
"language": "en"
}
Где:
- language может принимать одно из значений: ru, en, es, pl;
Если были указаны ivr_saydigits или ivr_saynumber, в следующем событии NOTIFY_IVR будет добавлен параметр:
"ivr_saydigits": "COMPLETE" или "ivr_saynumber": "COMPLETE"
В следующем событии NOTIFY_IVR будет дополнительно указан параметр:
(Пример 9)
Пример 9:
{
"wait_dtmf": {
"name": NAME,
"digits": DIGITS,
"default_behaviour": "1"
}
}
Где:
- name - имя, указанное в предыдущем ответе;
- digits - цифры, введенные абонентом;
- default_behaviour - указано, если абонент ничего не нажал и сработало поведение по умолчанию;