Отправка событий по входящим подпискам

Версия 3.2 от admin на 2026/07/24 16:27

Вкладка Платформа НЕЙРОСС раздела Дополнительные настройки позволяет настроить разрешение на отправку событий Платформы НЕЙРОСС / ДеВизор «внешним» системам по входящей ONVIF-подписке. Можно отправлять все события системы, так и фильтровать события по теме (топику) и содержимому.

Information

Общие сведения

Узлы НЕЙРОСС выступают в качестве ONVIF-узлов и обеспечивают возможность оформления входящих и исходящих подписок на события [Управление подписками] В частности, узлы НЕЙРОСС обеспечивают возможность оформления входящей подписки от «внешнего» потребителя ONVIF-событий — «внешней системы», оформляющей подписку на события узла НЕЙРОСС и обеспечивающий приём таких событий.

Узлы НЕЙРОСС серверного типа оформляют подписку по запросу, но рассылка событий начинается только после включения функции на самом узле Платформа НЕЙРОСС / ДеВизор средствами данного раздела.

До версии 20.55 подключение функции осуществляется в файле конфигурирования. При работе в данных версиях обратитесь к специалистам компании ИТРИУМ за консультацией.

С версии 20.55 параметр доступен в интерфейсе НЕЙРОСС.

После включения функции рассылки событий во внешнюю систему(ы) начинают передаваться все события (в рамках ограничений протокола).

Warning
ВНИМАНИЕ

Рассылка событий осуществляется в режиме реального времени по факту возникновения. Если потребитель должен постоянно быть на связи и «слушать» события. Последующее вычитывание событий НЕ поддерживается. Также есть ограничения на отправку некоторых событий. Полный функционал взаимодействия по ONVIF, в том числе с вычитыванием пропущенных событий, реализовано в Плагине ВИС [Интеграция с «внешними» информационными системами (ВИС)], при этом события передаются по HTTP POST / JSON, а не ONVIF WS-Notification.

Поддерживается фильтрация событий по топикам (типу ONVIF-события) и по содержимому. Фильтрация событий осуществляется на стороне «внешней» системы. Механизм основан на стандартном ONVIF WS-Notification Subscribe с фильтрами TopicExpression и MessageContent (XPath).

Пока наличие исходящих подписок отображается только для узлов типа БОРЕЙ. В будущих версиях функция будет реализована для серверов НЕЙРОСС [Управление подписками].

«Включение» рассылки событий

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

Нажмите на кнопку Сохранить. Изменения вступают в силу через 2–3 минуты, перезагрузка узла не требуется.

Оформление подписки

Endpoint

http://<IP-адрес Платформы>/soap/onvif/events

Подписка без фильтров

Отправить SOAP Subscribe с указанием только ConsumerReference и InitialTerminationTime. На Consumer должны приходить все ONVIF-события, доступные в Платформе НЕЙРОСС по подписке.

Подписка с фильтрацией событий

Фильтр задаётся в блоке <wsn:Filter> запроса

Фильтр по топикам

Фильтр по топикам задается строкой с топиками, разделенными знаком "|" . фильтр работает по правилу ИЛИ — событие проходит, если topic совпадает с любым из перечисленных.

Типовые topic'и событий СКУД приведены в таблице ниже:

TopicСмысл

ter:AccessControl/AccessGranted/Credential

Доступ разрешён

ter:AccessControl/AccessTaken/Credential

Проход совершен

ter:AccessControl/AccessDenied/Credential

Доступ запрещён

ter:AccessControl/DoorState/Door

Состояние двери

ter:AccessControl/...

Прочие события Profile C

Information

Топик события можно уточнить по XML событий в Журнале событий или через Редактор тем извещений [Система получает неизвестные события. Как их интерпретировать?].

Пример фильтра по топикам:

         <wsn:Filter>
           <wsn:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet">
               ter:AccessControl/AccessGranted/Credential|ter:AccessControl/AccessTaken/Credential
           </wsn:TopicExpression>
        </wsn:Filter>

Фильтр по содержимому 

Фильтр задаётся через xPath выражение, которое может включать как условия по И, так и по ИЛИ.

Пример фильтра по точкам доступа:

<wsn:Filter>
  <wsn:MessageContent Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116">
      //o:Message/o:Source/o:SimpleItem[@Name='AccessPointToken' and
      (@Value='123e4567-e89b-12d3-a456-426614174000' or
       @Value='abcd1234-5678-90ab-cdef-1234567890ab')]
  </wsn:MessageContent>
</wsn:Filter>

В примере выше производится поиск в сообщении блока Source, внутри которого элемент SimpleItem, у которого Name=AccessPointToken и Value равен одному из указанных UUID точек доступа.

UUID точки доступа (token) вы можете уточнить в разделе Элементы или найти в Журнале событий событие от данной точки доступа,  XML ONVIF-извещения найти блок Source / SimpleItem с @Name='AccessPointToken' и скопировать @Value [Журнал событий].

Фильтр по топику и содержимому

 Если заданы фильтры по топикам и по содержимому, то эти фильтры работают по правилу И, то есть событие должно удовлетворять обоим условиям.

Пример фильтра:

<wsn:Filter>
           <wsn:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet">
            ter:AccessControl/AccessGranted/Credential|ter:AccessControl/AccessTaken/Credential
          </wsn:TopicExpression>
          <wsn:MessageContent Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116">
           //o:Message/o:Source/o:SimpleItem[@Name='AccessPointToken' and
           (@Value='123e4567-e89b-12d3-a456-426614174000' or
             @Value='abcd1234-5678-90ab-cdef-1234567890ab' or
             @Value='d3bea616-7d17-4edd-b45f-70d7cae13542')]
        </wsn:MessageContent>
        </wsn:Filter>

Интерфейс НЕЙРОСС