onvif.exceptions.ONVIFError: Unknown error: The security token could not be authenticated or authorized
CCTV (IP 카메라)의 정보를 얻어오기 위해 onvif를 설치했다.
pip install onvif_zeep
onvif란 ONVIF(Open Network Video Interface Forum 오픈 네트워크 비디오 인터페이스 포럼)의 약자로 보안 목적의 물리적 IP기반 제품들의 인터페이스를 위한 개방형 표준의 개발 및 이용을 용이하게 만드는 단체이다. 쉽게 말해 아이피 카메라를 제어하기 위한 국제 규격 프로토콜이다.
파이썬에서는 이를 쉽게 이용할 수 있도록 패키지가 되어 있다. 이 규격이 국제 표준이라 그런지 쉽게 변경되지 않는다. 그래서 그런지 만들어진지가 꽤 오래되었다. 처음 개발 당시에는 python2으로 개발된 것 같은데 추후에 python3 버전으로 컨버전한 것이 위 onvif_zeep이다.
샘플 소스는 매우 간단했다.
그런데 간단한 위 소스가 에러를 내밷는다. 위가 시작이라 이것이 진행되어야 다른 것들이 진행이 되는데 말이다.
원인을 찾기 위해 부단히 노력했다. 구글에게 물어보기도 하고 소스도 찾아봤다. 심지어 wsdl까지 찾았다.
며칠을 고생했는데, 고민을 들은 어느 지인 분이 몇 시간 만에 찾아 주셨다.
위 링크를 따라가면 내용이 없고, 검색된 화면에서만 답을 찾는다면 ONVIF 서비스 호출 시 adjust_time 옵션을 줄 수 있는데 기본값은 False다. 그런데 이 옵션은 시간 싱크가 맞지 않아도 카메라의 인증을 허용한단다. 무언가 카메라랑 시간이 맞지 않았던 것일까? 값을 True 주고 다시 해 보니 정상적으로 동작하는 확인 하였다.
이제 출발선의 시작이다.
다시 진행해 봐야겠다.