Sip клиент за nat порт 5060 закрыт провайдером
Добавлено: 31 окт 2016, 20:53
Здравствуйте, уважаемые жители конференции.
Существует одна проблема для меня, никак не могу её решить.
Есть настроенный сервер asterisk дома на белом статическом адресе. Никаких роутеров и компьютеров-шлюзов перед ним не стоит.
Есть два sip клиента которые подключены к серверу. Один в локальной сети за роутером, который на белом динамическом ip – D-Link. Второй в локальной сети за роутером, который на сером динамическом ip - Linksys/PAP2.
С первым проблем нет, sip сигнализация и голос ходит в обе стороны нормально. Он работает со стандартным портом сервера 5060.
Не решаемая проблема для меня оказалась со вторым. Началось всё с того, я сменил провайдера с Tele2 на Yota.
Сразу же выяснилось, что то не так с портом udp 5060, поддержка наотрез отказалась признавать это. Но, факт упрямая вещь, при попытках достучаться на стандартный порт udp sip 5060, tcpdump показал гробовую тишину.
Я, имея малый опыт с такой ситуацией, не сразу догадался в чём дело, плюс ответы поддержки провайдера, упорно искал проблему на свой стороне. Наконец, решил попробовать другой порт из диапазона 1024-65535, и о, радости было….пакетики забегали, tcpdump бодро рапортовал о трафике. Следующим шагом было вернуть трафик на стандартный порт уже на сервере. Т.к. компьютер с asterisk сам является шлюзом и раздатчиком интернета по совместительству, я добавил правило в фаерволл :
$IPT -A PREROUTING -t nat -i $EXT_INT -p udp --dport 55555 -j REDIRECT --to ports 5060
Клиент сразу зарегистрировался и даже был удачный тестовый звонок и голос звучал в обе стороны. Но, радость моя омрачилась тем, что разговоры эти не долгие, 20-45сек. , кроме этого не проходит сигналы отбоя и поднятия.
Погуглив на тему, «разговор обрывается» всё сходится к тому, надо бороться с nat. Естественно это приводит к не работающей sip сигнализации о состоянии ( включение, отбой т.д.), Что в свою очередь вызывает, обрыв разговора, не известное состояние клиента ( положил трубку или нет, взял трубку или нет и т.д.)
Вот решил задать вопрос на конференции знающим людям, возможно у кого-то уже была схожая проблема и есть решение, прошу помогите уже замучился я с этим nat.
Прилагаю лог обмена с сервером asterisk обоих клиентов( второй проблемный , Linksys/PAP2)
Существует одна проблема для меня, никак не могу её решить.
Есть настроенный сервер asterisk дома на белом статическом адресе. Никаких роутеров и компьютеров-шлюзов перед ним не стоит.
Есть два sip клиента которые подключены к серверу. Один в локальной сети за роутером, который на белом динамическом ip – D-Link. Второй в локальной сети за роутером, который на сером динамическом ip - Linksys/PAP2.
С первым проблем нет, sip сигнализация и голос ходит в обе стороны нормально. Он работает со стандартным портом сервера 5060.
Не решаемая проблема для меня оказалась со вторым. Началось всё с того, я сменил провайдера с Tele2 на Yota.
Сразу же выяснилось, что то не так с портом udp 5060, поддержка наотрез отказалась признавать это. Но, факт упрямая вещь, при попытках достучаться на стандартный порт udp sip 5060, tcpdump показал гробовую тишину.
Я, имея малый опыт с такой ситуацией, не сразу догадался в чём дело, плюс ответы поддержки провайдера, упорно искал проблему на свой стороне. Наконец, решил попробовать другой порт из диапазона 1024-65535, и о, радости было….пакетики забегали, tcpdump бодро рапортовал о трафике. Следующим шагом было вернуть трафик на стандартный порт уже на сервере. Т.к. компьютер с asterisk сам является шлюзом и раздатчиком интернета по совместительству, я добавил правило в фаерволл :
$IPT -A PREROUTING -t nat -i $EXT_INT -p udp --dport 55555 -j REDIRECT --to ports 5060
Клиент сразу зарегистрировался и даже был удачный тестовый звонок и голос звучал в обе стороны. Но, радость моя омрачилась тем, что разговоры эти не долгие, 20-45сек. , кроме этого не проходит сигналы отбоя и поднятия.
Погуглив на тему, «разговор обрывается» всё сходится к тому, надо бороться с nat. Естественно это приводит к не работающей sip сигнализации о состоянии ( включение, отбой т.д.), Что в свою очередь вызывает, обрыв разговора, не известное состояние клиента ( положил трубку или нет, взял трубку или нет и т.д.)
Вот решил задать вопрос на конференции знающим людям, возможно у кого-то уже была схожая проблема и есть решение, прошу помогите уже замучился я с этим nat.
Прилагаю лог обмена с сервером asterisk обоих клиентов( второй проблемный , Linksys/PAP2)
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Код: Выделить всё
<------------>
NOTIFY sip:11@192.168.1.102:55600 SIP/2.0
Via: SIP/2.0/UDP IP_ASTER:5060;branch=z9hG4bK14999bae;rport
Max-Forwards: 70
From: "asterisk" <sip:asterisk@IP_ASTER>;tag=as050d8c74
To: <sip:11@192.168.1.102:55600>
Contact: <sip:asterisk@IP_ASTER:5060>
Call-ID: 7cae4de232f3cfe424ddaaaf66f9f8a9@IP_ASTER:5060
CSeq: 102 NOTIFY
User-Agent: Asterisk PBX 1.8.17.0
Event: message-summary
Content-Type: application/simple-message-summary
Content-Length: 89
Messages-Waiting: no
Message-Account: sip:asterisk@IP_ASTER
Voice-Message: 0/0 (0/0)
---
<--- SIP read from UDP:176.109.23.242:55600 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP IP_ASTER:5060;rport;branch=z9hG4bK14999bae
From: "asterisk" <sip:asterisk@IP_ASTER>;tag=as050d8c74
To: <sip:11@192.168.1.102:55600>;tag=e078ac3a-749023
Call-ID: 7cae4de232f3cfe424ddaaaf66f9f8a9@IP_ASTER:5060
CSeq: 102 NOTIFY
Contact: <sip:11@192.168.1.102:55600>
User-Agent: dlink 12-3868-2419-0.10.56.1-DS+
Content-Length: 0
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
<--- SIP read from UDP:188.162.51.83:58511 --->
NOTIFY sip:IP_ASTER:55555 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.177:5060;branch=z9hG4bK-a752081;rport
From: Babushka <sip:12@IP_ASTER:55555>;tag=43038928db7efc0bo0
To: <sip:IP_ASTER:55555>
Call-ID: b38c655c-1a06ad67@192.168.1.177
CSeq: 5000 NOTIFY
Max-Forwards: 70
Event: keep-alive
User-Agent: Linksys/PAP2-3.1.22(LS)
Content-Length: 0
<------------->
<--- Transmitting (NAT) to 188.162.51.83:58511 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.177:5060;branch=z9hG4bK-a752081;received=188.162.51.83;rport=58511
From: Babushka <sip:12@IP_ASTER:55555>;tag=43038928db7efc0bo0
To: <sip:IP_ASTER:55555>;tag=as6f999d20
Call-ID: b38c655c-1a06ad67@192.168.1.177
CSeq: 5000 NOTIFY
Server: Asterisk PBX 1.8.17.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer