Добрый день.
В локальной сети есть мини-АТС Panasonic TDE200. К ней внутри сети подключены пользователи по sip. Нужно подключить внешних sip-юзеров.
На шлюзе(FreeBSD) пробросил порт 5060 и 10000-20000 на АТС.
Оказалось не достаточно. Установил siproxd.
И то ли настроить его не могу правильно то ли он заточен выполнять обратную операцию - внутренних СИП-клиентов наружу выпускать.
Еще слышал что есть следующие сиппрокси: OpenSER, Asterisk. Решал ли кто подобную задачу? Если да то чем и как? Посоветуйте. Помогите. Спасибо.
> Добрый день.
> В локальной сети есть мини-АТС Panasonic TDE200. К ней внутри сети подключены
> пользователи по sip. Нужно подключить внешних sip-юзеров.
> На шлюзе(FreeBSD) пробросил порт 5060 и 10000-20000 на АТС.
> Оказалось не достаточно. Установил siproxd.
> И то ли настроить его не могу правильно то ли он заточен
> выполнять обратную операцию - внутренних СИП-клиентов наружу выпускать.
> Еще слышал что есть следующие сиппрокси: OpenSER, Asterisk. Решал ли кто подобную
> задачу? Если да то чем и как? Посоветуйте. Помогите. Спасибо.Можно, конечно,и Asterisk использовать в качестве прокси. Только это стрельба из пушки по воробьям. А что не проходит: SIP-сигнализация или RTP трафик? Можете ли вы это выяснить?
> Можно, конечно,и Asterisk использовать в качестве прокси. Только это стрельба из пушки
> по воробьям. А что не проходит: SIP-сигнализация или RTP трафик? Можете
> ли вы это выяснить?Думаю что даже сигнализация не проходит. Иначе на АТС было бы отмечено IP регистрации клиента. Не так ли? Да и tcpdump на внутреннем интерфейсе пустой.
Играюсь с siproxd.
Схема следующая у меня:SIP-клиент(SJPhone)[w.x.y.z] --- Интернет --- [W.X.Y.Z]Шлюз(FreeBSD,PF,siproxd)[192.168.11.2] --- [192.168.11.61]АТС(TDE-200)
Как указать siproxd слать весь трафик извне на АТС?
То, что не проходит сигнализация, странно. Обычно она работает без проблем. Посмотрите, может вы TCP пробрасываете, а SIP по UDP идет?
P.S. Есть хорошая информация по Asteriks`у за NAT`ом http://www.voip-info.org/wiki/view/Asterisk+SIP+NAT+solutions. Посмотрите, может чего и для вашего случая пригодится.
А нужно ли редиректить (пробрасывать) трафик с наружи на внутренний IP-адрес АТС с помощью PF или нужно просто его принимать а sip-прокси уже сам должен его перенаправить на АТС?..За ссылку спасибо. Сейчас попробую изучить.
> А нужно ли редиректить (пробрасывать) трафик с наружи на внутренний IP-адрес АТС
> с помощью PF или нужно просто его принимать а sip-прокси уже
> сам должен его перенаправить на АТС?..
> За ссылку спасибо. Сейчас попробую изучить.Надо либо пробрасывать порты на шлюзе на внутренний адрес АТС, либо ставить какой-то прокси, который будет принимать звонки на внешнем интерфейсе, и переводить их на АТС. Попробуйте сначала первый вариант. Как это будет в PF не скажу, но для iptables правило следующее:
iptables -t nat -A PREROUTING -p udp -m multiport --dport 5060,10000:20000 -j DNAT --to-destination $SIP_SRV_LAN_IP , где $SIP_SRV_LAN_IP - внутренний адрес АТС. Сначала надо добиться, чтобы работала сигнализация. Далее могут быть проблемы с прохождением RTP. Но это уже будет другая история.А второй вариант - использование прокси (например, Asterisk).
AOS ты из Киева, Ved****
> AOS ты из Киева, Ved****Да, а что?
Кажется работали вместе.
> Кажется работали вместе.прикольно. и где же?
>> Кажется работали вместе.
> прикольно. и где же?Я во Львовском филиале, ты в Киевском.
> iptables -t nat -A PREROUTING -p udp -m multiport --dport 5060,10000:20000 -j
> DNAT --to-destination $SIP_SRV_LAN_IP , где $SIP_SRV_LAN_IP - внутренний адрес АТС. Сначала
> надо добиться, чтобы работала сигнализация. Далее могут быть проблемы с прохождением
> RTP. Но это уже будет другая история.
> А второй вариант - использование прокси (например, Asterisk).Я под АТС выделял отдельный ip адрес и пробрасывал весь трафик на АТС.
pf.conf:
nat on $ext_if from $voip_int -> $voip_ext
rdr on $ext_if proto udp to $voip_ext -> $voip_int
Это мне не помогло.
Что значит "работает сигнализация" это значит что клиент может регистрироваться на АТС?
> Что значит "работает сигнализация" это значит что клиент может регистрироваться на АТС?Хотя бы.
Попробуйте зарегистрироваться на АТС каким-либо софтовым клиентом, посмотрите логи.
Поднимите statik nat, транслироватся должно 1 в 1, тогда посмотрите сигнализацию,
RTP пакеты сильно не любят когда ему меняют заголовок.
Вот тут еще немного.
http://users.i.com.ua/~sipnet/NAT0.htm
> Вот тут еще немного.
> http://users.i.com.ua/~sipnet/NAT0.htmУпростил конфиг до минимального по части VoIP:
===========================
nat on $ext_if from $voip_int -> $voip_ext static-port #натим АТС на внешний IP
nat on $ext_if from $lan_net -> $voip_ext #вся локальная сетка тоже натится на этот внешний IPrdr on $ext_if proto udp to $voip_ext port { 5060 10000:20000 } -> $voip_int # перенаправляем Voip-трафик на АТС
pass on {$int_if $ext_if} proto {tcp udp} from any to any port {5060 10000:20000} разрешаем ходить Voip-трафику в любую сторону.
==========================
Вроде все правильно. Но внешний сип-клиент (даже с честным IP) все же не может регистрироваться на АТС... И должен ли? Может без прокси никак?
> Вроде все правильно. Но внешний сип-клиент (даже с честным IP) все же
> не может регистрироваться на АТС... И должен ли? Может без прокси
> никак?Если ваш свитч поддерживает зеркалирование портов, настройте зеркалирование с порта
АТС на ваш и посмотрите вывод tcpdump. Пакеты извне вообще до АТС доходят?
> Если ваш свитч поддерживает зеркалирование портов, настройте зеркалирование с порта
> АТС на ваш и посмотрите вывод tcpdump. Пакеты извне вообще до АТС
> доходят?Зеркалирование портов это сложновато в моем случае. Я и АТС воткнуты в разные свичи. Да и один из них не "умный".
Я запустил tcpdump на внутреннем интерфейсе:
[root@hq-gate ~]$ tcpdump -i bge0 src or dst host 192.168.11.61 and port 5060
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bge0, link-type EN10MB (Ethernet), capture size 96 bytes
11:05:07.072987 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:07.084084 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 349
11:05:07.274346 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:07.284354 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 348
11:05:07.554450 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:07.564455 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 349
11:05:27.690520 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:27.700525 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 349
11:05:27.930172 IP 247-115-92-178.pool.ukrtel.net.sip > 192.168.11.61.sip: SIP, length: 405
11:05:27.940212 IP 192.168.11.61.sip > 247-115-92-178.pool.ukrtel.net.sip: SIP, length: 349
или более-расширено:
[root@hq-gate ~]$ tcpdump -n -vvv -X -i bge0 src or dst host 192.168.11.61 and port 5060
tcpdump: listening on bge0, link-type EN10MB (Ethernet), capture size 96 bytes
11:11:03.359694 IP (tos 0x0, ttl 120, id 342, offset 0, flags [none], proto UDP (17), length 433, bad cksum 0 (->4dad)!) 178.92.115.247.5060 > 192.168.11.61.5060: SIP, length: 405
REGISTER sip:W.X.Y.Z SIP/2.0
Via: SIP/2.0/UDP \000\000\247b\367L\243\244\005\000`\000\000\000\207\001\000\000\022\000\000\015\235\232\336X\000\200\360?\305\212\010\000E\000\001y\006\270\000\000@\021\200\203\300\250\013=\262\s\367\023\304\023\304\001eA\212SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 178.92.115.247\000\000\247b\367L\006#\011\000`\000\000\000\277\001\000\000\022\000\000\200\360?\305\212\000\015\235\232\336X\010\000E\000\001\261\001W\000\000x\021\000\000\262\s\367\300\250\013=\023\304\023\304\001\235\265\341REGISTER sip:W.X.Y.Z SIP/2.0
Via: SIP/2.0/UDP \000\000\247b\367L9J\011\000`\000\000\000\207\001\000\000\022\000\000\015\235\232\336X\000\200\360?\305\212\010\000E\000\001y\006\271\000\000@\021\200\202\300\250\013=\262\s\367\023\304\023\304\001e8\206SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 178.92.115.247\000\000\000
0x0000: 5245 4749 5354 4552 2073 6970 3a39 332e
0x0010: 3138 332e 3139 392e 3133 3020 5349 502f
0x0020: 322e 300d 0a56 6961 3a20 5349 502f 322e
0x0030: 302f 5544 5020
0x0000: 4500 01b1 0156 0000 7811 0000 b25c 73f7 E....V..x....\s.
0x0010: c0a8 0b3d 13c4 13c4 019d b5e1 5245 4749 ...=........REGI
0x0020: 5354 4552 2073 6970 3a39 332e 3138 332e STER.sip:W.X.
0x0030: 3139 392e 3133 3020 5349 502f 322e 300d Y.Z.SIP/2.0.
0x0040: 0a56 6961 3a20 5349 502f 322e 302f 5544 .Via:.SIP/2.0/UD
0x0050: 5020 P.
11:11:03.369827 IP (tos 0x0, ttl 64, id 1720, offset 0, flags [none], proto UDP (17), length 377) 192.168.11.61.5060 > 178.92.115.247.5060: SIP, length: 349
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 178.92.115.247\000\000\247b\367L\006#\011\000`\000\000\000\277\001\000\000\022\000\000\200\360?\305\212\000\015\235\232\336X\010\000E\000\001\261\001W\000\000x\021\000\000\262\s\367\300\250\013=\023\304\023\304\001\235\265\341REGISTER sip:W.X.Y.Z SIP/2.0
Via: SIP/2.0/UDP \000\000\247b\367L9J\011\000`\000\000\000\207\001\000\000\022\000\000\015\235\232\336X\000\200\360?\305\212\010\000E\000\001y\006\271\000\000@\021\200\202\300\250\013=\262\s\367\023\304\023\304\001e8\206SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 178.92.115.247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
0x0000: 5349 502f 322e 3020 3430 3320 466f 7262
0x0010: 6964 6465 6e0d 0a56 6961 3a20 5349 502f
0x0020: 322e 302f 5544 5020 3137 382e 3932 2e31
0x0030: 3135 2e32 3437
0x0000: 4500 0179 06b8 0000 4011 8083 c0a8 0b3d E..y....@......=
0x0010: b25c 73f7 13c4 13c4 0165 418a 5349 502f .\s......eA.SIP/
0x0020: 322e 3020 3430 3320 466f 7262 6964 6465 2.0.403.Forbidde
0x0030: 6e0d 0a56 6961 3a20 5349 502f 322e 302f n..Via:.SIP/2.0/
0x0040: 5544 5020 3137 382e 3932 2e31 3135 2e32 UDP.178.92.115.2
0x0050: 3437 47
11:11:03.598790 IP (tos 0x0, ttl 120, id 343, offset 0, flags [none], proto UDP (17), length 433, bad cksum 0 (->4dac)!) 178.92.115.247.5060 > 192.168.11.61.5060: SIP, length: 405
REGISTER sip:W.X.Y.Z SIP/2.0
Via: SIP/2.0/UDP \000\000\247b\367L9J\011\000`\000\000\000\207\001\000\000\022\000\000\015\235\232\336X\000\200\360?\305\212\010\000E\000\001y\006\271\000\000@\021\200\202\300\250\013=\262\s\367\023\304\023\304\001e8\206SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 178.92.115.247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
0x0000: 5245 4749 5354 4552 2073 6970 3a39 332e
0x0010: 3138 332e 3139 392e 3133 3020 5349 502f
0x0020: 322e 300d 0a56 6961 3a20 5349 502f 322e
0x0030: 302f 5544 5020
0x0000: 4500 01b1 0157 0000 7811 0000 b25c 73f7 E....W..x....\s.
0x0010: c0a8 0b3d 13c4 13c4 019d b5e1 5245 4749 ...=........REGI
0x0020: 5354 4552 2073 6970 3a39 332e 3138 332e STER.sip:W.X.
0x0030: 3139 392e 3133 3020 5349 502f 322e 300d Y.Z.SIP/2.0.
0x0040: 0a56 6961 3a20 5349 502f 322e 302f 5544 .Via:.SIP/2.0/UD
0x0050: 5020 P.
11:11:03.608825 IP (tos 0x0, ttl 64, id 1721, offset 0, flags [none], proto UDP (17), length 377) 192.168.11.61.5060 > 178.92.115.247.5060: SIP, length: 349
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 178.92.115.247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
0x0000: 5349 502f 322e 3020 3430 3320 466f 7262
0x0010: 6964 6465 6e0d 0a56 6961 3a20 5349 502f
0x0020: 322e 302f 5544 5020 3137 382e 3932 2e31
0x0030: 3135 2e32 3437
0x0000: 4500 0179 06b9 0000 4011 8082 c0a8 0b3d E..y....@......=
0x0010: b25c 73f7 13c4 13c4 0165 3886 5349 502f .\s......e8.SIP/
0x0020: 322e 3020 3430 3320 466f 7262 6964 6465 2.0.403.Forbidde
0x0030: 6e0d 0a56 6961 3a20 5349 502f 322e 302f n..Via:.SIP/2.0/
0x0040: 5544 5020 3137 382e 3932 2e31 3135 2e32 UDP.178.92.115.2
0x0050: 3437 47
это была запись tcpdump в момент попытки регистрации клиента на АТС.W.X.Y.Z - Это внешний адрес шлюза (и АТС)
192,168,11,61 - внутренний адрес АТС
178.92.115.247 - адрес внешнего клиента, что пытался зарегистрироваться на АТСВидимо все же АТС передает клиенту свой внутренний IP. В результате имеем какую-то "bad cksum ":
11:11:03.598790 IP (tos 0x0, ttl 120, id 343, offset 0, flags [none], proto UDP (17), length 433, bad cksum 0 (->4dac)!) 178.92.115.247.5060 > 192.168.11.61.5060: SIP, length: 405
REGISTER sip:W.X.Y.Z SIP/2.0И потом АТС отвечает(Forbidden..):
E..y....@......=
.\s......e8.SIP/
2.0.403.Forbidde
n..Via:.SIP/2.0/
UDP.178.92.115.2
>[оверквотинг удален]
> 11:11:03.598790 IP (tos 0x0, ttl 120, id 343, offset 0, flags [none],
> proto UDP (17), length 433, bad cksum 0 (->4dac)!) 178.92.115.247.5060 >
> 192.168.11.61.5060: SIP, length: 405
> REGISTER sip:W.X.Y.Z SIP/2.0
> И потом АТС отвечает(Forbidden..):
> E..y....@......=
> .\s......e8.SIP/
> 2.0.403.Forbidde
> n..Via:.SIP/2.0/
> UDP.178.92.115.2А В АТС есть возможность логи посмотреть?