Skip to content
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

Пользователи 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' - Произвольное наименование для отображения в логах.

Получение информации (GET запросы)

Устройства

Получение информации об устройстве

Для получения информации об устройстве, можно использовать 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"
    }
  }