兩個VOIP相關問題

兩個 VOIP 相關問題

 

Version 0.7

2010-6-2

Server 判斷 UA 是否在 NAT

基於 Via 頭域及消息來源地址進行判斷

前提:

假定 Server 前無 NAT

假定 UA Proxy IP 地址不同。

情景分析:

基於簡單情況——如只經過一個 Proxy ——進行分析,結論可推廣到複雜情形。

1,        UA 直接連接 Server

UA 10.130.1.xxx

Server: 10.130.5.xxx

Server 收到的 SIP 消息中第一個 Var 的地址 10.130.1.xxx ;消息源地址 10.130.1.xxx

源地址與 Var 地址一致

2,        UA 通過 NAT Server

UA 10.130.1.xxx

NAT 123.x.x.x

Server: 9.x.x.x

Server 收到的 SIP 消息中第一個 Var 的地址 10.130.1.xxx ;消息源地址 123.x.x.x

Var 是一個私網地址,源地址爲 NAT 的公網地址

源地址與 Var 地址不一致

3,        UA 通過 Proxy Server

UA 10.130.1.xxx

Proxy 10.130.2.xxx

Server: 10.x.x.x

Server 收到的 SIP 消息中第一個 Var 的地址 10.130.2.xxx ,第二個 var 的地址 10.130.1.xxx ;消息源地址 10.130.2.xxx

源地址與第一個 Var 相同

4,        UA 通過 NAT+Proxy Server

UA 10.130.1.xxx

NAT 123.x.x.x

Proxy 7.130.2.xxx

Server: 9.x.x.x

Server 收到的 SIP 消息中第一個 Var 的地址 7.130.2.xxx ,第二個 var 的地址 10.130.1.xxx ;消息源地址 7.130.2.xxx

源地址與第一個 Via 相同

有時需要區分 3/4 兩種情形,即使 proxy 支持信令穿透。例如爲支持兩個 UA 之間媒體直達

判斷方法:如果多個 via 中同時有公網地址和私網地址,則認爲存在 NAT

5,        UA 通過 Proxy+NAT Server

UA 10.130.1.xxx

Proxy 10.130.2.xxx

NAT 123.x.x.x

Server: 9.x.x.x

Server 收到的 SIP 消息中第一個 Var 的地址 10.130.2.xxx ,第二個 var 的地址 10.130.1.xxx ;消息源地址 123.x.x.x

源地址與所有的 Via 都不同

 

6,        Proxy NAT

UA 122.x.x.x

NAT 123.x.x.x

Proxy 10.130.2.xxx

Server: 9.x.x.x

Server 收到的 SIP 消息中第一個 Var 的地址 10.130.2.xxx ,第二個 var 的地址 122.x.x.x ;消息源地址 123.x.x.x

可以在 NAT 上做靜態端口映射以支持該場景

源地址與所有 Via 都不同

非典型情形,暫不考慮

結論:

1,  如果源地址與第一個 via 不同,則認爲存在 NAT ;否則:

2,  如果多個 via 中同時有公網地址和私網地址,則認爲存在 NAT ;否則:

3,  認爲不存在 NAT

 

SIP UA 媒體可直達的判斷

從服務器判斷兩 UA 媒體是否可直達,不考慮服務器在私網而 UA 在公網的場景

媒體可直達的條件:

UA 都在公網,或在同一私網,或一 UA 在公網且支持 NAT 穿透

情景分析:

1,        服務器在公網, UA 都在私網

要求兩 UA 在同一私網

判斷方法:兩 UA 的公網地址一樣——這樣要求它們通過同一個 NAT 到達 server

TBC :未找到更好辦法以克服上述限制;

TBC :使用 ADSL 上網時貓的公網地址是否會被電信動態改變?如果會該怎麼處理?

2,        服務器在公網,一 UA 在公網

要求該 UA 支持 NAT 穿透,例如採取 SBC 的方式。

判斷方法:服務器檢查 UA 是否在 NAT 後。

3,        三者都在公網或私網

判斷方法:服務器沒有發現任何 NAT

結論:

服務器沒有發現任何 NAT ,或兩 UA 來自同一公網地址時媒體可直達。

如果服務器發現某一 UA 未經過 NAT ,則滿足一定條件時可媒體直達。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章