[Asterisk-Users] RTP Packets going over caller and calle !!

Greg Hill gregh-asterisk at hillnet.us
Mon Aug 2 08:46:59 MST 2004


On Mon, 2 Aug 2004, Carlos Arnt wrote:

> I Have a problem here, if anyone know a method to avoid please tell me.
> Using * with the option canreinvite=yes i can in theory tell to my *
> box, send RTP Packet directly from one Sip device to another one, then
> "In Theory", i will not use my own internet connection. So this mean
> that will a lower connection something like "512/512kbps", i can have
> lot's of channels connected and using my * just to bridge then . Thats
> correct ??

essentially, yes.. Asterisk can send a REINVITE to the SIP devices to tell
them to communicate directly between themselves, in a peer-to-peer way.
This removes asterisk from the loop entirely, and you're not bridging the
calls anymore. The call would disappear from your box (I think).

> But if all people is under a NAT ?? Like 2 sip devices using * box
> connect over my * box but that two is under NAT ?? Will work anyway ?
> All RTP Packets is flow using their connection ? Not mine ?

Not likely. The problem is that when the RTP starts flowing directly from
one NAT to the other, the receiver NAT is caught by surprise. It wasn't
expecting any traffic to come from the sender NAT, because there wasn't
any connection opened to the sender first. The receiver, not knowing what
to do with the traffic, will most likely just drop it.

If you had really smart NATs that would "eavesdrop" on the SIP
communication, then perhaps they could be aware of the REINVITE and know
what to do when a new RTP stream shows up. I don't know of any that do
this, though.. and though there may be one, it's probably more expensive
than either of us would like to spend. And that assumes that you have
control over the NATs and could replace them if you wanted to.

Basically you're in the double-NAT hole. Several people have been working
on how to get traffic through double NATs, but there is a difference: they
wanted to create the connection, from the beginning, going through both
NATs. It sounds like in your situation you want two NATed devices to
connect to your public * server and then after a call is established
communicate directly between themselves. It'll take some creativity, to
say the least (I'm avoiding saying that it's outright impossible, because
maybe it isn't, but it's also going to be far from easy).

Greg





More information about the asterisk-users mailing list