Перейти к содержанию

API Виртуальной АТС

С помощью данной группы методов вы можете настроить Виртуальную АТС Roistat, не используя интерфейс Roistat. Также методы позволяют управлять Виртуальной АТС, если она уже подключена.

Инструкция по настройке

Если вы хотите подключить Виртуальную АТС с помощью интерфейса Roistat, воспользуйтесь инструкциями из этого раздела.

Также можно подключить и настроить Виртуальную АТС только с помощью API – для этого следуйте инструкции ниже.

Шаг 1. Подключение операторов

Оператор – сотрудник вашей компании, который общается с клиентами по телефону. В зависимости от настроек Виртуальной АТС, оператор может принимать входящие звонки и/или совершать исходящие звонки. Чтобы создать оператора, используйте метод /project/vpbx/operator/create.

Операторов можно разделять по группам, которые затем можно использовать при создании сценариев обработки звонков и настройке доступов. Чтобы создать группу операторов, используйте метод /project/vpbx/operator/group/create.

Чтобы добавить оператора в группу, сначала создайте группу, а затем обновите данные оператора с помощью метода /project/vpbx/operator/update, указав ID нужных групп в массиве group_ids.

Подключение оператора к софтфону

При подключении оператора к софтфону необходимо вводить следующие данные:

  • Домен: pbx.roistat.com
  • Логин / имя пользователя: значение параметра login, указанное при создании оператора
  • Пароль: значение параметра password, указанное при создании оператора

Пример подключения к Zoiper:

1.png

Стоимость подключения оператора

Стоимость подключения операторов к Виртуальной АТС вы можете узнать на сайте Roistat. Плата за подключение оператора списывается с баланса следующим образом:

  • Сначала единовременно списывается плата за первые 5 дней с момента подключения оператора, включая текущий день. Сумма рассчитывается по формуле: месячная стоимость оператора / 30 * 5.
  • Начиная с 6 дня, плата будет списываться ежедневно.

Тариф Тестовый (14 дней пробного использования Roistat) позволяет подключить двух операторов бесплатно. После окончания тестового периода с баланса начнет списываться плата за подключение данных операторов.

Настройка доступов для операторов

Оператор может просматривать дашборд, отчеты и историю звонков, не создавая аккаунт Roistat. Чтобы открыть оператору доступ на просмотр дашборда, отчетов и истории звонков:

  1. При создании или редактировании оператора в массиве managed_group_ids укажите ID групп, звонки которых данный оператор сможет видеть в статистике. Если ID не указаны, оператор будет видеть только собственные звонки.

  2. Отправьте оператору ссылку: https://cloud.roistat.com/projects/<project>/vpbx/operator/reports

    Вместо <project> укажите номер проекта, который можно найти в интерфейсе Roistat в левом верхнем углу рядом с названием проекта. Например, ссылка для проекта №1234 будет выглядеть так: https://cloud.roistat.com/projects/1234/vpbx/operator/reports

  3. После перехода по ссылке оператор должен ввести логин и пароль, которые он использует при подключении к софтфону.

Шаг 2. Подключение номеров

Можно подключить номера любых операторов. Для подключения уточните данные у оператора: адрес сервера, порт, логин, пароль, формат номера. Добавленные номера можно использовать в сценариях обработки входящих и исходящих звонков.

Чтобы добавить номер, используйте метод /project/vpbx/phone/create.

Стоимость подключения одного собственного номера к Виртуальной АТС вы можете узнать на сайте Roistat. Плата за добавление номера списывается с баланса следующим образом:

  • Сначала единовременно списывается плата за первые 5 дней с момента добавления номера, включая текущий день. Сумма рассчитывается по формуле: месячная стоимость номера / 30 * 5.
  • Начиная с 6 дня, плата будет списываться ежедневно равными частями.

Шаг 3. Создание сценария обработки звонков

После подключения номеров можно создать сценарий – набор правил, по которым звонки будут направляться операторам. Например, можно настроить переадресацию на определенный отдел или добавить музыку при ожидании ответа.

Чтобы создать сценарий, используйте метод /project/vpbx/script/create.

Чтобы временно отключить сценарий, используйте метод /project/vpbx/script/update – для параметра is_enabled установите значение false.

Общие настройки

Загрузка аудиофайлов

Вы можете загружать в Roistat аудиофайлы, чтобы проигрывать их при звонке – например, в качестве приветствия или при ожидании оператора. Также аудиозапись необходима для настройки голосового меню.

Чтобы загрузить аудиофайл, воспользуйтесь методом /project/vpbx/settings/file/audio/upload. Допустимые форматы – MP3, WAV, OGG; суммарный размер файлов не должен превышать 600 MB при единовременной загрузке.

Запись разговоров

По умолчанию все телефонные разговоры записываются в стереоформате. Запись можно прослушать и скачать в интерфейсе Виртуальной АТС в разделе История звонков. Управлять записью звонков можно с помощью метода /project/vpbx/settings/update: для параметра is_save_call_record установите значение true (включить) или false (отключить). Если вы отключите запись звонков, расшифровка звонков с помощью Речевой аналитики будет недоступна.

Создание сделок в CRM на основе звонков

Вы можете включить создание сделок в CRM на основе звонков, настроить дополнительные поля сделки, а также установить определенного оператора ответственным за сделку. Для этого используйте соответствующие параметры метода /project/vpbx/settings/update.

Настройка вебхуков

Вы можете настроить передачу данных по звонкам с помощью вебхуков (например, если у вас настроена интеграция с CRM не из каталога Roistat). Для этого используйте соответствующие параметры метода /project/vpbx/settings/update.

Подробнее о настройке вебхуков

Отправка записей звонков в Речевую аналитику

Вы можете отправлять записи звонков в Речевую аналитику Roistat для расшифровки речи оператора и клиента. Это позволит анализировать работу операторов и быстро выявлять проблемные звонки.

По умолчанию все звонки, проходящие через Виртуальную АТС Roistat, отправляются в Речевую аналитику. Если вы хотите отключить автоматическую отправку входящих и/или исходящих звонков, используйте метод /project/speech/settings/update – для параметров is_load_incoming_calls_from_vpbx (входящие) и/или is_load_outgoing_calls_from_vpbx (исходящие) установите значение false.

Отчет и История звонков

Roistat строит подробные отчеты на основе данных по входящим и исходящим звонкам. Вы можете самостоятельно настроить отчет по группировке (срезу), периоду времени и разным показателям. Чтобы получить отчет, используйте метод /project/vpbx/report/data, указав в теле запроса нужные параметры отчета.

В Истории звонков отображаются данные по входящим и исходящим звонкам, совершенным в указанный период времени. Чтобы посмотреть Историю звонков, используйте метод /project/vpbx/call/list, указав в теле запроса необходимый период.

Список методов

Создать оператора

POST https://cloud.roistat.com/api/v1/project/vpbx/operator/create

Используйте данный метод для создания оператора в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/operator/create?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"name": "Сергей", "login": "vpbx206812_serj", "password": "123", "email": "[email protected]", "group_ids":[], "extension_number":123}'

Тело запроса:

