Перейти к содержанию

HTTP Server API

1 Подключение к серверу

Операции по взаимодействию с сервером Revisor VMS производятся посредством HTTP API. Модуль, ответственный за HTTP-подключения (HTTP сервер), включен по умолчанию, принимая подключения на порту 11012. Изменить его настройки можно, воспользовавшись Мастером Настройки Сервера.

2 Общие параметры

Для всех команд взаимодействия с сервером требуется авторизация. Команды поддерживают авторизацию через URL, либо Basic Auth. Например, для команды “/rsapi/cameras” (загрузка камер), возможны следующие варианты:

URL Auth с паролем в чистом виде. К строке подключения добавляются параметры user и password, причем password не шифруется.

http://localhost:11012/rsapi/cameras?user=admin&password=123

URL Auth с зашифрованным в MD5 паролем. К строке подключения добавляются параметры user и password, причем password задан в виде хэша MD5. Обратите внимание, что при хэшировании используется Unicode, а не ASCII.

http://localhost:11012/rsapi/cameras?user=admin&password=1e00d0a88c54404910d7b21397c59b39

Хэш пароля можно получить, воспользовавшись утилитой RSInstall.exe, входящей в комплект поставки:

"C:\Program Files\Sagitech VMS\RSInstall.exe" -hashpassword test

Basic Auth. Осуществляется обычным для HTTP образом через поле Authorization запроса HTTP.

GET /rsapi/cameras/ HTTP/1.1
Authorization: Basic aHR0cHdhdGNoOmY=

Для всех команд может использоваться параметр rand, позволяющий избежать кэширования браузером.

http://localhost:11012/rsapi/cameras?user=admin&password=123&rand=12343

Для всех команд, использующих уникальный идентификатор камеры в системе, возможна замена идентификатора порядковым номером камеры в конфигурации.

http://localhost:11012/rsapi/mjpeg?id=1

3 Проверка авторизации

Команда:

/rsapi/auth

Описание:

Позволяет проверить правильность имени пользователя и пароля. Если авторизация прошла успешно, то возвращается HTTP 200 OK, если нет, 401 Unauthorized.

Пример запроса

GET http://localhost:11012/auth

4 Получение списка камер

Команда:

/rsapi/cameras

Описание:

Команда позволяет загрузить с сервера список камер в формате XML. Возможно указание формата времени – локальное время сервера или UTC.

Пример запроса

GET http://localhost:11012/rsapi/cameras{?timeKind=local/utc}

Пример ответа сервера (конфигурация из двух камер):

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Cameras>
    <Camera>
        <ID>6b658ca5-f23b-40fa-a898-4415ba93ac13</ID>
        <Name>Beward B1062xx</Name>
        <Description></Description>
        <Disabled>false</Disabled>
        <ModelName>Beward B1062xx</ModelName>
        <ReceiveAudio>true</ReceiveAudio>
        <SecondSourceEnabled>true</SecondSourceEnabled>
        <PtzMoveEnabled>false</PtzMoveEnabled>
        <PtzZoomEnabled>false</PtzZoomEnabled>
        <ArchiveStart>2013-07-11T10:06:46.17</ArchiveStart>
        <ArchiveEnd>2013-07-12T17:02:44.737</ArchiveEnd>
    </Camera>
    <Camera>
        <ID>34690399-9a7a-4c1f-99ea-097498a84c0d</ID>
        <Name>Beward BD4330RVZH</Name>
        <Description></Description>
        <Disabled>false</Disabled>
        <ModelName>Beward BD4330xx</ModelName>
        <ReceiveAudio>false</ReceiveAudio>
        <SecondSourceEnabled>false</SecondSourceEnabled>
        <PtzMoveEnabled>false</PtzMoveEnabled>
        <PtzZoomEnabled>true</PtzZoomEnabled>
        <ArchiveStart>2013-07-11T04:22:08.277</ArchiveStart>
        <ArchiveEnd>2013-07-11T11:40:59.117</ArchiveEnd>
    </Camera>
</Cameras>

Комментарии к полям:

  • ID – уникальный идентификатор камеры в системе.
  • Name – имя камеры.
  • Description – описание камеры.
  • Disabled – флаг, определяющий - отключена камера на сервере или нет.
  • ModelName – название модели камеры.
  • SecondSourceEnabled – флаг, равен “true”, если у камеры задано два источника.
  • PtzMoveEnabled – флаг, равен “true”, если драйвер камеры поддерживает управление поворотным модулем PTZ.
  • PtzZoomEnabled – флаг, равен “true”, если драйвер камеры поддерживает управление оптическим зумом PTZ
  • ArchiveStart – дата и время начала записи по камере.
  • ArchiveEnd – дата и время окончания записи по камере.

5 Получение списка идентификаторов недоступных камер

Команда:

/rsapi/unavailablecameraids

Описание:

Возвращает список идентификаторов камер, которые в данный момент недоступны (невозможно получить хотя бы один видео- или аудио- поток).

Пример запроса

GET http://localhost:11012/rsapi/unavailablecameraids

Пример ответа сервера:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<CameraIDs>
    <CameraID>6c640962-7e41-49b7-9d40-09433eec6057</CameraID>
    <CameraID>b4319e50-b99b-4057-b098-4e651179ef9c</CameraID>
</CameraIDs>

6 Получение состояния камеры

Команда:

/rsapi/camerastate?id=[CameraID]

Описание:

Возвращает состояние заданной камеры. Поле State может иметь одно из следующих значений: Disabled (отключена), Error (ошибка), RecordingIsOff (запись отключена), Writing (запись ведется), NotWriting (запись отключена).

Пример запроса

GET http://localhost:11012/rsapi/camerastate?id=a3300d2c-4771-4fcc-b31d-fe0085fc4712

Пример ответа сервера:

<CameraStateInfo>
    <ID>a3300d2c-4771-4fcc-b31d-fe0085fc4712</ID>
    <Name>FR-Camera</Name>
    <FullGroupName>GroupN2</FullGroupName>
    <State>Writing</State>
</CameraStateInfo>

7 Доступ к конфигурации web-интерфейса пользователя

Команда:

/rsapi/configuration/userwebconfig

Описание:

Сохраняет, возвращает или удаляет конфигурацию web-интерфейса пользователя используя REST API. Команда GET возвращает сохраненную конфигурацию, команда POST или PUT производит сохранение конфигурации, команда DELETE удаляет конфигурацию.

Пример запроса

GET http://localhost:11012/rsapi/configuration/userwebconfig

Пример ответа сервера:

<Configuration>
    <Settings>
        <SelectedProfileID>00000000-0000-0000-0000-000000000000</SelectedProfileID>
    </Settings>
    <ViewProfiles/>
</Configuration>

8 Запуск записи

Команда:

/rsapi/startrecord?id=[CameraID]&length=[timeduration]

Описание:

Включает запись данных с указанной камеры на запрошенное количество секунд.

Пример запроса

GET http://localhost:11012/rsapi/startrecord?id=7f019a68-c364-430e-9934-7dc458e98066&length=3600

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • length – требуемая продолжительность записи в секундах. Возможные значения: от 10 до 86400.

9 Остановка записи

Команда:

/rsapi/stoprecord?id=[CameraID]

Описание:

Останавливает запись, запущенную командой или оператором. Запись, запущенная по детектору, либо ведущаяся в постоянном режиме, остановлена не будет.

Пример запроса

GET http://localhost:11012/rsapi/stoprecord?id=7f019a68-c364-430e-9934-7dc458e98066

Параметры:

  • id – уникальный идентификатор камеры в системе.

10 Получение текущего кадра

Команда:

/rsapi/snapshot?id=[CameraId]{&viewSize=[width]x[height]}{&timeKind=local/utc}

Описание:

Получение одиночного текущего кадра с камеры в формате JPEG.

Пример запроса

GET http://localhost:11012/rsapi/snapshot?id=7f019a68-c364-430e-9934-7dc458e98066&viewSize=320x240

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • viewSize – опциональный параметр, указывает на необходимость подстройки размеров кадра под размеры заданной области просмотра. Т.к. сжатие кадра производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет кадр в оригинальном разрешении.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

11 Получение видео в формате камеры

Команда:

/rsapi/stream?id=[CameraID]&framerate=[fps]&streamIndex=[StreamID]{&timeKind=local/utc}

Описание:

В ответ на данный запрос сервер начинает отправку видео по HTTP в том формате, в котором его отдает камера. Формат указывается в заголовке каждого кадра в поле Content-Type. Возможно одно из четырех значений. Для h.264 и mpeg4 также указывается тип кадра:

  • Content-Type: image/jpeg

  • Content-Type: rsvid/h264; frametype=I

  • Content-Type: rsvid/h265; frametype=I

  • Content-Type: rsvid/mpeg4; frametype=I

Пример запроса

GET http://localhost:11012/rsapi/stream?id=7f019a68-c364-430e-9934-7dc458e98066&framerate=10

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • framerate – количество кадров в секунду.
  • streamIndex – номер потока. Возможные значения: 0 – основной поток, 1 – дополнительный.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

12 Получение видео в формате MJPEG

Команда:

/rsapi/mjpeg?id=[CameraID]&framerate=[fps]{&viewSize=[width]x[height]}{&timeKind=local/utc}

Описание:

В ответ на данный запрос сервер начинает отправку видео в формате MJPEG. Если камера отдает видео в другом формате, то происходит его переупаковка.

Пример запроса

