Отправка событий по входящим подпискам
Вкладка Платформа НЕЙРОСС раздела Дополнительные настройки позволяет настроить разрешение на отправку событий Платформы НЕЙРОСС / ДеВизор «внешним» системам по входящей ONVIF-подписке. Можно отправлять все события системы, так и фильтровать события по теме (топику) и содержимому.
Общие сведения
Узлы НЕЙРОСС выступают в качестве ONVIF-узлов и обеспечивают возможность оформления входящих и исходящих подписок на события [Управление подписками] В частности, узлы НЕЙРОСС обеспечивают возможность оформления входящей подписки от «внешнего» потребителя ONVIF-событий — «внешней системы», оформляющей подписку на события узла НЕЙРОСС и обеспечивающий приём таких событий.
Узлы НЕЙРОСС серверного типа оформляют подписку по запросу, но рассылка событий начинается только после включения функции на самом узле Платформа НЕЙРОСС / ДеВизор средствами данного раздела.
После включения функции рассылки событий во внешнюю систему(ы) начинают передаваться все события (в рамках ограничений протокола).
Поддерживается фильтрация событий по топикам (типу ONVIF-события) и по содержимому. Фильтрация событий осуществляется на стороне «внешней» системы. Механизм основан на стандартном ONVIF WS-Notification Subscribe с фильтрами TopicExpression и MessageContent (XPath).
Пока наличие исходящих подписок отображается только для узлов типа БОРЕЙ. В будущих версиях функция будет реализована для серверов НЕЙРОСС [Управление подписками].
«Включение» рассылки событий
При необходимости передачи событий по входящим ONVIF-подпискам в блоке Прочее установите флаг в поле Отправлять события по входящим подпискам.
Нажмите на кнопку Сохранить. Изменения вступают в силу через 2–3 минуты, перезагрузка узла не требуется.
Оформление подписки
Endpoint
Подписка без фильтров
Отправить 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 |
Пример фильтра по топикам:
<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: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: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>