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