Re: Media Proxy

От: Герман Мызовский <CGatePro_at_mx_ru>
Дата: Fri 12 Mar 2010 - 16:59:11 MSK

Как заставить CGP проксировать RTP ? В разделе Network.html пишут: "... the client own network address specified in the request headers is included into the NATed IP Addresses list ..." Позвольте дать некоторые уточнения к документации.

  1. "Request headers" на самом деле следует читать как "единственное поле Via". Никакие другие заголовки в определении far-end NAT не участвуют. В этом есть логика. Если полей Via более одного, значит SIP UA использует outbound proxy. Последний обязан озаботиться NAT traversal для своего клиента. Если адрес в единственном поле Via не записан в "NATed IP Addresses" (RFC1918), значит такова топология сети, но NAT'а в ней нет. При разборе логов с уровнем "5 SIPDATA" обратите внимание на кол-во полей Via и сравните Via sent-by с адресом источника.

Hint: обычно Via sent-by портят: а) SIP UAC с поддержкой STUN; б) SIP ALG [aka siproxd] на "интеллектуальных" д-линках/асусах/зухелях; в) сисадмины, не познавшие RFC1918. 2. Если масштабная порча Via sent-by мешает развитию, попробуйте на свой страх и риск запустить CGServer с доп, ключом --looseFarEndNAT в Startup.sh. С этой опцией считается, что пакет пришел из-за NAT, если верхний Via адрес просто не совпадает с адресом источника.

>>> Результат:
>>> - CGP - нет связи.
>>> - Asterisk - все без проблем, правда тут изначально сказано считать,
>>> что клиент за натом.
>>> - Kamailio (Openser) + rtpproxy - все без проблем, работает по
>>> автоопределению.
>>>
>>> Собственно и как CGP тогда подсказать, что клиент за натом если он
>>> сам не может этого понять ?
>>
>> Подсказать нельзя.
> Думаю что это минус CGP, и просьба к разработчикам обратить на это
> внимание, галочка для шаблона пользователя или для самого пользователя
> на предмет принудительного проксирования rtp пакетов ибо сам CGP
> что-то не всегда понимает как быть....

Такая галочка недолго остается управляемой, и имеет смысл только при минимальном количестве пользователей.

>
> Придется астериск или сер рядом ставить....

Автоопределение NAT -- сложная штука. В идеальном случае (skype, gtalk, msn) за открытие оптимального медиаканала и за мониторинг его во время сессии отвечает клиентский софт. Но применительно к SIP UAs это пока несбыточная мечта. See also: Interactive Connectivity Establishment.

-- 

Герман Мызовский,
Tario Communications
Получено Fri Mar 12 13:59:24 2010

Этот архив был сгенерирован hypermail 2.1.8 : Fri 12 Mar 2010 - 20:15:07 MSK