{
    "name": "Сергей",
    "login": "vpbx206812_serj",
    "password": "123",
    "email": "[email protected]",
    "group_ids":[1,2],
    "managed_group_ids":[1],
    "extension_number":123
}
{
    "id": 2,
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
name string Произвольное имя оператора да
login string Логин для подключения оператора к софтфону. Должен иметь формат vpbx<номер_проекта>_login. Например, если номер вашего проекта – 1234, можно указать логин вида vpbx1234_ivan. Допускается использовать только латиницу и цифры. да
password string Пароль для подключения оператора к софтфону да
email string Email для связи оператора с менеджером в CRM. Укажите, если нужно назначать операторов ответственными за сделки в CRM. нет
group_ids array[integer] ID групп, в которые нужно добавить оператора. Чтобы узнать ID группы, используйте метод /project/vpbx/operator/group/list. Чтобы не добавлять оператора ни в одну группу, передайте пустой массив. да
managed_group_ids array[integer] ID групп операторов, звонки которых данный оператор будет видеть в статистике. Если не указать их, оператор будет видеть только собственные звонки. нет
extension_number integer Добавочный номер (идентификатор), с помощью которого можно переадресовывать звонки внутри ВАТС да
Параметр Тип Описание
id integer ID, присвоенный оператору в Roistat
status string Статус запроса

Изменить данные оператора

POST https://cloud.roistat.com/api/v1/project/vpbx/operator/update

Используйте этот метод для изменения данных оператора в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/operator/update?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"name": "Сергей", "login": "vpbx206812_serj", "password": "123", "email": "[email protected]", "group_ids":[], "extension_number":123}'

Тело запроса:

{
    "name": "Сергей",
    "login": "vpbx206812_serj",
    "password": "123",
    "email": "[email protected]",
    "group_ids":[1,2],
    "managed_group_ids":[1],
    "extension_number":123
}
{
    "id": 2,
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
name string Произвольное имя оператора да
login string Логин для подключения оператора к софтфону. Должен иметь формат vpbx<номер_проекта>_login. Например, если номер вашего проекта – 1234, можно указать логин вида vpbx1234_ivan. Допускается использовать только латиницу и цифры. да
password string Пароль для подключения оператора к софтфону да
email string Email для связи оператора с менеджером в CRM. Укажите, если нужно назначать операторов ответственными за сделки в CRM. нет
group_ids array[integer] ID групп, в которые нужно добавить оператора. Чтобы узнать ID группы, используйте метод /project/vpbx/operator/group/list. Чтобы не добавлять оператора ни в одну группу, передайте пустой массив. да
managed_group_ids array[integer] ID групп операторов, звонки которых данный оператор будет видеть в статистике. Если не указать их, оператор будет видеть только собственные звонки. нет
extension_number integer Добавочный номер (идентификатор), с помощью которого можно переадресовывать звонки внутри ВАТС да
Параметр Тип Описание
id integer ID, присвоенный оператору в Roistat
status string Статус запроса

Удалить оператора

POST https://cloud.roistat.com/api/v1/project/vpbx/operator/deactivate

Используйте данный метод для удаления оператора в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/operator/deactivate?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"id": 1}'

Тело запроса:

{
    "id": "1"
}
{
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
id number ID оператора – можно узнать с помощью метода /project/vpbx/operator/list да
Параметр Тип Описание
status string Статус запроса

Получить список операторов

POST https://cloud.roistat.com/api/v1/project/vpbx/operator/list

Используйте данный метод, чтобы получить список операторов Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/operator/list?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"filters": [{"field": "is_active", "operator": "=", "value": true}]}'

Тело запроса:

{
    "groups": [
        {
            "id": 1,
            "name": "группа 1"
        }
    ],
    "managed_groups": [
        {
            "id": 1,
            "name": "группа 1"
        }
    ],
    "filters": [
        {
            "field": "is_active",
            "operator": "=",
            "value": true
        },
        {
            "field": "is_online",
            "operator": "=",
            "value": true
        },
        {
            "field": "is_busy",
            "operator": "=",
            "value": false
        },          
        {
            "field": "id",
            "operator": "=",
            "value": true
        },
        {
            "field": "name",
            "operator": "=",
            "value": "Иван"
        },
        {
            "field": "login",
            "operator": "=",
            "value": "vpbx1234_ivan"
        },
        {
            "field": "email",
            "operator": "=",
            "value": "[email protected]"
        },
        {
            "field": "extension_number",
            "operator": "=",
            "value": "123"
        }
    ],
    "limit": 20,
    "offset": 0     
}
{
    "data": [
        {
            "id": 5,
            "name": "Инна",
            "login": "vpbx206812_inna",
            "email": null,
            "is_active": true,
            "is_online": false,
            "is_busy": false,
            "groups": [
                {
                    "id": 2,
                    "name": "Группа 2",
                    "operator_count": 2
                }
            ],
            "managed_groups": [],
            "extension_number": 112
        },
        {
            "id": 3,
            "name": "Пётр",
            "login": "vpbx206812_peter",
            "email": "[email protected]",
            "is_active": true,
            "is_online": false,
            "is_busy": false,
            "groups": [
                {
                    "id": 1,
                    "name": "Группа 1",
                    "operator_count": 2
                }
            ],
            "managed_groups": [],
            "extension_number": 1234
        }
    ],
    "count": 2,
    "total_count": 2,
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
groups array[object] Фильтр по группам операторов нет
id integer ID группы – можно узнать с помощью метода /project/vpbx/operator/group/list нет
name string Название группы – можно получить с помощью метода /project/vpbx/operator/list нет
managed_groups array[object] Фильтр по группам операторов, к которым должен быть доступ нет
id integer ID группы – можно узнать с помощью метода /project/vpbx/operator/group/list нет
name string Название группы – можно получить с помощью метода /project/vpbx/operator/list нет
filters array[object] Фильтр по данным оператора нет
field string Параметр фильтрации. Возможные значения: is_active – активен ли оператор (т.е. не находится в архиве); is_online – находится ли оператор на линии; is_busy – участвует ли оператор в звонке; id – ID оператора; name – имя оператора; login – логин оператора; email – email оператора; extension_number – добавочный номер оператора. нет
operator string Оператор фильтра. Возможные значения: = – равно; != – не равно. нет
value boolean или string Значение фильтра. Возможные значения: для параметров is_active, is_online, is_busy – true или false; для остальных параметров – необходимое значение фильтра нет
limit integer Максимальное количество результатов в ответе нет
offset integer Количество результатов в начале, которое нужно пропустить нет
Параметр Тип Описание
data array[object]
id integer ID оператора
name string Имя оператора
login string Логин оператора
email string Email оператора
is_active boolean Активен ли оператор (т.е. не находится в архиве)
is_online boolean Находится ли оператор на линии
is_busy boolean Участвует ли оператор в звонке
groups array[object] Информация о группах, в которых состоит оператор
>> id integer ID группы
>> name string Название группы
>> operator_count integer Количество операторов в группе
managed_groups array[object] Информация о группах, к которым у оператора есть доступ
>> id integer ID группы
>> name string Название группы
>> operator_count integer Количество операторов в группе
extension_number integer Добавочный номер оператора
count integer Количество результатов в ответе
total_count integer Количество результатов независимо от лимита
status string Статус запроса

Создать группу операторов

POST https://cloud.roistat.com/api/v1/project/vpbx/operator/group/create

Используйте данный метод для создания группы операторов в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/operator/group/create?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"name": "Группа 1"}'

