Успешно зарегистрировать SIP на одном хосте, но на другом хосте в той же локальной сети
Я приобрёл учетную запись антисипа и настроил звездочку (скажем, PBX-A) для регистрации. Работало нормально. Однако я попытался сделать это с другой звездочкой (УАТС-B). Не повезло на этот раз. PBX-A и PBX-B находятся в одной локальной сети за NAT.
Вот результат нескольких команд на АТС-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, чтобы проверить сигнал регистрации. УАТС-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
Я могу пинговать к 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
Вероятно, он не выполняет никакой работы, поскольку изначально был принят весь INPUT... И, конечно, это ничего не меняет.
Я использую тот же файл conf в /etc/asterisk для локальных АТС. Они находятся в одной сети. Так что я могу только придумать, является ли настройка брандмауэра PBX-B. Но все же должна быть другая проблема. Я очень признателен, если вы дадите мне несколько советов по этому вопросу.
Вот настройка sip.conf.
[general]
register => username:pass@sip.antisip.com/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
Ниже приведены версии программного обеспечения обеих коробок. УАТС-A: Asterisk 11.10.2, SHMZ версии 6.5 (FreePBX 2.11.0.38) УАТС-B: Asterisk 11.7.0, Ubuntu 14.04.1 LTS