GET http://localhost:11012/rsapi/mjpeg?id=7f019a68-c364-430e-9934-7dc458e98066&framerate=10&viewSize=320x240

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • framerate – количество кадров в секунду.
  • viewSize – опциональный параметр, указывает на необходимость подстройки размеров видеопотока под размеры заданной области просмотра. Т.к. сжатие потока производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет видеопоток в оригинальном разрешении.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

13 Получение видео в формате MPEG-TS

Команда:

/rsapi/mpeg-ts/stream.m3u8?id=[CameraID]&streamIndex=[StreamID]

Описание:

В ответ на данный запрос сервер начинает отправку видео по HTTP в формате MPEG-TS. Функционал доступен только если камера кодирует видеопоток в H.264.

Пример запроса

GET http://localhost:11012/rsapi/mpeg-ts/stream.m3u8?id=7f019a68-c364-430e-9934-7dc458e98066

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • streamIndex – номер потока. Возможные значения: 0 – основной поток, 1 – дополнительный.

14 Получение аудио в формате PCM или AAC

Команда:

/rsapi/audio?id=[CameraID]&format=[AudioFormat]

Описание:

В ответ на данный запрос сервер начинает отправку аудио по HTTP в заданном формате. Формат и параметры аудиокадра указывается в заголовке каждого кадра в поле Content-Type:

Content-Type: PCM; sampleFrequency=8000; bitsPerSample=16; numberOfChannels=1; specificParam=0

Пример запроса

GET http://localhost:11012/rsapi/audio?id=7f019a68-c364-430e-9934-7dc458e98066&format=PCM

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • format – формат аудио. Возможные значения: PCM, AAC.

15 Управление PTZ

Команда:

/rsapi/ptzcontrol?id=[CameraID]&action=[Action]{&presetNum=[PresetNumber]}{&speed=[Скорость]}{&angle=[Угол]}

Описание:

Управление поворотным модулем и оптическим зумом камеры.

Пример запроса

GET http://localhost:11012/rsapi/ptzcontrol?id=b7893da9-572e-4ca9-aaa0-abdeb09ea55d&action=left

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • action – необходимое действие PTZ. Возможные значения: Home, Right, RightUp, Up, LeftUp, Left, LeftDown, Down, RightDown, ZoomIn, ZoomOut, FocusIn, FocusOut, FocusAuto, IrisIn, IrisOut, IrisAuto, SetPreset, ClearPreset, CallPreset, StartMove, StopMove, StartZoomIn, StartZoomOut, StopZoom.
  • presetNum – номер пресета для действий SetPreset, ClearPreset, CallPreset.
  • speed – скорость движения или зума для действий StartMove, StartZoomIn, StartZoomOut. Возможные значения: от 1 до 5 для StartMove, от 1 до 3 для StartZoomIn или StartZoomOut.
  • angle – угол поворота в градусах для действия StartMove. Возможные значения: от 0 до 360.

16 Получение текущих событий в режиме подписки

Команда:

/rsapi/getalarm{?level=[Level]}

Описание:

Получение тревожных событий и серверных уведомлений в реальном времени. При запросе устанавливается подключение, в которое пушатся события по мере их возникновения. Ограничение на длительность сессии отсутствует. События передаются в виде потока текстовых данных.

Пример запроса

GET http://localhost:11012/rsapi/getalarm?level=alarm{&timeKind=local/utc}

Пример ответа сервера:

HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace;boundary=--myboundary
--myboundary
Content-Type: text/plain
Level=Alarm;Type=Sabotage;CameraID=df09b965-96bc-4604-9e34-32b071f282c4;EventID=221356db-ead7-4d07-b4be-297c29580a05;Time=2019-01-24T12:00:01
--myboundary
Content-Type: text/plain
--myboundary
Content-Type: text/plain
--myboundary
Content-Type: text/plain
Level=Notification;Type=LPR;CameraID=e84eac52-4f85-402c-9055-7a4b34360fa9;EventID=6fbaa45d-554f-4430-8486-bd5a92378a78;Time=2019-01-24T12:00:02;Plate=E436EP18
--myboundary
Content-Type: text/plain
.....

Параметры:

  • level – опциональный параметр, позволяющий указать уровень тревожности события. Если не указан, будет отсылаться информация всех уровней тревожности. Возможные значения: alarm (тревога), notification (уведомление), error (ошибка).
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

17 Получение текущих событий в режиме опроса

Команда:

/rsapi/getcurrentevents?sessionid=[SessionID]{&timeKind=local/utc}

Описание:

Получение тревожных событий и серверных уведомлений в реальном времени. События передаются в виде XML. При первом запросе создается сессия с заданным идентификатором. При последующих запросах возвращаются события, произошедшие с момента последнего обращения в рамках заданной идентификатором сессии.

Пример запроса

GET http://localhost:11012/rsapi/getcurrentevents?sessionid={126C98F4-CE73-4825-B9FC-CAEF22AC146B}

Пример ответа сервера:

HTTP/1.1 200 OK
Content-Type: text/xml

<EventInfos>
    <EventInfo>
        <ID>6f87387e-3ea7-4bb2-b361-e3d786c157b9</ID>
        <Type>LPR</Type>
        <TypeDescription>License plate detected</TypeDescription>
        <Level>Notification</Level>
        <Time>2022-10-07T16:42:42.971</Time>
        <CameraID>a33f8200-1b78-4021-8387-8cb5a71e51c5</CameraID>
        <CameraName>LPR</CameraName>
        <ShortDescription>O913XO18</ShortDescription>
        <LongDescription>Plate: O913XO18 Direction: Top to down Passage:Undefined</LongDescription>
        <CsvDescription>Plate=O913XO18;Direction=TopDown;Passage=None</CsvDescription>
        <IsFrameAttached>false</IsFrameAttached>
        <Rect/>
    </EventInfo>
</EventInfos>

Параметры:

  • sessionId – идентификатор сессии. Используется как для создания новой сессии, так и для поиска сессии при повторном обращении.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

18 Загрузка событий из архива

Команда:

/rsapi/searchevents?timeFrom={[StartTime]}{&timeTo=[EndTime]}{&levels=[Levels]}{&cameraids=[CameraIDList]}{&lastminutes=[Minutes]}{&timeKind=local/utc}

Описание:

Загрузка тревожных событий и серверных уведомлений из архива в формате XML.

Пример запроса

GET http://localhost:11012/rsapi/searchevents?lastminutes=30&levels=1,0

Пример ответа сервера:

HTTP/1.1 200 OK
Content-Type: text/xml

<EventInfos>
    <EventInfo>
        <ID>6f87387e-3ea7-4bb2-b361-e3d786c157b9</ID>
        <Type>LPR</Type>
        <TypeDescription>License plate detected</TypeDescription>
        <Level>Notification</Level>
        <Time>2022-10-07T16:42:42.971</Time>
        <CameraID>a33f8200-1b78-4021-8387-8cb5a71e51c5</CameraID>
        <CameraName>LPR</CameraName>
        <ShortDescription>O913XO18</ShortDescription>
        <LongDescription>Plate: O913XO18 Direction: Top to down Passage:
        Undefined</LongDescription>
        <CsvDescription>Plate=O913XO18;Direction=TopDown;Passage=None</CsvDescription>
        <IsFrameAttached>false</IsFrameAttached>
        <Rect/>
    </EventInfo>
</EventInfos>

Параметры:

  • timeFrom – начало временного интервала для загрузки данных. Не указывается, если задан параметр lastMinutes.
  • timeTo – окончание временного интервала для загрузки данных. Не указывается, если задан параметр lastMinutes.
  • levels – опциональный параметр, список уровней тревожности события через запятую.
  • cameraIds – опциональный параметр, список идентификаторов камер через запятую.
  • lastMinutes – альтернативный вариант указания временного интервала. Количество минут до текущего момента времени, за которое требуется загрузка данных.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

19 Получение кадра, привязанного к событию

Команда:

/rsapi/ geteventsnapshot?eventid=[EventID]&eventtime=[EventTime]{&timeKind=local/utc}

Описание:

Получение кадра, привязанного к заданному событию в формате JPEG.

Пример запроса

GET http://localhost:11012/rsapi/geteventsnapshot?eventid=221356db-ead7-4d07-b4be-297c29580a05&eventtime=2019-01-24T12:00:01

Параметры:

  • eventid – уникальный идентификатор события в системе.
  • eventtime – время возникновения события.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

Примечание

Применимо только к событиям от модулей распознавания автономеров, распознавания лиц, распознавания номеров вагонов.

20 Генерация события

Команда:

/rsapi/raiseevent{?timeKind=local/utc}

Описание:

Позволяет сгенерировать тревожное событие (или уведомление) на сервере. В теле запроса передается структура EventInfo, содержащая информацию о событии.

Пример запроса

POST http://localhost:11012/rsapi/raiseevent

Тело запроса:

Content-Type: text/xml

<EventInfo>
    <ID>6f87387e-3ea7-4bb2-b361-e3d786c157b9</ID>
    <Type>External</Type>
    <Level>Alarm</Level>
    <Time>2022-10-07T16:42:42.971</Time>
    <CameraID>a33f8200-1b78-4021-8387-8cb5a71e51c5</CameraID>
    <ExternalType>My event</ExternalType>
    <Description>Something has happened</Description>
    <FrameData>*[BASE64IMAGE]*</FrameData>
    <Rect/>
</EventInfo>

Пример ответа сервера:

HTTP/1.1 200 OK

