Устройства записи 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
Запросы для включения и выключения записи на канале работают только для каналов, у которых установлен тип записи "По команде оператора".