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.