Чат  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Sip клиент за nat порт 5060 закрыт провайдером

Общие вопросы по операционной системе

Модератор: april22

Sip клиент за nat порт 5060 закрыт провайдером

Сообщение Andrey68 » 31 окт 2016, 21: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)
[Показать] Спойлер:
Код: выделить все
<------------>
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
Если ты поисковик - готовься к насилию...
Аватар пользователя
Andrey68
 
Сообщений: 15
Зарегистрирован: 31 окт 2016, 21:43
Откуда: Россия,Мордовмя,Саранск

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение april22 » 01 ноя 2016, 07:38

Vpn?
Нет?
Поставте там где у Вас пат2т например микротик и натяните к серверу vpn.
Своими вопросами , вы загоняете меня в ГУГЛЬ.
april22
 
Сообщений: 2124
Зарегистрирован: 09 июл 2012, 09:47

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение ded » 01 ноя 2016, 13:02

я добавил правило в фаерволл :

$IPT -A PREROUTING -t nat -i $EXT_INT -p udp --dport 55555 -j REDIRECT --to ports 5060
не надо этого.
Надо просто забиньдить chan_sip на другой порт, пусть ваш 55555 в sip.conf
bindport=55555
убедиться - проверить
netstat | grep asterisk

И удалённым SIP клиентам регистрироваться на ваш белый_ИП:55555
ded
 
Сообщений: 14498
Зарегистрирован: 26 авг 2010, 19:00

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение Zavr2008 » 01 ноя 2016, 14:31

а если transport=tcp?
SIP/E1 шлюзы Alvis. Форумчанам - скидки, Asterisk/FreePBX/MikoPBX + TDA/LDK/Avaya/HiPath/NEC и др. + Bitrix24/1C CRM! COVID-19: Помогаем переводу телефонии на удаленку !!!
Аватар пользователя
Zavr2008
 
Сообщений: 1612
Зарегистрирован: 27 янв 2011, 01:35

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение ded » 01 ноя 2016, 15:32

Zavr2008, думаешь провайдер такой лопух, что закрыл 5060 UDP, а про ТСР забыл?
ded
 
Сообщений: 14498
Зарегистрирован: 26 авг 2010, 19:00

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение Zavr2008 » 01 ноя 2016, 16:54

почему-то думаю что так и есть)
SIP/E1 шлюзы Alvis. Форумчанам - скидки, Asterisk/FreePBX/MikoPBX + TDA/LDK/Avaya/HiPath/NEC и др. + Bitrix24/1C CRM! COVID-19: Помогаем переводу телефонии на удаленку !!!
Аватар пользователя
Zavr2008
 
Сообщений: 1612
Зарегистрирован: 27 янв 2011, 01:35

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение virus_net » 01 ноя 2016, 18:07

ded, да вполне может быть.
В практике встречал даже что TCP 5060 закрыт, а UDP при этом работает. По звонку прову они вообще были шокированы тем, что оно ещё и по UDP работает, т.к. "как так... вот ведь у нас в офисе по TCP!"
Вот так вот :)
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2320
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение Andrey68 » 02 ноя 2016, 00:06

ded писал(а):

я добавил правило в фаерволл :

$IPT -A PREROUTING -t nat -i $EXT_INT -p udp --dport 55555 -j REDIRECT --to ports 5060
не надо этого.
Надо просто забиньдить chan_sip на другой порт, пусть ваш 55555 в sip.conf
bindport=55555
убедиться - проверить
netstat | grep asterisk

И удалённым SIP клиентам регистрироваться на ваш белый_ИП:55555


Согласен, пробывал, но эти D-Link-и вечно убогие и не доделанные. Мне как раз такой попался, не знает что такое подключаться на не стандартный порт. Вот и выкручиваюсь как то "животное на гребешке".
Пока подключил по pptp на OpenWrt дело пустяшное, но блин товарищи это опять костыль. Думаю щас вот вернуть на проблемном клиенте стандартный порт, а завернуть трафик уже iptables OpenWrt на роутере сначало со стандартного на 55555, на сервере правило оставить, то которое заворачивает с 55555 на 5060.
Потом отпишусь.
Если ты поисковик - готовься к насилию...
Аватар пользователя
Andrey68
 
Сообщений: 15
Зарегистрирован: 31 окт 2016, 21:43
Откуда: Россия,Мордовмя,Саранск

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение Zavr2008 » 02 ноя 2016, 18:43

$IPT -A PREROUTING -t nat -i $EXT_INT -p udp --dport 55555 -j REDIRECT --to ports 5060

ТС, ded Вам не просто так написал про bindport вместо хрени что нарисовали. Используйте DNAT вместо REDIRECT.
А еще лучше - совет dedа без выкрутасов.


Код: выделить все
iptables -t nat -A PREROUTING -i $EXT_INT -p udp --dport 55555 -j DNAT --to 192.168.xxx.xxx:5060
SIP/E1 шлюзы Alvis. Форумчанам - скидки, Asterisk/FreePBX/MikoPBX + TDA/LDK/Avaya/HiPath/NEC и др. + Bitrix24/1C CRM! COVID-19: Помогаем переводу телефонии на удаленку !!!
Аватар пользователя
Zavr2008
 
Сообщений: 1612
Зарегистрирован: 27 янв 2011, 01:35

Re: Sip клиент за nat порт 5060 закрыт провайдером

Сообщение yvatfwp » 02 ноя 2016, 19:13

Офтоп: Что-то у вас с разметкой странное http://i85.fastpic.ru/big/2016/1102/5f/181d30c698b0fc4d8474eae8f250215f.png
yvatfwp
 
Сообщений: 69
Зарегистрирован: 27 окт 2015, 12:50

След.

Вернуться в Linux

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

© 2008 — 2020 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH