我有一个带有公共IP地址的Asterisk框和两个位于同一NAT设备后面的SIP客户端;我也有不同NAT的SIP客户端。我想知道Asterisk是否有可能检测两个客户端是否在同一个NAT后面并在它们之间使用直接媒体,并为不同NAT后面的客户端使用其他选项?
PS:我假设每个NAT盒子都有一个外部IP地址,这个假设对我有好处。
答案 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
...