NVR Integration via ONVIF Driver

One of our customer is planning to integrate NVR via the ONVIF Protocol and Onvif Driver. As the NVR is behind the NATing and Gateways, they would like to know how the Milestone XP fetches the MAC address from the NVR. Like, will Milestone XP gets the MAC address directly from the NVR with a valid credentials or we will get the MAC from the Network Layer. If Milestone XP gets the MAC from the ONVIF NVR directly, what method or protocol or command will be used to get the MAC Address information. Please advise on this.

I wonder if you find the answer here? - https://doc.milestonesys.com/en-US/bundle/driv1301_ver1.25/page/Introduction_and_scope_About_this_document.html

If you do not find it I will involve my expert ONVIF driver developer colleagues, so in that case please let me know.

Great Thanks @Bo Ellegård Andersen (Milestone Systems)​ for your timely reply.

I have gone through the document on the link provided and found two information as in the attachment.

The table says the MAC Value is taken from the Device itself not from the Network Layer.

And MilestoneXP fetches this info using the ONVIF Command GetNetworkInterfaces using the URL as in the attached snap.

Can you please clarify if this is correct for ONVIF Devices.

Also could you please clarify if the MAC Address will be taken directly from the Device for other drivers as well. Like we will be using i-PRO/Panasonic Drivers for this Project. So the Customer would like to know if the MAC will be fetched from device directly or via the Network Layer.

And if you connect me with the developer it would be great.

Question is received and will be scheduled for answering.

Thanks Kalvin.

In addition to the above, referring to the paragraph “Currently it is not possible to use UDP streaming with devices behind NAT (RTP/UDP and RTP/UDP multicast).”

As the NVR is behind the NATing, what is the alternative if the RTP/UDP is not supported ?

As you already red in our documentation ONVIF driver is using the ONVIF request GetNetworkInterfaces the get the MAC address directly from ONVIF devices with a valid credentials. The same is valid for the other drivers. We are getting MAC address directly from the devices using specific API calls provided from different manufacturers. We are not getting MAC from Network layer.

Regarding your last question, you can use RTP/RTSP/TCP instead of RTP/UDP.

Thanks Kalvin.

The Customer is looking for a technical reason on why the RTP/UDP work doesn’t when the device is behind NATing as they expecting delay in Video Streaming when they will be using TCP. Can you please help with more details on this ?

There are many technical problems for using RTP/UDP behind NAT. The main is that RTP uses dynamic port ranges (e.g., 1024-65535). The port is negotiated when connection is initiated and is usually different every time when connection is reinitiated. The Client(Driver) can suggest the same port every time but the Sever may select another. Also NAT might close or remap ports unexpectedly. Possible solution will have to involve participation of all sides.

Using TCP may introduce small delay but UDP has several disadvantages. UDP is unreliable because there is no acknowledgement and retransmission of packets and some packets my be lost. UDP has no Congestion Control - does not adjust its sending rate based on network congestion. If too much data is sent, it can cause packet loss and jitter. This may cause much bigger delays and gaps in the video. UDP is also less secure. If the small delay TCP is introducing is not critical for the client you should consider using it instead of UDP.