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

# 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