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:
Стоимость подключения оператора
Стоимость подключения операторов к Виртуальной АТС вы можете узнать на сайте Roistat. Плата за подключение оператора списывается с баланса следующим образом:
- Сначала единовременно списывается плата за первые 5 дней с момента подключения оператора, включая текущий день. Сумма рассчитывается по формуле:
месячная стоимость оператора / 30 * 5
. - Начиная с 6 дня, плата будет списываться ежедневно.
Тариф Тестовый (14 дней пробного использования Roistat) позволяет подключить двух операторов бесплатно. После окончания тестового периода с баланса начнет списываться плата за подключение данных операторов.
Настройка доступов для операторов
Оператор может просматривать дашборд, отчеты и историю звонков, не создавая аккаунт Roistat. Чтобы открыть оператору доступ на просмотр дашборда, отчетов и истории звонков:
-
При создании или редактировании оператора в массиве
managed_group_ids
укажите ID групп, звонки которых данный оператор сможет видеть в статистике. Если ID не указаны, оператор будет видеть только собственные звонки. -
Отправьте оператору ссылку: https://cloud.roistat.com/projects/<project>/vpbx/operator/reports
Вместо <project> укажите номер проекта, который можно найти в интерфейсе Roistat в левом верхнем углу рядом с названием проекта. Например, ссылка для проекта №1234 будет выглядеть так: https://cloud.roistat.com/projects/1234/vpbx/operator/reports
-
После перехода по ссылке оператор должен ввести логин и пароль, которые он использует при подключении к софтфону.
Шаг 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
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
name | string | Произвольное имя оператора | да |
login | string | Логин для подключения оператора к софтфону. Должен иметь формат vpbx<номер_проекта>_login . Например, если номер вашего проекта – 1234, можно указать логин вида vpbx1234_ivan . Допускается использовать только латиницу и цифры. | да |
password | string | Пароль для подключения оператора к софтфону | да |
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
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
project | string | Номер проекта | да |
Тело запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
name | string | Произвольное имя оператора | да |
login | string | Логин для подключения оператора к софтфону. Должен иметь формат vpbx<номер_проекта>_login . Например, если номер вашего проекта – 1234, можно указать логин вида vpbx1234_ivan . Допускается использовать только латиницу и цифры. | да |
password | string | Пароль для подключения оператора к софтфону | да |
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}'
Тело запроса:
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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 | Логин оператора |
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"}'
Тело запроса:
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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"}'
Тело запроса:
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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}'
Тело запроса:
Без тела.
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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}'
Тело запроса:
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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}'
Тело запроса:
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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}'
Тело запроса:
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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
}
]
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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
}
]
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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}'
Тело запроса:
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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"}}'
Тело запроса:
{
"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 '{<бинарный аудиофайл>}'
Тело запроса:
Бинарный аудиофайл.
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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"
}
Строка запроса:
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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 | Статус запроса |