-
-
Notifications
You must be signed in to change notification settings - Fork 1
API
lumian edited this page Nov 22, 2021
·
6 revisions
Актуальность документации: v.0.3
API работает по стандартному HTTP протоколу с помощью контроллера Api.php.
Все ответы от сервера приходят в JSON формате.
Успешный ответ:
{
"error": false,
"result": { ... }
}
Ошибочный ответ:
{
"error": true,
"result": false
}
Пользователи API указываются в конфигурационном файле grcentral.php:
//
// API auth
//
$config['api']['users'][] = array('id'=>'1', 'ip'=>'192.168.1.1', 'name'=>'User1');
$config['api']['users'][] = array('id'=>'2', 'ip'=>'192.168.1.2', 'name'=>'User2');
Поля:
- 'id' - Должно быть уникально для каждого клиента.
- 'ip' - Авторизация клиентов осуществляется по IP адресу, соответственно он должен быть указан корректно.
- 'name' - Произвольное наименование для отображения в логах.
Для получения информации об устройстве, можно использовать IP адрес, MAC адрес, внутренний ID.
GET: /api/v1/devices/ip/X.X.X.X
GET: /api/v1/devices/mac/XXXXXXXXXXXX
GET: /api/v1/devices/id/XXX
Ответ:
{
"error": false,
"result": {
"id": "1",
"mac_addr": "000000000000",
"ip_addr": "192.168.10.1",
"model_id": "1",
"status_online": "1",
"status_online_changetime": "2021-02-16 11:30:06",
"status_active": "1",
"descr": "Device name",
"fw_version": "1.0.7.6",
"fw_version_pinned": "0",
"params_json_data": "[\"P1341 = 0\",\"P1525 =\",\"P1376 = 0\"]"
}
}
Следующими запросами можно получить список только активных устройств или полный список.
GET: /api/v1/devices/list/active
GET: /api/v1/devices/list/all
Ответ:
{
"error": false,
"result": [
{
"id": "25",
"mac_addr": "000000000000",
"ip_addr": "192.168.10.25",
"model_id": "1",
"status_online": "0",
"status_online_changetime": "2021-02-16 11:48:04",
"status_active": "1",
"descr": "TestPhone",
"fw_version": "1.0.7.6",
"fw_version_pinned": "0",
"params_json_data": ""
},
{
"id": "1",
"mac_addr": "000000000000",
"ip_addr": "192.168.10.1",
"model_id": "1",
"status_online": "1",
"status_online_changetime": "2021-02-16 11:30:06",
"status_active": "1",
"descr": "Device name",
"fw_version": "1.0.7.6",
"fw_version_pinned": "0",
"params_json_data": "[\"P1341 = 0\",\"P1525 =\",\"P1376 = 0\"]"
}
]
}
Следующими запросами можно получить полный список моделей устройств или одной по ID
GET: /v1/device_models/list/all
Ответ:
{
"error": false,
"result": [
{
"id": "1",
"tech_name": "GXP1610",
"friendly_name": "Grandstream GXP1610"
},
{
"id": "2",
"tech_name": "GXP1620",
"friendly_name": "Grandstream GXP1620"
}
],
}
GET: /v1/device_models/list/all
Ответ:
{
"error": false,
"result": {
"id": "1",
"tech_name": "GXP1610",
"friendly_name": "Grandstream GXP1610"
}
}
Следующими запросами можно получить полный список контактов или только активных.
GET: /api/v1/phonebook/list/all
GET: /api/v1/phonebook/list/active
Ответ:
{
"error": false,
"result": {
"1": {
"first_name": "Иванов",
"last_name": "Иван",
"phone_work": "100"
},
"2": {
"first_name": "Петров",
"last_name": "Федор",
"phone_work": "101"
}
}
}
Запрос:
GET: /api/v1/phonebook/phone/XXX
Ответ:
{
"error": false,
"result": {
"first_name": "Иванов",
"last_name": "Иван",
"phone_work": "100"
}
}