ONVIF:如何从NVT的IP地址形成设备Web服务地址

我的问题是关于ONVIF规范。 http://www.onvif.org/imwp/download.asp?ContentID=18006 在第5.10节中,它说:   服务是相关端口的集合。本规范不强制要求任何服务命名原则。 假设我有NVT的IP地址(例如网络视频发送器,如IP摄像机),我该如何形成设备管理Web服务的地址?该服务是整个系统的切入点。 谢谢。     
已邀请:
根据官方文档(第5.1.1节),您可以在
http://<IP address>/onvif/device_service
访问该服务     
你必须在onvif xsdl文件中添加服务(比如http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl)
    <wsdl:definitions ......>
      ..............
         </wsdl:binding>
         <!--===============================-->
         <wsdl:service name="DeviceService">
             <wsdl:port name="DevicePort" binding="tds:DeviceBinding">
               <soap:address location="http://ip/onvif/device_service"/>
             </wsdl:port>
           </wsdl:service>
    </wsdl:definitions>
并生成ws客户端源代码 (对于java可以使用wsimport) 如前所述,webservice的入口点是http:// ip / onvif / device_service     
Şafak指出的惯例在ONVIF标准中描述。但在现实生活中,一些设备并没有遵循它。在这种情况下,您尝试发送单播ws-discovery Probe请求(或多播,然后通过ip-address过滤ProbeMatch回复),ProbeMatch应答中的XAddrs字段将包含设备服务所需的地址。     
请注意在任何地方使用
*http://IP/onvif/device_service*
网址来获取服务。根据GetServices的要求:
<env:Body>
        <tds:GetServicesResponse>
            <tds:Service>
                <tds:Namespace>http://www.onvif.org/ver10/device/wsdl</tds:Namespace>
                <tds:XAddr>http://IP/onvif/device_service</tds:XAddr>
                <tds:Version>
                    <tt:Major>2</tt:Major>
                    <tt:Minor>10</tt:Minor>
                </tds:Version>
            </tds:Service>

            <tds:Service>
                <tds:Namespace>http://www.onvif.org/ver10/media/wsdl</tds:Namespace>
                <tds:XAddr>http://IP/onvif/Media</tds:XAddr>
                <tds:Version>
                    <tt:Major>2</tt:Major>
                    <tt:Minor>10</tt:Minor>
                </tds:Version>
            </tds:Service>

            <tds:Service>
                <tds:Namespace>http://www.onvif.org/ver10/events/wsdl</tds:Namespace>
                <tds:XAddr>http://IP/onvif/Events</tds:XAddr>
                <tds:Version>
                    <tt:Major>2</tt:Major>
                    <tt:Minor>10</tt:Minor>
                </tds:Version>
            </tds:Service>

            <tds:Service>
                <tds:Namespace>http://www.onvif.org/ver20/ptz/wsdl</tds:Namespace>
                <tds:XAddr>http://IP/onvif/PTZ</tds:XAddr>
                <tds:Version>
                    <tt:Major>2</tt:Major>
                    <tt:Minor>10</tt:Minor>
                </tds:Version>
            </tds:Service>

            <tds:Service>
                <tds:Namespace>http://www.onvif.org/ver20/imaging/wsdl</tds:Namespace>
                <tds:XAddr>http://IP/onvif/Imaging</tds:XAddr>
                <tds:Version>
                    <tt:Major>2</tt:Major>
                    <tt:Minor>10</tt:Minor>
                </tds:Version>
            </tds:Service>

            <tds:Service>
                <tds:Namespace>http://www.onvif.org/ver10/deviceIO/wsdl</tds:Namespace>
                <tds:XAddr>http://IP/onvif/DeviceIO</tds:XAddr>
                <tds:Version>
                    <tt:Major>2</tt:Major>
                    <tt:Minor>10</tt:Minor>
                </tds:Version>
            </tds:Service>

            <tds:Service>
                <tds:Namespace>http://www.onvif.org/ver20/analytics/wsdl</tds:Namespace>
                <tds:XAddr>http://IP/onvif/Analytics</tds:XAddr>
                <tds:Version>
                    <tt:Major>2</tt:Major>
                    <tt:Minor>10</tt:Minor>
                </tds:Version>
            </tds:Service>
        </tds:GetServicesResponse>

    </env:Body>
您可以在不同的网址上提供不同的服务。 在其中一台HikVision相机上可以看到这一点。他们中的大多数使用
*http://IP/onvif/device_service*
。     
实际上,通过WS-Discovery,您只能获得设备服务的地址。使用DeviceService获取的其他服务的地址:GetServices请求与使用WS-Discovery之前获得的地址100%一致。     

要回复问题请先登录注册