Callflows
Callflows – это сценарии созданные внутри аккаунта Виртуальной АТС, с помощью них осуществляется маршрутизация вызовов внутри платформы.
При интеграции может быть использовано для соединения с ответственным менеджером, запрос на получения ответственного менеджера осуществляется во внешнюю систему и ожидает получить определенный ответ.
URI
/v1/kazoos/accounts/{account_id}/callflows/{callflow_id}
Базовые параметры
Наименование |
Описание |
Валидация |
Изменяемое |
numbers |
Список номеров, соответствующих данному callflow |
array |
Да |
patterns |
Список регулярных выражений, соответствующих данному callflow |
array |
Да |
flow |
Дерево callflow (действия для выполнения) |
object |
Да |
Операции
Тип запроса |
Входящие |
Исходящие |
Описание |
GET |
ALL |
Получение подробностей сценария |
|
POST |
ANY |
ALL |
Изменение параметров сценария |
DELETE |
Удаление сценария |
Коды ответов
Успешные коды: 200, 201
Коды ошибок: 400, 401, 404, 415, 500, 503, 504
Пример использования
Нам необходимо поменять или создать пользовательский сценарий с городским номером с функцией соединения с ответственным менеджером.
Получаем список сценариев с фильтрацией по номеру:
curl -X GET -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/callflows?filter_numbers=73334445566
В случае наличия данного сценария мы получим следующий ответ:
{"data":[{"id":"f0d3d3280f3ab5494c529570c0a6fe28 ","name":"Маршрутизация на ответственного. Номер 73334445566","numbers":["73334445566"],"patterns":[],"featurecode":false}],"revision":"f0d3d3280f3ab5494c529570c0a6fe28 ","request_id":"f0d3d3280f3ab5494c529570c0a6fe28 ","status":"success","auth_token":"f0d3d3280f3ab5494c529570c0a6fe28 "}
Далее нам необходимо внести изменения в полученный сценарий:
curl -X POST -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/accounts/{account_id}/callflows/{callflow_id} –d '{"data":{"numbers":["73334445566"],"patterns":[],"name":"Маршрутизация на ответственного. Номер 73334445566","flow":{"module":"pivot","data":{"method":"GET","req_timeout":"5","req_format":"kazoo","voice_url":"{dflow}&callflow_id=f0d3d3280f3ab5494c529570c0a6fe28&webserver=my.server.com/call_to_manager"},"children":{},"stick_node":true},"fakenumber":false}}'
При условии отсутствия данного сценария, нам необходимо его создать:
curl -X PUT -H "X-Auth-Token: f0d3d3280f3ab5494c529570c0a6fe28" -H "Content-Type: application/json" https://api.zebratelecom.ru/v1/kazoos/callflows -d '{"data":{"numbers":["73334445566"],"patterns":[],"name":"Маршрутизация на ответственного. Номер 73334445566","flow":{"module":"pivot","data":{"method":"GET","req_timeout":"5","req_format":"kazoo","voice_url":"{dflow}&callflow_id=f0d3d3280f3ab5494c529570c0a6fe28&webserver=my.server.com/call_to_manager"},"children":{},"stick_node":true},"fakenumber":false}}'
Таким образом мы создаем сценарий с запросом ответственного из внешнего источника, в данному случае – это внешний веб-сервер, который должен вернуть ответ в определенном формате.
Пример работы модуля
Тип модуля |
Описание |
Синтаксис ответа |
user |
Звонок на пользователя |
{ "type": "extension", // или id, вместо extension "extension": 101, "timeout": 20, "delay": 5, "strategy": "single" } |
device |
Звонок на устройство |
{ "operations": [ { "type": "device", "id": f0d3d3280f3ab5494c529570c0a6fe28, "timeout": 20, "delay": 5, "strategy": "single" } ] } |
voicemail |
Голосовая почта |
{ "operations": [ { "type": "voicemail", "extension": 101 } ] } |
callflows |
Переход на сценарий |
{ "operations": [ { "type": "callflow", "extension": 200, } ] } |
play |
Проигрывание звукового файла |
{ "operations": [ { "type": "play", "filename": "good_afternoon.wav" } ] } |
Описание user
Поле |
Описание |
Возможные значения |
type |
Тип вызываемого устройства |
id/extension |
extension |
Вызвать внутренний номер сотрудника |
Число или строка |
id |
Вызвать пользователя по егоid |
|
timeout |
Время звонка на каждое из устройств |
Целое число |
delay |
Задержка перед инициацией вызова |
Целое число |
strategy |
Стратегия звонка |
simultaneous – звонок всем сразу, single – по очереди |
Описание device
Поле |
Описание |
Возможные значения |
type |
Тип вызываемого устройства |
device |
id |
Вызвать устройство по его id |
Строка |
timeout |
Время звонка на каждое из устройств |
Целое число |
delay |
Задержка перед инициацией вызова |
Целое число |
strategy |
Стратегия звонка |
simultaneous – звонок всем сразу, single – по очереди |
Описание voicemail
Поле |
Описание |
Возможные значения |
type |
Тип вызываемого модуля |
device |
extension |
Внутренний номер пользователя данного ящика |
Строка |
Описание callflows
Поле |
Описание |
Возможные значения |
type |
Тип вызываемого модуля |
device |
extension |
Номер прикрепленный к сценарию |
Строка |
Описаниеplay
Поле |
Описание |
Возможные значения |
type |
Тип вызываемого модуля |
device |
filename |
Проиграть файл по его имени |
Строка |
Веб-сервер может возвращать массив операций, например:
{ "operations": [ { "type": "play", "filename": "good_afternoon.wav" }, { "type": "extension", "extension": 101, "strategy": "single" }, { "type": "extension", "extension": 102, "strategy": "simultaneous", "timeout": 40, }, { "type": "play", "filename": "Sorry.wav" }, { "type": "voicemail", "extension": 101 } ] }
Результат выполнения, описанного выше сценария:
1. Проигрыш звукового файла «good_afternoon.wav», загруженного на ВАТС;
2. Звонок на устройства сотрудника (доб.101). На каждое устройство по очереди. Timeout и delay берутся из настроек сотрудника, т.к. не описывались ответом веб-сервера;
3. Звонок на устройства сотрудника (доб.102) со стратегией «Всем сразу» 40 секунд;
4. Проигрыш звукового файла «Sorry.wav», загруженного на ВАТС;
Запись сообщения на ГП сотрудника с доб. 101.