Параметры:

  • ID – уникальный идентификатор события.
  • Type – тип события. Поддерживается только значение “External” (событие от внешнего источника).
  • Level – уровень тревожности (Notification/Alarm/Error).
  • Time – время.
  • TimeKind – формат времени – локальное время сервера (значение “Local”) или UTC (значение “UTC”).
  • CameraID – уникальный идентификатор камеры (если требуется привязка события к камере, иначе - пустая срока).
  • ExternalType – название (короткое описание) внешнего события.
  • Description – расширенное описание внешнего события.
  • FrameData – привязанное Jpeg-изображение в формате Base64 (опционально).
  • Rect – координаты найденного на изображении объекта (опционально).

21 Архив: покадровая загрузка видео в формате JPEG

21.1 Инициализация сессии

Команда:

/rsapi/archive/start?id=[CameraID]&time=[Time]&direction=[DirectionOfPlay]{&timeKind=local/utc}

Описание:

Для начала проигрывания архива необходимо открыть сессию проигрывания при помощи данной команды.

Пример запроса

GET http://localhost:11012/rsapi/archive/start?id=b7893da9-572e-4ca9-aaa0-abdeb09ea55d&time=2013-01-24T12:00:01&direction=Forward

Пример ответа сервера:

sessionid=250a21a1-ec9c-49d3-a761-f3d50e1a635e

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • time – время начала проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01.
  • direction – направление проигрывания. Значения: Forward, Backward. Значение по умолчанию: Forward.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

Примечание

При отсутствии обращений к архиву сессия закрывается автоматически, поэтому даже при паузе необходимо раз в секунду загружать либо текущее изображение (speed=0), либо текущее время.

21.2 Получение текущего/следующего видеокадра

Команда:

/rsapi/archive/snapshot?sessionid=[ARCHIVESESSIONID]&speed=[Speed]{&viewSize=[width]x[height]}{&timeKind=local/utc}

Описание:

Получение текущего или следующего кадра архива в формате JPEG.

Пример запроса

GET http://localhost:11012/rsapi/archive/snapshot?sessionid=b7893da9-572e-4ca9-aaa0-abdeb09ea55d&viewSize=320x240

Параметры:

  • sessionid – идентификатор сессии проигрывания архива.
  • speed – скорость проигрывания, от 0 до 64. Если скорость равна 0, то будет возвращен текущий кадр. Значение по умолчанию: 1.
  • viewSize – опциональный параметр, указывает на необходимость подстройки размеров кадра под размеры заданной области просмотра. Т.к. сжатие кадра производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет кадр в оригинальном разрешении.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

21.3 Получение текущего времени

Команда:

/rsapi/archive/time?sessionid=[ARCHIVESESSIONID]{&timeKind=local/utc}

Описание:

Получение текущего времени для данной сессии проигрывания архива.

Пример запроса

GET http://localhost:11012/rsapi/archive/time?sessionid=b7893da9-572e-4ca9-aaa0-abdeb09ea55d

Параметры:

  • sessionid – идентификатор сессии проигрывания архива
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

21.4 Получение аудио кадров

Команда:

/rsapi/archive/audio?sessionid=[ARCHIVESESSIONID]&format=[FORMAT]

Описание:

Получение списка аудиокадров, актуальных на момент проигрывания заданной сессии. Формат и параметры аудиокадра указывается в заголовке каждого кадра в поле Content-Type.

Пример запроса

GET http://localhost:11012/rsapi/archive/audio?sessionid=b7893da9-572e-4ca9-aaa0-abdeb09ea55d?format=PCM

Параметры:

  • sessionid – идентификатор сессии проигрывания архива.
  • format – формат аудио. Возможные значения: PCM, AAC.

21.5 Закрытие сессии

Команда:

/rsapi/archive/stop?sessionid=[ARCHIVESESSIONID]

Описание:

Закрытие сессии проигрывания архива.

Пример запроса

GET http://localhost:11012/rsapi/archive/stop?sessionid=b7893da9-572e-4ca9-aaa0-abdeb09ea55d

Параметры:

  • sessionid –идентификатор сессии проигрывания архива.

22 Архив: получение видеопотока в формате камеры

22.1 Инициализация сессии

Команда:

/rsapi/archive/stream/init?id=[CameraID]&startTime=[StartTime]&stopTime=[StopTime]&direction=[PlayDirection]&speed=[Speed]{&audioFormat=[AudioFormat]}{&timeKind=local/utc}

Описание:

В ответ на данный запрос сервер производит инициализацию сессии чтения архивного видео и аудио в том формате, в котором его отдает камера. В ответ будет возвращен идентификатор сессии, который можно использовать для получения видеопотока, а также постановки на паузу или изменения скорости проигрывания.

Пример ответа сервера:

sessionid=250a21a1-ec9c-49d3-a761-f3d50e1a635e

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • startTime – время начала проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01.
  • stopTime – время окончания проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01 (если не задано - не останавливать проигрывание). Вместо данного параметра может использоваться альтернативный параметр “duration”, определяющий длительность записи относительно startTime (пример: duration=00:00:45).
  • direction – направление проигрывания. Значения: Forward, Backward. Значение по умолчанию: Forward.
  • speed - скорость проигрывания, от 0 до 64. Значение по умолчанию: 1. Если указана нулевая скорость, то в ответ на вызов /rsapi/archive/stream/get будет возвращен первый кадр, после чего выполнена постановка на паузу.
  • audioFormat - формат аудио. Возможные значения: PCM, AAC. Если параметр не задан, отправка аудио происходить не будет.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

22.2 Получение видеопотока

Команда:

/rsapi/archive/stream/get?sessionid=[SessionID]{&timeKind=local/utc}

Описание:

В ответ на запрос сервер начнет отправку данных архива (видео и аудио). Формат кадра указывается в отдельном заголовке каждого кадра в поле Content-Type. Возможно одно из значений, представленных ниже. Дополнительные параметры кадров располагаются после точки с запятой и могут меняться в зависимости от настроек кодирования. Номер профиля AAC возвращается в переменной specificParam.

Content-Type: image/jpeg

Content-Type: rsvid/h264; frametype=I

Content-Type: rsvid/h265; frametype=I

Content-Type: rsvid/mpeg4; frametype=I

Content-Type: PCM; sampleFrequency=44100; bitsPerSample=16;
numberOfChannels=1

Content-Type: AAC; bitrate=64000; sampleFrequency=32000;
numberOfChannels=1; specificParam=0;

При постановке проигрывания на паузу или завершении проигрывания, сервер будет отправлять текстовый пакет с описанием состояния (“State=Paused” или “State=StreamEnd”):

--myboundary

Content-Type: text/html

Content-Length: 12

State=Paused

Пример запроса

GET http://localhost:11012/rsapi/archive/stream/get?sessionid=250a21a1-ec9c-49d3-a761-f3d50e1a635e

Параметры:

  • sessionid – уникальный идентификатор сессии.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

22.3 Управление скоростью

Команда:

rsapi/archive/stream/update?sessionid=[SessionID]&speed=[Speed]

Описание:

Запрос позволяет изменить скорость получения потока, запрошенного через функцию /rsapi/archive/stream/get. При использовании нулевого значения для скорости, проигрывание потока будет поставлено на паузу. Для снятия с паузы необходимо выполнить запрос с ненулевой скоростью.

Пример запроса

GET http://localhost:11012/rsapi/archive/stream/update?sessionid= 84e7fe06-b75d-4439-b988-744b9edd00b4&speed=2

Параметры:

  • sessionid – уникальный идентификатор сессии.
  • speed - скорость проигрывания, от 0 (пауза) до 64.

22.4 Остановка потока

Команда:

/rsapi/archive/stream/stop?sessionid=[SessionID]

Описание:

Запрос позволяет закрыть сессию проигрывания архива.

Пример запроса

GET http://localhost:11012/rsapi/archive/stream/stop?sessionid= 84e7fe06-b75d-4439-b988-744b9edd00b4

Параметры:

  • sessionid – уникальный идентификатор сессии.

23 Архив: получение видеопотока в формате MJPEG

Команда:

/rsapi/archive/mjpeg?id=[CameraID]&startTime=[StartTime]&stopTime=[StopTime]&direction=[PlayDirection]&speed=[Speed]{&viewSize=[width]x[height]}{&audioFormat=[AudioFormat]}{&timeKind=local/utc}

Описание:

Запрос архива в виде непрерывной последовательности JPEG-кадров.

Пример запроса

GET http://localhost:11012/rsapi/archive/mjpeg?id=b7893da9-572e-4ca9-aaa0-abdeb09ea55d&startTime=2013-01-24T12:00:01&direction=Forward&speed=2&viewSize=320x240

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • startTime – время начала проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01.
  • stopTime – время окончания проигрывания в формате 2013-01-24T12:00:01, либо 2013/01/24T12:00:01 (если не задано - не останавливать проигрывание). Вместо данного параметра может использоваться альтернативный параметр “duration”, определяющий длительность записи относительно startTime (пример: duration=00:00:45).
  • direction – направление проигрывания. Значения: Forward, Backward. Значение по умолчанию: Forward.
  • speed - скорость проигрывания, от 0.20 до 64. Значение по умолчанию: 1.
  • viewSize – опциональный параметр, указывает на необходимость подстройки размеров видеопотока под размеры заданной области просмотра. Т.к. сжатие потока производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет видеопоток в оригинальном разрешении.
  • audioFormat - формат аудио. Возможные значения: PCM, AAC. Если параметр не задан, отправка аудио происходить не будет.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