Тело запроса:

{
    "name": "Группа 1"
}
{
    "id": 1,
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
name string Название группы да
Параметр Тип Описание
id integer ID, присвоенный группе операторов в Roistat
status string Статус запроса

Отредактировать группу операторов

POST https://cloud.roistat.com/api/v1/project/vpbx/operator/group/update

Используйте данный метод для редактирования группы операторов в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/operator/group/update?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"id": 1, "name": "Группа 1"}'

Тело запроса:

{
    "id": 1,
    "name": "Группа 1"
}
{
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
id integer ID группы операторов – можно узнать с помощью метода /project/vpbx/operator/group/list да
name string Название группы да
Параметр Тип Описание
status string Статус запроса

Получить список групп операторов

POST https://cloud.roistat.com/api/v1/project/vpbx/operator/group/list

Используйте данный метод, чтобы получить список групп операторов в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/operator/group/list?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}'

Тело запроса:

Без тела.

{
    "data": [
        {
            "id": 1,
            "name": "Группа 1",
            "operator_count": 2
        },
        {
            "id": 2,
            "name": "Группа 2",
            "operator_count": 2
        }
    ],
    "count": 2,
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Без тела.

Параметр Тип Описание
data array[object]
id integer ID группы операторов
name string Название группы операторов
operator_count integer Количество операторов в группе
count integer Количество результатов
status string Статус запроса

Добавить номер

POST https://cloud.roistat.com/api/v1/project/vpbx/phone/create

Используйте данный метод, чтобы добавить номер стороннего оператора связи в Виртуальную АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/phone/create?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"phone":"79999991000", "sip_host":"test.com", "sip_login":"test", "sip_password":"12345", "sip_port":5060}'

Тело запроса:

{
    "phone": "79999991000",
    "sip_host": "test.com",
    "sip_login": "test",
    "sip_password": "12345",
    "sip_port": 5060
}
{
    "data": {
        "id": 4,
        "phone": "79999991000",
        "script": null,
        "incoming_call_count": 0,
        "outgoing_call_count": 0,
        "creation_date": "2022-10-11T19:17:33+0000",
        "is_external": true,
        "sip_login": "test",
        "sip_host": "test.com",
        "sip_port": 5060,
        "status":"success"
    }
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
phone string Номер телефона в формате 7XXXXXXXXXX да
sip_host string Домен вашего сервера да
sip_login string Логин для авторизации номера да
sip_password string Пароль для авторизации номера да
sip_port integer TCP-порт да
Параметр Тип Описание
data object
id integer ID, присвоенный номеру в Roistat
phone string Номер телефона
script_id integer или null ID сценария, в котором участвует номер
incoming_call_count integer Количество входящих звонков по номеру
outgoing_call_count integer Количество исходящих звонков с номера
creation_date string Дата добавления номера
is_external boolean Является ли номер внешним
sip_login string Логин для авторизации номера
sip_host string Домен вашего сервера
sip_port integer TCP-порт
status string Статус запроса

Отредактировать номер

POST https://cloud.roistat.com/api/v1/project/vpbx/phone/update

Используйте данный метод, чтобы отредактировать номер в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/phone/update?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"id":1, "phone":"79999991000", "sip_host":"test.com", "sip_login":"test", "sip_password":"12345", "sip_port":5060}'

Тело запроса:

{
    "id": 1,
    "phone": "79999991000",
    "sip_host": "test.com",
    "sip_login": "test",
    "sip_password": "12345",
    "sip_port": 5060,
    "script_id": 2
}
{
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
id integer ID номера в Roistat – можно получить с помощью метода /project/vpbx/phone/list да
phone string Номер телефона в формате 7XXXXXXXXXX нет
sip_host string Домен вашего сервера нет
sip_login string Логин для авторизации номера нет
sip_password string Пароль для авторизации номера нет
sip_port integer TCP-порт нет
script_id integer или null ID сценария, в котором участвует номер – можно получить с помощью метода /project/vpbx/script/list нет
Параметр Тип Описание
status string Статус запроса

Удалить номер

POST https://cloud.roistat.com/api/v1/project/vpbx/phone/delete

Используйте данный метод, чтобы удалить номер из Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/phone/delete?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"id": 1}'

Тело запроса:

{
    "id": 1
}
{
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
id integer ID номера в Roistat – можно получить с помощью метода /project/vpbx/phone/list да
Параметр Тип Описание
status string Статус запроса

Получить список номеров

GET https://cloud.roistat.com/api/v1/project/vpbx/phone/list

Используйте данный метод, чтобы получить список номеров, добавленных в Виртуальную АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/phone/list?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}'

Тело запроса:

Без тела.

{
    "data": [
        {
            "id": 1,
            "phone": "70006451221",
            "script": {
                "id": 2,
                "name": "VIP-клиенты",
                "is_enabled": true,
                "creation_date": "2022-03-19T20:24:01+0000",
                "is_outgoing_call_enabled": true,
                "outgoing_call_phones": [
                    "78006451221"
                ],
                "outgoing_call_operators_group_ids": [
                    3
                ],
                "outgoing_call_phone_condition": {
                    "values": [
                        "78004124211",
                        "78004124311",
                        "78125441621"
                    ],
                    "is_allowed": true
                },
                "is_incoming_call_enabled": true,
                "incoming_call_action_groups": [
                    {
                        "name": "Группа действий 1",
                        "is_wait_for_extension": false,
                        "musiconhold_file_id": null,
                        "is_musiconhold_enabled": false,
                        "phone_condition": {
                            "values": [
                                "78004124211",
                                "78004124311",
                                "78125441621"
                            ],
                            "is_allowed": true
                        },
                        "time_conditions": [
                            {
                                "days": [
                                    1,
                                    2,
                                    3,
                                    4,
                                    5
                                ],
                                "time": "07:00-20:59"
                            }
                        ],
                        "actions": [
                            {
                                "type": "connect_to_operator_group",
                                "params": {
                                    "connection_timeout": "40",
                                    "operator_group_id": 3
                                }
                            },
                            {
                                "type": "connect_to_phone",
                                "params": {
                                    "connection_timeout": "30",
                                    "phone": "79084564738"
                                }
                            }
                        ]
                    }
                ]
            },
            "incoming_call_count": 20,
            "outgoing_call_count": 26,
            "creation_date": "2022-03-19T20:24:01+0000",
            "is_external": false,
            "sip_login": null,
            "sip_host": null,
            "sip_port": null
        }
    ],
    "count": 18,
    "status": "success"
}   

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Без тела.

