Голосовое меню (/ivr/)
Протестировать методы API можно на странице интерактивного обозревателя API и без написания кода
Некоторые ресурсы, описанные на странице, по умолчанию могут быть не доступны из-за типа приложения (см. Создание и авторизация приложений)
Внутренние номера типа IVR (интерактивное голосовое меню) служат для настройки маршрутизации звонков внутри АТС с использованием информации, вводимой клиентом на клавиатуре телефона с помощью тонального набора.
Для конфигурации голосового меню необходимо создать внутренний номер, указав в качестве типа (type) значение ivr. После этого становится возможным конфигурация голосового меню через API-интерфейс. Звуковые файлы, которые необходимы для настройки голосового приветствия, загружаются в ресурс “Звуковые файлы (/sound/)”.
Контекст представляет собой заранее сформированный набор правил, на которые можно сослаться в настройках. Каждый контекст содержит следующие опции:
start – описывает действия при вхождении в контекст;
timeout – описывает действия при наступлении тайм-аута (клиент не сделал никакого выбора в течении заданного промежутка времени);
invalid – действия, наступающие при выборе клиентом опции, которая не сконфигурирована.
В дополнение к обязательным опциям контекста могут быть добавлены дополнительные (например, что происходит при наборе последовательности "100"). Все опции по умолчанию выполняют действие hangup (повесить трубку), и это действие должно быть переопределено для задания необходимой логики.
За IVR закреплен так называемый "entry_context" – в него попадает вызов после прихода в голосовое меню. Его еще можно назвать главным контекстом.
Тип звучания голосового приветствия может быть 'background' или 'foreground'. В случае "background" система готова принимать тональный набор в любой момент, а 'foreground' обязывает пользователя прослушать запись до конца и лишь после этого делать выбор (если возможность такого выбора сконфигурирована).
Описание структур данных
Примеры
Для клиента с уникальным идентификатором 12 нужно создать голосовое меню (IVR) с номером "071", при попадании в которое действуют следующие правила:
Проиграть foreground музыкальный файл "advertising.wav" 1 раз;
Проиграть background музыкальный файл "hello.wav" и в случае отсутствия выбора клиента автоматически переводить на внутренний номер 050;
При наборе "1" происходит перевод вызова на мобильный +7(987)6543210;
При наборе "2" происходит перевод вызова на внутренний номер 002;
Позволять прямой набор трехзначных внутренних номеров.
1. Используя ресурс Звуковые файлы (/sound/), необходимо загрузить файлы hello.wav и advertising.wav:
Ответ системы:
{
"id": 51,
"client_id": 12,
"title": "мой файл приветствия",
"dealer_id": null,
"filename": "hello.wav"
}
{
"id": 52,
"client_id": 12,
"title": "мой файл рекламы",
"dealer_id": null,
"filename": "advertising.wav"
}
Идентификаторы новых файлов: hello.wav "id": 51; advertising.wav "id": 52
2. Используя ресурс Внутренний номер (/extension/), создать внутренний номер типа "IVR":
Ответ системы:
{
"status": "active",
"domain": "sip.ringme.ru",
"create_date": "2020-03-20 17:11:10",
"name": "000*071",
"dial_rule_limit": null,
"extension_group_id": null,
"label": "тестовый IVR",
"caller_id_name": null,
"client_id": 12,
"extra_params": null,
"message_did": null,
"dial_rule_id": null,
"ani_rfc3325": false,
"type": "ivr",
"id": 204,
"did_as_transfer_caller_id": null
}
Идентификатор нового внутреннего номера "id": 204
3. Создаем контекст, который будет являться главным (entry_context):
Ответ системы:
Идентификатор контекста "id": 1
4. Теперь можно привязать этот контекст как главный к нашему IVR, заодно указываем "sleep-time", позволяющее задать паузу от прихода вызова в IVR до начала каких-либо действий контекста "entry_context":
Ответ системы:
5. Как отмечалось ранее, каждый контекст уже имеет опцию “start”. Сконфигурируем его для проигрывания foreground музыкального файла "advertising.wav"
6. Далее по аналогии укажем воспроизвести файл hello.wav в background:
7. Теперь в контексте "Основной контекст" добавим возможность обработки выбора "1":
Ответ системы:
8. И укажем, какое действие необходимо производить при выборе "1" — перевод на мобильный +7(987)6543210:
9. По аналогии добавим вызов внутреннего номера "002" по набору "2":
Ответ системы:
10. В случае отсутствия выбора вызов должен автоматически переводиться на внутренний номер “050”. Как уже отмечалось, в контексте есть опция "timeout", с помощью которой можно задать это действие:
11. В результате можно посмотреть все доступные опции контекста:
Ответ системы: