Устройства записи SpRecord M/MT
позволяют взаимодействовать с ними посредством HTTP API-запросов. Некоторые запросы (исходящие) делает само устройство при наступлении определённых событий (запрос направляется на указанный в настройках сервер), другие же запросы (входящие) необходимо направлять на само устройство для получения от него оределённой информации.
Исходящие запросы:
Входящие запросы:
По умолчанию API выключено в настройках. Для того, чтобы его задействовать, в веб-интерфейсе устройства откройте раздел настроек (нажав на кнопку с шестерёнкой), и на вкладке Программа
установите галку Включить API
, также укажите адрес, на который требуется отправлять информацию. При необходимости также установите галки Номер АОН
и Окончание разговора
, в этом случае устройство будет отправлять соответствующие запросы на указанный адрес.
Исходящие запросы с информацией о входящих звонках будут отправляться только в том случае, если порт устройства работает в режиме "Телефонная линия".
Тип запроса: HTTP POST.
Передаваемые параметры:
msg
- идентификатор запроса, всегда 1;
datetime
- дата/время поступления вызова в формате ГГГГ-мм-дд чч:мм:сс;
number
- телефонный номер звонящего, если определился;
channel_hard_name
- аппаратное имя канала устройства, на котором зафиксирован вызов;
channel_user_name
- пользовательское имя канала устройства, на котором зафиксирован вызов.
Тип запроса: HTTP POST.
Передаваемые параметры:
msg
- идентификатор запроса, всегда 2;
datetime
- дата/время окончания вызова в формате ГГГГ-мм-дд чч:мм:сс;
phone_from
- телефонный номер звонящего, если определился;
channel_hard_name
- аппаратное имя канала устройства, на котором зафиксирован вызов;
channel_user_name
- пользовательское имя канала устройства, на котором зафиксирован вызов;
call_type
- тип звонка;
duration_sec
- продолжительность разговора в секундах;
idr
- идентификатор записи.
Тип запроса: HTTP GET.
Путь: http://x.x.x.x/api/get_status (где x.x.x.x - IP-адрес устройства SpRecord M/MT
).
Возвращаемые данные: массив в формате JSON.
Описание полей:
status
- отражает текущее состояние устройства;
records
- количество записей,
last_record_time
- время создания последней записи в формате UNIX_TIME;
errors_last_1hrs
- количество ошибок за последний час;
errors_last_24hrs
- количество ошибок за последние 24 часа;
software_ver
- версия программного обеспечения устройства;
software_rev
- ревизия программного обеспечения устройства;
web_ver
- версия веб-интерфейса устройства;
memory
.total_space_mb
- общий объём внутренней памяти устройства (в Мбайтах);
memory
.free_space_mb
- количество свободной внутренней памяти устройства (в Мбайтах);
model
- модель устройства;
serial
- серийный номер устройства;
firmware
- версия прошивки аппаратной платы устройства;
channels
- массив информации о каналах устройства;
channels
.hard_name
- аппаратное имя канала;
channels
.user_name
- пользовательское имя канала;
channels
.enabled
- состояние канала (включен/выключен в настройках);
channels
.mode
- режим работы канала ("Телефонная линия", "По уровню" или "По команде");
channels
.line_state
- статус линии (подключена или нет, только в режиме "Тел. линия");
channels
.recording
- осуществляется ли запись на канале в данный момент времени (да/нет);
channels
.voltage
- приблизительное напряжение в линии (в вольтах, только в режиме "Тел. линия").
Тип запроса: HTTP GET.
Путь: http://x.x.x.x/api/get_audio/idr (где x.x.x.x - IP-адрес устройства SpRecord M/MT
, а idr
- идентификатор записи).
Возвращаемые данные: звуковой файл записи разговора (если есть).
Иногда файл может отсутствовать, например, когда он удалён, или в случае пропущенного звонка.
Тип запроса: HTTP GET.
Путь: http://x.x.x.x/api/start_record/channel_name (где x.x.x.x - IP-адрес устройства SpRecord M/MT
, а channel_name
- аппаратное имя канала).
Возвращаемые данные: массив в формате JSON.
В случае успеха возвращается следующий ответ: {"status":"ok"}
.
В случае ошибки возвращается соответствующее сообщение: {"status":"error","error_descr":"<описание ошибки>"}
.
Тип запроса: HTTP GET.
Путь: http://x.x.x.x/api/stop_record/channel_name (где x.x.x.x - IP-адрес устройства SpRecord M/MT
, а channel_name
- аппаратное имя канала).
Возвращаемые данные: массив в формате JSON.
В случае успеха возвращается следующий ответ: {"status":"ok", "record_id":XX}
, где XX - идентификатор записи.
В случае ошибки возвращается соответствующее сообщение: {"status":"error","error_descr":"<описание ошибки>"}
.
Аппаратное имя канала обычно содержит символы пробелов, которые не допускаются в URL-строке. Поэтому необходимо применять функцию кодирования (urlencode) при вызове данных функций. В этом случае символы пробела заменяются на код
%20
и тогда строка запроса для канала с именем "M1002052 - 1" выглядит так:http://x.x.x.x/api/stop_record/M1002052%20-%201
Запросы для включения и выключения записи на канале работают только для каналов, у которых установлен тип записи "По команде оператора".