Параметр Тип Описание
data array[object]
id integer ID звонка в Roistat
phone string Номер телефона
script object Информация о сценарии, в котором участвует номер
>> id integer ID сценария
>> name string Название сценария
>> is_enabled boolean Включен ли сценарий
>> creation_date string Дата создания сценария
>> is_outgoing_call_enabled boolean Разрешены ли исходящие звонки
>> outgoing_call_phones array[string] Номера, с которых совершаются исходящие звонки
>> outgoing_call_operators_group_ids array[integer] ID операторов, которые могут совершать исходящие звонки
>> outgoing_call_phone_condition object Номера, на которые разрешены исходящие звонки
>>> values array[string] Список номеров
>>> is_allowed boolean Разрешены ли исходящие на перечисленные номера
>> is_incoming_call_enabled boolean Разрешены ли входящие звонки
>> incoming_call_action_groups array[object] Группы действий для входящих звонков
>>> name string Название группы действий
>>> is_wait_for_extension boolean Включено ли ожидание ввода добавочного номера
>>> musiconhold_file_id integer ID аудиофайла с музыкой на ожидании
>>> is_musiconhold_enabled boolean Установлена ли музыка на ожидании
>>> phone_condition object Номера, с которых разрешены входящие звонки
>>>> values array[string] Список номеров
>>>> is_allowed boolean Разрешены ли входящие с перечисленных номеров
>>> time_conditions array[object] Условия по времени срабатывания
>>>> days array[integer] Дни недели, в которые должен работать сценарий: 1 – понедельник, 2 – вторник и т.д.
>>>> time string Промежуток времени, когда сценарий должен работать, в формате 07:00-20:59
>>> actions array[object] Действия
>>>> type string Тип действия: connect_to_operator – соединить с конкретным оператором, connect_to_pinned_operator – соединить с закрепленным оператором, connect_to_operator_group – соединить с группой операторов, connect_to_all_operators – соединить со всеми операторами, connect_to_sip – соединить с внешней линией, connect_to_round_robin_operator_group – соединить со следующим по очереди, connect_to_phone – соединить с мобильным номером, play_audio_file – проиграть запись, go_to_action – перейти к действию, voice_menu – голосовое меню, finish_call – завершить звонок
>>>> params object Настройки действия
>>>>> connection_timeout integer Время ожидания в секундах, по истечении которого запустится следующее действие
>>>>> operator_id integer ID оператора для действия connect_to_operator
>>>>> operator_group_id integer ID группы операторов для действий connect_to_operator_group и connect_to_round_robin_operator_group
>>>>> sip string Внешний SIP-адрес для действия connect_to_sip
>>>>> phone string Номер телефона для действия connect_to_phone
>>>>> audio_file_id integer ID аудиофайла для действий play_audio_file и voice_menu
>>>>> action_id integer ID действия для действия go_to_action
>>>>> timeout_waiting_time integer Время бездействия после проигрывания записи (в секундах) для действия voice_menu
>>>>> timeout_actions array[object] Действия по истечении времени бездействия (для действия voice_menu). Для настройки используются параметры type и params (см. возможные значения выше), а также массив key_actions в следующем виде: "key_actions":[{"actions":[{"type":"connect_to_pinned_operator","params":{"connection_timeout":30}}],"key":"1"},{"actions":[{"type":"finish_call","params":{}}],"key":"2"},{"actions":[{"type":"connect_to_all_operators","params":{"connection_timeout":30}}],"key":"3"}]
incoming_call_count integer Количество входящих звонков на номер
outgoing_call_count integer Количество исходящих звонков на номер
creation_date integer Дата подключения номера к Виртуальной АТС
is_external boolean Является ли номер внешним
sip_login string Логин для авторизации номера
sip_host string Домен вашего сервера
sip_port integer TCP-порт
count integer Количество результатов
status string Статус запроса

Создать сценарий

POST https://cloud.roistat.com/api/v1/project/vpbx/script/create

Используйте данный метод, чтобы создать сценарий обработки звонков в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/script/create?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"name":"Тестовый сценарий","is_enabled":false,"is_outgoing_call_enabled":false,"is_incoming_call_enabled":true,"incoming_call_action_groups":[{"name":"Группа действий 1","actions":[{"type":"connect_to_operator_group","params":{"connection_timeout":30,"operator_group_id":4}}]}]}'

Тело запроса:

