===== JSON-RPC API Описание программного интерфейса =====
{{indexmenu_n>5}}
Описание параметров [[dpi:opt_cgnat:сgnat_settings#параметры_и_возможные_значения|по ссылке]]
==== Описание ====
Все запросы на сервер отправляются методом POST по адресу https://your_host/api/jsonrpc. В заголовках ответа передаются "печеньки". Их необходимо передавать во всех последующих запросах.
В теле запроса передается массив [] объектов типа
Пример запроса:
{
"jsonrpc":"2.0",
"method":"Api_GetAppVersion", -- Имя метода
"params":{}, -- Объект с параметрами
"id":1515659482430 - идентификатор запроса (может быть любое случайное число)
}
Если в запросе передан массив из нескольких объектов, в ответе будет массив. Если в запросе передан массив из одного объекта, в ответе вернется один объект, не массив.
Примечание: регистр и тип параметров имеет значение.
Пример ответа:
{
"jsonrpc":"2.0",
"id":1515659482430, -- идентификатор заданный при запросе
"result":{
"success":true, -- результат (булево значение)
"data":"2.0.0" -- данные (строка, массив, объект)
}
}
Ответ может вернуться с ошибкой. Ошибки подразделяются на две категории:
* Глобальные - обрабатываются на уровне модуля json-rpc. Например, переданы неверные параметры. Ошибка выводится в поле error.
{
"jsonrpc":"2.0",
"id":1515660273515,
"error":{
"code":6000,
"message":"Invalid parameters",
"data":{
"errors":[
{
"code":"required_field",
"message":"Не передан либо пустой обязательный параметр",
"object_name":"Test"
}
]
}
}
}
* Локальные - обрабатываются на уровне Api внутри вызываемой функции. Например, ошибки записи в БД. Ошибка выводится в поле result.error. При этом result.success = false.
{
"jsonrpc":"2.0",
"id":1515660902722,
"result":{
"success":false,
"error":{
"code":-203,
"msg":"Duplicate entry"
},
"data":null
}
}
=== Несколько примеров запросов с использованием CURL ===
Получить версию приложения:
curl -b cookie.txt -c cookie.txt -X POST -k -i 'https://192.168.1.123/api/jsonrpc' --data '[{"jsonrpc":"2.0","method":"Api_GetAppVersion","params":{},"id":1563436495288}]'
Выполнить авторизацию:
curl -b cookie.txt -c cookie.txt -X POST -k -i 'https://192.168.1.123/api/jsonrpc' --data '[{"jsonrpc":"2.0","method":"Api_Login","params":{"username":"admin","password":"vasexperts","remember":t
rue},"id":1563438645838}]'
Получить файл конфигурации DPI:
curl -b cookie.txt -c cookie.txt -X POST -k -i 'https://192.168.1.123/api/jsonrpc' --data '[{"jsonrpc":"2.0","method":"Api_GetDpiConfig","params":{"Id":1},"id":1563448913831}]'
==== Общие функции ====
=== Api_GetAppVersion ===
Выводит версию приложения.
Параметры отсутствуют.
Пример запроса:
[{
"jsonrpc":"2.0",
"method":"Api_GetAppVersion",
"params":{},
"id":1515659482430
}]
Пример ответа:
{
"jsonrpc":"2.0",
"id":1515659482430,
"result":{
"success":true,
"data":"2.0.0"
}
}
=== Api_GetDics ===
Выводит словари.
Параметры:
* DicsKeys - Array:список идентификаторов словарей. По умолчанию выводит все.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDics",
"params":{},
"id":1515921551526
}
]
Пример ответа:
{
"jsonrpc":"2.0",
"id":1515921551526,
"result":{
"success":true,
"data":{
"RolesDic":{
"1":{
"dic_id":"1",
"value":"Администратор"
}
},
"HardwaresDic":{
"1":{
"dic_id":"1",
"value":"Тестовый стенд. 34",
"ip":"x.x.x.x",
"port":"22",
"login":"dpisu"
},
"2":{
"dic_id":"2",
"value":"Рабочий стенд .83 !",
"ip":"y.y.y.y",
"port":"22",
"login":"dpisu"
}
}
}
}
}
==== Функции аутентификации и авторизации ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_Auth|Api_Auth]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_Login|Api_Login]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_Logout|Api_Logout]]
=== Api_Auth ===
Проверяет и выводит результат: авторизован пользователь или нет.
Параметры отсутствуют.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_Auth",
"params":{
},
"id":1515661809137
}
]
Пример ответа, если пользователь не авторизован:
{
"jsonrpc":"2.0",
"id":1515661809137,
"error":{
"code":7000,
"message":"Unauthorized"
}
}
Пример ответа, если пользователь авторизован:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data":{
"username":"admin"
}
}
}
=== Api_Login ===
Авторизует пользователя
Параметры:
* username - string:имя пользователя
* password - string:пароль
* remember - bool:пароль
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_Login",
"params":{
"username":"admin",
"password":"vasexperts",
"remember":true
},
"id":1515662219320
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662219320,
"result":{
"success":true,
"data":{
"username":"admin"
}
}
}
Пример неуспешного ответа:
{
"jsonrpc":"2.0",
"id":1515662233320,
"result":{
"success":false,
"error":{
"code":404,
"msg":"Invalid credentials"
},
"data":null
}
}
Если авторизация прошла успешно, в заголовках ответа передаются "печеньки". Их необходимо передавать во всех последующих запросах.
=== Api_Logout ===
Деавторизацует текущего пользователя.
Параметры отсутствуют.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_Logout",
"params":{
},
"id":1515662234646
}
]
==== Управление профилем пользователя ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetMyProfile|Api_GetMyProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveMyProfile|Api_SaveMyProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_ChangeMyPassword|Api_ChangeMyPassword]]
=== Api_GetMyProfile ===
Выводит профиль пользователя.
Параметры отсутствуют.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetMyProfile",
"params":{
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ"
}
}
}
=== Api_SaveMyProfile ===
Изменение профиля пользователя.
Параметры:
* MyProfile - object:модель пользователя
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveMyProfile",
"params":{
"MyProfile":{
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ"
}
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ"
}
}
}
=== Api_ChangeMyPassword ===
Изменение пароля пользователя.
Параметры:
* OldPassword - object:старый пароль
* NewPassword - string:новый пароль
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveMyProfile",
"params":{
"OldPassword":"vasexperts",
"NewPassword":"vasexperts1"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"password": "$2y$10$t/PdsQVXr927wyunbdET1.EHtuxTBg4iKmtHlJ4jfmU0XR4qPUANu"
}
}
}
==== Управление пользователями ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetUsers|Api_GetUsers]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveUser|Api_SaveUser]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteUser|Api_DeleteUser]]
=== Api_GetUsers ===
Получение списка пользователей.
Параметры:
* Id - int:идентификатор пользователя(необязательный параметр)
Пример запроса с идентификатором пользователя:
[
{
"jsonrpc":"2.0",
"method":"Api_GetUsers",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа на запрос с идентификатором пользователя:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"role_sections": "hardware.read,hardware.write,..."
}
}
}
Пример успешного ответа на запрос без параметров:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"role_sections": "hardware.read,hardware.write,..."
},
...
]
}
}
=== Api_SaveUser ===
Создание/изменение данных пользователя.
Параметры:
* user - object:модель пользователя
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveUser",
"params":{
"user":{
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"password":"vasexperts",
"role": "1",
"role_sections": "hardware.read,hardware.write,..."
}
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"user_id": "1",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"password": "$2y$10$rxlWVJdRybSf9N6nAQE9j.i2LrSTbpGzoiDwsVVsAP9OQ5vDY0uhu"
}
}
}
=== Api_DeleteUser ===
Удаляет пользователя.
Параметры:
* user - object:модель пользователя
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteUser",
"params":{
"user":{
"user_id": "2",
"username": "admin",
"name": "Строгий С.С.",
"email": "email@email.ru",
"phone": "2-2-2",
"company": "VasExpert",
"position": "Админ",
"password":"vasexperts",
"role": "1",
"role_sections": "hardware.read,hardware.write,..."
}
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
==== Управление ролями ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetRoles|Api_GetRoles]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveRole|Api_SaveRole]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteRole|Api_DeleteRole]]
=== Api_GetRoles ===
Получение списка пользователей.
Параметры:
* Id - int:идентификатор роли(необязательный параметр)
Пример запроса с идентификатором роли:
[
{
"jsonrpc":"2.0",
"method":"Api_GetRoles",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа на запрос с идентификатором роли:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
}
]
}
}
Пример успешного ответа на запрос без параметров:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
},
...
]
}
}
=== Api_SaveRole ===
Создание/изменение данных роли.
Параметры:
* role - object:модель роли
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveRole",
"params":{
"role":{
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
}
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
}
}
}
=== Api_DeleteRole ===
Удаление роли.
Параметры:
* role - object:модель роли
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteRole",
"params":{
"role":{
"role_id": "1",
"role": "Администратор",
"sections": "hardware.read,hardware.write,..."
}
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
==== Управление оборудованием ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetHardwares|Api_GetHardwares]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveHardware|Api_SaveHardware]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteHardware|Api_DeleteHardware]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_RestartHardware|Api_RestartHardware]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_ReloadHardware|Api_ReloadHardware]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_TestConnectToHardware|Api_TestConnectToHardware]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDpiConfig|Api_GetDpiConfig]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_ValidateDpiConfig|Api_ValidateDpiConfig]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SetDpiConfig|Api_SetDpiConfig]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDpiConfigHistory|Api_GetDpiConfigHistory]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDpiConfigFile|Api_GetDpiConfigFile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDpiInfo|Api_GetDpiInfo]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDpiResourcesUsageTick|Api_GetDpiResourcesUsageTick]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDpiResourcesStatsUsageForPeriod|Api_GetDpiResourcesStatsUsageForPeriod]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_ProcessDpiStatLog|Api_ProcessDpiStatLog]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetStatLogTail|Api_GetStatLogTail]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DownloadStatLog|Api_DownloadStatLog]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetAlertLogTail|Api_GetAlertLogTail]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DownloadAlertLog|Api_DownloadAlertLog]]
=== Api_GetHardwares ===
Получить список оборудований.
Параметры:
* Id - int:идентификатор оборудования(необязательный параметр)
Пример запроса с идентификатором оборудования:
[
{
"jsonrpc":"2.0",
"method":"Api_GetHardwares",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа на запрос с идентификатором оборудования:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
}
]
}
}
Пример успешного ответа на запрос без параметров:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
{
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
},
...
]
}
}
=== Api_SaveHardware ===
Создание/изменение данных оборудования.
Параметры:
* hardware - object:модель оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveHardware",
"params":{
"hardware":{
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
}
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
}
}
}
=== Api_DeleteHardware ===
Удаление оборудования.
Параметры:
* hardware - object:модель оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteRole",
"params":{
"hardware":{
"hardware_id": "1",
"name": "Тестовый стенд. 34",
"ip": "188.227.73.34",
"port": "22",
"login": "admin",
"password": "vasexperts",
"ssl_key": "",
"sudocheck": "1",
"load_cs": 0,
"port_cs": "1500",
"protocol_cs": "udp",
"ip_cs": "217.71.228.148",
"status_cs": 0
}
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_RestartHardware ===
Перезапуск оборудования.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_RestartHardware",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_ReloadHardware ===
Обновление горячих параметров.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_ReloadHardware",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_TestConnectToHardware ===
Проверка доступности оборудования.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_TestConnectToHardware",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_GetDpiConfig ===
Получение DPI-конфигурации оборудования.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiConfig",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data":"string:content"
}
}
=== Api_ValidateDpiConfig ===
Валидация DPI-конфигурации оборудования.
Параметры:
* Id - int:идентификатор оборудования
* Config - string: конфигурация
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_ValidateDpiConfig",
"params":{
"Id":1,
"Config":"string:content"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data":"FastDPI 7.4 Minsk (Dec 12 2017) : Check configuration '/tmp/dpi/fastdpi.conf' : \n\nResult check
configuration : SUCCESS\n"
}
}
=== Api_SetDpiConfig ===
Установка DPI-конфигурации на оборудование.
Параметры:
* Id - int:идентификатор оборудования
* Config - string: конфигурация
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SetDpiConfig",
"params":{
"Id":1,
"Config":"string:content"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_GetDpiConfigHistory ===
Получение истории установки DPI-конфигураций на оборудовании.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiConfigHistory",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
"2015.03.22.03.26.12.000000.fastdpi.conf",
"2015.03.22.03.26.22.000000.fastdpi.conf",
"2015.03.22.19.03.53.000000.fastdpi.conf",
"2015.03.22.19.44.35.000000.fastdpi.conf",
"2015.03.23.01.30.11.000000.fastdpi.conf",
"2015.03.23.01.31.26.000000.fastdpi.conf",
...
]
}
}
=== Api_GetDpiConfigFile ===
Получение содержимого файла DPI-конфигурации.
Параметры:
* Id - int:идентификатор оборудования
* File - string:имя файла
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiConfigFile",
"params":{
"Id":1,
"File":"2015.03.22.03.26.12.000000.fastdpi.conf"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "string:content"
}
}
=== Api_GetDpiInfo ===
Получение информации об оборудовании.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiInfo",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"FastDPI": "FastDPI 7.4 Minsk (Dec 12 2017)",
"Architecture": "x86_64",
"CPU op-mode(s)": "32-bit, 64-bit",
"Byte Order": "Little Endian",
"CPU(s)": "8",
"On-line CPU(s) list": "0-7",
"Thread(s) per core": "2",
"Core(s) per socket": "4",
"Socket(s)": "1",
"NUMA node(s)": "1",
"Vendor ID": "GenuineIntel",
"CPU family": "6",
"Model": "58",
"Stepping": "9",
"CPU MHz": "3392.160",
"BogoMIPS": "6784.32",
"Virtualization": "VT-x",
"L1d cache": "32K",
"L1i cache": "32K",
"L2 cache": "256K",
"L3 cache": "8192K",
"NUMA node0 CPU(s)": "0-7"
}
}
}
=== Api_GetDpiResourcesUsageTick ===
Получение информации о текущем состоянии производительности оборудования.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiResourcesUsageTick",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"cpus_info": null,
"cpus_usage": {
"stat_key": 1,
"us": 0.40000000000000002,
"sy": 3.5,
"ni": 0,
"idle": 95.299999999999997,
"wa": 0.69999999999999996,
"hi": 0,
"si": 0,
"st": 0,
"date": "2018.01.13 10:43:03"
},
"mem_usage": {
"stat_key": 2,
"total": 8030376000,
"used": 2301548000,
"free": 5728828000,
"buffers": 138556000,
"date": "2018.01.13 10:43:03"
},
"swap_usage": {
"stat_key": 2,
"total": 2097144000,
"used": 42040000,
"free": 2055104000,
"cached": 795280000,
"date": "2018.01.13 10:43:03"
},
"top_processes": [
{
"pid": "23650",
"virt": "10.0g",
"res": "997m",
"shr": "10m",
"cpu": 110.59999999999999,
"mem": 12.699999999999999,
"command": "fastdpi_main",
"date": null
},
{
"pid": "13347",
"virt": "98.0m",
"res": "3960",
"shr": "3000",
"cpu": 9.9000000000000004,
"mem": 0,
"command": "sshd",
"date": null
},
{
"pid": "13342",
"virt": "15036",
"res": "1380",
"shr": "996",
"cpu": 4,
"mem": 0,
"command": "top",
"date": null
},
{
"pid": "1084",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 1,
"mem": 0,
"command": "kauditd",
"date": null
},
{
"pid": "13351",
"virt": "98.0m",
"res": "2004",
"shr": "1024",
"cpu": 1,
"mem": 0,
"command": "sshd",
"date": null
},
{
"pid": "1",
"virt": "19232",
"res": "884",
"shr": "748",
"cpu": 0,
"mem": 0,
"command": "init",
"date": null
},
{
"pid": "2",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "kthreadd",
"date": null
},
{
"pid": "3",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/0",
"date": null
},
{
"pid": "4",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/0",
"date": null
},
{
"pid": "5",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/0",
"date": null
},
{
"pid": "6",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/0",
"date": null
},
{
"pid": "7",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/1",
"date": null
},
{
"pid": "8",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/1",
"date": null
},
{
"pid": "9",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/1",
"date": null
},
{
"pid": "10",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/1",
"date": null
},
{
"pid": "11",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/2",
"date": null
},
{
"pid": "12",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/2",
"date": null
},
{
"pid": "13",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/2",
"date": null
},
{
"pid": "14",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/2",
"date": null
},
{
"pid": "15",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/3",
"date": null
},
{
"pid": "16",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/3",
"date": null
},
{
"pid": "17",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/3",
"date": null
},
{
"pid": "18",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/3",
"date": null
},
{
"pid": "19",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/4",
"date": null
},
{
"pid": "20",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/4",
"date": null
},
{
"pid": "21",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/4",
"date": null
},
{
"pid": "22",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/4",
"date": null
},
{
"pid": "23",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/5",
"date": null
},
{
"pid": "24",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "migration/5",
"date": null
},
{
"pid": "25",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "ksoftirqd/5",
"date": null
},
{
"pid": "26",
"virt": "0",
"res": "0",
"shr": "0",
"cpu": 0,
"mem": 0,
"command": "watchdog/5",
"date": null
}
],
"date": "2018.01.13 10:43:03",
"cpus_count": "8"
}
}
}
=== Api_GetDpiResourcesStatsUsageForPeriod ===
Получение информации о состоянии производительности оборудования за период.
Параметры:
* Id - int:идентификатор оборудования
* Period - object:...(необязательный параметр)
* PeriodType - string:...(необязательный параметр)
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiResourcesStatsUsageForPeriod",
"params":{
"Id":1,
"Period":{
"start":"2018-01-13T21:00:00.000Z",
"end":"2018-01-13T21:00:00.000Z"
},
"PeriodType":"H"
},
"id":1515921656764
}
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515921656764,
"result":{
"success":true,
"data":{
"2018-01-14 11":{
"cpus_usage":{
"stat_key":"1",
"us":"0.12121212121212127",
"sy":"0.47272727272727294",
"ni":"0",
"idle":"99.14545454545457",
"wa":"0.2787878787878788",
"hi":"0",
"si":"0",
"st":"0",
"date":"2018-01-14 11"
},
"mem_usage":{
"stat_key":"2",
"virt":"10787827712",
"res":"3747196928",
"date":"2018-01-14 11"
},
"dnas_usage":{
"1_0_out":{
"stat_key":"1_0_out",
"cluster_id":"1",
"dna_id":"0",
"act_rcvd_pkts":"165.87878787878788",
"act_send_pkts":"0",
"act_esnd_pkts_err":"0",
"act_drop_pkts":"0",
"act_eemt_pkts_err":"0",
"date":"2018-01-14 11"
},
"1_1_in":{
"stat_key":"1_1_in",
"cluster_id":"1",
"dna_id":"1",
"act_rcvd_pkts":"0",
"act_send_pkts":"165.87878787878788",
"act_esnd_pkts_err":"0",
"act_drop_pkts":"0",
"act_eemt_pkts_err":"0",
"date":"2018-01-14 11"
}
},
"ifs_usage":{
"1":{
"cluster_id":"1",
"abs_rcvd_pkts":"1755914.8181818181",
"abs_rcvd_bytes":"1572754593.4545455",
"abs_rcvd_pkts_dropped":"0",
"act_captured_pkts_sec":"0.03606060606060608",
"act_processed_pkts_sec":"0.03606060606060608",
"act_send_pkts_sec":"0.03606060606060608",
"date":"2018-01-14 11"
}
},
"http_usage":{
"stat_key":"5",
"url":"1517",
"url_lock":"0",
"ssl":"2653",
"ssl_lock":"0",
"cna":"8",
"cna_lock":"0",
"sni":"2645",
"sni_lock":"0",
"quic":"392",
"quic_lock":"0",
"chnprc":"0",
"ccheck":"487579",
"ccheck_ip_check":null,
"ccheck_lock":null,
"ftp":0,
"ftp_lock":0,
"smtp":0,
"smtp_lock":0,
"pop3":0,
"pop3_lock":0,
"imap":0,
"imap_lock":0,
"xmpp":0,
"xmpp_lock":0,
"date":"2018-01-14 11"
},
"date":"2018-01-14 11"
},
"2018-01-14 12":{
"cpus_usage":{
"stat_key":"1",
"us":"2.4529953917050675",
"sy":"1.2198156682027643",
"ni":"0",
"idle":"95.97419354838706",
"wa":"0.3612903225806449",
"hi":"0",
"si":"0",
"st":"0",
"date":"2018-01-14 12"
},
"mem_usage":{
"stat_key":"2",
"virt":"10787827712",
"res":"3747747245.419355",
"date":"2018-01-14 12"
},
"dnas_usage":{
"1_1_in":{
"stat_key":"1_1_in",
"cluster_id":"1",
"dna_id":"1",
"act_rcvd_pkts":"23789.79262672811",
"act_send_pkts":"175827.29493087556",
"act_esnd_pkts_err":"0",
"act_drop_pkts":"0",
"act_eemt_pkts_err":"0",
"date":"2018-01-14 12"
},
"1_0_out":{
"stat_key":"1_0_out",
"cluster_id":"1",
"dna_id":"0",
"act_rcvd_pkts":"175827.29493087556",
"act_send_pkts":"23789.79262672811",
"act_esnd_pkts_err":"0",
"act_drop_pkts":"0",
"act_eemt_pkts_err":"0",
"date":"2018-01-14 12"
}
},
"ifs_usage":{
"1":{
"cluster_id":"1",
"abs_rcvd_pkts":"1795976.133640553",
"abs_rcvd_bytes":"1597939948.7695854",
"abs_rcvd_pkts_dropped":"0",
"act_captured_pkts_sec":"22.814608294930885",
"act_processed_pkts_sec":"22.814608294930885",
"act_send_pkts_sec":"22.814608294930885",
"date":"2018-01-14 12"
}
},
"http_usage":{
"stat_key":"5",
"url":"1527.6036866359448",
"url_lock":"0",
"ssl":"2943.2258064516127",
"ssl_lock":"0",
"cna":"8",
"cna_lock":"0",
"sni":"2935.2258064516127",
"sni_lock":"0",
"quic":"392",
"quic_lock":"0",
"chnprc":"0",
"ccheck":"488168.02764976956",
"ccheck_ip_check":null,
"ccheck_lock":null,
"ftp":0,
"ftp_lock":0,
"smtp":0,
"smtp_lock":0,
"pop3":0,
"pop3_lock":0,
"imap":0,
"imap_lock":0,
"xmpp":0,
"xmpp_lock":0,
"date":"2018-01-14 12"
},
"date":"2018-01-14 12"
}
}
}
}
=== Api_ProcessDpiStatLog ===
Запускает процесс обработки лога статистики DPI. Обычно запускается автоматически по расписанию.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_ProcessDpiStatLog",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_GetStatLogTail ===
Получение "хвоста" лога статистики DPI.
Параметры:
* Id - int:идентификатор оборудования
* Tail - int: длина "хвоста"
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetStatLogTail",
"params":{
"Id":1,
"Tail":20
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "\ttotal : allocate=165/7555650\n[STAT ][2018/01/13-13:56:08:375363] Detailed statistics on HTTP
:\n\tthread_slave=0 :\n\t\turl/lock=4/0 ( 5,0,0 )( 1,1,0 )\n\t\tssl/lock=25/0 ( 0,1,0 )( 1,2,1
)\n\t\t\tcna/lock=0/0 ( 0,1 )\n\t\t\tsni/lock=25/0 ( 0,0 )\n\t\tquic/lock=0/0 ( 0,0,0 )( 0,0,0
)\n\t\tchnprc=0\n\t\tccheck/ip_check/lock=309/20/0\n\tTotal : \n\t\turl/lock=4/0 ( 5,0,0 )(
1,1,0,98879 )\n\t\tssl/lock=25/0 ( 0,1,0 )( 1,2,1,196647 )\n\t\t\tcna/lock=0/0 ( 0,1
)\n\t\t\tsni/lock=25/0 ( 0,0 )\n\t\tquic/lock=0/0 ( 0,0,0 )( 0,0,0,0
)\n\t\tchnprc=0\n\t\tccheck/ip_check/lock=309/20/0\n[STAT ][2018/01/13-13:56:08:375374] [BRAS]
ARP statistics:\n\tprocessed: subs->inet=0, inet->subs=0; originated=0\n"
}
}
=== Api_DownloadStatLog ===
Получение идентификатора лог-файла статистики для скачивания.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DownloadStatLog",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "fq4KpGuICfAxICtX5lAC"
}
}
Получив идентификатор, файл можно получить по ссылке виде http:///api/file/fq4KpGuICfAxICtX5lAC
=== Api_GetAlertLogTail ===
Получение "хвоста" лога сообщений DPI.
Параметры:
* Id - int:идентификатор оборудования
* Tail - int: длина "хвоста"
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetAlertLogTail",
"params":{
"Id":1,
"Tail":20
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "\t\tbras_max_session_duration =604800 seconds\n\t\tbras_dhcp_request_delay =300 seconds\n\tARP
proxy:\n\t\tbras_arp_proxy =0x0000 (local:off, gateway:off)\n\t\tbras_arp_ip
=0.0.0.0 (not specified)\n\t\tbras_arp_mac =00:00:00:00:00:00\n\tBRAS
services:\n\t\tbras_dhcp_auth_mix =1 (enabled)\n\t\tbras_ip_source_guard =0
(disabled)\n\t\tbras_terminate_local =0 (disabled)\n\t\tbras_vlan_terminate =0
(disabled)\n\t\tbras_vlan_subst =\n\t\tbras_terminate_l2 =0
(disabled)\n\t\tbras_term_by_as =0 (disabled)\n\t\tbras_gateway_ip
=0.0.0.0\n\t\tbras_gateway_mac =00:00:00:00:00:00\n[COMMON ][2018/01/13-13:32:48:364905]
[0x7fac68409820] BRAS PPPoE: disabled\n[INFO ][2018/01/13-13:32:48:365180][0x7fac68409820] DSCP
settings is loaded.\n[WARNING ][2018/01/13-13:35:58:302925][0x7faa21306700] NFLW : very long
operation to send data, duration=11000669 msec, tmout=10000380 msec, cntr=1\n[ERROR ]
[2018/01/13-13:37:13:630075][0x7faa138fe700] bpm : Error reset_bypass_wd_timer, if='dna0',
errno=95 : Operation not supported\n"
}
}
=== Api_DownloadAlertLog ===
Получение идентификатора лог-файла сообщений для скачивания.
Параметры:
* Id - int:идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDpiInfo",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "tjFNBnsRkQmXlJbBsCHM"
}
}
Получив идентификатор, файл можно получить по ссылке виде http:///api/file/fq4KpGuICfAxICtX5lAC
==== Управление нотификациями ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetLastNotifications|Api_GetLastNotifications]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetUnreadedNotificationsCount|Api_GetUnreadedNotificationsCount]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SetNotificationsReaded|Api_SetNotificationsReaded]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteNotifications|Api_DeleteNotifications]]
=== Api_GetLastNotifications ===
Получение списка последних нотификаций.
Параметры:
* Page - int:номер страницы
* Size - int:количество нотификаций в ответе
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetLastNotifications",
"params":{
"Page":1,
"Size":3
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"page": 1,
"size": 3,
"count": 200,
"rows": [
{
"notif_id": "391439",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:22:32",
"from": "Result 'check license', err_code=1",
"text": " Result 'check license', err_code=1 : Success: loaded",
"importance": "COMMON",
"readed": "0",
"deleted": "0"
},
{
"notif_id": "391438",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:22:32",
"from": "Check license",
"text": " Check license : devices dna0 <--> dna1 ...",
"importance": "COMMON",
"readed": "0",
"deleted": "0"
},
{
"notif_id": "391437",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:20:32",
"from": "bl_updater_thread",
"text": " bl_updater_thread : Notifications(updatenotifications) list loaded with result, rc=0
: Success: loaded.",
"importance": "INFO",
"readed": "0",
"deleted": "0"
}
]
}
}
}
}
=== Api_GetUnreadedNotificationsCount ===
Получение количества непрочитанных CRITICAL нотификаций.
Параметры отсутствуют.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetUnreadedNotificationsCount",
"params":{
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": 123
}
}
=== Api_SetNotificationsReaded ===
Отметить нотификации как прочитанные.
Параметры:
* Notifs - array:массив нотификаций
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SetNotificationsReaded",
"params":{
"Notifs":[
{
"notif_id": "391439",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:22:32",
"from": "Result 'check license', err_code=1",
"text": " Result 'check license', err_code=1 : Success: loaded",
"importance": "COMMON",
"readed": "0",
"deleted": "0"
},
...
]
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_DeleteNotifications ===
Удалить нотификации.
Параметры:
* Notifs - array:массив нотификаций
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteNotifications",
"params":{
"Notifs":[
{
"notif_id": "391439",
"hardware_hardware_id": "2",
"users_user_id": null,
"date": "2018-01-12T09:22:32",
"from": "Result 'check license', err_code=1",
"text": " Result 'check license', err_code=1 : Success: loaded",
"importance": "COMMON",
"readed": "0",
"deleted": "0"
},
...
]
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
==== Отправка ошибок ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SendError|Api_SendError]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_LogError|Api_LogError]]
=== Api_SendError ===
Отправка сообщения об ошибке на почту указанную в конфигурации.
Параметры:
* Params - object: модель сообщения об ошибке
Параметры конфигурации отправки:
* subject - string: тема сообщения
* body - string: тело сообщения
* hardware_id - int: идентификатор оборудования
* alertLog - bool: включение файла с логами уведомлений в сообщение
* statLog - bool: включение файла с логами состояния оборудования в сообщение
* uiLog - bool: включение файла с логами dpiui в сообщение
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SendError",
"params":{
"Params":{
"hardware_id": "1",
"subject":"test",
"body":"test",
"alertLog":true,
"statLog":true,
"uiLog":true
}
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_LogError ===
Запись информации об ошибке в dpiui-лог.
Параметры:
* Content - string: тело сообщения об ошибке
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_LogError",
"params":{
"Content":"error text"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
==== Управление абонентами ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetSubscribers|Api_GetSubscribers]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveSubscriber|Api_SaveSubscriber]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteSubscriber|Api_DeleteSubscriber]]
=== Api_GetSubscribers ===
Получение списка абонентов.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* hardware_id - int: идентификатор оборудования
* login - string: имя пользователя
* login_equal - string:...
* ip - string: ip-адрес пользователя
* ip_equal - string:...
* bind_type - ...
* services - ...
* policings - ...
* order_by - string: поле, по которому будет упорядочен список абонентов
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetSubscribers",
"params":{
"Params":{
"hardware_id":"1",
"page":0,
"size":100,
"login":"",
"ip":"",
"bind_type":"",
"services":"",
"policings": ""
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"hardware_id":"1",
"login":"llllyyy",
"ip":"5.5.5.7",
"bind_type":"1",
"services":"5,",
"policing": "278"
},
{
"hardware_id":"1",
"login":"user11",
"ip":"1.1.1.1",
"bind_type":"0",
"services":"4,",
"policing": "279"
},
{
"hardware_id":"1",
"login":"user22",
"ip":"1.1.1.3",
"bind_type":"1",
"services":"2,3,4,5,6,",
"policing": "278"
},
{
"hardware_id":"1",
"login":"user3",
"ip":"2.2.2.2",
"bind_type":"1",
"services":"2,3,4,5,6,",
"policing": "278"
},
{
"hardware_id":"1",
"login":"user4",
"ip":"3.3.3.3",
"bind_type":"1",
"services":"4,",
"policing": "278"
},
{
"hardware_id":"1",
"login":"userxx",
"ip":"5.5.5.6",
"bind_type":"1",
"services":"3,4,6,",
"policing": "278"
}
]
}
}
}
=== Api_SaveSubscriber ===
Сохранение модели абонента.
Параметры:
* Id - int: идентификатор оборудования
* Subscriber - object: модель абонента с новыми данными
* SubscriberOld - object: модель абонента со старыми данными. Если данный параметры указан, производится редактирование данных этого абонента и подключенных ему услуг.Если не указан, создается новый абонент.
Пример запроса при создании абонента:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveSubscriber",
"params":{
"Id":1,
"Subscriber":{
"id":1515929803535,
"hardware_id":0,
"login":"test",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"4,6,",
"policing":"278",
"valid":true,
"oldSubscriber":{
"id":1515929803535,
"hardware_id":0,
"login":"",
"ip":"",
"bind_type":1,
"services":"",
"policing":"0",
"valid":true
}
},
"SubscriberOld":{
"id":1515929803535,
"hardware_id":0,
"login":"",
"ip":"",
"bind_type":1,
"services":"",
"policing":"",
"valid":true
}
},
"id":1515929803535
}
]
Пример успешного ответа при создании абонента:
{
"jsonrpc":"2.0",
"id":1515929803535,
"result":{
"success":true,
"data":{
"bind":{
"success":true,
"data":{
"bind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
},
"unbind_result":null
}
},
"services":{
"success":true,
"data":{
"bind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
},
"unbind_result":null
}
},
"sync_bind":{
"success":true,
"data":0.0988309383392334
},
"sync_services":{
"success":true,
"data":0.08402705192565918
},
"policing":{
"success": true,
"data":{
"bind":{
"success":true
},
"unbind":{
"success":true
}
}
},
"sync_policing":{
"success": true
}
}
}
}
Пример запроса при редактировании абонента:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveSubscriber",
"params":{
"Id":1,
"Subscriber":{
"id":1515929804490,
"hardware_id":"1",
"login":"test123",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"1,4,6,",
"policing":"277",
"valid":true,
"oldSubscriber":{
"id":1515929804490,
"hardware_id":"1",
"login":"test",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"4,6,",
"policing":"",
"valid":true
}
},
"SubscriberOld":{
"id":1515929804490,
"hardware_id":"1",
"login":"test",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"4,6,",
"policing":"278",
"valid":true
}
},
"id":1515929804490
}
]
Пример успешного ответа при редактировании абонента:
{
"jsonrpc":"2.0",
"id":1515929804490,
"result":{
"success":true,
"data":{
"bind":{
"success":true,
"data":{
"bind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
},
"unbind_result":null
}
},
"services":{
"success":true,
"data":{
"bind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
},
"unbind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
}
}
},
"sync_bind":{
"success":true,
"data":0.1651449203491211
},
"sync_services":{
"success":true,
"data":0.1676170825958252
},
"policing":{
"success": true,
"data":{
"bind":{
"success":true
},
"unbind":{
"success":true
}
}
},
"sync_policing":{
"success": true
}
}
}
}
=== Api_DeleteSubscriber ===
Удаление абонента.
Параметры:
* Id - int: идентификатор оборудования
* Subscriber - object: модель абонента
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteSubscriber",
"params":{
"Id":1,
"Subscriber":{
"id":1515929804638,
"hardware_id":"1",
"login":"test123",
"ip":"77.77.77.77",
"bind_type":"0",
"services":"1,4,6,",
"policing":"278",
"valid":true
}
},
"id":1515929804638
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929804638,
"result":{
"success":true,
"data":{
"services":{
"success":true,
"data":{
"bind_result":null,
"unbind_result":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
}
}
},
"unbind":{
"success":true,
"data":{
"total":"1",
"success":"1",
"fail":"0",
"were_set_before":"0",
"were_not_set_before":"0",
"data":{
}
}
},
"sync_bind":{
"success":true,
"data":0.07761001586914062
},
"sync_services":{
"success":true,
"data":0.0842139720916748
},
"policing":{
"success": true,
"data":{
"unbind":{
"success":true
}
}
},
"sync_policing":{
"success": true
}
}
}
}
==== Управление услугами ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление черными/белыми списками|Управление черными/белыми списками]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление записью PCAP|Управление записью PCAP]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление мини Firewall-ом|Управление мини Firewall-ом]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление L2 BRAS|Управление L2 BRAS]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление L3 BRAS|Управление L3 BRAS]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление CG NAT|Управление CG NAT]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление защитой от DOS и DDOS атак|Управление защитой от DOS и DDOS атак]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление кешированием|Управление кешированием]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление уведомлениями абонентов|Управление уведомлениями абонентов]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление блокировкой и заменой рекламы|Управление блокировкой и заменой рекламы]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Управление бонусной программой|Управление бонусной программой]]
=== Управление черными/белыми списками ===
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetBlTasks|Api_GetBlTasks]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveBlTask|Api_SaveBlTask]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteBlTask|Api_DeleteBlTask]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_RunBlTask|Api_RunBlTask]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_StopBlTask|Api_StopBlTask]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetBlListItems|Api_GetBlListItems]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveBlListItem|Api_SaveBlListItem]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteBlListItem|Api_DeleteBlListItem]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_ImportBlListItems|Api_ImportBlListItems]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_ImportBlListItemsFromQoE|Api_ImportBlListItemsFromQoE]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetBlTargets|Api_GetBlTargets]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveBlTargets|Api_SaveBlTargets]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveBlTarget|Api_SaveBlTarget]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteBlTarget|Api_DeleteBlTarget]]
== Api_GetBlTasks ==
Получение списка профилей Черных/Белых списков.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* hardware_id - int: идентификатор оборудования
* title - string: имя профиля
* white - int:0|1, если 0 - то профиль улуги Черного списка
* task_id - int: идентификатор профиля
* tasks_ids - string: идентификаторы профилей через запятую
* not_in_tasks_ids - string: идентификаторы профилей через запятую
* parent_ids_is_null - int: 0|1
* status - int: 0|1 => Выкл|Вкл
* order_by - string: поле, по которому будет упорядочен список профилей
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetBlTasks",
"params":{
"Params":{
"hardware_id": 1,
"parent_id_is_null": 1
"order_by": "task_id",
"order_dir": "desc",
"page": 0,
"tasks_ids": null,
"size": 100,
"title": ""
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"date": "2019-03-23 06:28:25",
"form_data": "{"title":"All range","white":0,"redirect_enabled":"","redirect":"spectredpi.com","target":""}",
"hardware_id": "1",
"lists_updated": "0",
"parent_id": null,
"status": "1",
"targets_updated": "0",
"task_id": "234",
"title": "All range",
"user_id": "1",
"white": "0",
},
...
]
}
}
}
== Api_SaveBlTask ==
Сохранение профиля Черных/Белых списков.
Параметры:
* Form - object: модель данных из формы
* Task - object: модель профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveBlTask",
"params":{
"Form":{
"title":"All range",
"redirect":"specredpi.com",
"white":0,
"target":"",
"redirect_enabled":""
},
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range\",\"white\":0,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range",
"user_id":1,
"white":0,
"lists_updated":1,
"targets_updated":1
}
}
}
}
== Api_DeleteBlTask ==
Удаление профиля Черных/Белых списков.
Параметры:
* Task - object: модель профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteBlTask",
"params":{
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}
== Api_RunBlTask ==
Включение профиля Черных/Белых списков.
Параметры:
* Task - object: модель профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_RunBlTask",
"params":{
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":0,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
}
}
== Api_StopBlTask ==
Выключение профиля Черных/Белых списков.
Параметры:
* Task - object: модель профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_StopBlTask",
"params":{
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":0,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
}
}
== Api_GetBlListItems ==
Получение списка ресурсов профилей Черных/Белых списков.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* uri - string: ресурс
* type - string:sni|ip|url|cn
* task_id - int: идентификатор профиля
* enabled - int: 0|1 => Выкл|Вкл
* order_by - string: поле, по которому будет упорядочен список ресурсов
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetBlListItems",
"params":{
"Params":{
"order_by": "uri",
"order_dir": "asc",
"page": 0,
"tasks_id": 234,
"size": 100
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"enabled": 1,
"item_id": 2098644,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
},
...
]
}
}
}
== Api_SaveBlListItem ==
Сохранение ресурса профиля Черных/Белых списков.
Параметры:
* ListItem - object: модель ресурса
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveBlListItem",
"params":{
"ListItem":{
"enabled": 1,
"item_id": 2098644,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"list_item":{
"enabled": 1,
"item_id": 2098644,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
}
}
}
}
== Api_DeleteBlListItem ==
Удаление ресурса профиля Черных/Белых списков.
Параметры:
* ListItem - object: модель ресурса
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteBlListItem",
"params":{
"ListItem":{
"enabled": 1,
"item_id": 2098644,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}
== Api_ImportBlListItems ==
Импорт массива моделей ресурсов профиля Черных/Белых списков.
Параметры:
* Items - array: массив моделей ресурсов
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_ImportBlListItems",
"params":{
"Items":[
{
"enabled": 1,
"item_id": 0,
"task_id": "234",
"type": "sni",
"uri": "*.detik.com"
},
...
]
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}
== Api_ImportBlListItemsFromQoE ==
Импорт ресурсов по категориям из QoE.
Параметры:
* Task - object: модель профиля
* Categories - string: идентификаторы категорий ресурсов из QoE через запятую
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_ImportBlListItemsFromQoE",
"params":{
"Categories": "7,8,9,10",
"Task":{
"data":[],
"date":"2019-03-22 06:28:25",
"form_data":"{\"title\":\"All range1\",\"white\":1,\"redirect_enabled\":\"\",\"redirect\":\"spectredpi.com\",\"target\":\"\"}",
"hardware_id": 1,
"parent_id":null,
"status":1,
"task_id":234,
"title":"All range1",
"user_id":1,
"white":1
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}
== Api_GetBlTargets ==
Получение списка абонентов профилей Черных/Белых списков.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* task_id - int: идентификатор профиля
* target - string: логин абонента
* status - int: статус абонента
* order_by - string: поле, по которому будет упорядочен список абонентов
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetBlTargets",
"params":{
"Params":{
"order_by": "target",
"order_dir": "desc",
"page": 0,
"tasks_id": 234,
"size": 100
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"status": 1,
"task_id": "234",
"target": "4.4.4.4"
},
...
]
}
}
}
== Api_SaveBlTargets ==
Сохранение нескольких абонентов профиля Черных/Белых списков.
Параметры:
* Targets - array: массив моделей абонентов профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveBlTargets",
"params":{
"Targets":[
{
"status": 1,
"task_id": "234",
"target": "4.4.4.4"
},
{
"status": 1,
"task_id": "234",
"target": "10.64.66.101"
}
]
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}
== Api_SaveBlTarget ==
Сохранение абонента профиля Черных/Белых списков.
Параметры:
* NewTarget - object: новая модель абонента профиля
* OldTarget - object: старая модель абонента профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveBlTarget",
"params":{
"NewTarget":{
"status": 1,
"task_id": "234",
"target": "4.4.4.4"
},
"OldTarget":null
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}
== Api_DeleteBlTarget ==
Удаление абонента профиля Черных/Белых списков.
Параметры:
* Target - object: модель абонента профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteBlTarget",
"params":{
"Target":{
"status": 1,
"task_id": "234",
"target": "4.4.4.4"
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true
}
}
=== Управление записью PCAP ===
В разработке.
=== Управление мини Firewall-ом ===
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetMiniFirewallProfiles|Api_GetMiniFirewallProfiles]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveMiniFirewallProfile|Api_SaveMiniFirewallProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteMiniFirewallProfile|Api_DeleteMiniFirewallProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_RunMiniFirewallProfile|Api_RunMiniFirewallProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_StopMiniFirewallProfile|Api_StopMiniFirewallProfile]]
== Api_GetMiniFirewallProfiles ==
Получение списка профилей Мини Firewall.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* hardware_id - int: идентификатор оборудования
* title - string: имя профиля
* title_equal - string: точное имя профиля
* profile_id - int: Идентификатор профиля
* profile_id_not_eqaul - int: Идентификатор профиля
* profile_ids - string: Строка с перечислением идентификаторов профилей через запятую
* status - int: 0|1 => Выкл|Вкл
* order_by - string: поле, по которому будет упорядочен список профилей
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
Пример запроса:
[{
"jsonrpc":"2.0",
"method":"Api_GetMiniFirewallProfiles",
"params":
{
"Params":
{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profiles_ids":null,
"hardware_id":10
}
},
"id":1570094137904
}]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1570094137904,
"result":
{
"success":true,
"data":
{
"page":0,
"size":100,
"count":7,"rows":
[
{
"profile_id":"1202",
"hardware_id":"10",
"title":"qq",
"date":"2019-10-02 16:22:42",
"form_data":"{\"title\":\"qq\",\"max_port\":1000,\"port_holes\":[],\"out_port\":[555]}","status":"0","sync_marker":"0"
},
{...}
]
}
}
}
== Api_SaveMiniFirewallProfile ==
Сохранение профиля Мини Firewall.
Параметры:
* Form - object: модель данных из формы
* Task - object: модель профиля
Пример запроса:
[{
"jsonrpc":"2.0",
"method":"Api_SaveMiniFirewallProfile",
"params":
{
"Profile":
{
"id":1570094137951,
"profile_id":0,
"hardware_id":"10",
"title":"",
"date":0,
"status":0,
"form_data":"{\"title\":\"\",\"max_port\":0,\"port_holes\":[],\"out_port\":[],\"valid\":true}",
"sync_marker":0,
"valid":true
},
"Form":
{
"title":"test",
"max_port":10240,
"port_holes":[80,8080],
"out_port":[25,465],
"valid":true
}
},
"id":1570094137951
}]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1570094137951,
"result":
{
"success":true,
"data":
{
"profile":
{
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"status":"0",
"sync_marker":"0"
}
}
}
}
== Api_DeleteMiniFirewallProfile ==
Удаление профиля Мини Firewall.
Параметры:
* Profile - object: модель профиля
Пример запроса:
[{
"jsonrpc":"2.0",
"method":"Api_DeleteMiniFirewallProfile",
"params":
{
"Profile":
{
"id":1570094137926,
"profile_id":"1202",
"hardware_id":"10",
"title":"qq",
"date":"2019-10-02 16:22:42",
"status":0,
"form_data":"{\"title\":\"qq\",\"max_port\":1000,\"port_holes\":[],\"out_port\":[555]}",
"sync_marker":"0",
"valid":true
}
},
"id":1570094137926
}]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1570094137926,
"result":{
"success":true
}
}
== Api_RunMiniFirewallProfile ==
Запуск профиля Мини Firewall.
Параметры:
* Profile - object: модель профиля
Пример запроса:
[{
"jsonrpc":"2.0",
"method":"Api_RunMiniFirewallProfile",
"params":
{
"Profile":
{
"id":1570094137951,
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"status":0,
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"sync_marker":"0",
"valid":true
}
},
"id":1570094137951
}]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1570094137951,
"result":
{
"success":true,
"data":
{
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"status":1,
"sync_marker":"0"
}
}
}
== Api_StopMiniFirewallProfile ==
Остановка профиля Мини Firewall.
Параметры:
* Profile - object: модель профиля
Пример запроса:
[{
"jsonrpc":"2.0",
"method":"Api_StopMiniFirewallProfile",
"params":
{
"Profile":
{
"id":1570094137951,
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"status":1,
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"sync_marker":"0",
"valid":true
}
},
"id":1570094137951
}]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1570094137951,
"result":
{
"success":true,
"data":
{
"profile_id":"1509",
"hardware_id":"10",
"title":"test",
"date":"2019-10-03 09:44:22",
"form_data":"{\"title\":\"test\",\"max_port\":10240,\"port_holes\":[80,8080],\"out_port\":[25,465]}",
"status":0,
"sync_marker":"0"
}
}
}
=== Управление L2 BRAS ===
В разработке.
=== Управление L3 BRAS ===
В разработке.
=== Управление CG NAT ===
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetCgNatProfiles|Api_GetCgNatProfiles]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveCgNatProfile|Api_SaveCgNatProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteCgNatProfile|Api_DeleteCgNatProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_RunCgNatProfile|Api_RunCgNatProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_StopCgNatProfile|Api_StopCgNatProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetCgNatDetailStatus|Api_GetCgNatDetailStatus]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetCgNatFullStatus|Api_GetCgNatFullStatus]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetCgNatSubscribersStatus|Api_GetCgNatSubscribersStatus]]
== Api_GetCgNatProfiles ==
Получение списка CG NAT профилей.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* hardware_id - int: идентификатор оборудования
* title - string: имя профиля
* title_equal - string: точное имя профиля
* profile_id - int: Идентификатор профиля
* profile_id_not_eqaul - int: Идентификатор профиля
* profile_ids - string: Строка с перечислением идентификаторов профилей через запятую
* status - int: 0|1 => Выкл|Вкл
* nat_type - int: Тип профиля (0 => CG NAT, 1 => 1:1)
* order_by - string: поле, по которому будет упорядочен список профилей
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetCgNatProfiles",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profiles_ids":null,
"hardware_id":1
}
},
"id":1564488173195
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1564488173195,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":4,
"rows":[
{
"profile_id":"755",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-22 20:24:25",
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.199.42.0\/28\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"status":"0",
"nat_type":"1",
"subscribers_updated":"1",
"sync_marker":"2039079626"
},
{...},
...
]
}
}
}
== Api_SaveCgNatProfile ==
Сохранение CG NAT профиля.
Параметры:
* Form - object: модель данных из формы
* Task - object: модель профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveCgNatProfile",
"params":{
"Profile":{
"id":1564488173202,
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-22 20:24:25",
"status":0,
"nat_type":1,
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"subscribers_updated":1,
"sync_marker":"2039079626",
"valid":true
},
"Form":{
"title":"stress",
"nat_ip_pool":"5.200.44.0/32",
"nat_type":1,
"nat_tcp_max_sessions":0,
"nat_udp_max_sessions":0,
"valid":true
}
},
"id":1564488173202
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1564488173202,
"result":{
"success":true,
"data":{
"profile":{
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:07:56",
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"status":"0",
"nat_type":"1",
"subscribers_updated":"1",
"sync_marker":"2039079626"
}
}
}
}
== Api_DeleteCgNatProfile ==
Удаление CG NAT профиля.
Параметры:
* Profile - object: модель профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteCgNatProfile",
"params":{
"Profile":{
"id":1564488173351,
"profile_id":"773",
"hardware_id":"1",
"title":"test_delete",
"date":"2019-07-30 13:16:12",
"status":0,
"nat_type":0,
"form_data":"{\"title\":\"test_delete\",\"nat_ip_pool\":\"192.168.1.90\\/24\",\"nat_type\":0,\"nat_tcp_max_sessions\":1500,\"nat_udp_max_sessions\":1500}",
"subscribers_updated":0,
"sync_marker":"0",
"valid":true
}
},
"id":1564488173351
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1564488173351,
"result":{
"success":true
}
}
== Api_RunCgNatProfile ==
Запуск CG NAT профиля.
Параметры:
* Profile - object: модель профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_RunCgNatProfile",
"params":{
"Profile":{
"id":1564494014854,
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:21:06",
"status":0,
"nat_type":1,
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"subscribers_updated":1,
"sync_marker":"2039079626",
"valid":true
}
},
"id":1564494014854
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1564494014854,
"result":{
"success":true,
"data":{
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:21:06",
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"status":1,
"nat_type":"1",
"subscribers_updated":"1",
"sync_marker":"2039079626"
}
}
}
== Api_StopCgNatProfile ==
Остановка CG NAT профиля.
Параметры:
* Profile - object: модель профиля
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_StopCgNatProfile",
"params":{
"Profile":{
"id":1564494014854,
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:21:06",
"status":1,
"nat_type":1,
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"subscribers_updated":1,
"sync_marker":"2039079626",
"valid":true
}
},
"id":1564494014854
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1564494014854,
"result":{
"success":true,
"data":{
"profile_id":"752",
"hardware_id":"1",
"title":"stress",
"date":"2019-07-30 13:21:06",
"form_data":"{\"title\":\"stress\",\"nat_ip_pool\":\"5.200.44.0\\\/32\",\"nat_type\":1,\"nat_tcp_max_sessions\":0,\"nat_udp_max_sessions\":0}",
"status":0,
"nat_type":"1",
"subscribers_updated":"1",
"sync_marker":"2039079626"
}
}
}
== Api_GetCgNatDetailStatus ==
Получение подробного статуса CG NAT профиля.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* order_by - string: поле, по которому будет упорядочен список профилей
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
* hardware_id - int: идентификатор оборудования
* profile_id - int: Идентификатор профиля
* profile_ids - string: Строка с перечислением идентификаторов профилей через запятую
* proto - string: Используемый протокол (TCP / UDP)
* ip_mask - string: IP маска( 0x0 / 0x1)
* nthr - int: Номер потока (0 / 1)
* whip - string: Белый IP адрес
* num_port - int: Общее количество портов ( >= )
* use_port - int: Используемое количество портов ( >= )
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetCgNatDetailStatus",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profile_ids":"753",
"hardware_id":"1"
}
},
"id":1564494015645
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1564494015645,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":16,
"rows":[
{
"profile_id":"753",
"proto":"TCP",
"nthr":"0",
"ip_mask":"0x0",
"whip":"8.8.8.10",
"num_port":"64512",
"use_port":"0",
"sync_marker":"2039079626",
"title":"1st_profile1"
},
{...},
...
]
}
}
}
== Api_GetCgNatFullStatus ==
Получение общего статуса CG NAT профиля.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* order_by - string: поле, по которому будет упорядочен список профилей
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
* hardware_id - int: идентификатор оборудования
* profile_id - int: Идентификатор профиля
* profile_ids - string: Строка с перечислением идентификаторов профилей через запятую
* proto - string: Используемый протокол (TCP / UDP)
* ip_mask - string: IP маска( 0x0 / 0x1)
* nthr - int: Номер потока (0 / 1)
* whip - string: Белый IP адрес
* num_port - int: Общее количество портов ( >= )
* use_port - int: Используемое количество портов ( >= )
* num_addr - int: Общее количество адресов ( >= )
* use_addr - int: Используемое количество адресов ( >= )
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetCgNatFullStatus",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profile_ids":"753",
"hardware_id":"1"
}
},
"id":1564494015647
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1564494015647,
"result":{
"success":true,
"data":{
"page":0,"size":100,
"count":2,
"rows":[
{
"profile_id":"753",
"proto":"TCP",
"nthr":"0",
"ip_mask":"0x0",
"num_addr":"8",
"use_addr":"0",
"num_port":"516096",
"use_port":"0",
"sync_marker":"2039079626",
"title":"1st_profile1"
},
{
"profile_id":"753",
"proto":"UDP",
"nthr":"0",
"ip_mask":"0x0",
"num_addr":"8",
"use_addr":"0",
"num_port":"516096",
"use_port":"0",
"sync_marker":"2039079626",
"title":"1st_profile1"
}
]
}
}
}
== Api_GetCgNatSubscribersStatus ==
Получение статуса абонентов CG NAT профиля.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* order_by - string: поле, по которому будет упорядочен список профилей
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
* hardware_id - int: идентификатор оборудования
* profile_id - int: Идентификатор профиля
* profile_ids - string: Строка с перечислением идентификаторов профилей через запятую
* ipv4 - string: Серый IP адрес
* whiteip - string: Белый IP адрес
* sess_tcp - int: Количество TCP сессий ( >= )
* sess_udp - int: Количество UDP сессий ( >= )
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetCgNatSubscribersStatus",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"profile_id",
"order_dir":"desc",
"profile_ids":"753",
"hardware_id":"1"
}
},
"id":1564494015649
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1564494015649,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":15,
"rows":[
{
"profile_id":"753",
"ipv4": "192.168.15.25",
"whiteip": "5.200.44.1",
"sess_tcp": "134",
"sess_udp": "62",
"sync_marker": "2039079626"
},
{...},
...
]
}
}
}
=== Управление защитой от DOS и DDOS атак ===
В разработке.
=== Управление кешированием ===
В разработке.
=== Управление уведомлениями абонентов ===
В разработке.
=== Управление блокировкой и заменой рекламы ===
В разработке.
=== Управление бонусной программой ===
В разработке.
==== Управление тарифами ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetPolicingProfiles|Api_GetPolicingProfiles]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SavePolicingProfile|Api_SavePolicingProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SavePolicingProfileConfig|Api_SavePolicingProfileConfig]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeletePolicingProfile|Api_DeletePolicingProfile]]
=== Api_GetPolicingProfiles ===
Получение списка профилей тарифных планов.
Параметры:
* Params - object: параметры поиска(необязательный параметр)
Возможные параметры поиска Params:
* page - int: номер страницы
* size - int: размерность массива с результатом
* hardware_id - int: идентификатор оборудования
* title - string: имя профиля
* individual - int:0|1
* profile_id - int: идентификатор профиля тарифного плана
* order_by - string: поле, по которому будет упорядочен список абонентов
* order_dir - string: упорядочивание списка по возрастанию("asc")/убыванию("desc")
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetPolicingProfiles",
"params":{
"Params":{
"hardware_id": 1,
"individual": "0",
"order_by": "profile_id",
"order_dir": "desc",
"page": 0,
"profile_id": null,
"size": 100,
"title": ""
}
},
"id":1515929803508
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929803508,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":6,
"rows":[
{
"config": "{"type":"HTB",...}"
"config_updated": "0"
"dpi_name": "at9Eneeg29"
"enabled": "0"
"hardware_id": "1"
"individual": "0"
"profile_id": "276"
"status": "0"
"subs_updated": "0"
"title": "10mbit"
"user_id": "1"
},
...
]
}
}
}
=== Api_SavePolicingProfile ===
Сохранение модели абонента.
Параметры:
* Profile - object: модель профиля тарифного плана с новыми данными
* Config - string: конфигурация тарифного плана. Если данный параметр указан, производится обновление конфигурация тарифного плана.
Пример запроса при сохранении профиля:
[
{
"jsonrpc":"2.0",
"method":"Api_SavePolicingProfile",
"params":{
"Config": "htb_inbound_root=rate 10mbit↵htb_inbound_class0=rate 8bit ceil 10mbit↵htb_inbound_class1=rate 8bit ceil...",
"Profile":{
"config": "",
"config_updated": 0,
"dpi_name": "",
"enabled": 0,
"hardware_id": "1",
"individual": 0,
"profile_id": 0,
"status": 0,
"subs_updated": 0,
"title": "test_save"
"user_id": 0,
"valid": true
}
},
"id":1515929803535
}
]
Пример успешного ответа при создании профиля:
{
"jsonrpc":"2.0",
"id":1553521000824,
"result":{
"success":true,
"data":{
"profile":{
"profile_id":"280",
"title":"test_save",
"hardware_id":"1",
"user_id":"1",
"enabled":"0",
"config":"{\"type\":\"HTB\",\"inbound\":{\"root_rate\":\"10mbit\",\"root_ceil\":\"10mbit\",\"root_burst\":\"5mbit\",\"root_cburst\":\"5mbit\",\"classes\":[...]},\"outbound\":{\"root_rate\":\"10mbit\",\"root_ceil\":\"10mbit\",\"root_burst\":\"5mbit\",\"root_cburst\":\"5mbit\",\"classes\":[...]}}",
"subs_updated":"0",
"config_updated":"0",
"dpi_name":"4t0KYYU83Z",
"status":"0",
"individual":"0"
}
}
}
}
=== Api_SavePolicingProfileConfig ===
Сохранение конфигурации профиля тарифного плана.
Параметры:
* Profile - object: модель профиля тарифного плана.
* Config - string: конфигурация тарифного плана.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SavePolicingProfile",
"params":{
"Config": "htb_inbound_root=rate 20mbit↵htb_inbound_class0=rate 8bit ceil 20mbit↵htb_inbound_class1=rate 8bit ceil...",
"Profile":{
"config": "{\"type\":\"HTB\",\"inbound\":{\"root_rate\":\"10mbit\",\"root_ceil\":\"10mbit\",\"root_burst\":\"5mbit\",\"root_cburst\":\"5mbit\",\"classes\":[...]},\"outbound\":{\"root_rate\":\"10mbit\",\"root_ceil\":\"10mbit\",\"root_burst\":\"5mbit\",\"root_cburst\":\"5mbit\",\"classes\":[...]}}",
"config_updated": 0,
"dpi_name": "ztovKBaiZs",
"enabled": 0,
"hardware_id": "1",
"individual": 0,
"profile_id": 278,
"status": 0,
"subs_updated": 0,
"title": "test_save"
"user_id": 1,
"valid": true
}
},
"id":1515929804638
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929804638,
"result":{
"success":true,
"data":{
"profile":{
config: "{"type":"HTB","inbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]},"outbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]}}"
config_updated: "0"
dpi_name: "ztovKBaiZs"
enabled: "0"
hardware_id: "1"
individual: "0"
profile_id: "278"
status: "0"
subs_updated: "0"
title: "test_save"
user_id: "1"
}
}
}
}
=== Api_DeletePolicingProfile ===
Удаление профиля тарифного плана.
Параметры:
* Profile - object: модель профиля тарифного плана.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeletePolicingProfile",
"params":{
"Profile":{
config: "{"type":"HTB","inbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]},"outbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]}}"
config_updated: "0"
dpi_name: "ztovKBaiZs"
enabled: "0"
hardware_id: "1"
individual: "0"
profile_id: "278"
status: "0"
subs_updated: "0"
title: "test_save"
user_id: "1"
}
},
"id":1515929804638
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515929804638,
"result":{
"success":true,
"data":{
"profile":{
config: "{"type":"HTB","inbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]},"outbound":{"root_rate":"20mbit","root_ceil":"20mbit","root_burst":"10mbit","root_cburst":"10mbit","classes":[...]}}"
config_updated: "0"
dpi_name: "ztovKBaiZs"
enabled: "0"
hardware_id: "1"
individual: "0"
profile_id: "278"
status: "0"
subs_updated: "0"
title: "test_save"
user_id: "1"
}
}
}
}
==== Управление приоретизацией по протоколам (DSCP) ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDscpProtocolsConfig|Api_GetDscpProtocolsConfig]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SetDscpProtocolsConfig|Api_SetDscpProtocolsConfig]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDscpProtocolsConfigHistory|Api_GetDscpProtocolsConfigHistory]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetDscpProtocolsConfigFile|Api_GetDscpProtocolsConfigFile]]
=== Api_GetDscpProtocolsConfig ===
Получение конфигурации приоретизации по протоколу DSCP.
Параметры:
* Id - int: идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDscpProtocolsConfig",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "ftp cs4\nhttps cs1\nBittorrent cs7\nTCP Unknown cs7\ndefault keep\n"
}
}
=== Api_SetDscpProtocolsConfig ===
Установка конфигурации приоретизации по протоколу DSCP.
Параметры:
* Id - int: идентификатор оборудования
* Config - string: тело конфигурации
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SetDscpProtocolsConfig",
"params":{
"Id":1,
"Config":"ftp cs4\nhttps cs1\nBittorrent cs7\nTCP Unknown cs7\ndefault keep\n"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true
}
}
=== Api_GetDscpProtocolsConfigHistory ===
Получение истории изменения конфигураций приоретизации по протоколу DSCP.
Параметры:
* Id - int: идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDscpProtocolsConfigHistory",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
"2015.06.03.03.54.25.000000.protocols.dscp",
"2015.06.03.04.00.28.000000.protocols.dscp",
"2015.06.04.15.48.34.000000.protocols.dscp",
...
]
}
}
=== Api_GetDscpProtocolsConfigFile ===
Получение файла конфигурации из истории по имени файла.
Параметры:
* Id - int: идентификатор оборудования
* File - string: имя файла
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetDscpProtocolsConfigFile",
"params":{
"Id":1,
"File":"2015.06.03.03.54.25.000000.protocols.dscp"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "dns cs0\nhttp cs1\nhttps cs1\nBittorrent cs7\nICMPv6 cs0\nICMP cs0\ndefault cs2\n"
}
}
==== Управление приоретизацией по ASN ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetAsnDscpConfig|Api_GetAsnDscpConfig]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SetAsnDscpConfig|Api_SetAsnDscpConfig]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetAsnDscpConfigHistory|Api_GetAsnDscpConfigHistory]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetAsnDscpConfigFile|Api_GetAsnDscpConfigFile]]
=== Api_GetAsnDscpConfig ===
Получение конфигурации приоретизации по ASN.
Параметры:
* Id - int: идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetAsnDscpConfig",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"asn": {
"success": true,
"data": "192.168.1.16/32 64512\n192.168.1.111/32 64512\n"
},
"asn_dscp": {
"success": true,
"data": "64512 pass\n64512 cs0\n64513 drop\n64514 pass\n64514 peer\n"
}
}
}
}
=== Api_SetAsnDscpConfig ===
Установка конфигурации приоретизации по ASN.
Параметры:
* Id - int: идентификатор оборудования
* AsnConfig - string: тело конфигурации ASN
* AsnDscpConfig - string: тело конфигурации ASNDSCP
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SetDscpProtocolsConfig",
"params":{
"Id":1,
"AsnConfig":"192.168.1.16/32 64512\n192.168.1.111/32 64512\n",
"AsnDscpConfig":"64512 pass\n64512 cs0\n64513 drop\n64514 pass\n64514 peer\n"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": {
"asn": {
"success": true
},
"asn_dscp": {
"success": true
}
}
}
}
=== Api_GetAsnDscpConfigHistory ===
Получение истории изменения конфигураций приоретизации по ASN.
Параметры:
* Id - int: идентификатор оборудования
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetAsnDscpConfigHistory",
"params":{
"Id":1
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": [
"2015.06.07.08.29.29.000000.asnum.dscp",
"2015.06.07.08.30.12.000000.asnum.dscp",
"2015.06.07.08.33.40.000000.asnum.dscp",
...
]
}
}
=== Api_GetAsnDscpConfigFile ===
Получение файла конфигурации из истории по имени файла.
Параметры:
* Id - int: идентификатор оборудования
* File - string: имя файла
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetAsnDscpConfigFile",
"params":{
"Id":1,
"File":"2015.06.07.08.29.29.000000.asnum.dscp"
},
"id":1515661809137
}
]
Пример успешного ответа:
{
"jsonrpc":"2.0",
"id":1515662165576,
"result":{
"success":true,
"data": "11111 pass\n11112 pass\n11113 pass\n11114 pass\n11115 pass\n11116 pass\n11117 pass\n11118
pass\n11119 pass\n11120 pass\n64514 pass\n"
}
}
==== Управление QoE ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetQoEClientPredefinedReport|Api_GetQoEClientPredefinedReport]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetQoEFilters|Api_GetQoEFilters]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveQoEFilter|Api_SaveQoEFilter]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteQoEFilter|Api_DeleteQoEFilter]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_StartExpQoESubscribersToAdvcJob|Api_StartExpQoESubscribersToAdvcJob]]
=== Api_GetQoEClientPredefinedReport ===
Получение QoE отчета.
Параметры:
* Config - Object: конфигурация отчета
* Params - Object: параметры отчета (фильтры)
== Пример: Топ хостов (Кликстрим) ==
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetQoEClientPredefinedReport",
"params":{
"Config":{
"type":"ClientPredefined",
"table":"clickstream_report",
"values":[
{
"col":"",
"alias":"total",
"func":"count"
},
{
"col":"session_id",
"alias":"sessons_uniq",
"func":"uniq"
},
{
"col":"subscriber",
"alias":"subscribers_uniq",
"func":"uniq"
},
{
"col":"user_agent",
"alias":"user_agent_uniq",
"func":"uniq"
},
{
"col":"device_other",
"alias":"device_other_uniq",
"func":"uniq"
},
{
"col":"host_ip",
"alias":"host_ip_uniq",
"func":"uniq"
}
],
"rows":[
"host"
],
"sort":{
"id":"total",
"dir":"desc"
},
"with_totals":true
},
"Params":{
"table":"clickstream_report",
"page":0,
"size":0,
"period":null,
"filter":{
"period":{
"id":"time",
"operator":"between",
"value":[
"2018-08-20 14:19:43",
"2018-09-20 14:19:43"
]
},
"host":""
},
"sort":{
"id":"total",
"dir":"desc"
}
}
},
"id":1537438732453
}
]
Пример ответа:
{
"jsonrpc":"2.0",
"id":1537438732453,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":2317,
"series":[
],
"rows":[
{
"host":"www.google.com",
"total":"3287",
"sessons_uniq":"1817",
"subscribers_uniq":"3",
"user_agent_uniq":"1",
"device_other_uniq":"1",
"host_ip_uniq":"58"
},
{
"host":"*.google.com.ru",
"total":"2838",
"sessons_uniq":"2838",
"subscribers_uniq":"3",
"user_agent_uniq":"1",
"device_other_uniq":"1",
"host_ip_uniq":"39"
},
{
"host":"*.google.com",
"total":"2328",
"sessons_uniq":"2328",
"subscribers_uniq":"3",
"user_agent_uniq":"1",
"device_other_uniq":"1",
"host_ip_uniq":"158"
},
...
{
"host":"edge.skype.com",
"total":"130",
"sessons_uniq":"109",
"subscribers_uniq":"3",
"user_agent_uniq":"1",
"device_other_uniq":"1",
"host_ip_uniq":"1"
}
],
"totals":{
"host":"",
"total":"74141",
"sessons_uniq":"45680",
"subscribers_uniq":"3",
"user_agent_uniq":"91",
"device_other_uniq":"42",
"host_ip_uniq":"3053"
}
}
}
}
== Пример: RTT распределение (Нетфлоу) ==
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetQoEClientPredefinedReport",
"params":{
"Config":{
"type":"ClientPredefined",
"table":"fullflow_report",
"values":[
{
"col":"",
"alias":"RTT распределение",
"func":"countIf(rtt <> 0)"
},
{
"col":"",
"alias":"RTT распределение от абонента",
"func":"countIf(rtt_from_subscriber <> 0)"
},
{
"col":"",
"alias":"RTT распределение к абоненту",
"func":"countIf(rtt_to_subscriber <> 0)"
}
],
"rows":[
{
"col":"rtt",
"alias":"rtt",
"func":""
}
],
"sort":{
"id":"rtt",
"dir":"asc"
},
"size":1000
},
"Params":{
"table":"fullflow_report",
"page":0,
"size":1000,
"period":null,
"filter":{
"period":{
"id":"time",
"operator":"between",
"value":[
"2018-08-20 15:47:13",
"2018-09-20 15:47:13"
]
}
},
"sort":{
"id":"rtt",
"dir":"asc"
}
}
},
"id":1537447636531
}
]
Пример ответа:
{
"jsonrpc":"2.0",
"id":1537447636531,
"result":{
"success":true,
"data":{
"page":0,
"size":1000,
"count":1262,
"series":{
},
"rows":[
{
"rtt":0,
"RTT распределение":"0",
"RTT распределение от абонента":"0",
"RTT распределение к абоненту":"0"
},
{
"rtt":1,
"RTT распределение":"7641",
"RTT распределение от абонента":"6160",
"RTT распределение к абоненту":"1481"
},
{
"rtt":2,
"RTT распределение":"20061",
"RTT распределение от абонента":"15859",
"RTT распределение к абоненту":"4202"
},
{
"rtt":3,
"RTT распределение":"12266",
"RTT распределение от абонента":"10672",
"RTT распределение к абоненту":"1594"
},
{
"rtt":4,
"RTT распределение":"3922",
"RTT распределение от абонента":"3287",
"RTT распределение к абоненту":"635"
},
{
"rtt":5,
"RTT распределение":"2347",
"RTT распределение от абонента":"1501",
"RTT распределение к абоненту":"846"
},
........
{
"rtt":3856,
"RTT распределение":"2",
"RTT распределение от абонента":"1",
"RTT распределение к абоненту":"1"
},
{
"rtt":3860,
"RTT распределение":"1",
"RTT распределение от абонента":"0",
"RTT распределение к абоненту":"1"
}
],
"totals":null
}
}
}
=== Api_GetQoEFilters ===
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_GetQoEFilters",
"params":{
"Params":{
"page":0,
"size":100,
"order_by":"filter_id",
"order_dir":"desc",
"type":"subs_clickstream",
"filters_ids":null,
"parent_id_is_null":true
}
},
"id":1537447973672
}
]
Пример ответа:
{
"jsonrpc":"2.0",
"id":1537447973672,
"result":{
"success":true,
"data":{
"page":0,
"size":100,
"count":9,
"rows":[
{
"filter_id":"52",
"parent_id":null,
"user_id":"1",
"title":"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b speedtest",
"date":"2018-09-13 11:27:36",
"form_data":"{\"filter_state\":[{\"id\":1536837377540,\"f_enabled\":0,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377541,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377542,\"f_enabled\":0,\"f_id\":\"login\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377543,\"f_enabled\":1,\"f_id\":\"url\",\"f_operator\":\"like\",\"f_value\":\"speedtest.net\\\/result\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377544,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377545,\"f_enabled\":0,\"f_id\":\"user_agent\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377546,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377547,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377548,\"f_enabled\":0,\"f_id\":\"user_agent_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377549,\"f_enabled\":0,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377550,\"f_enabled\":0,\"f_id\":\"host_ip_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream"
},
.....
{
"filter_id":"18",
"parent_id":null,
"user_id":"1",
"title":"test",
"date":"2018-08-20 17:24:37",
"form_data":"{\"filter_state\":[{\"id\":1534776214196,\"f_enabled\":1,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"100\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214197,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"10\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214198,\"f_enabled\":0,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"test\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214199,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"qq\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214200,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"10\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214201,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1534776214202,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream"
}
]
}
}
}
=== Api_SaveQoEFilter ===
Сохранить QoE фильтр.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_SaveQoEFilter",
"params":{
"Filter":{
"id":1537447973674,
"filter_id":"52",
"parent_id":null,
"title":"Результаты speedtest",
"date":"2018-09-13 11:27:36",
"form_data":"{\"filter_state\":[{\"id\":1536837377540,\"f_enabled\":0,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377541,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377542,\"f_enabled\":0,\"f_id\":\"login\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377543,\"f_enabled\":1,\"f_id\":\"url\",\"f_operator\":\"like\",\"f_value\":\"speedtest.net\\/result\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377544,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377545,\"f_enabled\":0,\"f_id\":\"user_agent\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377546,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377547,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377548,\"f_enabled\":0,\"f_id\":\"user_agent_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377549,\"f_enabled\":0,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377550,\"f_enabled\":0,\"f_id\":\"host_ip_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream",
"data":[
],
"badge":1,
"open":true,
"valid":true
},
"Form":{
"filter_state":[
{
"id":1536837377540,
"f_enabled":0,
"f_id":"host",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377541,
"f_enabled":0,
"f_id":"subscriber",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377542,
"f_enabled":0,
"f_id":"login",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377543,
"f_enabled":1,
"f_id":"url",
"f_operator":"like",
"f_value":"speedtest.net/result",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377544,
"f_enabled":0,
"f_id":"device",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377545,
"f_enabled":0,
"f_id":"user_agent",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377546,
"f_enabled":0,
"f_id":"host_ip",
"f_operator":"like",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377547,
"f_enabled":0,
"f_id":"device_other_uniq",
"f_operator":">=",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377548,
"f_enabled":0,
"f_id":"user_agent_uniq",
"f_operator":">=",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377549,
"f_enabled":0,
"f_id":"hosts_uniq",
"f_operator":">=",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
},
{
"id":1536837377550,
"f_enabled":0,
"f_id":"host_ip_uniq",
"f_operator":">=",
"f_value":"",
"f_value_type":"string",
"f_value_editor":"text"
}
]
}
},
"id":1537447973674
}
]
Пример ответа:
{
"jsonrpc":"2.0",
"id":1537447973674,
"result":{
"success":true,
"data":{
"filter":{
"filter_id":"52",
"parent_id":null,
"user_id":"1",
"title":"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b speedtest",
"date":"2018-09-20 13:06:52",
"form_data":"{\"filter_state\":[{\"id\":1536837377540,\"f_enabled\":0,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377541,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377542,\"f_enabled\":0,\"f_id\":\"login\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377543,\"f_enabled\":1,\"f_id\":\"url\",\"f_operator\":\"like\",\"f_value\":\"speedtest.net\\\/result\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377544,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377545,\"f_enabled\":0,\"f_id\":\"user_agent\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377546,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377547,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377548,\"f_enabled\":0,\"f_id\":\"user_agent_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377549,\"f_enabled\":0,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1536837377550,\"f_enabled\":0,\"f_id\":\"host_ip_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream"
}
}
}
}
=== Api_DeleteQoEFilter ===
Удалить сохраненный QoE фильтр.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_DeleteQoEFilter",
"params":{
"Filter":{
"id":1537447973810,
"filter_id":"53",
"parent_id":null,
"title":"test",
"date":"2018-09-20 13:11:29",
"form_data":"{\"filter_state\":[{\"id\":1537447973833,\"f_enabled\":1,\"f_id\":\"host\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973834,\"f_enabled\":0,\"f_id\":\"subscriber\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973835,\"f_enabled\":0,\"f_id\":\"login\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973836,\"f_enabled\":0,\"f_id\":\"url\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973837,\"f_enabled\":0,\"f_id\":\"device\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973838,\"f_enabled\":0,\"f_id\":\"user_agent\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973839,\"f_enabled\":0,\"f_id\":\"host_ip\",\"f_operator\":\"like\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973840,\"f_enabled\":0,\"f_id\":\"device_other_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973841,\"f_enabled\":0,\"f_id\":\"user_agent_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973842,\"f_enabled\":0,\"f_id\":\"hosts_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"},{\"id\":1537447973843,\"f_enabled\":0,\"f_id\":\"host_ip_uniq\",\"f_operator\":\">=\",\"f_value\":\"\",\"f_value_type\":\"string\",\"f_value_editor\":\"text\"}]}",
"type":"subs_clickstream",
"data":[
],
"badge":1,
"open":true,
"valid":true
}
},
"id":1537447973810
}
]
Пример ответа:
{"jsonrpc":"2.0","id":1537447973810,"result":{"success":true}}
=== Api_StartExpQoESubscribersToAdvcJob ===
Запустить фоновую задачу импорта абонентов в рекламную кампанию на основе сохраненного QoE фильтра.
Пример запроса:
[
{
"jsonrpc":"2.0",
"method":"Api_StartExpQoESubscribersToAdvcJob",
"params":{
"Params":{
"Config":{
"type":"ClientPredefined",
"table":"clickstream_report",
"values":[
{
"col":"login",
"alias":"login_top",
"func":"topK(1)(login)"
},
{
"col":"",
"alias":"total",
"func":"count"
},
{
"col":"session_id",
"alias":"sessons_uniq",
"func":"uniq"
},
{
"col":"host",
"alias":"hosts_uniq",
"func":"uniq"
},
{
"col":"user_agent",
"alias":"user_agent_uniq",
"func":"uniq"
},
{
"col":"device_other",
"alias":"device_other_uniq",
"func":"uniq"
},
{
"col":"host_ip",
"alias":"host_ip_uniq",
"func":"uniq"
}
],
"rows":[
"subscriber"
],
"sort":{
"id":"total",
"dir":"desc"
},
"with_totals":true
},
"Params":{
"filter":{
"period":{
"id":"time",
"operator":"between",
"value":[
"2018-08-20 15:54:10",
"2018-09-20 15:54:10"
]
},
"1534931185441":{
"id":"hosts_uniq",
"operator":">=",
"value":"100",
"sql_type":"having"
}
},
"table":"clickstream_report"
},
"Type":"by_ip",
"Max":"0",
"HwCampaignData":{
"adc_id":"7",
"hardware_id":"6"
}
}
},
"id":1537447974127
}
]
Пример ответа:
{"jsonrpc":"2.0","id":1537447974127,"result":{"success":true}}
==== Управление рекламными кампаниями ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetAdvProfiles|Api_GetAdvProfiles]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveAdvProfile|Api_SaveAdvProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteAdvProfile|Api_DeleteAdvProfile]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetAdvCompanies|Api_GetAdvCompanies]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveAdvCompany|Api_SaveAdvCompany]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteAdvCompany|Api_DeleteAdvCompany]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_EnableAdvCompany|Api_EnableAdvCompany]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DisableAdvCompany|Api_DisableAdvCompany]]
=== Api_GetAdvProfiles ===
Получение профилей кампаний.
Параметры:
* Params - Object: параметры поиска (фильтры)
== Пример запроса ==
{
"jsonrpc": "2.0",
"method": "Api_GetAdvProfiles",
"params": {
"Params":{
"hardware_id":1,
"size":100,
"page":0,
"title":""
}
},
"id": 1081
}
== Пример ответа ==
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"page": 0,
"size": 100,
"count": 1,
"rows": [
{
"profile_id": "6",
"parent_id": null,
"hardware_id": "1",
"title": "test_profile_4",
"user_id": "1",
"deleted": "0",
"data": []
}
]
}
}
}
=== Api_SaveAdvProfile ===
Создание/изменение данных профиля кампаний.
Параметры:
* Profile - Object: модель профиля кампании.
== Пример запроса ==
{
"jsonrpc": "2.0",
"method": "Api_SaveAdvProfile",
"params": {
"Profile":{
"profile_id":0,
"parent_id": null,
"hardware_id": "1",
"title": "save_profile"
}
},
"id": 1081
}
== Пример ответа ==
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"profile": {
"profile_id": "20",
"parent_id": null,
"hardware_id": "1",
"title": "save_profile",
"user_id": "1",
"deleted": "0",
"data": []
}
}
}
}
=== Api_DeleteAdvProfile ===
Удаление профиля кампании.
Параметры:
* Profile - Object: модель профиля кампании.
== Пример запроса ==
{
"jsonrpc": "2.0",
"method": "Api_DeleteAdvProfile",
"params": {
"Profile":{
"profile_id": "20",
"parent_id": null,
"hardware_id": "1",
"title": "save_profile",
"user_id": "1",
"deleted": "0",
"data": []
}
},
"id": 1081
}
== Пример ответа ==
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"profile_id": "20",
"parent_id": null,
"hardware_id": "1",
"title": "save_profile",
"user_id": "1",
"deleted": "0",
"data": []
}
}
}
=== Api_GetAdvCompanies ===
Получение рекламных кампаний.
Параметры:
* Params - Object: параметры поиска (фильтры)
== Пример запроса ==
{
"jsonrpc": "2.0",
"method": "Api_GetAdvCompanies",
"params": {
"Params":{
"profile_id":6,
"title": "test",
"status":4
}
},
"id": 1081
}
== Пример ответа ==
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"page": 0,
"size": 100,
"count": 1,
"rows": [
{
"adc_id": "3",
"profile_id": "6",
"title": "test_profile_4",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"total": "16",
"released": "16",
"redirect": "google.com",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "4",
"params": "[]",
"need_to_update": "1",
"processed": "1,3,8",
"prepared_url": "google.com?",
"deleted": "0",
"enabled": "0"
}
]
}
}
}
=== Api_SaveAdvCompany ===
Создание/изменение данных рекламной кампании.
Параметры:
* Company - Object: модель рекламной кампании.
== Пример запроса ==
{
"jsonrpc": "2.0",
"method": "Api_SaveAdvCompany",
"params": {
"Company":{
"adc_id": "0",
"profile_id": "6",
"title": "test_save_company",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"redirect": "google.com",
"days_of_week": "1,2,3,4,5,6,7",
"params": "[]",
"enabled": "0"
}
},
"id": 1081
}
== Пример ответа ==
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc": {
"adc_id": "19",
"profile_id": "6",
"title": "test_save_company",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"total": null,
"released": null,
"redirect": "google.com",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "1",
"params": "[]",
"need_to_update": "1",
"processed": null,
"prepared_url": "google.com?",
"deleted": "0",
"enabled": "0"
}
}
}
}
=== Api_DeleteAdvCompany ===
Удаление рекламной кампании.
Параметры:
* Company - Object: модель рекламной кампании.
== Пример запроса ==
{
"jsonrpc": "2.0",
"method": "Api_DeleteAdvCompany",
"params": {
"Company":{
"adc_id": "19",
"profile_id": "6",
"title": "test_save_company",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"total": null,
"released": null,
"redirect": "google.com",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "1",
"params": "[]",
"need_to_update": "1",
"processed": null,
"prepared_url": "google.com?",
"deleted": "0",
"enabled": "0"
}
},
"id": 1081
}
== Пример ответа ==
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc_id": "19",
"profile_id": "6",
"title": "test_save_company",
"user_id": "1",
"from_date": "2018-09-18",
"to_date": "2018-10-30",
"from_time": "06:16:00",
"to_time": "23:55:00",
"total": null,
"released": null,
"redirect": "google.com",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "1",
"params": "[]",
"need_to_update": "1",
"processed": null,
"prepared_url": "google.com?",
"deleted": "0",
"enabled": "0"
}
}
}
=== Api_EnableAdvCompany ===
Запуск рекламной кампании.
Параметры:
* Company - Object: модель рекламной кампании.
== Пример запроса ==
{
"jsonrpc": "2.0",
"method": "Api_EnableAdvCompany",
"params": {
"Company":{
"adc_id": "4",
"profile_id": "6",
"title": "fake_company",
"user_id": "1",
"from_date": "2018-08-20",
"to_date": "2018-09-30",
"from_time": "00:00:00",
"to_time": "23:55:00",
"total": "16",
"released": "0",
"redirect": "abracadabra.ru",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "3",
"params": "[{\"data_name\":\"routing\",\"data_type\":\"enum\",\"default_value\":\"321\",\"id\":1535918599902}]",
"need_to_update": "1",
"processed": "4,16,17",
"prepared_url": "abracadabra.ru?",
"deleted": "0",
"enabled": "0"
}
},
"id": 1081
}
== Пример ответа ==
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc_id": "4",
"enabled": 1
}
}
}
=== Api_DisableAdvCompany ===
Остановка рекламной кампании.
Параметры:
* Company - Object: модель рекламной кампании.
== Пример запроса ==
{
"jsonrpc": "2.0",
"method": "Api_DisableAdvCompany",
"params": {
"Company":{
"adc_id": "4",
"profile_id": "6",
"title": "fake_company",
"user_id": "1",
"from_date": "2018-08-20",
"to_date": "2018-09-30",
"from_time": "00:00:00",
"to_time": "23:55:00",
"total": "16",
"released": "0",
"redirect": "abracadabra.ru",
"pack": "0",
"days_of_week": "1,2,3,4,5,6,7",
"status": "3",
"params": "[{\"data_name\":\"routing\",\"data_type\":\"enum\",\"default_value\":\"321\",\"id\":1535918599902}]",
"need_to_update": "1",
"processed": "4,16,17",
"prepared_url": "abracadabra.ru?",
"deleted": "0",
"enabled": "1"
}
},
"id": 1081
}
== Пример ответа ==
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc_id": "4",
"enabled": 0
}
}
}
==== Управление абонентами рекламных кампаний ====
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_GetAdvProcessedSubscribers|Api_GetAdvProcessedSubscribers]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveAdvProcessedSubscriber|Api_SaveAdvProcessedSubscriber]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_SaveAdvProcessedSubscribers|Api_SaveAdvProcessedSubscribers]]
* [[dpi:dpi_components:dpiui:jsonrpc_api#Api_DeleteAdvProcessedSubscriber|Api_DeleteAdvProcessedSubscriber]]
=== Api_GetAdvProcessedSubscribers ===
Получения списка абонентов рекламной кампании.
Параметры:
* Params - Object: параметры поиска абонентов (фильтры)
Пример запроса:
{
"jsonrpc": "2.0",
"method": "Api_GetAdvProcessedSubscribers",
"params": {
"Params":{
"adc_id": 18,
"hardware_id": 1,
"status": 1,
"login":"username1"
}
},
"id": 1081
}
Пример ответа:
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"page": 0,
"size": 100,
"count": 8,
"rows": [
{
"adc_id": "18",
"login": "username1",
"hardware_id": "1",
"status": "1",
"notification_date": null,
"url": "",
"deleted": "0",
"params": "{}"
},
{
"adc_id": "18",
"login": "username10",
"hardware_id": "1",
"status": "1",
"notification_date": null,
"url": "",
"deleted": "0",
"params": "{\"routing\":\"10\",\"param2\":\"7\"}"
},
...
]
}
}
}
=== Api_SaveAdvProcessedSubscriber ===
Создание/обновления данных абонента рекламной кампании.
Параметры:
* NewSubscriber - Object: модель абонента рекламной кампании с новыми данными.
* OldSubscriber - Object: модель абонента рекламной кампании со старыми данными(может быть null).
Пример запроса:
{
"jsonrpc": "2.0",
"method": "Api_SaveAdvProcessedSubscriber",
"params": {
"NewSubscriber":{
"adc_id":"18",
"hardware_id":"1",
"status":"1",
"params":"{}",
"notification_date":null,
"login":"username1"
},
"OldSubscriber":{
"adc_id":"18",
"login":"username1",
"hardware_id":"1",
"status":"1",
"params":"{\"routing\":\"1\",\"param2\":\"16\"}",
"notification_date":null
}
},
"id": 1081
}
Пример ответа:
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true
}
}
=== Api_SaveAdvProcessedSubscribers ===
Создание/обновления данных абонентов рекламной кампании.
Параметры:
* Subscribers - Array: массив моделей абонентов рекламной кампании.
Пример запроса:
{
"jsonrpc": "2.0",
"method": "Api_SaveAdvProcessedSubscribers",
"params": {
"Subscribers":[
{
"adc_id":"18",
"login":"username1",
"hardware_id":"1",
"params":"{\"routing\":\"1\",\"param2\":\"16\"}",
"status":1,
"notification_date":null
},
{
"id":1538142108942,
"adc_id":"18",
"login":"username2",
"hardware_id":"1",
"params":"{\"routing\":\"2\",\"param2\":\"15\"}",
"status":1,
"notification_date":null
},
...
]
},
"id": 1081
}
Пример ответа:
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true
}
}
=== Api_DeleteAdvProcessedSubscriber ===
Удаление абонента рекламной кампании.
Параметры:
* Subscriber - Object: модель абонента рекламной кампании.
Пример запроса:
{
"jsonrpc": "2.0",
"method": "Api_DeleteAdvProcessedSubscriber",
"params": {
"Subscriber":{
"adc_id": "18",
"login": "username1",
"hardware_id": "1",
"status": "1",
"notification_date": null,
"url": "",
"deleted": "0",
"params": "{}"
}
},
"id": 1081
}
Пример ответа:
{
"jsonrpc": "2.0",
"id": 1081,
"result": {
"success": true,
"data": {
"adc_id": "18",
"login": "username1",
"hardware_id": "1",
"status": "1",
"notification_date": null,
"url": "",
"deleted": "0",
"params": "{}"
}
}
}