We are developing a device which implements the ONVIF protocol. Events, such as tamper or line cross, occured in the device can be pulled via Pull Point Subscription. When tested with ODT (ONVIF Device Test Tool) and ODM (ONVIF Device Manager) everything works as expected. I added our device as an ONVIF conformant device and Milestone pulls the event messages. When I sniff the network with Wireshark the message seems to be correct but Milestone gives an error.
For line crossing the log in %ProgramData%\Milestone\XProtect Recording Server\Logs\Drivers\ONVIF and the Wireshark log as follows
I could’nt get the problem. The packet, in Milestone logs, seems to be corrputed.
Could you please provide support to fix this issue?
Thank you.
Logs:
0001836 2024-02-06T09:27:39.374448+03:00 DEBUG 0x00000eb0@0x0000273c NmMultiCodec::CmMetaDataMultiCodec::AddFrame()@MetaDataMultiCodec.cpp:260 Received metadata packet [192.168.1.81:21:80] (size=4363)
0001837 2024-02-06T09:27:39.393573+03:00 DEBUG 0x00000eb0@0x0000273c NmMultiCodec::OutputMetadataEventsDebug()@MetaDataMultiCodec.cpp:156 METADATA EVENT: Topic=‘tns1:RuleEngine/LineDetector/Crossed’
0001838 2024-02-06T09:27:39.393573+03:00 DEBUG 0x00000eb0@0x0000273c NmMultiCodec::OutputMetadataAnalyticsDebug()@MetaDataMultiCodec.cpp:195 METADATA ANALYTICS: ObjectId=‘1’ Class=‘’
0001839 2024-02-06T09:27:39.393573+03:00 DEBUG 0x00000eb0@0x0000273c NmMultiCodec::OutputMetadataAnalyticsDebug()@MetaDataMultiCodec.cpp:195 METADATA ANALYTICS: ObjectId=‘2’ Class=‘’
0001840 2024-02-06T09:27:39.393573+03:00 DEBUG 0x00000eb0@0x0000273c NmMultiCodec::OutputMetadataAnalyticsDebug()@MetaDataMultiCodec.cpp:195 METADATA ANALYTICS: ObjectId=‘3’ Class=‘’
0001843 2024-02-06T09:27:39.550438+03:00 ERROR 0x0000451c@0x0000273c NmONVIFDevice::CmOnvifEventPolling::MatchMessages()@ONVIFEvent.cpp:1503 Error: tns1:RuleEngine/LineDetector/Crossed<Message xmlns:SOAP-ENV=“http://www.w3.org/2003/05/soap-envelope” xmlns:SOAP-ENC=“http://www.w3.org/2003/05/soap-encoding” xsi=“http://www.w3.org/2001/XMLSchema-instance” xsd=“http://www.w3.org/2001/XMLSchema” xmlns:trc>
--------------------------------------------------------------------------------------------------------------------------------
Wireshark:
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
xmlns:SOAP-ENV=“http://www.w3.org/2003/05/soap-envelope”
xmlns:tse=“http://www.onvif.org/ver10/search/wsdl”>
<wsa5:MessageID>urn:uuid:bf449065-e772-4df3-a9ed-0008dc37865d</wsa5:MessageID>
<wsa5:ReplyTo SOAP-ENV:mustUnderstand="true">
<wsa5:Address>[http://www.w3.org/2005/08/addressing/anonymous</wsa5:Address>](http://www.w3.org/2005/08/addressing/anonymous%3C/wsa5:Address%3E "http://www.w3.org/2005/08/addressing/anonymous%3C/wsa5:Address%3E")
</wsa5:ReplyTo>
<wsa5:To SOAP-ENV:mustUnderstand="true">[http://192.168.1.81:80/onvif/device\_service/25eb1651</wsa5:To>](http://192.168.1.81:80/onvif/device_service/25eb1651%3C/wsa5:To%3E "http://192.168.1.81:80/onvif/device_service/25eb1651%3C/wsa5:To%3E")
<wsa5:Action SOAP-ENV:mustUnderstand="true">[http://www.onvif.org/ver10/events/wsdl/PullPointSubscription/PullMessagesResponse</wsa5:Action>](http://www.onvif.org/ver10/events/wsdl/PullPointSubscription/PullMessagesResponse%3C/wsa5:Action%3E "http://www.onvif.org/ver10/events/wsdl/PullPointSubscription/PullMessagesResponse%3C/wsa5:Action%3E")
</SOAP-ENV:Header>
<tev:PullMessagesResponse>
<tev:CurrentTime>2024-02-02T07:46:06Z</tev:CurrentTime>
<tev:TerminationTime>2024-02-02T07:47:06Z</tev:TerminationTime>
<wsnt:NotificationMessage>
<wsnt:Topic Dialect="[http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet](http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet "http://www.onvif.org/ver10/tev/topicExpression/ConcreteSet")">**tns1:RuleEngine/LineDetector/Crossed**</wsnt:Topic>
<wsnt:Message>
<tt:Message
xmlns:tse="[http://www.onvif.org/ver10/search/wsdl](http://www.onvif.org/ver10/search/wsdl "http://www.onvif.org/ver10/search/wsdl")" UtcTime="2024-02-02T07:46:06Z" PropertyOperation="Changed">
<tt:Source>
<tt:SimpleItem Name="Rule" Value="Line 2"></tt:SimpleItem>
</tt:Source>
<tt:Data>
<tt:SimpleItem Name="ObjectId" Value="1"></tt:SimpleItem>
<tt:SimpleItem Name="ObjectId" Value="2"></tt:SimpleItem>
<tt:SimpleItem Name="ObjectId" Value="3"></tt:SimpleItem>
</tt:Data>
</tt:Message>
</wsnt:Message>
</wsnt:NotificationMessage>
</tev:PullMessagesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