{
    "name": "Тестовый сценарий",
    "is_enabled": false,
    "is_outgoing_call_enabled": false,
    "is_incoming_call_enabled": true,
    "outgoing_call_phones": ["78006451221"],
    "outgoing_call_operators_group_ids": [3],
    "outgoing_call_phone_condition": 
        {
            "is_allowed": true,
            "values": ["78004124211","78004124311","78125441621"]
        },
    "incoming_call_action_groups": [
        {
            "name": "Группа действий 1",
            "phone_condition": {
                "is_allowed": true,
                "values": ["78004124211","78004124311","78125441621"]
            },
            "time_conditions":[
                {
                    "days": [1,2,3,4,5],
                    "time": "07:00-20:59"
                }
            ],
            "actions": [
                            {
                                "type": "play_audio_file",
                                "params": {
                                    "audio_file_id": 23
                                }
                            },
                            {
                                "type": "connect_to_operator",
                                "params": {
                                    "connection_timeout": "40",
                                    "operator_id": 3
                                }
                            },
                            {
                                "type": "connect_to_pinned_operator",
                                "params": {
                                    "connection_timeout": "40"
                                }
                            },                                  
                            {
                                "type": "connect_to_operator_group",
                                "params": {
                                    "connection_timeout": "40",
                                    "operator_group_id": 3
                                }
                            },
                            {
                                "type": "connect_to_all_operators",
                                "params": {
                                    "connection_timeout": "40"
                                }
                            },
                            {
                                "type": "connect_to_sip",
                                "params": {
                                    "sip": "79123459812",
                                    "connection_timeout": "40"
                                }
                            },
                            {
                                "type": "connect_to_round_robin_operator_group",
                                "params": {
                                    "operator_group_id": 1,
                                    "connection_timeout": "40"
                                }
                            },                                  
                            {
                                "type": "connect_to_phone",
                                "params": {
                                    "connection_timeout": "30",
                                    "phone": "79084564738"
                                }
                            },
                            {
                                "type": "go_to_action",
                                "params": {
                                    "action_id": 1
                                }
                            },
                            {
                                "type": "finish_call"
                            },  
                            {
                                "type": "voice_menu",
                                "params": { 
                                    "audio_file_id": 2,
                                    "timeout_waiting_time": 30,
                                    "timeout_actions": [
                                        {
                                            "type": "connect_to_all_operators",
                                            "params": {
                                                "connection_timeout": 30
                                            }
                                        }
                                    ],
                                    "key_actions": [
                                        {
                                            "actions": [
                                                {
                                                    "type": "connect_to_pinned_operator",
                                                    "params": {
                                                        "connection_timeout": 30
                                                    }
                                                }
                                            ],
                                            "key": "1"
                                        },
                                        {
                                            "actions": [
                                                {
                                                    "type": "finish_call",
                                                    "params": {
                                                    }
                                                }
                                            ],
                                            "key": "2"
                                        },
                                        {
                                            "actions": [
                                                {
                                                    "type": "connect_to_all_operators",
                                                    "params": {
                                                        "connection_timeout": 30 
                                                    }
                                                }
                                            ],
                                            "key":"3"
                                        }
                                    ]
                                }
                            }                               
                        ]
            "is_wait_for_extension": false,
            "is_musiconhold_enabled": false,
            "musiconhold_file_id": null
        }
    ]
}
{
    "status":"success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
name string Название сценария да
is_enabled boolean Включен ли сценарий нет
is_outgoing_call_enabled boolean Разрешены ли исходящие звонки да
is_incoming_call_enabled boolean Разрешены ли входящие звонки да
outgoing_call_phones array[string] Номера, с которых совершаются исходящие звонки нет
outgoing_call_operators_group_ids array[integer] ID операторов, которые могут совершать исходящие звонки нет
outgoing_call_phone_condition object Номера, на которые разрешены исходящие звонки нет
is_allowed boolean Разрешены ли исходящие на перечисленные номера нет
values array[string] Список номеров нет
incoming_call_action_groups array[object] Группы действий для входящих звонков да
name string Название группы действий да
phone_condition object Номера, с которых разрешены входящие звонки нет
>> is_allowed boolean Разрешены ли входящие с перечисленных номеров нет
>> values array[string] Список номеров нет
time_conditions array[object] Условия по времени срабатывания нет
>> days array[integer] Дни недели, в которые должен работать сценарий: 1 – понедельник, 2 – вторник и т.д. нет
>> time string Промежуток времени, когда сценарий должен работать, в формате 07:00-20:59 нет
actions array[object] Действия да
>> type string Тип действия: connect_to_operator – соединить с конкретным оператором, connect_to_pinned_operator – соединить с закрепленным оператором, connect_to_operator_group – соединить с группой операторов, connect_to_all_operators – соединить со всеми операторами, connect_to_sip – соединить с внешней линией, connect_to_round_robin_operator_group – соединить со следующим по очереди, connect_to_phone – соединить с мобильным номером, play_audio_file – проиграть запись, go_to_action – перейти к действию, voice_menu – голосовое меню, finish_call – завершить звонок да
>> params object Настройки действия да
>>> connection_timeout integer Время ожидания в секундах, по истечении которого запустится следующее действие да
>>> operator_id integer ID оператора для действия connect_to_operator нет
>>> operator_group_id integer ID группы операторов для действий connect_to_operator_group и connect_to_round_robin_operator_group нет
>>> sip string Внешний SIP-адрес для действия connect_to_sip нет
>>> phone string Номер телефона для действия connect_to_phone нет
>>> audio_file_id integer ID аудиофайла для действий play_audio_file и voice_menu нет
>>> action_id integer ID действия для действия go_to_action нет
>>> timeout_waiting_time integer Время бездействия после проигрывания записи (в секундах) для действия voice_menu нет
>>> timeout_actions array[object] Действия по истечении времени бездействия (для действия voice_menu). Для настройки используются параметры type и params (см. возможные значения выше), а также массив key_actions в следующем виде: "key_actions":[{"actions":[{"type":"connect_to_pinned_operator","params":{"connection_timeout":30}}],"key":"1"},{"actions":[{"type":"finish_call","params":{}}],"key":"2"},{"actions":[{"type":"connect_to_all_operators","params":{"connection_timeout":30}}],"key":"3"}] нет
is_wait_for_extension boolean Включено ли ожидание ввода добавочного номера нет
is_musiconhold_enabled boolean Установлена ли музыка на ожидании нет
musiconhold_file_id integer ID аудиофайла с музыкой на ожидании нет
Параметр Тип Описание
status string Статус запроса

Отредактировать сценарий

POST https://cloud.roistat.com/api/v1/project/vpbx/script/update

Используйте данный метод, чтобы обновить сценарий обработки звонков в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/script/update?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"id":20,"name":"Тестовый сценарий","is_enabled":false,"is_outgoing_call_enabled":false,"is_incoming_call_enabled":true,"incoming_call_action_groups":[{"name":"Группа действий 1","actions":[{"type":"connect_to_operator_group","params":{"connection_timeout":30,"operator_group_id":4}}]}]}'

Тело запроса:

{
    "id": 20,
    "name": "Тестовый сценарий",
    "is_enabled": false,
    "is_outgoing_call_enabled": false,
    "is_incoming_call_enabled": true,
    "outgoing_call_phones": ["78006451221"],
    "outgoing_call_operators_group_ids": [3],
    "outgoing_call_phone_condition": 
        {
            "is_allowed": true,
            "values": ["78004124211","78004124311","78125441621"]
        },
    "incoming_call_action_groups": [
        {
            "name": "Группа действий 1",
            "phone_condition": {
                "is_allowed": true,
                "values": ["78004124211","78004124311","78125441621"]
            },
            "time_conditions":[
                {
                    "days": [1,2,3,4,5],
                    "time": "07:00-20:59"
                }
            ],
            "actions": [
                            {
                                "type": "play_audio_file",
                                "params": {
                                    "audio_file_id": 23
                                }
                            },
                            {
                                "type": "connect_to_operator",
                                "params": {
                                    "connection_timeout": "40",
                                    "operator_id": 3
                                }
                            },
                            {
                                "type": "connect_to_pinned_operator",
                                "params": {
                                    "connection_timeout": "40"
                                }
                            },                                  
                            {
                                "type": "connect_to_operator_group",
                                "params": {
                                    "connection_timeout": "40",
                                    "operator_group_id": 3
                                }
                            },
                            {
                                "type": "connect_to_all_operators",
                                "params": {
                                    "connection_timeout": "40"
                                }
                            },
                            {
                                "type": "connect_to_sip",
                                "params": {
                                    "sip": "79123459812",
                                    "connection_timeout": "40"
                                }
                            },
                            {
                                "type": "connect_to_round_robin_operator_group",
                                "params": {
                                    "operator_group_id": 1,
                                    "connection_timeout": "40"
                                }
                            },                                  
                            {
                                "type": "connect_to_phone",
                                "params": {
                                    "connection_timeout": "30",
                                    "phone": "79084564738"
                                }
                            },
                            {
                                "type": "go_to_action",
                                "params": {
                                    "action_id": 1
                                }
                            },
                            {
                                "type": "finish_call"
                            },  
                            {
                                "type": "voice_menu",
                                "params": { 
                                    "audio_file_id": 2,
                                    "timeout_waiting_time": 30,
                                    "timeout_actions": [
                                        {
                                            "type": "connect_to_all_operators",
                                            "params": {
                                                "connection_timeout": 30
                                            }
                                        }
                                    ],
                                    "key_actions": [
                                        {
                                            "actions": [
                                                {
                                                    "type": "connect_to_pinned_operator",
                                                    "params": {
                                                        "connection_timeout": 30
                                                    }
                                                }
                                            ],
                                            "key": "1"
                                        },
                                        {
                                            "actions": [
                                                {
                                                    "type": "finish_call",
                                                    "params": {
                                                    }
                                                }
                                            ],
                                            "key": "2"
                                        },
                                        {
                                            "actions": [
                                                {
                                                    "type": "connect_to_all_operators",
                                                    "params": {
                                                        "connection_timeout": 30 
                                                    }
                                                }
                                            ],
                                            "key":"3"
                                        }
                                    ]
                                }
                            }                               
                        ]
            "is_wait_for_extension": false,
            "is_musiconhold_enabled": false,
            "musiconhold_file_id": null
        }
    ]
}
{
    "status":"success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
id integer ID сценария в Roistat – можно получить с помощью метода /project/vpbx/script/list да
name string Название сценария да
is_enabled boolean Включен ли сценарий нет
is_outgoing_call_enabled boolean Разрешены ли исходящие звонки да
is_incoming_call_enabled boolean Разрешены ли входящие звонки да
outgoing_call_phones array[string] Номера, с которых совершаются исходящие звонки нет
outgoing_call_operators_group_ids array[integer] ID операторов, которые могут совершать исходящие звонки нет
outgoing_call_phone_condition object Номера, на которые разрешены исходящие звонки нет
is_allowed boolean Разрешены ли исходящие на перечисленные номера нет
values array[string] Список номеров нет
incoming_call_action_groups array[object] Группы действий для входящих звонков да
name string Название группы действий да
phone_condition object Номера, с которых разрешены входящие звонки нет
>> is_allowed boolean Разрешены ли входящие с перечисленных номеров нет
>> values array[string] Список номеров нет
time_conditions array[object] Условия по времени срабатывания нет
>> days array[integer] Дни недели, в которые должен работать сценарий: 1 – понедельник, 2 – вторник и т.д. нет
>> time string Промежуток времени, когда сценарий должен работать, в формате 07:00-20:59 нет
actions array[object] Действия да
>> type string Тип действия: connect_to_operator – соединить с конкретным оператором, connect_to_pinned_operator – соединить с закрепленным оператором, connect_to_operator_group – соединить с группой операторов, connect_to_all_operators – соединить со всеми операторами, connect_to_sip – соединить с внешней линией, connect_to_round_robin_operator_group – соединить со следующим по очереди, connect_to_phone – соединить с мобильным номером, play_audio_file – проиграть запись, go_to_action – перейти к действию, voice_menu – голосовое меню, finish_call – завершить звонок да
>> params object Настройки действия да
>>> connection_timeout integer Время ожидания в секундах, по истечении которого запустится следующее действие нет
>>> operator_id integer ID оператора для действия connect_to_operator нет
>>> operator_group_id integer ID группы операторов для действий connect_to_operator_group и connect_to_round_robin_operator_group нет
>>> sip string Внешний SIP-адрес для действия connect_to_sip нет
>>> phone string Номер телефона для действия connect_to_phone нет
>>> audio_file_id integer ID аудиофайла для действий play_audio_file и voice_menu нет
>>> action_id integer ID действия для действия go_to_action нет
>>> timeout_waiting_time integer Время бездействия после проигрывания записи (в секундах) для действия voice_menu нет
>>> timeout_actions array[object] Действия по истечении времени бездействия (для действия voice_menu). Для настройки используются параметры type и params (см. возможные значения выше), а также массив key_actions в следующем виде: "key_actions":[{"actions":[{"type":"connect_to_pinned_operator","params":{"connection_timeout":30}}],"key":"1"},{"actions":[{"type":"finish_call","params":{}}],"key":"2"},{"actions":[{"type":"connect_to_all_operators","params":{"connection_timeout":30}}],"key":"3"}] нет
is_wait_for_extension boolean Включено ли ожидание ввода добавочного номера нет
is_musiconhold_enabled boolean Установлена ли музыка на ожидании нет
musiconhold_file_id integer ID аудиофайла с музыкой на ожидании нет
Параметр Тип Описание
status string Статус запроса

Удалить сценарий

POST https://cloud.roistat.com/api/v1/project/vpbx/script/delete

Используйте данный метод, чтобы удалить сценарий Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/script/delete?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"id": 1}'

