6 maj 2013 kl. 09:49 skrev Klaus Darilion <klaus.mailinglists(a)pernau.at>at>:
On 04.05.2013 16:37, John Chen wrote:
Hi,
I can configure kamailio + rtpproxy to enable calling between user
behind the NAT. Thanks for the example config, it is very easy to did it.
Do we need rtprpoxy for all kind of NAT?
From what i have read, only symmetric NAT that hard to be traversal-ed.
While other type of NAT can be traversaled using STUN.
But my device that behind openwrt router can't work without rtpproxy. Is
it expected behaviour?
Or i'm doing something wrong in the config?
Yes, there are cases where NATs can be traversed without a media relay. But it turned out
that NATs can not be separated into symmetric/coned/... as there are many more different
types, and some NATs even change there NAT-behavior during operation (e.g. when port
overloading starts).
Therefore, if the setup is only for NAT devices you are operating und you know that STUN
works, then you can omit the rtpproxy. But if you need to have NAT traversal working in
ALL cases for ALL NATs, then the pragmatic approach is to enable rtpproxy for all cases.
Further, STUN-based NAT traversal is more or less obsolete. The successor of STUN is ICE
(RFC 5245 and 5768). It is also client-based but much more advanced (and complicated). And
Kamailio supports adding rtpproxy as additional ICE candidates to avoid usage of TURN
relays.
But of course ICE can only be used if the user agent suports it.
If you have a server on a public IP running behind Kamailio you might not need RTPproxy
relaying for calls to and from that server. Asterisk will handle NAT by itself and
doesn't need help if you turn on NAT support in Asterisk. In that case, RTPproxy just
adds delay to your calls.
/O