2012年9月12日 星期三

The difference between ONVIF Test Tool 11.12 and 12.06

在通過 ONVIF Test Tool 11.12 之後,便想試試看 ONVIF Test Tool 12.06,此時發現測試工具一開始定義 ipcam 的 features 便已經不正確了,無法進行正確的測試。茲將測試時,自己發現的差異處整理如下:

1. 由於初始的 features define 有誤,因此後續的測試範例預期結果會與 11.12 將會不同。
例如:DEVICE-1-1-17,若測試工具所偵測的 features 包含 imaging,則此測試範例預期要成功,否則預期此範例要失敗。



2. 定義 features 的方式已經改變
ONVIF Test Tool 11.12 使用 GetCapabilities 來定義 features。
ONVIF Test Tool 12.06 可以使用 GetCapabilities 或是 GetServices/ GetServiceCapabilities 來定義features,測試工具會先試著使用GetServices/ GetServiceCapabilities,若不行才使用GetCapabilities。
在11.12時,spec只定義了一種取得capabilities的方法,因此只要有實作GetCapabilities即可。 當使用 12.06 測試工具時,最好便是實作上述三個功能。若想要快速取得測試報告,那就是讓設備不支援 GetServices 與 GetServiceCapabilities,例如:回error code,那麼 ONVIF 測試工具便只會利用 GetCapabilities 來定義 features了。
就七月中測試的幾家 NVR 而言,現在大家互通時還不會使用 GetServices 與 GetServiceCapabilities,若有時程壓力,是可以晚點再實作這兩個 API。

3. 針對 response action ,多做了一些檢查
原本在 ONVIF 11.12 時,並未針對 response 訊息中的 xml 作檢查。ONVIF 12.06 則會檢查 action 欄位,確認 ipcam 是否有正確的回應。
4. RTSP的封包做了更改
在 RTSP 的 Setup 階段,識別字已做了修改,若程式碼內認定 client_port 關鍵字,則執行時可能會有問題。
ONVIF 11.12  的 Transport 設定為  RTP/AVP;multicast;client_port=1234-1235
ONVIF 12.06  的 Transport 設定為  RTP/AVP;multicast;port=1234-1235
參照 http://www.ietf.org/rfc/rfc2326.txt 的定義,port 與 client_port 都是應該支援的。 
5. ToBeContinued..


參考資料:
1.  ONVIF Feature Discovery Specification V12.06