The ONVIF Pull Point Event is raised redundantly by the ONVIF driver

Dear dev team,

Description:

I am developing the ONVIF server stack and currently working on the events distribution mechanism. I am able to successfully add my device into VMS. The device announced some dynamic events, which are detected successfully. I configure one of the events (binary event) to be used → the VMS makes a pull point subscription and starts the pull.

I have configured a rule chain to create a server log entry ones the event is raised (on rising edge) as follows:

The event matching happens, and I see corresponding entries in the server logs. My server side keeps providing events according to the ONVIF Core Spec, which in the event handling section claims the following:

The PropertyOperation=“Changed” is set as an attribute to the data attribute of the wsnt:Message once the event value changes (e.g. from False to True). I see that some cameras just stop adding the unchanged message into WS-Notifation at all. However in my implementation I intentionally deliver the same event with same value (True), but without PropertyOperation attribute being attached to the Notification message. I think it does not violate the ONVIF core spec and allows satisfies requirements from other VMS systems.

PropertyOperation set to Changed once on change

PropertyOperation is removed, but message is preserved with the True value

Problem:

Unfortunately, the event entry is generated in the server log at each successful pull, while I preserve the event value to be True (in rising edge position). I assume it should not be the case, because the ONVIF driver documentation claims that the value without PropertyOperation attribute being attached is ignored https://doc.milestonesys.com/latest/en-US/onvifdriver/events.htm?tocpath=Third-party%20integrations%7CONVIF%C2%AE%20drivers%7CEvents%7C_____1

I have also collected the driver logs with Milestone Diagnostics tool and I see the PropertyChanged attribute being detected there:

I expect the single event entry to be raised in the server log, once the PropertyOperation is set to Changed. And all other incoming events with the same value should be ignored (as it is unchanged).

What I am doing wrong? May it be that I am violating the standard here or my payloads are incorrect ?

Thanks for your help!

Versions Used:

versionsYou can find the wireshark pcap events of the active pull-point event process attached

Question is received and will be scheduled for answering.

The described observation is due to intentional driver design. The ONVIF driver expects that unchanged events will not be part of notification messages. The quoted driver documentation is not accurate and needs to be updated - the driver will not filter events with the same status value and will not discard events with a missing “PropertyOperation” attribute.