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.