onvif_srvd - ONVIF Device(IP camera) Service server (Linux daemon)
This server (Service) has a minimal implementation. Use this server as a template for writing your ONVIF service for an IP camera.
ONVIF official website: https://www.onvif.org and their github presence.
The web services data binding is generated using gSOAP
Most Linux systems for building this project require the following packages to be installed: make m4 flex bison byacc yacc
If you need support for encryption and WS-Security then you also need: openssl zlib libcrypto
For example, on ubuntu 20.04, you needed to install:
sudo apt install flex bison byacc make m4
#for support encryption and WS-Security
sudo apt install openssl libssl-dev zlib1g-dev libcrypto++6
To start build you have to choose your compiler (or toolchain) in the Makefile (see variable $CXX
).
For build use make for Makefile:
make target
target is:
all
- build daemon in release and debug modedebug
- build in debug mode (#define DEBUG 1)release
- build in release mode (strip)clean
- remove all generated filesdistclean
- clean + remove all SDK fileshelp
- show list support targets
Note: If you need WS-Security support, you need to call make with the
WSSE_ON=1
parameter.
Show how enable support WS-Security:
make WSSE_ON=1
If before make was done without WS-Security support, must cleanup (We need to rebuild the gsoap with openssl
support):
make distclean
To start the daemon, you have to give him the parameters that are needed for work:
./onvif_srvd --ifs eth0 --scope onvif://www.onvif.org/name/TestDev --scope onvif://www.onvif.org/Profile/S --name RTSP --width 800 --height 600 --url rtsp://%s:554/unicast --type JPEG"
The --url
option can contain or static IP or dynamic (template parameter %s
) that will be replaced with the IP address of the interface, see the option --ifs
.
For more details see help:
./onvif_srvd --help
Or you can use S90onvif_srvd script to start the daemon (for old init.d script style):
./start_scripts/S90onvif_srvd start
If You use systemd see: onvif_srvd.service
For testing daemon you need client application.
Note:
- ONVIF Device Tool at me this application falls when show the first frame of RTSP. Sad :(.
- This application requires support for WS-Security
- This application requires support for WS-Discovery
Only the console client, useful for debugging.
Usage:
./ipconvif 127.0.0.1:1000