Тело запроса:

{
    "id": 1
}
{
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
id integer ID сценария в Roistat – можно получить с помощью метода /project/vpbx/script/list да
Параметр Тип Описание
status string Статус запроса

Получить список сценариев

GET https://cloud.roistat.com/api/v1/project/vpbx/script/list

Используйте данный метод, чтобы получить список сценариев Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/script/list?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}'

Тело запроса:

Без тела.

{
    "data": [
        {
            "id": 1,
            "name": "Входящий в рабочее время (поддержка)",
            "is_enabled": true,
            "creation_date": "2022-03-19T20:24:01+0000",
            "is_outgoing_call_enabled": false,
            "outgoing_call_phones": [],
            "outgoing_call_operators_group_ids": null,
            "outgoing_call_country_condition": null,
            "outgoing_call_phone_condition": null,
            "is_incoming_call_enabled": true,
            "incoming_call_action_groups": [
                {
                    "name": "Группа действий 1",
                    "is_wait_for_extension": false,
                    "musiconhold_file_id": null,
                    "is_musiconhold_enabled": false,
                    "phone_condition": {
                        "values": [],
                        "is_allowed": true
                    },
                    "time_conditions": [
                        {
                            "days": [
                                1,
                                2,
                                3,
                                4,
                                5
                            ],
                            "time": "08:00-18:59"
                        }
                    ],
                    "actions": [
                        {
                            "type": "connect_to_round_robin_operator_group",
                            "params": {
                                "connection_timeout": "40",
                                "operator_group_id": 1
                            }
                        }
                    ]
                }
            ]
        },
        {
            "id": 2,
            "name": "VIP-клиенты",
            "is_enabled": true,
            "creation_date": "2022-03-19T20:24:01+0000",
            "is_outgoing_call_enabled": true,
            "outgoing_call_phones": [
                "78006451221"
            ],
            "outgoing_call_operators_group_ids": [
                3
            ],
            "outgoing_call_phone_condition": {
                "values": [
                    "78004124211",
                    "78004124311",
                    "78125441621"
                ],
                "is_allowed": true
            },
            "is_incoming_call_enabled": true,
            "incoming_call_action_groups": [
                {
                    "name": "Группа действий 1",
                    "is_wait_for_extension": false,
                    "musiconhold_file_id": null,
                    "is_musiconhold_enabled": false,
                    "phone_condition": {
                        "values": [
                            "78004124211",
                            "78004124311",
                            "78125441621"
                        ],
                        "is_allowed": true
                    },
                    "time_conditions": [
                        {
                            "days": [
                                1,
                                2,
                                3,
                                4,
                                5
                            ],
                            "time": "07:00-20:59"
                        }
                    ],
                    "actions": [
                        {
                            "type": "connect_to_operator_group",
                            "params": {
                                "connection_timeout": "40",
                                "operator_group_id": 3
                            }
                        },
                        {
                            "type": "connect_to_phone",
                            "params": {
                                "connection_timeout": "30",
                                "phone": "79084564738"
                            }
                        }
                    ]
                }
            ]
        }
    ],
    "count": 2,
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Без тела.

Параметр Тип Описание
data object
id integer ID сценария в Roistat
name string Название сценария
is_enabled boolean Включен ли сценарий
creation_date string Дата создания сценария
is_outgoing_call_enabled boolean Разрешены ли исходящие звонки
outgoing_call_phones array[string] Номера, с которых совершаются исходящие звонки
outgoing_call_operators_group_ids array[integer] ID операторов, которые могут совершать исходящие звонки
outgoing_call_phone_condition object Номера, на которые разрешены исходящие звонки
is_incoming_call_enabled boolean Разрешены ли входящие звонки
incoming_call_action_groups array[object] Группы действий для входящих звонков
>> name string Название группы действий
>> is_wait_for_extension boolean Включено ли ожидание ввода добавочного номера
>> is_musiconhold_enabled boolean Установлена ли музыка на ожидании
>> musiconhold_file_id integer ID аудиофайла с музыкой на ожидании
>> phone_condition object Номера, с которых разрешены входящие звонки
>>> is_allowed boolean Разрешены ли входящие с перечисленных номеров
>>> values array[string] Список номеров
>> time_conditions array[object] Условия по времени срабатывания
>>> days array[integer] Дни недели, в которые должен работать сценарий: 1 – понедельник, 2 – вторник и т.д.
>>> time string Промежуток времени, когда сценарий должен работать, в формате 07:00-20:59
>> actions array[object] Действия
>>> type string Тип действия: connect_to_operator – соединить с конкретным оператором, connect_to_pinned_operator – соединить с закрепленным оператором, connect_to_operator_group – соединить с группой операторов, connect_to_all_operators – соединить со всеми операторами, connect_to_sip – соединить с внешней линией, connect_to_round_robin_operator_group – соединить со следующим по очереди, connect_to_phone – соединить с мобильным номером, play_audio_file – проиграть запись, go_to_action – перейти к действию, voice_menu – голосовое меню, finish_call – завершить звонок
>>> params object Настройки действия
>>>> connection_timeout integer Время ожидания в секундах, по истечении которого запустится следующее действие
>>>> operator_id integer ID оператора для действия connect_to_operator
>>>> operator_group_id integer ID группы операторов для действий connect_to_operator_group и connect_to_round_robin_operator_group
>>>> sip string Внешний SIP-адрес для действия connect_to_sip
>>>> phone string Номер телефона для действия connect_to_phone
>>>> audio_file_id integer ID аудиофайла для действий play_audio_file и voice_menu
>>>> action_id integer ID действия для действия go_to_action
>>>> timeout_waiting_time integer Время бездействия после проигрывания записи (в секундах) для действия voice_menu
>>>> timeout_actions array[object] Действия по истечении времени бездействия (для действия voice_menu). Для настройки используются параметры type и params (см. возможные значения выше), а также массив key_actions в следующем виде: "key_actions":[{"actions":[{"type":"connect_to_pinned_operator","params":{"connection_timeout":30}}],"key":"1"},{"actions":[{"type":"finish_call","params":{}}],"key":"2"},{"actions":[{"type":"connect_to_all_operators","params":{"connection_timeout":30}}],"key":"3"}]
count integer Количество результатов
status string Статус запроса

Получить историю звонков

POST https://cloud.roistat.com/api/v1/project/vpbx/call/list

Используйте данный метод, чтобы получить историю звонков в Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/call/list?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"period":{"from":"2021-09-23T21:00:00.000Z","to":"2022-09-23T20:59:59.999Z"}}'

