Изменения документа Отправка событий по входящим подпискам
Редактировал(а) admin 2026/09/03 12:17
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -6,7 +6,7 @@ 6 6 7 7 == Общие сведения == 8 8 9 - Также узлы НЕЙРОСС выступают в качестве ONVIF-узлов и обеспечивают возможность оформления входящей подписки от «внешнего» потребителя ONVIF-событий — «внешней системы», оформляющей подписку на события узла НЕЙРОСС и обеспечивающий приём таких событий.9 +Узлы НЕЙРОСС выступают в качестве ONVIF-узлов и обеспечивают возможность оформления входящих и исходящих подписок на события ~[[[Управление подписками>>doc:ui.Сеть.Управление подписками.WebHome]]] входящей подписки от «внешнего» потребителя ONVIF-событий — «внешней системы», оформляющей подписку на события узла НЕЙРОСС и обеспечивающий приём таких событий. 10 10 11 11 Узлы НЕЙРОСС серверного типа оформляют подписку по запросу, но рассылка событий начинается только после включения функции на самом узле Платформа НЕЙРОСС / ДеВизор. 12 12 ... ... @@ -14,6 +14,15 @@ 14 14 15 15 С версии 20.55 параметр доступен в интерфейсе НЕЙРОСС. 16 16 17 +После включения функции рассылки событий во внешнюю систему(ы) начинают передаваться все события (в рамках ограничений протокола). 18 + 19 +{{warning title="ВНИМАНИЕ"}} 20 +Рассылка событий осуществляется в режиме реального времени по факту возникновения. Если потребитель должен постоянно быть на связи и «слушать» события. Последующее вычитывание событий НЕ поддерживается. Также есть ограничения на отправку некоторых событий. Полный функционал взаимодействия по ONVIF, в том числе с вычитыванием пропущенных событий, реализовано в Плагине ВИС ~[[[Интеграция с «внешними» информационными системами (ВИС)>>doc:neyross.Настройка Платформы НЕЙРОСС.Инструменты интеграции.Интеграция с «внешними» информационными системами (ВИС).WebHome]]], при этом события передаются по HTTP POST / JSON, а не ONVIF WS-Notification. 21 +{{/warning}} 22 + 23 +(% class="wikigeneratedid" %) 24 +Поддерживается фильтрация событий по топикам (типу ONVIF-события) и по содержимому. Фильтрация событий осуществляется на стороне «внешней» системы. Механизм основан на стандартном ONVIF WS-Notification Subscribe с фильтрами TopicExpression и MessageContent (XPath). 25 + 17 17 == «Включение» рассылки событий == 18 18 19 19 При необходимости передачи событий по входящим ONVIF-подпискам в блоке **Прочее **установите флаг в поле** Отправлять события по входящим подпискам**. ... ... @@ -22,20 +22,113 @@ 22 22 23 23 == Оформление подписки == 24 24 25 - **Endpoint**34 +=== Endpoint === 26 26 27 27 {{code language="none"}} 28 28 http://<IP-адрес Платформы>/soap/onvif/events 29 29 {{/code}} 30 30 31 -== == 40 +=== Подписка без фильтров === 32 32 33 -== Фильтрация событий == 42 +(% class="wikigeneratedid" %) 43 +Отправить SOAP Subscribe с указанием только ConsumerReference и InitialTerminationTime. На Consumer должны приходить все ONVIF-события, доступные в Платформе НЕЙРОСС по подписке. 34 34 35 -По сле включения функции рассылкисобытийво внешнюю систему(ы) начинают передаватьсявсе события (в рамках ограниченийпротокола).45 +=== Подписка с фильтрацией событий === 36 36 37 -{{warning title="ВНИМАНИЕ"}} 38 -Рассылка событий осуществляется в режиме реального времени по факту возникновения. Если потребитель должен постоянно быть на связи и «слушать» события. Последующее вычитывание событий НЕ поддерживается. Также есть ограничения на отправку некоторых событий. Полный функционал взаимодействия по ONVIF, в том числе с вычитыванием пропущенных событий, реализовано в Плагине ВИС ~[[[Интеграция с «внешними» информационными системами (ВИС)>>doc:neyross.Настройка Платформы НЕЙРОСС.Инструменты интеграции.Интеграция с «внешними» информационными системами (ВИС).WebHome]]], при этом события передаются по HTTP POST / JSON, а не ONVIF WS-Notification. 39 -{{/warning}} 47 +(% class="wikigeneratedid" %) 48 +{{{Фильтр задаётся в блоке <wsn:Filter> запроса}}} 40 40 41 -Фильтрация событий осуществляется на стороне «внешней» системы. 50 + 51 +(% class="wikigeneratedid" %) 52 +**Фильтр по топикам** 53 + 54 +Фильтр по топикам задается строкой с топиками, разделенными знаком "|" . фильтр работает по правилу ИЛИ — событие проходит, если topic совпадает с любым из перечисленных. 55 + 56 +Типовые topic'и событий СКУД приведены в таблице ниже: 57 + 58 +|=Topic|=Смысл 59 +|((( 60 +ter:AccessControl/AccessGranted/Credential 61 +)))|((( 62 +Доступ разрешён 63 +))) 64 +|((( 65 +ter:AccessControl/AccessTaken/Credential 66 +)))|((( 67 +Проход совершен 68 +))) 69 +|((( 70 +ter:AccessControl/AccessDenied/Credential 71 +)))|((( 72 +Доступ запрещён 73 +))) 74 +|((( 75 +ter:AccessControl/DoorState/Door 76 +)))|((( 77 +Состояние двери 78 +))) 79 +|((( 80 +ter:AccessControl/... 81 +)))|((( 82 +Прочие события Profile C 83 +))) 84 + 85 + 86 + 87 +{{info}} 88 +Топик события можно уточнить по XML событий в Журнале событий или через Редактор тем извещений ~[[[Система получает неизвестные события. Как их интерпретировать?>>doc:neyross.Обслуживание Платформы НЕЙРОСС.Часто задаваемые вопросы | Платформа НЕЙРОСС.Система получает неизвестные события\. Как их интерпретировать?.WebHome]]]. 89 +{{/info}} 90 + 91 + 92 +Пример фильтра по топикам: 93 + 94 +{{code}} 95 + <wsn:Filter> 96 + <wsn:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet"> 97 + ter:AccessControl/AccessGranted/Credential|ter:AccessControl/AccessTaken/Credential 98 + </wsn:TopicExpression> 99 + </wsn:Filter> 100 + 101 +{{/code}} 102 + 103 + 104 +**Фильтр по содержимому ** 105 + 106 +Фильтр задаётся через xPath выражение, которое может включать как условия по И, так и по ИЛИ. 107 + 108 +Пример фильтра по точкам доступа: 109 + 110 +{{code}} 111 +<wsn:Filter> 112 + <wsn:MessageContent Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> 113 + //o:Message/o:Source/o:SimpleItem[@Name='AccessPointToken' and 114 + (@Value='123e4567-e89b-12d3-a456-426614174000' or 115 + @Value='abcd1234-5678-90ab-cdef-1234567890ab')] 116 + </wsn:MessageContent> 117 +</wsn:Filter> 118 +{{/code}} 119 + 120 +В примере выше производится поиск в сообщении блока Source, внутри которого элемент SimpleItem, у которого Name=AccessPointToken и Value равен одному из указанных UUID точек доступа. 121 + 122 +UUID точки доступа (token) вы можете уточнить в разделе Элементы или найти в Журнале событий событие от данной точки доступа, XML ONVIF-извещения найти блок Source / SimpleItem с @Name='AccessPointToken' и скопировать @Value ~[[[Журнал событий>>doc:ui.Журнал событий.WebHome]]]. 123 + 124 + 125 +**Фильтр по топику и содержимому** 126 + 127 + Если заданы фильтры по топикам и по содержимому, то эти фильтры работают по правилу И, то есть событие должно удовлетворять обоим условиям. 128 + 129 +Пример фильтра: 130 + 131 +{{code}} 132 +<wsn:Filter> 133 + <wsn:TopicExpression Dialect="http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet"> 134 + ter:AccessControl/AccessGranted/Credential|ter:AccessControl/AccessTaken/Credential 135 + </wsn:TopicExpression> 136 + <wsn:MessageContent Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116"> 137 + //o:Message/o:Source/o:SimpleItem[@Name='AccessPointToken' and 138 + (@Value='123e4567-e89b-12d3-a456-426614174000' or 139 + @Value='abcd1234-5678-90ab-cdef-1234567890ab' or 140 + @Value='d3bea616-7d17-4edd-b45f-70d7cae13542')] 141 + </wsn:MessageContent> 142 + </wsn:Filter> 143 +{{/code}}