两个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 ,则满足一定条件时可媒体直达。

 

 

阅读更多
个人分类: NGN
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