Hi,
We are trying to add ws-discovery to our server app.
Anyone know or have a sample project that works well with Milestone XProtect for ws-discovery?
I tried this project found on Github but XProtect does not succeeds end up making request to the endpoint URL. The only modification I made on it was to change the URL to our device ONVIF URL.
https://github.com/alb423/wsdiscovery
I also tried that project above against ONVIF Device Manager v2.2.250 by synesis and the endpoint URL is queried after the discovery.
Thanks!
Francois
Within XProtect there is a function called ‘Registered Services’, where the Milestone XProtect servers can register when they are installed or running, and other application and servers can ask for URLs of installed servers.
This function is also available for use by you - perhaps that can cover your needs?
https://doc.developer.milestonesys.com/html/index.html?base=samples/servicetest_sample.html&tree=tree_search.html?search=registered+services
Hi @Bo Ellegård Andersen (Milestone Systems),
It does not help because we want to simply implement a working ws-discovery solution within an ONVIF server. My two questions are :
-
We respond to the Probe request with a XAddr that uses a specific port, for example : <d:XAddrs>http://192.168.0.109:8080/onvif/devices</d:XAddrs>. However in futur requests, XProtect query http://192.168.0.109:80/onvif/device_service URL to which we respond 404.
-
Do we absolutely need to be in the supported hardware list in order for automatic discovery to work?
Thanks
Francois
Hi @francois ol
From your comment I get the impression that WS-Discovery request/probe is working, just that our diver does not use the data provided in the response. And you have a point, because the driver expects that the device service URI will be “/onvif/device_service”. If you could change the URI on your side to what the driver is expecting and check if the port at least is set properly, that would be great. Thank you for informing us about the issue, we will try to fix it as soon as possible.
As per your second question, I am not sure what you mean by “supported hardware list”, but if it is about whether your device is listed on our web page, it is not mandatory, since it is ONVIF compatible.
Thanks.
Hi @francois ol
Upon further research into the ONVIF standard it turns out that the device management service should always be located at “/onvif/device_service”. (see: https://www.onvif.org/specs/core/ONVIF-Core-Specification.pdf section 5.1.1) Although the standard says that WS-Discovery should provide the URL, it also states that it should be fixed.
Thanks.
Hi @Georgi Yanev ,
Thanks for the info Georgi. Indeed in specification states that port 80 must be used also (we were using 1000).
“The device should provide a port 80 device service entry in order to allow firewall traversal” (section 7.3.2.3 Addresses)
Francois