24 Архив: получение списка записей за дату

Команда:

/rsapi/archive/sequences?id=[CameraID]&date=[Date]{&timeKind=local/utc}

Описание:

Получение списка видеорядов (записей) для указанной камеры за указанную дату.

Пример запроса

GET http://localhost:11012/rsapi/archive/sequences?id=a5a3e771-d98a-4022-8799-6b150b699f7b&date=2017-09-21

Пример ответа сервера:

HTTP/1.1 200 OK
Content-Type: text/xml

<Sequences>
    <Sequence>
        <RecordStart>2017-09-20T18:48:43.277</RecordStart>
        <RecordEnd>2017-09-20T18:48:57.647</RecordEnd>
        <DiskID>809141b8-15b1-44eb-962b-12e7d6259f69</DiskID>
        <Reason>Motion</Reason>
        <IsFinished>true</IsFinished>
    </Sequence>
    <Sequence>
        <RecordStart>2017-09-20T18:49:01.603</RecordStart>
        <RecordEnd>2017-09-20T18:49:21.757</RecordEnd>
        <DiskID>809141b8-15b1-44eb-962b-12e7d6259f69</DiskID>
        <Reason>Motion</Reason>
        <IsFinished>true</IsFinished>
    </Sequence>

.....

</Sequences>

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • date – дата в формате 2013-01-24, либо 2013/01/24.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC. Если указано время в формате UTC (“timeKind=UTC”), то необходимо заменить параметр “date” временными рамками экспорта (“&timeFrom=[TimeFrom]&timeTo=[TimeTo]”).

25 Экспорт архива

25.1 Инициализация

Команда:

/rsapi/archive/export/start?id=[СфьукфШВ]&startTime=[timeFrom]&endTime=[timeTo]{&timeKind=local/utc}

Описание:

Производит запуск экспорта участка архива камеры в файл MP4. В ответе возвращает идентификатор сессии экспорта.

Пример запроса

http://localhost:11012/rsapi/archive/export/start?id=04d1a4b0-c6af-40c4-adb8-28f59af19411&startTime=2022-05-27T15:00:00&endTime=2022-05-27T15:10:00

Пример ответа сервера:

sessionId=04d1a4b0-c6af-40c4-adb8-28f59af19411

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • startTime – дата и время начала экспорта.
  • endTime – дата и время окончания экспорта.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

25.2 Запрос состояния

Команда:

/rsapi/archive/export/status

Описание:

Возвращает состояние экспорта – статус (одно из значений: NotFound, Exporting, Error, Canceled, Success), процент выполнения и текст ошибки при ее наличии.

Пример запроса

http://localhost:11012/rsapi/archive/export/status?sessionId=c15b8ec2-ea1f-422b-a1ea-dd7dab810de7

Пример ответа сервера:

status=Exporting; percent=50

Параметры:

  • sessionId –идентификатор сессии экспорта.

25.3 Загрузка файла

Команда:

/rsapi/archive/export/download

Описание:

Возвращает содержимое экспортированного файла. Для выполнения команды, экспорт должен быть завершен (состояние “Success”).

Пример запроса

http://localhost:11012/rsapi/archive/export/download?sessionId=c15b8ec2-ea1f-422b-a1ea-dd7dab810de7

Параметры:

  • sessionId –идентификатор сессии экспорта.

25.4 Отмена

Команда:

/rsapi/archive/export/cancel

Описание:

Отменяет начатый экспорт, не дожидаясь окончания его выполнения.

Пример запроса

http://localhost:11012/rsapi/archive/export/cancel?sessionId=c15b8ec2-ea1f-422b-a1ea-dd7dab810de7

Параметры:

  • sessionId –идентификатор сессии экспорта.

26 Экспорт одиночного кадра архива

Команда:

/rsapi/archive/exportsnapshot?id=[CameraId]&time=[Time]{&viewSize=[width]x[height]}{&timeKind=local/utc}

Описание:

Получение одиночного кадра из архива камеры в формате JPEG.

Пример запроса

GET http://localhost:11012/rsapi/archive/exportsnapshot?id=7f019a68-c364-430e-9934-7dc458e98066&time=2024-04-06T10:00&viewSize=320x240

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • time – время.
  • viewSize – опциональный параметр, указывает на необходимость подстройки размеров кадра под размеры заданной области просмотра. Т.к. сжатие кадра производится с коэффициентом, который кратен 2, то подстройка происходит не до точных размеров области. Если параметр опущен, то команда вернет кадр в оригинальном разрешении.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

27 Получение прав текущего пользователя

Команда:

/rsapi/configuration/users/roles/select

Описание:

Возвращает список прав пользователя, запустившего команду, в формате XML.

Пример запроса

http://localhost:11012/rsapi/configuration/users/roles/select

Пример ответа сервера:

<SecurityRoles>
    <SecurityRole>
        <ID>2435f711-e430-4b1f-8d32-a05936524588</ID>
        <Name>Administration</Name>
    </SecurityRole>
    …
    <SecurityRole>
        <ID>70343d0b-6079-4c77-bc45-6902422bc18a</ID>
        <Name>WebArchiveExport</Name>
    </SecurityRole>
</SecurityRoles>

28 Получение списка камер

Команда:

/rsapi/configuration/cameras

Описание:

Возвращает XML-документ со списком камер.

Пример запроса

http://localhost:11012/rsapi/configuration/cameras

Пример ответа сервера:

<Cameras>
    <Camera>
        <ID>9436d3e1-0410-4cc1-8383-c88099a9d3f7</ID>
        <Name>AXIS 211 - 00408C93666B - 192.168.1.87</Name>
        <Description/>
        <Address>192.168.1.87</Address>
        <Port>80</Port>
        <RtspPort>554</RtspPort>
        <RtspUseUdp>false</RtspUseUdp>
        <User>root</User>
        <Password>admin</Password>
        <CameraNumber>0</CameraNumber>
        <ModelID>ef740a24-2f84-4f49-b481-009693b66514</ModelID>
        <RecProfileID>b9884849-dfab-44fa-94d8-c42d68b70365</RecProfileID>
        <ReceiveAudio>true</ReceiveAudio>
        <Disabled>true</Disabled>
        <UseIntelDecoder>false</UseIntelDecoder>
        <ClientUseDXVA>false</ClientUseDXVA>
        <ExternalAudioUrl>dshow://2</ExternalAudioUrl>
        <ArchiveMinStorageHours>0</ArchiveMinStorageHours>
        <ArchiveMaxStorageHours>0</ArchiveMaxStorageHours>
        <BaseSource>
            <Resolution/>
            <Compression>Default</Compression>
            <Fps>0</Fps>
            <Protocol>Rtsp</Protocol>
            <UrlParams/>
        </BaseSource>
        <SecoundSource/>
    </Camera>
</Cameras>

29 Получение списка профилей отображения

Команда:

/rsapi/configuration/viewprofiles

Описание:

Возвращает XML-документ со списком профилей отображения (раскладок) пользователя, заданного параметрами авторизации.

Пример запроса

GET http://localhost:11012/rsapi/configuration/viewprofiles

Пример ответа сервера:

<ViewProfiles>
    <ViewProfile>
        <ID>ea7b4be3-25ff-4ca3-aff2-473020066baa</ID>
        <Name>Profile 1 (1 x 1)</Name>
        <RowCount>1</RowCount>
        <ColumnCount>1</ColumnCount>
        <Cells>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
        </Cells>
    </ViewProfile>
    <ViewProfile>
        <ID>799fa59f-23d2-4b55-a99b-4fcbe879ab02</ID>
        <Name>Profile 3 (5 + 1)</Name>
        <RowCount>3</RowCount>
        <ColumnCount>3</ColumnCount>
        <Cells>
            <Cell>
                <ColSpan>2</ColSpan>
                <RowSpan>2</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
        </Cells>
    </ViewProfile>
</ViewProfiles>

30 Получение списка общих профилей отображения

Команда:

/rsapi/configuration/sharedviewprofiles

Описание:

Возвращает XML-документ со списком общих профилей отображения, доступных пользователю, заданному параметрами авторизации.

Пример запроса

GET http://localhost:11012/rsapi/configuration/sharedviewprofiles

Пример ответа сервера:

<ViewProfiles>
    <ViewProfile>
        <ID>ea7b4be3-25ff-4ca3-aff2-473020066baa</ID>
        <Name>Profile 1 (1 x 1)</Name>
        <RowCount>1</RowCount>
        <ColumnCount>1</ColumnCount>
        <Cells>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
        </Cells>
    </ViewProfile>
    <ViewProfile>
        <ID>799fa59f-23d2-4b55-a99b-4fcbe879ab02</ID>
        <Name>Profile 3 (5 + 1)</Name>
        <RowCount>3</RowCount>
        <ColumnCount>3</ColumnCount>
        <Cells>
            <Cell>
                <ColSpan>2</ColSpan>
                <RowSpan>2</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
            <Cell>
                <ColSpan>1</ColSpan>
                <RowSpan>1</RowSpan>
                <CameraID>00000000-0000-0000-0000-000000000000</CameraID>
                <SourceSwitchWidth>640</SourceSwitchWidth>
            </Cell>
        </Cells>
    </ViewProfile>
</ViewProfiles>

31 Получение списка профилей записи

Команда:

/rsapi/configuration/recprofiles

Описание:

Возвращает XML-документ со списком профилей записи.

