Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2017-09-04 00:37:47 +0400

wellus Gravatar wellus

RTP vs NAT

Исходные данные.

Установлен FreePBX 14.0.1.4

он имеет реальный ip 1.1.1.1

PJSIP слушает udp 5060

на нем поднят firewall , на котором все пользователи ACCEPTятся по таким же реальным IP адресам.

НО, захотелось клиенту подключаться к АТСке с SIP приложения с мобильного, соответственно решил в инет выставить не стандартный порт 1111.

в IPTABLES прописал

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1111 -j REDIRECT --to-port 5060

сам порт 5060 открыт

iptables -A INPUT -p udp --dport 5060 -j ACCEPT

но все попытки пройти в него напрямую, DROPаются правилом

iptables -t mangle -A PREROUTING -p udp --dport 5060 -j DROP

так же в IPTABLES есть

iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

И все отлично регистрируется через порт 1111 и звонки ходят и слышимость двусторонняя, НО обрывается счастье через 30сек.

И происходит это вот по этому:

Sent RTP packet to      2.2.2.2:45287 (type 00, seq 011493, ts 2679554360, len 000160)
Got  RTP packet from    2.2.2.2:45287 (type 00, seq 015308, ts 1512771621, len 000160)
[2017-09-03 23:24:20] DEBUG[3301][C-0000004e]: res_rtp_asterisk.c:4553 ast_rtcp_interpret: RTCP NAT: Got RTCP from other end. Now sending to address 2.2.2.2:18900


Got RTCP from 2.2.2.2:18900
PT: 200(Sender Report)
Reception reports: 1
SSRC of sender: 2803779114
NTP timestamp: 1504470260.099125
RTP timestamp: 1512771701
SPC: 231    SOC: 36801
   Fraction lost: 0
   Packets lost so far: 0
   Highest sequence number: 11490
   Sequence number cycles: 0
   Interarrival jitter: 0
   Last SR(our NTP): 0.0000000000
   DLSR: 0.0000 (sec)
   RTT: 0.0000(sec)


Got RTCP from 2.2.2.2:18900
PT: 202(Unknown)
Reception reports: 1
SSRC of sender: 2803779114
Received an SDES from 2.2.2.2:18900
Sent RTP packet to      2.2.2.2:45287 (type 00, seq 011494, ts 2679554520, len 000160)
Got  RTP packet from    2.2.2.2:45287 (type 00, seq 015309, ts 1512771781, len 000160)

... и потом повторяет запросы, на которые не приходят ответы...

* Sent RTCP SR to 2.2.2.2:18900
   Our SSRC: 1126120512
   Sent(NTP): 1504470261.001613
   Sent(RTP): 2679556280
   Sent packets: 249
   Sent octets: 39840
   Report block:
     Their SSRC: 2803779114
     Fraction lost: 0
     Cumulative loss: 0
     Highest seq no: 15321
     IA jitter: 0.0054
     Their last SR: 3816036704
     DLSR: 0.2480 (sec)

Sent RTP packet to      2.2.2.2:45287 (type 00, seq 011506, ts 2679556440, len 000160)
Sent RTP packet to      2.2.2.2:45287 (type 00, seq 011507, ts 2679556600, len 000160)

Чего в моей цепочке правил в IPTABLES может не хватать?

RTP vs NAT

Исходные данные.

Установлен FreePBX 14.0.1.4

он имеет реальный ip 1.1.1.1

PJSIP слушает udp 5060

на нем поднят firewall , на котором все пользователи ACCEPTятся по таким же реальным IP адресам.

НО, захотелось клиенту подключаться к АТСке с SIP приложения с мобильного, соответственно решил в инет выставить не стандартный порт 1111.

в IPTABLES прописал

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1111 -j REDIRECT --to-port 5060

сам порт 5060 открыт

iptables -A INPUT -p udp --dport 5060 -j ACCEPT

но все попытки пройти в него напрямую, DROPаются правилом

iptables -t mangle -A PREROUTING -p udp --dport 5060 -j DROP

так же в IPTABLES есть

iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT

И все отлично регистрируется через порт 1111 и звонки ходят и слышимость двусторонняя, НО обрывается счастье через 30сек.

И происходит это вот по этому:

Sent RTP packet to      2.2.2.2:45287 (type 00, seq 011493, ts 2679554360, len 000160)
Got  RTP packet from    2.2.2.2:45287 (type 00, seq 015308, ts 1512771621, len 000160)
[2017-09-03 23:24:20] DEBUG[3301][C-0000004e]: res_rtp_asterisk.c:4553 ast_rtcp_interpret: RTCP NAT: Got RTCP from other end. Now sending to address 2.2.2.2:18900


Got RTCP from 2.2.2.2:18900
PT: 200(Sender Report)
Reception reports: 1
SSRC of sender: 2803779114
NTP timestamp: 1504470260.099125
RTP timestamp: 1512771701
SPC: 231    SOC: 36801
   Fraction lost: 0
   Packets lost so far: 0
   Highest sequence number: 11490
   Sequence number cycles: 0
   Interarrival jitter: 0
   Last SR(our NTP): 0.0000000000
   DLSR: 0.0000 (sec)
   RTT: 0.0000(sec)


Got RTCP from 2.2.2.2:18900
PT: 202(Unknown)
Reception reports: 1
SSRC of sender: 2803779114
Received an SDES from 2.2.2.2:18900
Sent RTP packet to      2.2.2.2:45287 (type 00, seq 011494, ts 2679554520, len 000160)
Got  RTP packet from    2.2.2.2:45287 (type 00, seq 015309, ts 1512771781, len 000160)

... и потом повторяет запросы, на которые не приходят ответы...длится это 30 сек, и получаю BYE.

* Sent RTCP SR to 2.2.2.2:18900
   Our SSRC: 1126120512
   Sent(NTP): 1504470261.001613
   Sent(RTP): 2679556280
   Sent packets: 249
   Sent octets: 39840
   Report block:
     Their SSRC: Got RTCP from 2.2.2.2:18900
PT: 200(Sender Report)
Reception reports: 0
SSRC of sender: 2803779114
     Fraction lost: 0
     Cumulative loss: 0
     Highest seq no: 15321
     IA jitter: 0.0054
     Their last SR: 3816036704
     DLSR: 0.2480 (sec)
NTP timestamp: 1504470298.147284
RTP timestamp: 1513076087
SPC: 2133   SOC: 341121


Got RTCP from 2.2.2.2:18900
PT: 202(Unknown)
Reception reports: 1
SSRC of sender: 2803779114
Received an SDES from 2.2.2.2:18900


Got RTCP from 2.2.2.2:18900
PT: 203(Unknown)
Reception reports: 1
SSRC of sender: 2803779114
Received a BYE from 2.2.2.2:18900

Sent RTP packet to      2.2.2.2:45287 (type 00, seq 011506, ts 2679556440, len 000160)
Sent RTP packet to      2.2.2.2:45287 (type 00, seq 011507, ts 2679556600, len 000160)

Чего в моей цепочке правил в IPTABLES может не хватать?

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.