You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.8 KiB
Markdown
116 lines
3.8 KiB
Markdown
# WSDD - ONVIF WS-Discovery 서버
|
|
## 설명
|
|
**wsdd**는 ONVIF WS-Discovery 서비스를 위한 Linux 데몬(서버 측)입니다.
|
|
ONVIF 공식 웹사이트: [https://www.onvif.org](https://www.onvif.org)
|
|
그리고 그들의 [GitHub](https://github.com/onvif/) 페이지도 참고하세요.
|
|
웹 서비스 데이터 바인딩은 [gSOAP](https://www.genivia.com)을 사용하여 생성되었습니다.
|
|
이에 대한 자세한 내용은 [gSOAP WS-Discovery 플러그인 공식 매뉴얼](https://www.genivia.com/doc/wsdd/html/wsdd_0.html)을 참조하세요.
|
|
|
|
|
|
|
|
## 빌드
|
|
### 의존성
|
|
이 프로젝트를 빌드하기 위해 대부분의 Linux 시스템에서는 다음 패키지의 설치가 필요합니다:
|
|
`make m4 flex bison byacc yacc`
|
|
암호화 및 WS-Security 지원이 필요한 경우에는 추가적으로 다음이 필요합니다:
|
|
`openssl zlib libcrypto`
|
|
예를 들어, Ubuntu 22.04에서는 아래 명령으로 설치할 수 있습니다:
|
|
```console
|
|
sudo apt install flex bison byacc make cmake m4
|
|
|
|
# 암호화 및 WS-Security 지원을 위한 패키지
|
|
sudo apt install openssl libssl-dev zlib1g-dev libcrypto++8
|
|
```
|
|
|
|
|
|
[CMakeLists.txt](./CMakeLists.txt)를 기반으로 CMake를 사용하여 빌드하는 방법은 다음과 같습니다:
|
|
4가지 빌드 방식이 있습니다:
|
|
1. 기본적으로 빌드는 이전 스타일(`Makefile`)로 진행됩니다.
|
|
독립적인 `gSOAP` 버전을 직접 빌드하여 사용하며([build_gsoap.cmake](./cmake/build_gsoap.cmake) 참조),
|
|
이와 동시에 필요한 `gSOAP` 기능을 프로젝트와 함께 컴파일합니다.
|
|
|
|
```console
|
|
cd repo_dir
|
|
cmake -B build .
|
|
cmake --build build
|
|
```
|
|
|
|
|
|
2. 첫 번째 방법과 유사하지만, 정적 라이브러리 `gSOAP`을 사용하여 빌드(링크)합니다.
|
|
|
|
```console
|
|
cd repo_dir
|
|
cmake -B build . -DUSE_GSOAP_STATIC_LIB=1
|
|
cmake --build build
|
|
```
|
|
|
|
3. 시스템에 설치된 `gSOAP`을 사용합니다. 이를 위해 검색 모듈([FindgSOAP.cmake](./cmake/FindgSOAP.cmake))을 사용하여 시스템 내 `gSOAP`을 검색 및 활용합니다.
|
|
|
|
```console
|
|
cd repo_dir
|
|
cmake -B build . -DUSE_SYSTEM_GSOAP=1
|
|
cmake --build build
|
|
```
|
|
|
|
예를 들어, Ubuntu 22.04에서 `gSOAP`을 설치하려면 다음 패키지를 설치해야 합니다:
|
|
|
|
```console
|
|
sudo apt install gsoap libgsoap-dev
|
|
```
|
|
|
|
|
|
4. 세 번째 방법과 유사하지만, [FindgSOAP.cmake](./cmake/FindgSOAP.cmake) 검색 모듈에 정적 라이브러리를 검색하도록 지시합니다.
|
|
이를 통해 `gSOAP` 시스템 라이브러리에 의존하지 않게 됩니다.
|
|
|
|
```console
|
|
cd repo_dir
|
|
cmake -B build . -DUSE_SYSTEM_GSOAP=1 -DUSE_GSOAP_STATIC_LIB=1
|
|
cmake --build build
|
|
```
|
|
|
|
|
|
|
|
## 사용법
|
|
데몬을 시작하려면 작업에 필요한 매개변수를 전달해야 합니다:
|
|
|
|
```console
|
|
./wsdd --if_name eth0 --type tdn:NetworkVideoTransmitter --xaddr http://%s:1000/onvif/device_service --scope "onvif://www.onvif.org/name/Unknown onvif://www.onvif.org/Profile/Streaming"
|
|
```
|
|
|
|
더 자세한 내용은 도움말을 확인하세요:
|
|
```console
|
|
./wsdd --help
|
|
```
|
|
|
|
|
|
또는 [S90wsdd](./start_scripts/S90wsdd) 스크립트를 사용하여 데몬을 시작할 수 있습니다(구형 init.d 스크립트 스타일):
|
|
```console
|
|
./start_scripts/S90wsdd start
|
|
```
|
|
|
|
시스템에서 **systemd**를 사용하는 경우:
|
|
[wsdd.service]를 참고하세요.(./start_scripts/wsdd.service)
|
|
|
|
|
|
|
|
## 테스트
|
|
이 데몬을 테스트하려면 클라이언트 애플리케이션이 필요합니다.
|
|
#### Linux:
|
|
1. [ONVIF Device Tool](http://lingodigit.com/onvif_nvc.html)
|
|
> **참고:** ONVIF Device Tool은 자체 `wsdd` 데몬을 포함하고 있으며, 애플리케이션 시작 및 종료 시 `killall wsdd` 명령을 호출합니다. 이는 이 데몬에도 영향을 미칩니다.
|
|
|
|
|
|
|
|
#### Windows:
|
|
1. [ONVIF Device Manager](https://sourceforge.net/projects/onvifdm/)
|
|
|
|
## 라이선스
|
|
|
|
[GPLv2](./LICENSE).
|
|
|
|
|
|
|
|
## Copyright
|
|
|
|
Copyright (C) 2016 Koynov Stas - skojnov@yandex.ru
|