Пример запроса

GET http://localhost:11012/rsapi/configuration/recprofiles

Пример ответа сервера:

<RecProfiles>
    <RecProfile>
        <ID>b9884849-dfab-44fa-94d8-c42d68b70365</ID>
        <Name>Record by motion detector</Name>
        <Description/>
        <Lines>
            <Line>
                <Days>127</Days>
                <StartTime>00:00:00</StartTime>
                <EndTime>00:00:00</EndTime>
                <BaseSource>true</BaseSource>
                <Fps>60</Fps>
                <Type>Motion</Type>
                <PreTime>5</PreTime>
                <PostTime>10</PostTime>
            </Line>
        </Lines>
    </RecProfile>
</RecProfiles>

32 Получение списка дисков

Команда:

/rsapi/configuration/disks

Описание:

Возвращает XML-документ со списком зарегистрированных в системе дисков.

Пример запроса

http://localhost:11012/rsapi/configuration/disks

Пример ответа сервера:

<Disks>
    <Disk>
        <ID>e2170d0a-7979-4dd2-be69-732ae703550e</ID>
        <Name>D:\\/Name>
        <Description/>
        <Disabled>false</Disabled>
        <Quota>0</Quota>
    </Disk>
</Disks>

33 Получение списка пользовательских действий

Команда:

/rsapi/configuration/useractions

Описание:

Возвращает XML-документ со списком пользовательских действий.

Пример запроса

GET http://localhost:11012/rsapi/configuration/useractions

Пример ответа сервера:

<UserActions>
    <UserAction>
        <ID>ccf157b2-b6a6-4235-a369-04d1c8b98cf9</ID>
        <Name>Action1</Name>
        <Description/>
        <Disabled>false</Disabled>
    </UserAction>
</UserActions>

34 Запуск пользовательского действия на исполнение

Команда:

/rsapi/configuration/useractions/execute

Описание:

Запускает заданное пользовательское действие.

Пример запроса

GET http://localhost:11012/rsapi/configuration/useractions/execute?id=ccf157b2-b6a6-4235-a369-04d1c8b98cf9

Параметры:

  • id – уникальный идентификатор действия в системе.

35 Запрос базовых настроек

Команда:

/rsapi/configuration/appconfig

Описание:

Возвращает базовые настройки приложения, которые находятся в файле config/Revisor.config.

Пример запроса

POST http://localhost:11012/rsapi/configuration/appconfig

Пример ответа сервера:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8

<configuration>
    <appSettings>
        <!-- Common variables. -->
        <add key="Port" value="11011"/>
        <add key="InterfaceLanguage" value="English"/>
        <add key="PreferFFmpegVideoDecoder" value="yes"/>
        <add key="PreferFFmpegAudioDecoder" value="yes"/>
        <!-- Server variables. -->
        <add key="HttpPort" value="11012"/>
        <add key="HttpSourceSwitchWidth" value="640"/>
        <add key="HttpsPort" value=""/>
        <add key="HttpsCertificate" value=""/>
        <add key="RtspPort" value=""/>
        <add key="BindTo" value="Dns"/>
        <add key="CreateFirewallRules" value="yes"/>
        <add key="SkipBrokenJpegOverRtspFrames" value="no"/>
        <add key="SkipBrokenH264OverRtspSequences" value="no"/>
        <add key="EnableArchiveRecompression" value="yes"/>
        <add key="MobileHighResolution" value="800x480"/>
        <add key="MobileHighFps" value="15"/>
        <add key="MobileMediumResolution" value="320x240"/>
        <add key="MobileMediumFps" value="5"/>
        <!-- Client variables. -->
        <add key="DisableScreenSaver" value="yes"/>
    </appSettings>
</configuration>

36 Прием события от системы RDC RFID

Команда:

/rsapi/modules/rdc_rfid

Описание:

Функция, вызываемая системой RDC RFID для передачи события на сервер.

Пример запроса

GET http://localhost:11012/rsapi/modules/rdc_rfid

37 Проверка доступности модуля видеоаналитики

Команда:

/rsapi/modules/getcanaccessmodule?moduleId=[moduleID]

Описание:

Функция позволяет проверить, установлен ли заданный модуль аналитики и есть ли у запрашивающего пользователя права на работу с ним.

Пример запроса

GET http://localhost:11012/rsapi/modules/getcanaccessmodule?moduleId= 12F7CDA9-EC68-4FA0-A14F-F1C86E22088C

Параметры:

  • moduleId – уникальный идентификатор модуля, например 12F7CDA9-EC68-4FA0-A14F-F1C86E22088C для модуля автономеров, или EE272D1D-B29A-4EA3-84EB-6E62B45519AB для модуля распознавания лиц.

38 Модуль подсчета посетителей

38.1 Получение состояния

Команда:

/rsapi/modules/counter/getstats

Описание:

Возвращает XML-документ, содержащий информацию по состоянию модулей подсчета посетителей на всех камерах.

Пример запроса

GET http://localhost:11012/rsapi/modules/counter/getstats

Пример ответа сервера:

<CameraStates>
    <CameraState>
        <CameraID>2771ed81-dddc-42ed-af3f-b04a4b478b1c</CameraID>
        <LastResetTime>2020-03-20T11:50:26.591</LastResetTime>
        <In>20</In>
        <Out>10</Out>
    </CameraState>
    <CameraState>
        <CameraID>a10c06b5-3399-44be-934b-49e0bda892c7</CameraID>
        <LastResetTime>2020-03-20T11:50:26.591</LastResetTime>
        <In>15</In>
        <Out>12</Out>
    </CameraState>
</CameraStates>

38.2 Сброс состояния

Команда:

/rsapi/modules/counter/reset

Описание:

Сбрасывает состояние модуля подсчета посетителей на всех камерах.

Пример запроса

GET http://localhost:11012/rsapi/modules/counter/reset

38.3 Построение отчета

Команда:

/rsapi/modules/counter/report

Описание:

Возвращает статистические данные о людях, входящих в контролируемую зону, выходящих из неё и находящихся внутри неё. Если параметр summarizeCameras установлен в true, данные агрегируются по всем выбранным камерам вместо возврата отдельных данных по каждой камере.

Тело запроса:

{
    "timeFrom": "string",
    "timeTo": "string",
    "axisXsize": "string",
    "cameraIds": ["string"],
    "weekdays": ["string"],
    "dayStartTime": "string",
    "dayEndTime": "string",
    "summarizeCameras": true
}

Параметры запроса:

  • timeFrom - Начало отчётного периода.
  • timeTo - Конец отчётного периода.
  • axisXsize - Временной масштаб для группировки данных отчёта. Допустимые значения: Minute, Hour, Day, Week, Month.
  • cameraIds - Список идентификаторов камер, которые нужно включить в отчёт. Если null, включаются все - доступные камеры.
  • weekdays - Список дней недели, которые нужно включить в фильтр отчёта. Если null, включаются все дни.
  • dayStartTime - Время начала дневного интервала, используемого для фильтрации.
  • dayEndTime - Время окончания дневного интервала, используемого для фильтрации.
  • summarizeCameras - Если true, агрегирует данные со всех выбранных камер в один результат. Если false, возвращает данные отдельно по каждой камере.

Пример запроса

POST http://localhost:11012/rsapi/modules/counter/report

Тело запроса:

{
    "timeFrom": "2026-03-06T00:00:00",
    "timeTo": "2026-03-06T23:59:59",
    "axisXsize": "day",
    "cameraIds": [
        "cd949313-fd85-4b53-9c68-197c3dd3aec7"
    ],
    "weekdays": [
        "friday"
    ],
    "dayStartTime": "08:00",
    "dayEndTime": "20:00",
    "summarizeCameras": true
}

Пример ответа сервера:

{
    "reportName": "PeopleCounter",
    "period": {
        "from": "2026-02-01T00:00:00",
        "to": "2026-02-07T23:59:59"
    },
    "columns": [
        { "key": "in", "name": "In" },
        { "key": "out", "name": "Out" },
        { "key": "inside", "name": "Inside" }
    ],
    "rows": [
        {
        "cameraName": "Camera 1",
        "2026-05": { "In": 50, "Out": 40, "Inside": 10 },
        "2026-06": { "In": 30, "Out": 25, "Inside": 5 }
        },
        {
        "cameraName": "Camera 2",
        "2026-05": { "In": 20, "Out": 18, "Inside": 2 },
        "2026-06": { "In": 15, "Out": 14, "Inside": 1 }
        }
    ]
}

Описание полей:

  • reportName - Имя отчёта (PeopleCounter)
  • period.from - Начало отчётного периода (ISO yyyy-MM-ddTHH : mm : ss)
  • period.to - Конец отчётного периода
  • columns - Колонки данных (In, Out, Inside)
  • columns.key - Идентификатор колонки
  • columns.name - Отображаемое имя колонки
  • rows - Строки данных по камерам и интервалам
  • rows.cameraName - Имя камеры
  • rows.[axis] - Данные за интервал (час/день/неделя/месяц)
  • rows.[axis].In - Количество входов
  • rows.[axis].Out - Количество выходов
  • rows.[axis].Inside - Количество людей внутри зоны

Форматы интервалов по оси X:

  • Hour - yyyy-MM-dd HH:00:00
  • Day - yyyy-MM-dd
  • Week - yyyy-weekNumber (например, 2026-10)
  • Month - yyyy-MM

39 Модуль обнаружения очереди: получение состояния

Команда:

/rsapi/modules/queue/getstats

