ONVIF: Как сформировать адрес веб-службы устройства из IP-адреса NVT - PullRequest
5 голосов
/ 30 августа 2010

Мой вопрос касается спецификации ONVIF. http://www.onvif.org/imwp/download.asp?ContentID=18006 В разделе 5.10 говорится:

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

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

Спасибо.

Ответы [ 5 ]

4 голосов
/ 04 января 2011

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

2 голосов
/ 13 января 2011

Вы должны добавить службу в xvdl-файле onvif (скажем, 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 голосов
/ 15 августа 2014

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

0 голосов
/ 21 июля 2014

Просто помните, что везде используйте *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>

Вы можете иметь разные сервисы на разных URL. Это было видно на одной из камер HikVision. Большинство из них использует *http://IP/onvif/device_service*.

0 голосов
/ 01 марта 2011

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

...