2013年8月28日 星期三

ONVIF Ws-discovery

自從發表了ONVIF Ws-discovery一文,認為應該有有進一步的解說,筆者當初在開發Onvif時,最難的不是Device Service,而是Test tool怎麼都發現不到我寫的設備(可參閱上一篇Onvif一二事)。

於是找了Ws-discovery的說明書後,發現只要根據下列幾個原則,Test tool即可發現符合Onvif規定的設備了,一定要先被發現,之後才能做服務嘛‥萬事起頭難。

說簡單也簡單,Ws-discovery採取廣播的方式來尋找設備,廣播位址為:239.255.255.250,port :3702

回應時需注意下列幾個注意事項:
1.設備服務的ID值:(請自行產生)
EndpointReference.Address = "532E5B51-6579-40f0-A79E-51394EDD1744"

2.產品的名稱
ProbeMatch->Scopes->item =  "onvif://www.onvif.org/type/video_encoder onvif://www.onvif.org/type/audio_encoder onvif://www.onvif.org/name/virtual-ipcam onvif://www.onvif.org/location/Taipei"

3.這個裝置是在Onvif分類上的哪一個大類
ProbeMatch->Types =  "dn:NetworkVideoTransmitter"

4.此裝置提供服務的實體位址
ProbeMatches->ProbeMatch->XAddrs =  "http://192.168.3.100/onvif/service"

5.每次回應時都要重產生一個Message ID
soap->header->wsa__MessageID = "uuid:urn:uuid:532E5B51-6579-40f0-A79E-51394EDD1734"

以下是範例程式執行時的畫面:ws_discovery.exe "主機IP", 此時將會聽取來 239.255.255.250:3702的訊息。


然後,再執行Onvif官方的Test Tool,執行後請按[Discovery] 鍵,如下畫面:
則會偵測到我們ws_discovery.exe發出來的回應訊息。
此時表示我們這個虛擬的Onvif設備已經被TestTool找到了。

原始碼下載點:
https://docs.google.com/file/d/0B69QoydOaKOrX29FcFR6WHdWUjg/edit?usp=sharing









沒有留言:

張貼留言