2014-02-16 82 views
2

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

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

回答

2

Asterisk 11.6具有此功能可以查看sip.conf.example并查找directmedia部分。

+0

directmedia将为所有人做到这一点。所以不像主题创始人想要的那样。 – arheops

1

不,不可能。

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

但是你可以强制nat =从不directmedia =是的一些客户端。有了这些设置,它将直接工作,但不会与服务器一起工作。

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

+0

难道就没有可能为Asterisk从同一NAT使用检测客户端NAT盒的公网IP地址?例如,如果两个客户端具有相同的公共IP地址,则它们位于相同的NAT后面。 – user278740

+0

没有这样的实现。你可以添加/询问其他人添加。估计专家工作时间接近1周的复杂度(100 + usd/hr) – arheops

+0

Thx太多了。 ;-) – user278740

0

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

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 
...