它們之間具體有以下幾個方面的不同:
- 消息格式的不同,VIA包括對消息內(nèi)容包括協(xié)議名稱,版本,傳輸方式,端口號碼,接收端口,branch 的參數(shù)等等。Record-Route則一般僅僅包括協(xié)議,IP地址,ftag和lr參數(shù)。
- 每個路徑都通過VIA添加呼叫路徑信息,返回時都會移除相應(yīng)的路徑消息。
- VIA消息可以加密,Record-Route則不能加密。
- Record-Route是由proxy在request中插入header消息,支持同樣的call-id, 為了支持下一個的路由請求。
- VIA則是通過server插入request中來檢測是否產(chǎn)生loop回環(huán),幫助抵達下目的地。
以下部分介紹的是在整個呼叫路由過程中,終端得到的INVITE消息,200 OK 消息和ACK消息。這三種消息根據(jù)不同的路由路徑都發(fā)生了修改。
1、VIA路由以后到返回的整個流程中,每看到一個hop就會添加一個header 記錄。反之,返回一個hop就會移除一個VIA記錄。從整個Request中,我們可以看到從Proxy 1 到 Proxy 2 , 最后抵達的VIA header 消息內(nèi)容。
2、Record-Route會通過Request由終端產(chǎn)生。整個處理過程中的INVITE 消息, 返回的200 OK和ACK中的參數(shù)都會有所更新。以下是經(jīng)過防火墻公網(wǎng)地址的 INVITE message:
返回的200 OK的消息, 在Contact中的地址就是Gateway的IP地址,號碼就是我們最終應(yīng)答的號碼。
在回復(fù)的ACK消息中,Request-URL成為了Gateway的IP地址:
在本章節(jié)中,我們介紹了VIA和Record-Rout的區(qū)別和相應(yīng)的記錄信息。在不同的路由節(jié)點會發(fā)生不同的變化,特別是Route的字段,通過不斷的查詢相關(guān)的URL最終找到最終呼叫號碼。用戶可以根據(jù)自己的環(huán)境來安裝PBX和企業(yè)網(wǎng)關(guān)進行測試。
請加微信公眾號:asterisk-cn,關(guān)注有價值的行業(yè)技術(shù)分享, 訪問技術(shù)論壇:www.issabel.cn/forum 獲得技術(shù)幫助。