# 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