Описание:

Возвращает XML-документ, содержащий информацию по состоянию модулей обнаружения очереди на всех камерах.

Пример запроса

GET http://localhost:11012/rsapi/modules/queue/getstats

Пример ответа сервера:

<CameraStates>
    <CameraState>
        <CameraID>1998454d-ac0b-4437-8a05-a679a8863805</CameraID>
        <ZoneStates>
            <ZoneState>
                <ZoneIndex>1</ZoneIndex>
                <QueueLength>4</QueueLength>
                <IsQueue>false</IsQueue>
            </ZoneState>
            <ZoneState>
                <ZoneIndex>2</ZoneIndex>
                <QueueLength>4</QueueLength>
                <IsQueue>false</IsQueue>
            </ZoneState>
        </ZoneStates>
    </CameraState>
</CameraStates>

40 Модуль HeatMap: построение тепловой карты

Команда:

/rsapi/modules/heatmap/build?id=[CameraID]& timeFrom=[dtFrom]&timeTo=[dtTo] {&weekDays=[weekD]}{&dayStartTime=[dtStart]}{&dayEndTime=[dtEnd]}{&opacity=[opac]}{&timeKind=local/utc}

Описание:

Построение тепловой карты для заданной камеры за заданный промежуток времени. Запрос возвращает изображение в формате JPEG.

Пример запроса

GET http://localhost:11012/rsapi/modules/heatmap/build?id=01e5d104-79a5-449d-b888-daa317035a2e&timeFrom=2025-08-27T10:00&timeTo=2025-08-27T18:00&weekDays=Monday,Tuesday,Wednesday&dayStartTime=08:00&dayEndTime=18:00&opacity=0.75&timekind=utc

Параметры:

  • id – уникальный идентификатор камеры в системе.
  • timeFrom – начало временного интервала, за который загружаются данные.
  • timeTo – окончание временного интервала, за который загружаются данные.
  • weekDays – опциональный параметр, указывает дни недели, за которые необходимо загружать данные. Значения разделяются запятой. Возможные значения: All (по умолчанию - все дни недели), Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
  • dayStartTime – опциональный параметр, начало дневного интервала времени (например, начала рабочего дня).
  • dayEndTime - опциональный параметр, окончание дневного интервала времени (например, конца рабочего дня).
  • opacity - опциональный параметр, прозрачность тепловой карты при наложении поверх текущего кадра. Возможные значения: от 0.1 до 0.9. Значение по умолчанию: 0.5.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.

41 Модуль распознавания автономеров

41.1 Работа с картотекой

Команда:

/rsapi/modules/lpr/owners

Описание:

Позволяет взаимодействовать с картотекой модуля распознавания автономеров через REST API.

Примечание

Для команд GET, POST, PUT, DELETE возможно указание идентификатора карточки в URL. В случае GET это позволяет получить только одну карточку из списка. Для остальных команд это оставлено для совместимости и не является обязательным.

Пример запроса

http://localhost:11012/rsapi/modules/lpr/owners/5925d527-48c6-4b67-816c-e13aca2944b4.

Варианты:

  • GET - получение списка или отдельного элемента.

Пример запроса

GET http://localhost:11012/rsapi/modules/lpr/owners

Ответ:

<LPROwners>
    <LPROwner>
        <ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
        <FirstName>Ivan</FirstName>
        <FamilyName>Ivanov</FamilyName>
        <MiddleName/>
        <Plate>H097XO166</Plate>
        <Model/>
        <VinCode/>
        <WorkPlace/>
        <Position/>
        <Phone/>
        <Description/>
        <GroupIDs>
            <GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
        </GroupIDs>
        <Pass>
            <ID>90e0b1f4-fca3-4d74-92cc-8e9ead07df8a</ID>
            <PeriodStartTime/>
            <PeriodEndTime/>
            <DayStartTime>08:00:00</DayStartTime>
            <DayEndTime>20:00:00</DayEndTime>
            <Days>All</Days>
            <MaxPassages>0</MaxPassages>
            <MaxInsideSameGroup>0</MaxInsideSameGroup>
            <Description/>
        </Pass>
    </LPROwner>
</LPROwners>
  • POST – добавление карточки.

Пример запроса

POST http://localhost:11012/rsapi/modules/lpr/owners

Тело запроса:

<LPROwner>
    <ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
    <FirstName>Ivan/FirstName>
    <FamilyName>Ivan</FamilyName>
    <MiddleName/>
    <Plate>H097XO166</Plate>
    <Model/>
    <VinCode/>
    <WorkPlace/>
    <Position/>
    <Phone/>
    <Description/>
    <GroupIDs>
        <GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
    </GroupIDs>
    <Pass>
        <ID>90e0b1f4-fca3-4d74-92cc-8e9ead07df8a</ID>
        <PeriodStartTime/>
        <PeriodEndTime/>
        <DayStartTime>08:00:00</DayStartTime>
        <DayEndTime>20:00:00</DayEndTime>
        <Days>All</Days>
        <MaxPassages>0</MaxPassages>
        <MaxInsideSameGroup>0</MaxInsideSameGroup>
        <Description/>
    </Pass>
</LPROwner>
  • PUT – редактирование карточки.

Пример запроса

PUT http://localhost:11012/rsapi/modules/lpr/owners

Тело запроса:

<LPROwner>
    <ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
    <FirstName>Ivan</FirstName>
    <FamilyName>Ivanov</FamilyName>
    <MiddleName/>
    <Plate>H097XO166</Plate>
    <Model/>
    <VinCode/>
    <WorkPlace/>
    <Position/>
    <Phone/>
    <Description/>
    <GroupIDs>
        <GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
    </GroupIDs>
    <Pass/>
</LPROwner>
  • DELETE – удаление карточки.

Запрос, вариант 1 (с идентификатором в теле запроса)

DELETE http://localhost:11012/rsapi/modules/lpr/owners

Тело запроса:

<LPROwnerId>5925d527-48c6-4b67-816c-e13aca2944b4</LPROwnerId>

Запрос, вариант 2 (с идентификатором в URL)

DELETE http://localhost:11012/rsapi/modules/lpr/owners/5925d527-48c6-4b67-816c-e13aca2944b4

41.2 Работа с группами

Команда:

/rsapi/modules/lpr/groups

Описание:

Позволяет взаимодействовать с группами модуля распознавания автономеров через REST API. Поддерживаемые команды HTTP:

  • GET – получение списка или отдельного элемента;
  • POST – добавление группы;
  • PUT – редактирование группы;
  • DELETE – удаление группы.

Примечание

Для команд GET, POST, PUT, DELETE возможно указание идентификатора карточки в URL. В случае GET это позволяет получить только одну группу из списка. Для остальных команд это оставлено для совместимости и не является обязательным.

Пример запроса

GET http://localhost:11012/rsapi/modules/lpr/groups/5925d527-48c6-4b67-816c-e13aca2944b4.

Пример запроса

GET http://localhost:11012/rsapi/modules/lpr/groups

Пример ответа сервера на запрос GET:

<LPRGroups>
    <LPRGroup>
        <ID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</ID>
        <Name>White</Name>
        <Color>FFFFFFFF</Color>
    </LPRGroup>
    <LPRGroup>
        <ID>8a41c537-c50f-497e-a05e-a0347f4de893</ID>
        <Name>Control</Name>
        <Color>FFFF8080</Color>
    </LPRGroup>
    <LPRGroup>
        <ID>efe05502-591c-473f-a07e-7586b65a707b</ID>
        <Name>Black</Name>
        <Color>FF000000</Color>
    </LPRGroup>
</LPRGroups>

41.3 Информация о парковке

Команда:

/rsapi/modules/lpr/parkinginfo

Описание:

Возвращает информацию о машинах, находящихся на территории парковки. Также возвращает размер парковки (количество машиномест, заданное в конфигурационном файле LPR.config).

Пример запроса

GET http://localhost:11012/rsapi/modules/lpr/parkinginfo

Пример ответа сервера:

<ParkingInfo>
    <ParkingSize>100</ParkingSize>
    <LPRInsideInfos>
        <LPRInsideInfo>
            <ID>4627daf4-1700-4607-a6ec-bc000e8e274d</ID>
            <Plate>H097XO18</Plate>
            <EntranceTime>12.07.2023 23:54:06</EntranceTime>
            <CameraID>4ddf26b5-1241-4b8b-84a8-50fa06624c36</CameraID>
        </LPRInsideInfo>
        <LPRInsideInfo>
            <ID>095ccca5-24c4-420e-a7f2-b81aba6a2200</ID>
            <Plate>C677EP18</Plate>
            <EntranceTime>12.07.2023 23:54:18</EntranceTime>
            <CameraID>4ddf26b5-1241-4b8b-84a8-50fa06624c36</CameraID>
        </LPRInsideInfo>
    </LPRInsideInfos>
</ParkingInfo>

42 Модуль распознавания лиц

42.1 Работа с картотекой

Команда:

/rsapi/modules/fr/persons

Описание:

Позволяет взаимодействовать с картотекой модуля распознавания лиц через REST API.

Примечание

Для команд GET, POST, PUT, DELETE возможно указание идентификатора карточки в URL. В случае GET это позволяет получить только одну карточку из списка. Для остальных команд это оставлено для совместимости и не является обязательным.

Пример запроса

GET http://localhost:11012/rsapi/modules/fr/persons/5925d527-48c6-4b67-816c-e13aca2944b4.

