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.
