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