Варианты:

  • GET - получение списка или отдельного элемента. Возможно указание флага sendphotos для отправки сервером привязанных к карточке фотографий в блоке Photos.

Пример запроса

GET http://localhost:11012/rsapi/modules/fr/persons?sendphotos=1

Ответ:

<FRPersons>
    <FRPerson>
        <ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
        <FirstName>Ivan</FirstName>
        <FamilyName>Ivanov</FamilyName>
        <MiddleName/>
        <WorkPlace/>
        <Position/>
        <Phone/>
        <CardNumber>110</CardNumber>
        <CardVersion>0</CardVersion>
        <Description/>
        <GroupIDs>
            <GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
        </GroupIDs>
        <Photos>
            <Photo>*[BASE64IMAGE]*</Photo>
        </Photos>
    </FRPerson>
</FRPersons>
  • POST – добавление карточки.

Примечание

Блок Photos не является обязательным.

Пример запроса

POST http://localhost:11012/rsapi/modules/fr/persons

Тело запроса:

<FRPerson>
    <ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
    <FirstName>Ivan</FirstName>
    <FamilyName>Ivanov</FamilyName>
    <MiddleName/>
    <WorkPlace/>
    <Position/>
    <Phone/>
    <CardNumber>110</CardNumber>
    <CardVersion>0</CardVersion>
    <Description/>
    <GroupIDs>
        <GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
    </GroupIDs>
    <Photos>
        <Photo>*[BASE64IMAGE]*</Photo>
    </Photos>
</FRPerson>
  • PUT – редактирование карточки.

Примечание

Блок Photos не является обязательным.

Пример запроса

PUT http://localhost:11012/rsapi/modules/fr/persons

Тело запроса:

<FRPerson>
    <ID>5925d527-48c6-4b67-816c-e13aca2944b4</ID>
    <FirstName>Ivan</FirstName>
    <FamilyName>Ivanov</FamilyName>
    <MiddleName/>
    <WorkPlace/>
    <Position/>
    <Phone/>
    <CardNumber>110</CardNumber>
    <CardVersion>0</CardVersion>
    <Description/>
    <GroupIDs>
        <GroupID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</GroupID>
    </GroupIDs>
    <Photos>
        <Photo>*[BASE64IMAGE]*</Photo>
    </Photos>
</FRPerson>
  • DELETE – удаление карточки.

Запрос, вариант 1 (с идентификатором в теле запроса)

DELETE http://localhost:11012/rsapi/modules/fr/persons

Тело запроса:

<FRPersonId>5925d527-48c6-4b67-816c-e13aca2944b4</FRPersonId>

Запрос, вариант 2 (с идентификатором в URL)

DELETE http://localhost:11012/rsapi/modules/fr/persons/5925d527-48c6-4b67-816c-e13aca2944b4

42.2 Работа с группами

Команда:

/rsapi/modules/fr/groups

Описание:

Позволяет взаимодействовать с группами модуля распознавания лиц через REST API. Поддерживаемые команды HTTP:

  • GET – получение списка или отдельного элемента;
  • POST – добавление группы;
  • PUT – редактирование группы;
  • DELETE – удаление группы.

Примечание

Для команд GET, POST, PUT, DELETE возможно указание идентификатора карточки в URL. В случае GET это позволяет получить только одну группу из списка. Для остальных команд это оставлено для совместимости и не является обязательным.

Пример запроса

GET http://localhost:11012/rsapi/modules/fr/groups/5925d527-48c6-4b67-816c-e13aca2944b4.

Пример запроса

GET http://localhost:11012/rsapi/modules/fr/groups

Пример ответа сервера на запрос GET:

<FRGroups>
    <FRGroup>
        <ID>bb31b7a0-4421-40cf-abb4-9f5b86b4dd07</ID>
        <Name>White</Name>
        <Color>FFFFFFFF</Color>
    </FRGroup>
    <FRGroup>
        <ID>8a41c537-c50f-497e-a05e-a0347f4de893</ID>
        <Name>Control</Name>
        <Color>FFFF8080</Color>
    </FRGroup>
        <FRGroup>
        <ID>efe05502-591c-473f-a07e-7586b65a707b</ID>
        <Name>Black</Name>
        <Color>FF000000</Color>
    </FRGroup>
</FRGroups>

42.3 Верификация по номеру карты СКУД

Команда:

/rsapi/modules/fr/checkpresence

Описание:

Позволяет произвести верификацию – проверку соответствия лица перед объективом камеры (параметр CameraID). Сверка производится по номеру карты СКУД, переданному в теле POST-запроса. Ответ содержит значение четырех переменных:

  • Result – строковое значение результата. Возможные значения: MatchPositive (лицо однозначно сопоставлено), NoCardInDB (карточка с заданным идентификатором в базе данных не найдена), NoPhotoInCard (карточка с заданным идентификатором найдена, но фото к карточке не привязано), NoFaceDetected (лицо в видеопотоке не обнаружено), MatchNegative (лицо не сопоставлено ни с одной картой в БД), MatchIncorrect (лицо сопоставлено с другой картой в БД).
  • ResultCode – цифровое значение результата. Возможные знаяения: 0 (MatchPositive), 1 (NoCardInDB), 2 (NoPhotoInCard), 3 (NoFaceDetected), 4 (MatchNegative), 5 (MatchIncorrect).
  • MatchFactor – точность, с которой сопоставлено лицо.
  • MatchCardNumber – номер карты СКУД, с которой сопоставлено лицо.

Пример запроса

POST http://localhost:11012/rsapi/modules/fr/checkpresence

Тело запроса:

CameraID={1B8E4CB5-FCDF-4FC3-A45C-F21065CFEE71}

CardNumber=110

Пример ответа сервера:

Result=MatchPositive

ResultCode=0

MatchFactor=99

MatchCardNumber=110

42.4 Верификация по фотографии

Команда:

/rsapi/modules/fr/checkfacepresence

Описание:

Позволяет произвести верификацию – проверку соответствия лица перед объективом камеры (параметр CameraID) лицу на переданной в запросе фотографии. Изображение кодируется в Base64 и передается в теле POST-запроса, в виде строки «ImageData=[Base64Image]». Ответ содержит значение четырех переменных:

  • Result – строковое значение результата. Возможные значения: MatchPositive (лицо однозначно сопоставлено), NoFaceDetected (лицо в видеопотоке не обнаружено), MatchNegative (лицо перед объективом камеры не соответствует лицу на переданном изображении).
  • ResultCode – цифровое значение результата. Возможные знаяения: 0 (MatchPositive), 3 (NoFaceDetected), 4 (MatchNegative).
  • MatchFactor – точность, с которой сопоставлено лицо.

Пример запроса

POST http://localhost:11012/rsapi/modules/fr/checkfacepresence

Тело запроса:

CameraID={1B8E4CB5-FCDF-4FC3-A45C-F21065CFEE71}

ImageData=*[Base64Image]*

Пример ответа сервера:

Result=MatchPositive

ResultCode=0

MatchFactor=99

42.5 Распознавание по команде из внешней системы

Команда:

/rsapi/modules/fr/ondemand

Описание:

Позволяет произвести распознавание лица перед объективом камеры. Используется при выбранном в настройках модуля режиме «Распознавание по запросу» (в данном режиме модуль производит анализ лиц перед объективом только по внешней команде, остальное время проводит в ожидании). В качестве параметров передаются идентификатор запроса в произвольном формате (переменная RequestID), таймаут в милисекундах на поиск лица в кадре (переменная Timeout) и идентификатор камеры (CameraID). Команда завершается сразу, не возвращая результат распознавания, однако переданный идентификатор запроса привязывается к событию распознавания лица и может быть получен как через сценарии, так и через команду подписки на события от сервера.

Пример запроса

POST http://localhost:11012/rsapi/modules/fr/ondemand

Тело запроса:

CameraID={1B8E4CB5-FCDF-4FC3-A45C-F21065CFEE71}

RequestID=123-ABC

Timeout=10000

42.6 Подписка на события

Команда:

/rsapi/modules/fr/events?format=[Format]

Пример запроса 1

GET http://localhost:11012/rsapi/modules/fr/events?format=plain

Пример ответа сервера 1:

HTTP/1.1 200 OK

Content-Type: multipart/x-mixed-replace;boundary=--myboundary

--myboundary

Content-Type: text/plain

level=Notification;type=FaceRecognition;cameraId=a3300d2c-4771-4fcc-b31d-fe0085fc4712;eventId=cf647529-372a-455a-9129-175b758f4dfc;time=2020-04-14T17:34:00.140;personId=9515ac2c-e34d-4b2a-a051-35fbea17efe2;recognized=true;passage=None;realtime=2020-04-14T17:33:59.363;state=unknown;requestId=;factor=99.33;cardNumber="101"

--myboundary

Content-Type: text/plain

…

Пример запроса 2

GET http://localhost:11012/rsapi/modules/fr/events?format=json

Пример ответа сервера 2:

HTTP/1.1 200 OK

Content-Type: multipart/x-mixed-replace;boundary=--myboundary

--myboundary

Content-Type: application/json

{

"level": "Notification",

"type": "FaceRecognition",

"cameraId": "a3300d2c-4771-4fcc-b31d-fe0085fc4712",

"eventId": "20b175af-7741-493b-af08-796818682614",

"time": "2020-04-14T17:24:19.452",

"personId": "946d5717-e2c7-4f7b-b85b-da6361d4bf53",

"recognized": "true",

"passage": "None",

"realtime": "2020-04-14T17:24:19.024",

"state": "unknown",

"requestId": "",

"factor": 99.0,

"cardNumber": "111"

}