Тело запроса:

{
    "period": {
        "from": "2021-09-23T21:00:00.000Z",
        "to": "2022-09-23T20:59:59.999Z"},
    "search": null,
    "filters": [],
    "sort": ["date","desc"],
    "limit": 20,
    "offset": 0
}
{
    "data": [
        {
            "id": 760,
            "caller": "70008423035",
            "callee": "70009648139",
            "date": "2022-04-18T09:36:34+0000",
            "is_outgoing": false,
            "is_missed": false,
            "script_id": 1,
            "status": "ANSWER",
            "duration": 46,
            "answer_duration": 22,
            "waiting_duration": 24,
            "link": null,
            "details": [],
            "operator_id": 4,
            "operator_ids": [
                4
            ],
            "operators_data": [],
            "operator_sip": "vpbx001_vasiljeva"
        },
        {
            "id": 759,
            "caller": "70006610371",
            "callee": "70008672411",
            "date": "2022-04-18T07:09:14+0000",
            "is_outgoing": false,
            "is_missed": false,
            "script_id": 1,
            "status": "ANSWER",
            "duration": 201,
            "answer_duration": 178,
            "waiting_duration": 23,
            "link": null,
            "details": [],
            "operator_id": 3,
            "operator_ids": [
                3
            ],
            "operators_data": [],
            "operator_sip": "vpbx001_popov"
        }
    ],
    "count": 2,
    "total_count": 2,
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
period object Период, звонки за который нужно получить да
from string Начальная дата вида 2022-07-01T00:00:00+0300 да
to string Конечная дата вида 2022-07-31T00:00:00+0300 да
search string Фильтр по конкретному номеру: укажите номер в качестве значения, чтобы получить информацию только по нему нет
filters array[object] Дополнительные фильтры нет
field string Один из возможных параметров фильтрации: operator_ids – ID операторов, is_outgoing – является ли звонок исходящим, status – статус звонка нет
operator string Оператор фильтра: = или != нет
value array[integer], boolean или string Значение фильтрации: для operator_ids – массив с ID; для is_outgoing – true (исходящий) или false (входящий); для status – один из статусов звонка (ANSWER – принят, ACTIVE – в процессе, NOANSWER – пропущен, CANCEL – отменен, BUSY – занято, CONGESTION – ошибка соединения, CHANUNAVAIL – недоступен, DONTCALL – сброшен, TORTURE – автоответчик) нет
sort array[string] Тип сортировки. В качестве первого значения укажите параметр сортировки: date – дата звонка, caller – номер звонящего, callee – набранный номер, is_outgoing – является ли звонок исходящим, status – статус звонка, duration – длительность звонка в секундах, answer_duration – чистое время общения в секундах. В качестве второго значения укажите порядок сортировки: asc (по возрастанию) или desc (по убыванию). Например: "sort": ["date","desc"] нет
limit integer Максимальное количество результатов в ответе нет
offset integer Количество результатов в начале, которое нужно пропустить нет
Параметр Тип Описание
data array[object]
id integer ID звонка
caller string Номер звонящего
callee string Набранный номер
date string Дата звонка в формате 2022-04-18T09:36:34+0000
is_outgoing boolean Является ли звонок исходящим: true – исходящий, false – входящий
is_missed boolean Является ли звонок пропущенным
script_id integer ID сценария, в котором участвовал звонок
status string Статус звонка: ANSWER – принят, ACTIVE – в процессе, NOANSWER – пропущен, CANCEL – отменен, BUSY – занято, CONGESTION – ошибка соединения, CHANUNAVAIL – недоступен, DONTCALL – сброшен, TORTURE – автоответчик
duration integer Длительность звонка в секундах
answer_duration integer Чистое время общения в секундах
waiting_duration integer Время ожидания в секундах
link string Ссылка на звонок в CRM
details array[string] Детали звонка
operator_id integer ID оператора, ответившего на звонок
operator_ids array[integer] ID всех операторов, которым поступал звонок
operator_sip string Логин оператора
count integer Количество результатов в ответе
total_count integer Количество результатов независимо от лимита
status string Статус запроса

Получить отчет

POST https://cloud.roistat.com/api/v1/project/vpbx/report/data

Используйте данный метод, чтобы получить отчет Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/report/data?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"period":{"from":"2021-09-23T21:00:00.000Z","to":"2022-09-23T20:59:59.999Z"},"dimension":"operator","metrics":["incoming_calls","outgoing_calls","unique_calls"], "filters":[]}'

Тело запроса:

