它們之間具體有以下幾個(gè)方面的不同:
- 消息格式的不同,VIA包括對消息內容包括協(xié)議名稱(chēng),版本,傳輸方式,端口號碼,接收端口,branch 的參數等等。Record-Route則一般僅僅包括協(xié)議,IP地址,ftag和lr參數。

- 每個(gè)路徑都通過(guò)VIA添加呼叫路徑信息,返回時(shí)都會(huì )移除相應的路徑消息。
- VIA消息可以加密,Record-Route則不能加密。
- Record-Route是由proxy在request中插入header消息,支持同樣的call-id, 為了支持下一個(gè)的路由請求。
- VIA則是通過(guò)server插入request中來(lái)檢測是否產(chǎn)生loop回環(huán),幫助抵達下目的地。
以下部分介紹的是在整個(gè)呼叫路由過(guò)程中,終端得到的INVITE消息,200 OK 消息和ACK消息。這三種消息根據不同的路由路徑都發(fā)生了修改。
- VIA路由以后到返回的整個(gè)流程中,每看到一個(gè)hop就會(huì )添加一個(gè)header 記錄。反之,返回一個(gè)hop就會(huì )移除一個(gè)VIA記錄。從整個(gè)Request中,我們可以看到從Proxy 1 到 Proxy 2 , 最后抵達的VIA header 消息內容。

- Record-Route會(huì )通過(guò)Request由終端產(chǎn)生。整個(gè)處理過(guò)程中的INVITE 消息, 返回的200 OK和ACK中的參數都會(huì )有所更新。以下是經(jīng)過(guò)防火墻公網(wǎng)地址的 INVITE message:

返回的200 OK的消息, 在Contact中的地址就是Gateway的IP地址,號碼就是我們最終應答的號碼。

在回復的ACK消息中,Request-URL成為了Gateway的IP地址:

在本章節中,我們介紹了VIA和Record-Rout的區別和相應的記錄信息。在不同的路由節點(diǎn)會(huì )發(fā)生不同的變化,特別是Route的字段,通過(guò)不斷的查詢(xún)相關(guān)的URL最終找到最終呼叫號碼。用戶(hù)可以根據自己的環(huán)境來(lái)安裝PBX和企業(yè)網(wǎng)關(guān)進(jìn)行測試。
請加微信公眾號:asterisk-cn,關(guān)注有價(jià)值的行業(yè)技術(shù)分享, 訪(fǎng)問(wèn)技術(shù)論壇:www.issabel.cn/forum 獲得技術(shù)幫助。