2010-08-29 7 views
5

Мой вопрос касается спецификации ONVIF. http://www.onvif.org/imwp/download.asp?ContentID=18006 В разделе 5.10, он говорит:ONVIF: Как сформировать адрес веб-службы устройства с IP-адреса NVT

Служба представляет собой набор связанных портов. Эта спецификация не требует каких-либо принципов именования услуг.

Допустим, что у меня есть IP-адрес NVT (сетевой видеопередатчик, например, IP-камера), как я могу создать адрес веб-службы управления устройствами? Эта служба является точкой входа всей системы.

спасибо.

ответ

4

Согласно official document (раздел 5.1.1), вы можете получить доступ к службе на http://<IP address>/onvif/device_service

2

вы должны добавить службу в 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)

Как упоминалось точку входа для веб-сервиса является http://ip/onvif/device_service

0

Соглашение, обозначенное Şafak, описано в стандарте ONVIF. Но в реальной жизни некоторые устройства не следуют за ним. В этом случае вы пытаетесь отправить запрос на запрос однозначного запроса ws-discovery (или многоадресную рассылку, а затем фильтровать ответы ProbeMatch по ip-адресу), поле XAddrs в ответе ProbeMatch будет содержать требуемый адрес для службы устройства.

0

Просто имейте в виду использовать везде *http://IP/onvif/device_service* URL для доступа к услугам. Согласно запросу 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*.

0

Фактически через WS-Discovery вы можете получить только адрес службы устройства. Адреса других служб, которые вы должны получить с помощью запроса DeviceService: GetServices, который работает на 100% с указанным вами адресом с WS-Discovery.

 Смежные вопросы

  • Нет связанных вопросов^_^