{
    "period": {
        "from": "2022-09-12T21:00:00.000Z",
        "to": "2022-09-26T20:59:59.999Z"
    },
    "dimension": "operator",
    "metrics": [
        "calls",
        "incoming_calls",
        "outgoing_calls",
        "unique_calls",
        "average_time_between_calls",
        "average_call_answer_duration",
        "average_online_duration",
        "total_call_duration",
        "incoming_calls_answered",
        "incoming_calls_quality",
        "incoming_calls_missed",
        "incoming_calls_min_answer_time",
        "incoming_calls_max_answer_time",
        "outgoing_calls_answered",
        "outgoing_calls_quality",
        "outgoing_calls_missed",
        "outgoing_calls_min_answer_time",
        "outgoing_calls_max_answer_time",
        "outgoing_calls_first",
        "repeated_calls",
        "incoming_calls_average_waiting_time",
        "incoming_calls_average_answer_time",
        "incoming_calls_missed_share",
        "outgoing_calls_missed_share",
        "outgoing_calls_average_answer_time",
        "missed_calls_share"
    ],
    "filters": [
        {
            "field": "operator_id", 
            "operator": "=", 
            "value": 3
        }
    ]
}
{
    "data": {
        "rows": [
            {
                "dimension_value": "Кузнецова Юлия",
                "metrics": [
                    {
                        "id": "incoming_calls",
                        "name": "Всего входящих",
                        "value": 43
                    },
                    {
                        "id": "outgoing_calls",
                        "name": "Всего исходящих",
                        "value": 0
                    },
                    {
                        "id": "unique_calls",
                        "name": "Уникальные звонки",
                        "value": 43
                    }
                ]
            }
        ],
        "mean": [
            {
                "id": "incoming_calls",
                "name": "Всего входящих",
                "value": 43
            },
            {
                "id": "outgoing_calls",
                "name": "Всего исходящих",
                "value": 0
            },
            {
                "id": "unique_calls",
                "name": "Уникальные звонки",
                "value": 43
            }
        ]
    },
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
period object Период отчета да
from string Начальная дата вида 2022-07-01T00:00:00+0300 да
to string Конечная дата вида 2022-07-31T00:00:00+0300 да
dimension string Группировка отчета. Возможные значения: operator – оператор, day – день, hour – час, weekday – день недели, phone – номер телефона, script – сценарий. да
metrics array[string] Метрики отчета. Возможные значения: calls – всего звонков, incoming_calls – всего входящих, outgoing_calls – всего исходящих, unique_calls – уникальные звонки, average_time_between_calls – среднее время между звонками, average_call_answer_duration – среднее время разговора по входящим звонкам, average_online_duration – общее время на линии, total_call_duration – общее время звонков, incoming_calls_answered – отвеченных входящих, incoming_calls_quality – качественные входящие, incoming_calls_missed – пропущенных входящих, incoming_calls_min_answer_time – минимальное время разговора по входящим звонкам, incoming_calls_max_answer_time – максимальное время разговора по входящим звонкам, outgoing_calls_answered – отвеченных исходящих, outgoing_calls_quality – качественные исходящие звонки, outgoing_calls_missed – пропущенных исходящих, outgoing_calls_min_answer_time – минимальное время разговора по исходящим звонкам, outgoing_calls_max_answer_time – максимальное время разговора по исходящим звонкам, outgoing_calls_first – новые исходящие звонки, repeated_calls – повторные звонки, incoming_calls_average_waiting_time – среднее время ожидания на линии для входящих звонков, incoming_calls_average_answer_time – среднее время разговора по входящим звонкам, incoming_calls_missed_share –доля пропущенных входящих звонков, outgoing_calls_missed_share – доля пропущенных исходящих звонков, outgoing_calls_average_answer_time – среднее время разговора по исходящим звонкам, missed_calls_share – доля пропущенных звонков да
filters array[object] Дополнительные фильтры (если фильтр не нужен, передайте пустой массив в теле запроса: "filters":[]) да
field string Значение фильтрации. Возможное значение: operator_id нет
operator string Оператор фильтра: = или != нет
value integer Значение фильтра: ID оператора нет
Параметр Тип Описание
data object
rows array[object] Данные по группировкам
>> dimension_value string Название группировки
>> metrics array[object] Метрики отчета и их значения
>>> id string ID метрики
>>> name string Название метрики
>>> value integer Значение метрики
mean array[object] Общие данные
>> id string ID метрики
>> name string Название метрики
>> value integer Значение метрики
status string Статус запроса

Загрузить аудиофайл

POST https://cloud.roistat.com/api/v1/project/vpbx/settings/file/audio/upload

Используйте данный метод, чтобы загрузить аудиофайл в Виртуальную АТС. Допустимые форматы – MP3, WAV, OGG; суммарный размер файлов не должен превышать 600 MB при единовременной загрузке.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/settings/file/audio/upload?project=12345&name=filename' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{<бинарный аудиофайл>}'

Тело запроса:

Бинарный аудиофайл.

{
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да
name string Название аудиофайла да

Тело запроса:

Бинарный аудиофайл.

Параметр Тип Описание
status string Статус запроса

Общие настройки

POST https://cloud.roistat.com/api/v1/project/vpbx/settings/update

Используйте данный метод, чтобы изменить настройки Виртуальной АТС.

curl 'https://cloud.roistat.com/api/v1/project/vpbx/settings/update?project=12345' \
--request POST \
--header 'Content-type: application/json' \
--header 'Api-key: {KEY}' \
--data '{"is_save_call_record":true,"is_create_lead":true}'

Тело запроса:

{
    "is_save_call_record": true,
    "is_create_lead": true,
    "integration_crm_lead_name": "звонок",
    "integration_crm_custom_fields": [
        {
            "id": "id_поля",
            "value": "значение"
        }
    ],
    "is_use_custom_unanswered_call_duration": false,
    "is_send_lead_by_first_operator": false,
    "is_send_lead_by_last_operator": false,
    "unanswered_call_duration": 5,
    "webhook_end_url": "https://webhhok.site/test.php",
    "webhook_start_url": "https://webhhok.site/test.php",
    "webhook_record_ready_url": "https://webhhok.site/test.php"
}
{
    "status": "success"
}

Строка запроса:

Параметр Тип Описание Обязательный
project string Номер проекта да

Тело запроса:

Параметр Тип Описание Обязательный
is_save_call_record boolean Записывать ли телефонные разговоры нет
is_create_lead boolean Создавать ли по звонку сделки в CRM нет
integration_crm_lead_name string Название сделки, которая будет отправляться в CRM по звонку нет
integration_crm_custom_fields array[object] Дополнительные поля сделки нет
id string ID поля нет
value string Значение поля нет
is_use_custom_unanswered_call_duration boolean Устанавливать ли вручную время, после которого считать звонок пропущенным нет
is_send_lead_by_first_operator boolean Назначать ли ответственным за сделку в CRM оператора, который первым ответил на звонок нет
is_send_lead_by_last_operator boolean Назначать ли ответственным за сделку в CRM оператора, который последним участвовал в звонке нет
unanswered_call_duration integer Время, после которого считать звонок пропущенным (в секундах) нет
webhook_end_url string Webhook после звонка нет
webhook_start_url string Webhook в момент звонка нет
webhook_record_ready_url string Webhook по готовности записи разговора нет
Параметр Тип Описание
status string Статус запроса