我获得了 antisip 帐户并设置了 asterisk(假设为 PBX-A)进行注册。一切正常。但是,我尝试使用另一个 asterisk(PBX-B)进行注册。这次没有成功。PBX-A 和 PBX-B 位于 NAT 后面的同一本地网络上。
以下是在 PBX-B 上运行几个命令的结果
localhost*CLI> sip show registry
Host dnsmgr Username Refresh State Reg.Time
sip.antisip.com:5060 N username 120 Request Sent
1 SIP registrations.
localhost*CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
username/username 91.121.78.130 Yes Yes 5060 UNREACHABLE
我使用 tcpdump 检查了注册信号。PBX-B 确实向 sip 服务器发送了信号,但没有返回。
[root@localhost sysconfig]# tcpdump port 5060
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:15:00.074161 IP 192.168.1.207.sip > sip.antisip.com.sip: SIP, length: 390
16:15:04.074820 IP 192.168.1.207.sip > sip.antisip.com.sip: SIP, length: 390
16:15:06.438076 IP 192.168.1.207.sip > sip.antisip.com.sip: SIP, length: 549
我可以 ping 通 sip 服务器。
[root@localhost sysconfig]# ping sip.antisip.com
PING sip.antisip.com (91.121.78.130) 56(84) bytes of data.
64 bytes from sip.antisip.com (91.121.78.130): icmp_seq=1 ttl=47 time=169 ms
64 bytes from sip.antisip.com (91.121.78.130): icmp_seq=2 ttl=47 time=169 ms
我通过端口转发 UDP 端口 5060、10000-2000 检查它是否有效,但仍然没有成功。顺便说一句,PBX-A 在没有端口转发的情况下工作正常。然后我注意到 PBX-B 包含 iptables,所以我检查了防火墙的配置并启用了几个端口,如下所示:
[root@localhost sysconfig]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:10000:20000
2 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:5060
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
可能它没有做任何工作,因为最初所有输入都被接受了......当然,它什么也没有改变。
我对本地 PBX 使用 /etc/asterisk 下的相同配置文件。它们位于同一网络中。所以我只能想到 PBX-B 的防火墙设置。但肯定还有另一个问题。如果您能给我一些提示,我将不胜感激。
这是 sip.conf 设置。
[general]
register => username:[email protected]/username
[vivinavi]
nat=yes
insecure=port,invite
canreinvite=no
username=username
host=sip.antisip.com
fromdomain=sip.antisip.com
fromuser=username
type=friend
context=antisip
secret=pass
qualify=yes
以下是两个盒子的软件版本。PBX-A:Asterisk 11.10.2,SHMZ 版本 6.5(FreePBX 2.11.0.38)PBX-B:Asterisk 11.7.0,Ubuntu 14.04.1 LTS