Integrating Custom ONVIF events

Hi,

currently we are integrating an IPC with ONVIF events.

There are a couple of events the IPC sends which are not in the GetEventProperties response.

For example a face detection event in PullMessage response:

tev:PullMessagesResponse

wsnt:NotificationMessage

<wsnt:Topic Dialect=“http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet”>tns1:IntelligentAnalysis/FDAlarm</wsnt:Topic>

wsnt:Message<tt:Message UtcTime=“2023-06-13T12:11:34Z” PropertyOperation=“Changed”>tt:Source<tt:SimpleItem Name=“Source” Value=“VideoSourceToken”/></tt:Source>tt:Data<tt:SimpleItem Name=“IsFDAlarm” Value=“true”/></tt:Data></tt:Message></wsnt:Message>

</wsnt:NotificationMessage>

</tev:PullMessagesResponse>

We assume the Milestone VMS cannot find the topic/event in the configured event list and ignores the event. Corresponding face detection rules do not trigger.

Is there the possibility to extend the ONVIF driver via MIP SDK?

The way to implement a whole new device driver using MIP SDK seems to be to much effort only for adding one event.

Another alternative is to develop a plugin communicating with all these IPCs and provide a event using MIP SDK.

Do we have other possibilities to solve this problem? Which approach would you prefer?

Thanks and best Regards,

Andreas

Hi Andreas,

Would it be possible to include these events in the GetEventPropertiesResponse? This seems to be the most straightforward option here and it should work with the driver as-is. Please find some more details on how it is currently used:

The ONVIF driver uses the GetEventPropertiesResponse during the Add Hardware**(*)** step to expose all available events on a device to the VMS. The user can then subscribe to these events via the Events tab in Management Client, and create corresponding rules and alarms to be triggered.

(*) GetEventProperties is also called during Replace or Update Hardware, so the list of available events for an already added device will be updated according to the new GetEventPropertiesResponse.

As you have mentioned that the custom events are not a part of the GetEventPropertiesResponse, this would explain why they are not being processed, even though they are included in the PullMessagesResponse - they cannot be matched to any events known by the driver/VMS. (Some more details on matching: link).

P.S. You also mentioned that there are some corresponding face detection rules, could you please elaborate a bit more about how these rules are created and on which events they are based (I am assuming you’re referring to the rules in Management Client)? Please feel free to include any other information that you see as relevant here.

I hope this helps, please let me know if you have any further questions.

BR,

Gabriela

Hi Gabriela,

thank you very much for your answer.

It confirmed our assumptions and we now understand better how the system works.

We will see if we extend the GetEventPropertiesResponse.

By “corresponding face detection rules” I was in fact referring to rules in the management client.

We tried the default face event. But it is now also clear that this cannot work, because the tested camera sends a different topic.

At this point we do not have any further questions. Maybe we’ll come back to that later.

Best Regards,

Andreas