ONVIF Discovery & API

박경연 (돌진어흥이)·2020년 8월 2일
0

WS Discovery?

Web Services Dynamic Discovery의 약어로써, 로컬네트워크 상의 서비스들을 찾기위해 멀티캐스트 검색 프로토콜을 정의하는 기술스펙.
TCP / UDP포트 3702에서 작동하며 멀티캐스트 주소로 239.255.255.250을 사용한다.

ONVIF Device Discovery

ONVIF 디바이스는 WS-DIscovery를 지원한다.
디바이스가 네트워크에 접속하게되면, 다른 디바이스들이 알 수 있도록 HELLO 메세지를 보낸다.
클라이언트에서는, 네트워크의 다른 디바이스들과 서비스들을 찾기위해, Probe 메세지를 보낼 수 있다.
디바이스는, 자신이 OFFLine으로 전환되거나, 네트워크에서 제외됨을 알리기위해 BYE 메세지를 보낼 수 있다.

이런 메세지들은 UDP통신으로 표준화된 멀티캐스트 주소와 포트에 전송된다.
Probe 메세지에 명시된 유형 / 범위에 속하는 디바이스는, ProbeMatch 메세지를 전송하여 응답한다.

WS Discovery는 멀티캐스트 패키지가 보통 라우터(공유기)를 뛰어넘지 못하기 때문에, 현장(네트워크가 설치된 장소)의 네트워크 분할에 의해 제한된다. 이 문제는 Discovery Proxy에 의해 해결될 수 있다.

ONVIF Discovery의 실제 쓰임

보통 ONVIF Discovery를 지원한다는 것은, 카메라가 제공하는 API를 통해 ONVIF Event정보나, 카메라의 스트리밍 정보등을 얻어올 수 있다는 것을 말한다.

그렇다면, 우리의 컴퓨터에서 ONVIF Device를 어떻게 Discovery하여 사용할 수 있는지 알아보겠다.

  1. ONVIF의 공식 문서에서 규정하는데로, XML메시지를 작성한다.
  2. XML 메세지를 위에서 언급한 Multicast주소로 TCP / UDP연결을 통해 보낸다.
  3. 로컬 네트워크상의 ONVIF Device는 해당 Multicast XML Message의 Response를 송신자에게 보낸다.
  4. 이렇게 받은 XML Response메세지에는 해당 Device의 ONVIF API 주소가 적혀있다.
  5. 해당 Device 의 사설 IP 주소, 포트(보통은 80이나 443이지만 아닌 경우도 있다.)와 ONVIF API를 통하여 해당 Device의 정보를 알아낼 수 있다. 이를테면 MAC주소라던가, RTSP를 지원하는 카메라라면 RTSP 주소라던가, 모델명, 제조사, 지원하는 해상도, 비디오 스트리밍 채널 갯수, 등등의 많은 정보를 알아낼 수 있다.
  6. 알아낸 정보를 통해 개발에 활용한다.
profile
Back-end Developer, pursuing to be a steadily improving person.

0개의 댓글