2016-02-10 23:25:23 +08:00
|
|
|
ZoneMinder ONVIF support
|
|
|
|
|
|
|
|
Copyright (C) 2016 Jan M. Hochstein
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
2016-12-27 00:33:03 +08:00
|
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
2016-02-10 23:25:23 +08:00
|
|
|
--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
1. PURPOSE
|
|
|
|
----------
|
|
|
|
|
|
|
|
The files in this folder and its subfolders add ONVIF support to zoneminder.
|
|
|
|
The ONVIF consortium (www.onvif.org) publishes the ONVIF specifications. These
|
|
|
|
specifications describe ways of connecting to and communicating with network
|
|
|
|
video devices. Hardware and software that adhere to these specifications are
|
|
|
|
meant to be interoperable.
|
|
|
|
|
|
|
|
|
|
|
|
2. SUBFOLDERS
|
|
|
|
-------------
|
|
|
|
|
|
|
|
doc/ - Documentation
|
|
|
|
modules/ - perl modules necessary for SOAP communication
|
|
|
|
proxy/ - perl SOAP proxy modules generated according to the ONVIF
|
|
|
|
specifications
|
|
|
|
scripts/ - application logic
|
|
|
|
wsdl/ - (empty) this is only used during the proxy generation process
|
|
|
|
|
|
|
|
|
|
|
|
3. LICENSE
|
|
|
|
----------
|
2016-02-10 23:36:21 +08:00
|
|
|
Any files in this folder and its subfolders are published under the same
|
|
|
|
license as this file if they do not carry additional license information.
|
2016-02-10 23:25:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
4. PROXY GENERATION
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
SOAP messages use XML format and need to comply to the schema expected by the
|
|
|
|
receiver. While it is possible to build messages through string concatenation
|
|
|
|
it is impractical for all but testing purposes.
|
|
|
|
Here we use SOAP proxy modules generated by the script wsdl2perl.pl from the
|
|
|
|
SOAP::WSDL module (http://search.cpan.org/~mkutter/SOAP-WSDL-2.00.10/)
|
|
|
|
version 2.00.10.
|
|
|
|
|
|
|
|
A - Get the input files.
|
|
|
|
|
|
|
|
Download these files and any web service (.wsdl) or schema (.xsd)
|
|
|
|
files referenced therein into the wsdl/ subfolder.
|
|
|
|
|
|
|
|
http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
|
|
|
|
http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl
|
|
|
|
http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl
|
|
|
|
http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl
|
|
|
|
|
|
|
|
The complete list of files we have during build is:
|
|
|
|
|
|
|
|
analytics.wsdl
|
|
|
|
b-2.xsd
|
|
|
|
bf-2.xsd
|
|
|
|
br-2.xsd
|
|
|
|
brw-2.wsdl
|
|
|
|
bw-2.wsdl
|
|
|
|
devicemgmt.wsdl
|
|
|
|
media.wsdl
|
|
|
|
onvif.xsd
|
|
|
|
ptz.wsdl
|
|
|
|
r-2.xsd
|
|
|
|
rw-2.wsdl
|
|
|
|
soap-envelop.xsd
|
|
|
|
t-1.xsd
|
|
|
|
wsdd-discovery-1.1-schema-os.xsd
|
|
|
|
wsdd-discovery-1.1-wsdl-os.wsdl
|
|
|
|
wsdiscovery-udp.wsdl
|
|
|
|
wsdl11soap12.xsd
|
|
|
|
wsdl.xsd
|
|
|
|
wsnotification.wsdl
|
|
|
|
xmlmime.xsd
|
|
|
|
xop-include.xsd
|
|
|
|
|
|
|
|
B - Generate the proxy modules using these commands.
|
|
|
|
|
|
|
|
wsdl2perl.pl -p ONVIF::Device:: -b proxy/lib file:wsdl/devicemgmt.wsdl
|
|
|
|
wsdl2perl.pl -p ONVIF::Media:: -b proxy/lib file:wsdl/media.wsdl
|
|
|
|
wsdl2perl.pl -p ONVIF::PTZ:: -b proxy/lib file:wsdl/ptz.wsdl
|
|
|
|
wsdl2perl.pl -p ONVIF::Event:: -b proxy/lib file:wsdl/event.wsdl
|
|
|
|
wsdl2perl.pl -p ONVIF::Analytics:: -b proxy/lib file:wsdl/analytics.wsdl
|
|
|
|
wsdl2perl.pl -p WSDiscovery:: -b proxy/lib file:wsdl/wsdiscovery-udp.wsdl
|
|
|
|
wsdl2perl.pl -p WSNotification:: -b proxy/lib file:wsdl/wsnotification.wsdl
|
|
|
|
|
|
|
|
I had to tweak SOAP::WSDL a little bit to get correct proxies.
|