我正在尝试配置 Asterisk(Elastix)盒以接收来自提供商的 SIP 呼叫,而无需allowguest=yes
在 中启用sip.conf
。
基本上,SIP 中继提供商使用多个 IP 将呼叫发送到我们的 PBX,因此如果没有匹配的host=
字段,呼叫就会中断。但是,通过启用allowguest=yes
,任何人都可以向我们的 PBX 发送呼叫。我们可以对 PBX 进行防火墙设置,只允许来自我们提供商的 SIP 传入,但这会阻止我们的 SIP 手机在世界任何地方注册。
这肯定是一个常见问题,我以前看到过 Asterisk 不支持单选host={subnet}
或多host=
选。现在还是这样吗?我该如何解决这个问题?
答案1
正确的解决方案 - 询问提供商所有 IP,并将所有 IP 添加为 trunk1-trunk2...trunkX
答案2
我认为您可以使用/子句设置host=dynamic
和限制访问,如下所示:permit
deny
[trunk]
...
host=dynamic
deny=0.0.0.0/0.0.0.0 ; deny access
permit=192.168.0.0/255.255.255.0 ; allow 192.168.0.0/24 subnet
...
另外,您可以轻松设置 iptables 链来限制对(或您的 SIP 端口)的访问5060 port
,无论如何您都应该这样做。