[Asterisk][nat] Проблемы с RTP-трафиком.
Доброго времени суток.
Начинаю изучать * и требуется тестовая конфигурация. Стоит версия 1.6.2.10 внутри сети, с IP=192.168.1.205.
Проброшены порты как изнутри во внешний, так и обратно:
Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 287 64342 ACCEPT udp -- eth1 eth2 192.168.1.205 0.0.0.0/0 multiport ports 5060,10000:10005 state NEW 0 0 ACCEPT udp -- eth2 * 0.0.0.0/0 192.168.1.205 multiport dports 5060,10000:10005 state NEW
+
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 DNAT udp -- * * 0.0.0.0/0 213.33.214.174 multiport dports 5060,10000:10005 to:192.168.1.205
где eth1 — интерфейс внутренней сети, eth2 — внешней.
Ради теста, с такого IP соединялись софтофоном на зарегистрированный заранее аккаунт на sipnet.ru. Всё работает без проблем, внешние городские номера доступны.
Для *-box были сделаны вот такие конфиги: sip.conf
[general] context=default allowoverlap=no bindport=5060 bindaddr=0.0.0.0 srvlookup=yes localnet=192.168.1.0/24 externip=re.al.ad.dr register=sipnetID:pass@sipnet.ru/sipnetID [1000] type=friend context=phones host=dynamic defaultuser=1000 secret=qwerty ;;; SIPNET [sipnet1] type=friend defaultuser=sipnetID secret=pass host=sipnet.ru nat=yes fromuser=sipnetID fromdomain=sipnet.ru dtmfmode=rfc2833 disallow = all allow = alaw allow = ulaw allow = g729 insecure=invite context=incomig_calls
и extensions.conf
[globals] [general] autofalltrough=yes [default] exten => s,1,Verbose(1,Unrouted call handler) exten => s,n,Answer() exten => s,n,Wait(1) exten => s,n,Playback(tt-weasels) exten => s,n,Hungup() [incomig_calls] exten => _X.,1,NoOp() exten => _X.,n,Dial(SIP/1000) [outgoing_calls] exten => _X.,1,NoOp() exten => _X.,n,Dial(SIP/sipnet1/${EXTEN}) [internal] exten => 500,1,Verbose(1,Echo test application) exten =>> 500,n,Echo() exten => 500,n,Hangup() [phones] include => internal include=outgoing_calls
rtp.conf
[general] rtpstart=10000 rtpend=10005
Изнутри сети пытаюсь подключиться к этому, внутреннему, *-box, всё проходит замечательно. Тестовый звонок на номер 500 отрабатывается, всё слышно и тд и тп. Помимо прочего, сам * регистрируется на sipnet.ru и в списке подключенного оборудования он там появляется.
Теперь, пытаюсь сделать звонок с софтофона на внешние номера, через sipnet1, зарегистрированный на *, соответственно. Набираю нужный номер вида 7495ХХХХХХХ и… получаю отлуп.
Проблема, как оказалось, кроется в том, что несмотря на то, что соединения по порту 5060 проходят через *-box, RTP-трафик почему-то не через него направляется, а пытается напрямую выйти:
firewall/drop.log:Aug 10 15:21:31 gate kernel: [8282327.254331] DROP IN=eth1 OUT=eth2 SRC=192.168.1.10 DST=212.53.35.244 LEN=200 TOS=0x00 PREC=0x00 TTL=127 ID=42313 PROTO=UDP SPT=10002 DPT=47320 LEN=180 firewall/drop.log:Aug 10 15:21:31 gate kernel: [8282327.267756] DROP IN=eth1 OUT=eth2 SRC=192.168.1.10 DST=212.53.35.244 LEN=188 TOS=0x00 PREC=0x00 TTL=127 ID=42315 PROTO=UDP SPT=10003 DPT=47321 LEN=168
, тут SRC=192.168.1.10 — адрес хоста с софтофоном.
Поскольку, у меня политика по умолчанию для неотмеченных специально пакетов — DROP, то, соответственно, пакеты от 192.168.1.10 дропаются.
Пробовал в софтофоне использовать в качестве прокси *, не помогло.
У меня вопрос: как заставить не только SIP-трафик по порту 5060, но и RTP-трафик ходить через *-box?
- Для комментирования войдите или зарегистрируйтесь