--myboundary

Content-Type: application/json

…

Описание:

Возвращает в реальном времени события от модуля распознавания лиц.

Параметры:

  • format – вариант форматирования. Поддерживаемые значения: plain (по умолчанию), json.

42.7 Загрузка событий из архива

Команда:

/rsapi/modules/fr/searchevents?{timeFrom=[dtFrom]}{&timeTo=[dtTo]}{&levels=[Lvl]}{&cameraids=[CameraIDs]}{&lastminutes=[min]}{&timeKind=local/utc}{&sendFaces=[sendFaces]}{&personFullName=[Name]}{&personDescription=[Desc]}{&isRecognized=[isRec]}{&passage=[pass]}{&gender=[gen]}{&mask=[mask]}{&state=[state]}{&groupIds=[groupdIDs]}{&fromAge=[ageFrom]}{&toAge=[ageTo]}{&extendedValue=[ext]}

Описание:

Загружает из архива и возвращает список событий модуля распознавания лиц в соответствии с заданными фильтрами.

Пример запроса

http://localhost:11012/rsapi/modules/fr/searchevents?timeFrom=2025-08-27&timeTo=2025-08-27&personfullname=Test

Пример ответа сервера:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Items>
<Item>
    <EventID>84796b4b-cf94-48dc-890d-3802f2ba7c05</EventID>
    <HostID>35e3e8df-55c4-4803-83ab-1682a48ca5a6</HostID>
    <Time>2025-08-27T16:13:16.043</Time>
    <CameraID>3e1c9b57-b02d-46d8-a144-200d72fb08f3</CameraID>
    <CameraName>FR</CameraName>
    <PersonID>b31f5929-fe27-49bf-b138-7ddc14fb262b</PersonID>
    <PersonName>Test Person</PersonName>
    <GroupNames></GroupNames>
    <Description></Description>
    <WorkPlace></WorkPlace>
    <Position></Position>
    <CardNumber></CardNumber>
    <IsRecognized>True</IsRecognized>
    <State>Unknown</State>
    <StateString>Unknown</StateString>
    <Factor>0</Factor>
    <Passage>None</Passage>
    <Age>0</Age>
    <Gender>Unknown</Gender>
    <GenderString>Unknown</GenderString>
    <Ethnicity>Unknown</Ethnicity>
    <EthnicityString>Unknown</EthnicityString>
    <Mask>Unknown</Mask>
    <MaskString>Unknown</MaskString>
    <Temperature>0</Temperature>
    <LivenessFactor />
    <Level>Notification</Level>
    <LevelString>Information</LevelString>
    <Rect>
        <X>48.75</X>
        <Y>53.125</Y>
        <Width>11.71875</Width>
        <Height>16.666666</Height>
    </Rect>
    <FaceJpegData />
</Item>
</Items>

Параметры:

  • timeFrom – начало временного интервала для загрузки данных. Не указывается, если задан параметр lastMinutes.
  • timeTo – окончание временного интервала для загрузки данных. Не указывается, если задан параметр lastMinutes.
  • levels – опциональный параметр, список уровней тревожности события через запятую.
  • cameraIds – опциональный параметр, список идентификаторов камер через запятую.
  • lastMinutes – альтернативный вариант указания временного интервала. Количество минут до текущего момента времени, за которое требуется загрузка данных.
  • timeKind – опциональный параметр, указывает формат времени – локальное время сервера или UTC.
  • sendFaces – опциональный параметр, указывает необходимость отправки фотографий лиц. Возможные значения: true, false.
  • personFullName - опциональный параметр, фильтр по имени сотрудника.
  • personDescription - опциональный параметр, фильтр по описанию сотрудника.
  • isRecognized - опциональный параметр, фильтр по статусу распознавания. Возможные значения: true, false.
  • passage - опциональный параметр, фильтр по направлению прохода. Возможные значения: None, Entrance, Exit.
  • gender - опциональный параметр, фильтр по полу. Возможные значения: Unknown, Female, Male.
  • mask - опциональный параметр, фильтр по наличию маски. Возможные значения: Unknown, Detected, NotDetected.
  • state - опциональный параметр, фильтр по состоянию. Возможные значения: Unknown, Draft, ReEntrance, Duplicate, MatchPositive, MatchIncorrect, MatchNegative, PPEApproved, PPERejected, PPETimeout, Edited.
  • groupIds - опциональный параметр, фильтр по идентификатором групп (указываются через запятую).
  • fromAge - опциональный параметр, фильтр по возрасту, нижняя граница.
  • toAge - опциональный параметр, фильтр по возрасту, верхняя граница. extendedValue - опциональный параметр, фильтр значению дополнительного поля.

42.8 Аналитика посетителей: получение состояния

Команда:

/rsapi/modules/fr/analytics/getstats

Описание:

Возвращает XML-документ, содержащий информацию по состоянию аналитики посетителей на всех камерах.

Пример запроса

GET http://localhost:11012/rsapi/modules/fr/analytics/getstats

Пример ответа сервера:

<CameraStates>
    <CameraState>
        <CameraID>3e1c9b57-b02d-46d8-a144-200d72fb08f3</CameraID>
        <LastResetTime>2025-12-04T18:18:18.532</LastResetTime>
        <Results>
            <Result>
                <Type>In</Type>
                <Value>2</Value>
            </Result>
            <Result>
                <Type>Gender_Male</Type>
                <Value>2</Value>
            </Result>
            <Result>
                <Type>Age_25_34</Type>
                <Value>1</Value>
            </Result>
            <Result>
                <Type>Age_18_24</Type>
                <Value>1</Value>
            </Result>
        </Results>
    </CameraState>
</CameraStates>

42.9 Аналитика посетителей: сброс состояния

Команда:

/rsapi/modules/fr/analytics/reset

Описание:

Сбрасывает состояние аналитики посетителей на всех камерах.

42.10 Аналитика посетителей: построение отчета

Команда:

/rsapi/modules/fr/analytics/report

Описание:

Возвращает данные аналитики распознавания лиц для выбранных камер и заданного периода времени.

Отчёт поддерживает несколько типов аналитики:

  • InOut — статистика входов/выходов
  • Unique — уникальные посетители
  • Gender — распределение по полу
  • Age — распределение по возрасту
  • Combined — комбинированные аналитические данные

Тело запроса:

{
    "timeFrom": "string",
    "timeTo": "string",
    "axisXsize": "string",
    "summarizeCameras": true,
    "reportType": "string",
    "cameraIds": ["string"]
}

Параметры запроса:

  • timeFrom - Начало отчётного периода.
  • timeTo - Конец отчётного периода.
  • axisXsize - Временной масштаб для группировки данных отчёта. Допустимые значения: Minute, Hour, Day, Week, Month.
  • summarizeCameras - Если true, агрегирует данные со всех выбранных камер в один результат. Если false, возвращает данные отдельно по каждой камере.
  • reportType - Тип аналитических данных, которые нужно вернуть. Допустимые значения: InOut, Gender, Unique, Age, Combined.
  • cameraIds - Список идентификаторов камер, которые нужно включить в отчёт. Пустой список означает все камеры.

Пример запроса

POST http://localhost:11012/rsapi/modules/fr/analytics/report

Тело запроса:

{
    "timeFrom": "2026-03-06T00:00:00",
    "timeTo": "2026-03-06T23:59:59",
    "axisXsize": "Day",
    "summarizeCameras": true,
    "reportType": "Combined",
    "cameraIds": [
        "cd949313-fd85-4b53-9c68-197c3dd3aec7"
    ]
}

Пример ответа сервера:

{
    "reportName": "FRCounter",
    "reportType": "InOut",
    "period": {
        "from": "2026-02-01T00:00:00",
        "to": "2026-02-07T23:59:59"
    },
    "columns": [
        { "key": "cameraName", "title": "Camera" },
        { "key": "timeStart", "title": "Start" },
        { "key": "timeEnd", "title": "End" },
        { "key": "in", "title": "In" },
        { "key": "out", "title": "Out" }
    ],
    "rows": [
        {
        "cameraName": "Camera 1",
        "timeStart": "2026-02-01",
        "timeEnd": "2026-02-02",
        "in": 10,
        "out": 7
        },
        {
        "cameraName": "Camera 2",
        "timeStart": "2026-02-01",
        "timeEnd": "2026-02-02",
        "in": 5,
        "out": 3
        }
    ]
}

Описание полей:

  • reportName - Имя отчёта (FRCounter)
  • reportType - Тип аналитики (InOut, Unique, Gender, Age, Combined)
  • period.from - Начало отчётного периода (ISO yyyy-MM-ddTHH : mm : ss)
  • period.to - Конец отчётного периода
  • columns - Список колонок отчёта
  • columns.key - Идентификатор колонки
  • columns.title - Отображаемое имя колонки
  • rows - Строки с данными по камерам и интервалам
  • rows.cameraName - Имя камеры
  • rows.timeStart - Начало интервала
  • rows.timeEnd - Конец интервала
  • rows.in - Количество входов
  • rows.out - Количество выходов
  • rows.unique - Количество уникальных лиц (тип Unique)
  • rows.male / rows.female - Количество по полу (тип Gender)
  • rows.age_0_17 … rows.age_65_plus - Возрастные группы (тип Age или Combined)
  • rows.unknown - Неопределённый возраст (тип Age или Combined)