LINUX.ORG.RU

sip и iptables

 , ,


0

1

Есть 2 sip клиента в локальной сети за натом и внешний sip сервер. На роутере (внешний адрес R) включен conntrack для sip и h323.

Проблема в том, что sip сервер видит клиентов по адресам R:1111 и R:2222 и сообщает их им. В результате клиенты ломятся друг к другу через роутер.

Я не надеюсь, что они прочухают, что сеть одна и пойдут напрямую. Мне бы что-то сделать с файрволом, чтобы он в таких случаях нормально форвардил трафик и внутрь локальной сети тоже.

Хотя я в voip ничего не соображаю и возможно «в реальности всё не так как на самом деле».

★★★★★

Я не надеюсь, что они прочухают, что сеть одна и пойдут напрямую.

Если найти нормальные SIP-клиенты с поддержкой ICE (RFC 5245), то прочухают. В WebRTC (подсистема продвинутых браузеров, есть в FF и Chrome) это есть.

Мне бы что-то сделать с файрволом, чтобы он в таких случаях нормально форвардил трафик и внутрь локальной сети тоже.

В общем случае не получится, т. к. в моде SIP over TLS и в случае зашифрованного канала связи роутер не прочитает сигнальный траффик вообще.

Во-вторых, SIP-сервер может делать что-то более умное, чем простой форвардинг пакетов от абонентов, и без посредничества сервера при обмене пакетов бывает не обойтись.

Резюмируя: забей.

Andrey_Utkin ★★ ()
Ответ на: комментарий от Andrey_Utkin

А вообще есть истории успеха с нормальным sip решением, чтоб можно было поставить в телефон и он нормально работал из любого места?

Что-то с хауту какая-то беда.

sergej ★★★★★ ()

Не понял. Надо, чтобы RTP-трафик не через внешний сервер ходил, а внутри локальной сети? Если да, то смотри параметр directmedia.

Alternating_Current ()
Ответ на: комментарий от sergej

Историй успеха полно, только по большей части у профессиональных VoIP-админов.

Andrey_Utkin ★★ ()
Ответ на: комментарий от Alternating_Current

Да мне хоть как нибудь. Linphone-android + ejabberd-mod_sip-mod_stun похоже имеют некоторые проблемы (или я имею некоторые проблемы)

sergej ★★★★★ ()
Ответ на: комментарий от Andrey_Utkin

Это да, меня и удивляет, что нет хауту для простых смертных.

sergej ★★★★★ ()
Ответ на: комментарий от sergej

Поставь в настройках локальных экстеншнов:

nat=force_rport,comedia
directmedia=no

Смотри трафик tcpdump'ом или в консоли asterisk'a «sip set debug on» && «rtp set debug on», сделай выводы, я так и не понял суть проблемы.
P. S. Сорри, если не asterisk, не заметил, что нигде упоминания о нём нет.

Alternating_Current ()
Последнее исправление: Alternating_Current (всего исправлений: 2)
Ответ на: комментарий от Alternating_Current

Суть - 2 клиента в локальной сети пытаются общаться друг с другом через роутер, который назад в локальную сеть пакеты не отправляет. (когда 1 клиент снаружи, то всё хорошо)

Включение ICE в linphone-android не помогает.

sergej ★★★★★ ()
Ответ на: комментарий от Alternating_Current

Да, причем роутер один и тотже (клиенты в 1й сети), а RTP трафик идёт на адрес роутера.

sergej ★★★★★ ()
Ответ на: комментарий от sergej

В запросе INVITE, в SDP-атрибутах правильные IP и порты указаны? Смотри до и после роутера, иногда включенный SIP ALG на роутере ломает всё.

Alternating_Current ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.