Search code examples
javaonvifws-discovery

Onvif ip camera service discovery


I need to discover all ip cameras in local area network that supports onvif protocol. I tried with WSDiscoveryClient, but it doesnt discover onvif services, although it discovers other services. Its like onvif doesnt responde to probe from WSDiscoveryClient. Onvif device manager can do the discovery, so I know it is possible to do it. Does anyone know how to do it?


Solution

  • This document: http://www.onvif.org/Portals/0/documents/WhitePapers/ONVIF_WG-APG-Application_Programmer%27s_Guide.pdf

    Shows an example of what is required to send(via UDP broadcast)in order to discover ONVIF devices

    <?xml version="1.0" encoding="UTF-8"?>
    <e:Envelope xmlns:e="http://www.w3.org/2003/05/soap-envelope"
    xmlns:w="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery"
    xmlns:dn="http://www.onvif.org/ver10/network/wsdl">
    <e:Header>
    <w:MessageID>uuid:84ede3de-7dec-11d0-c360-f01234567890</w:MessageID>
    <w:To e:mustUnderstand="true">urn:schemas-xmlsoap-org:ws:2005:04:discovery</w:To>
    <w:Action a:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</w:Action>
    </e:Header>
    <e:Body>
    <d:Probe>
    <d:Types>dn:NetworkVideoTransmitter</d:Types>
    </d:Probe>
    </e:Body>
    </e:Envelope>