I want to see my video stream from another computer using ONVIF device manager. I implemented WS-discovery and WS-security, included device, deviceIO and media wsdls to my code and my code can respond wsdl operations in these wsdl files. But there is not any request from Onvif DM to start video stream or getting stream url.
I can just see this screen from Onvif DM:
and all of the requests until this screen are:
DeviceBindingService :: GetSystemDateAndTime
DeviceBindingService :: GetDeviceInformation
DeviceBindingService :: GetScopes
DeviceBindingService :: GetDNS
DeviceBindingService :: GetNetworkInterfaces
DeviceBindingService :: GetSystemDateAndTime
DeviceBindingService :: GetCapabilities
DeviceBindingService :: GetServices
DeviceBindingService :: GetCapabilities
MediaBindingService :: GetVideoSources
MediaBindingService :: GetProfiles
MediaBindingService :: GetProfiles
MediaBindingService :: GetSnapshotUri
MediaBindingService :: GetProfiles
MediaBindingService :: GetAudioSources
I think it is related to GetServices response but I could not manage to find what is missing. My GetServices response:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml1="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:sizexenc="http://tempuri.org/sizexenc.xsd" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:sizeds="http://tempuri.org/sizeds.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:wsc="http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:chan="http://schemas.microsoft.com/ws/2005/02/duplex" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:wsdd="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:xmime="http://tempuri.org/xmime.xsd" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:wsrfbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:tdn="http://www.onvif.org/ver10/network/wsdl" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl">
<SOAP-ENV:Header>
<wsse:Security SOAP-ENV:mustUnderstand="true">
<wsse:UsernameToken>
<wsse:Username>admin</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">iZGOClWegnxwfuolWSakKIYyVRk=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">0bGB7IsWkEi0xhHgctiHixYHAAAAAA==</wsse:Nonce>
<wsu:Created>2016-09-19T15:12:49.009Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<tds:GetServicesResponse>
<tds:Service xsi:type="tds:Service">
<tds:Namespace>http://www.onvif.org/ver10/device/wsdl</tds:Namespace>
<tds:XAddr>http://******:1881/</tds:XAddr>
<tds:Version xsi:type="tt:OnvifVersion">
<tt:Major>2</tt:Major>
<tt:Minor>5</tt:Minor>
</tds:Version>
</tds:Service>
<tds:Service xsi:type="tds:Service">
<tds:Namespace>http://www.onvif.org/ver10/media/wsdl</tds:Namespace>
<tds:XAddr>http://******:1906/</tds:XAddr>
<tds:Version xsi:type="tt:OnvifVersion">
<tt:Major>2</tt:Major>
<tt:Minor>6</tt:Minor>
</tds:Version>
</tds:Service>
<tds:Service xsi:type="tds:Service">
<tds:Namespace>http://www.onvif.org/ver10/deviceIO/wsdl</tds:Namespace>
<tds:XAddr>http://******:1931/</tds:XAddr>
<tds:Version xsi:type="tt:OnvifVersion">
<tt:Major>2</tt:Major>
<tt:Minor>6</tt:Minor>
</tds:Version>
</tds:Service>
</tds:GetServicesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
How can I achieve this?
the thing that I am missing was some inconsistencies between GetVideoSourceConfiguration
and GetProfiles
responses. -thanks to @mpromonet-
to display live video stream in ONVIF Device Manager, I had to implement two more functions:
MediaBindingService :: GetStreamUri
MediaBindingService :: GetVideoSourceConfiguration