當一個設備宣稱支援 ONVIF Profile Q,可能有兩種意義
- An ONVIF device can be discovered and configured by an ONVIF client.
- An ONVIF client can discover, configure and control an ONVIF device compliant over an IP network.
要宣稱支援 ONVIF Profile Q,則要回應正確的scope,根據設備目前所在的狀態,可能有兩個回應:
- onvif://www.onvif.org/Profile/Q/FactoryDefault
- onvif://www.onvif.org/Profile/Q/Operational
一、Factory Default State
在進行 hard factory reset 之後,設備應該進入 Factory Default State。
此時設備應該要提供 full anonymous access,直到設備變成 Operation State。我猜測full anonymous access的意思為,此時進行任何操作是不需要帳號密碼的。
Factory Default State 之下,設備要確定下列功能都是 enable
WS-Discovery(Discoverable mode), DHCP and IPv4 Link Local Address, IPv6 stateless autoconfiguration。
在 Factory Default State,進行下列其中一項操作,便會切換至 Operation State
- the operator creates a new admin user by successfully invoking CreateUsers with a non-empty password
- the operator modifies the password of an existing admin user by invoking SetUser
二、Operation State
當進入Operation State 之後,後續的任何操作便需要 HTTP digest authentication 方式進行認證,並且需要符合 ONVIF 定義的 access policy。詳細流程可參考 ONVIF-Core-Specification-v250.pdf 5.12 Security。
Profile Q 所定義的 Mandatory Features
GetServices :(GetServiceCapabilities)
- 需宣稱支援 ZeroConfiguration
- 需要提供 MaxUsernameLength 和 MaxPasswordLength
將 Profile Q 與 Profile S 進行比較,可得知下列 API 也要變成必要功能
- GetZeroConfiguration
- SetZeroConfiguration
- GetNTP
- SetNTP
需新增四個 Monitoring Events
並且需注意 GetServiceCapabilities 回應中所指定的 MaxPullPoints 應該大於 2
- tns1:Monitoring/ProcessorUsage
- tns1:Monitoring/OperatingTime/LastReset
- tns1:Monitoring/OperatingTime/LastReboot
- tns1:Monitoring/OperatingTime/LastClockSynchronization
Profile Q 所定義的 Conditional Features
需支援下列 API
- GetRemoteUser
- SetRemoteUser
- StartFirmwareUpgrade
- GetSystemUris
- StartSystemRestore
- CreateCertificationPath
- DeleteCertificate
- DeleteCertificationPath
- DeleteKey
- GetAllCertificates
- GetAllCertificationPaths
- GetAllKeys
- GetCertificate
- GetCertificationPath
- GetKeyStatus
- UploadCertificate
- AddServerCertificateAssignment
- GetAssignedServerCertificates
- RemoveServerCertificateAssignment
- ReplaceServerCertificateAssignment
- SetNetworkProtocols
可以選擇是否要新增下列五個 Events (可參考 topic--20130703.wsdl)
- tns1:Device/HardwareFailure/FanFailure
- tns1:Device/HardwareFailure/PowerSupplyFailure
- tns1:Device/HardwareFailure/StorageFailure
- tns1:Device/HardwareFailure/TemperatureCritical
- tns:Monitoring/Backup/Last
註1:ONVIF Device Test Tool v14.12 已經導入了某些 Profile Q 的測試案例。
註2:2016/08/02 Profile Q 正式 release