星号直接媒体和NAT

时间:2014-02-16 10:44:18

标签: sip asterisk rtp nat

我有一个带有公共IP地址的Asterisk框和两个位于同一NAT设备后面的SIP客户端;我也有不同NAT的SIP客户端。我想知道Asterisk是否有可能检测两个客户端是否在同一个NAT后面并在它们之间使用直接媒体,并为不同NAT后面的客户端使用其他选项?

PS:我假设每个NAT盒子都有一个外部IP地址,这个假设对我有好处。

4 个答案:

答案 0 :(得分:2)

Asterisk 11.6有这个功能,看看sip.conf.example并查找directmedia部分。

答案 1 :(得分:1)

不,不可能。

原因:大多数现代路由器都有网络192.168.1.0/24,因此它会认为几乎所有客户端都在同一网络中。

但是对于某些客户来说,你可以强迫nat = never directmedia = yes。使用该设置,它将直接工作,但不能与服务器一起使用。

Optionaly你可以将vpn(openvpn?)隧道添加到你的网络,将其添加到localnet = list并使用没有NAT的直接路由。

答案 2 :(得分:0)

您可以尝试将其设置为directmedia = nonat。这样,只有当客户端不在NAT后面时才会这样做。但是,我认为它不适用于您的情况,因为您还需要与2个无用的客户端相同的NAT后面的PBX。

答案 3 :(得分:0)

我有相同的设置,它正在工作。

Asterisk 1.8中所需的配置位于sip.conf(或任何其他包含的文件)中。我输入了[general]部分:

[general]
directmediapermit=192.168.0.0/24 (local_network/netmask)
directmediadeny=0.0.0.0/0
...

在SIP设备定义中,在这种情况下,SIP电话:

[phones]
nat=no
directmedia=nonat
...