[asterisk-dev] "cRTP, anyone?" and more crackpot ideas

John Todd jtodd at digium.com
Wed Dec 17 12:44:31 CST 2008


Abdul -
   I would disagree with you slightly on the statement that "Anything  
other than RTP header compression is bound to fail using the public  
internet."  This is already not the case - take a look at how IAX2  
does multi-session trunking. (http://www.voip-info.org/wiki-Asterisk+bandwidth+iax2 
)  There is always a risk of reordering in transit, but that is a risk  
that is inherent in any RTP or RTP-like session.

Jim -
   I suppose that GRE encapsulation MIGHT work, but that does seem to  
be counter to the intent which is to reduce total overall data stream  
size - a GRE encapsulation would probably re-add the savings and then  
some.  I'm thinking that cRTP is something that is probably not  
relevant to Asterisk since it may be only viable for devices which are  
both RTP endpoints AND are IP routing systems at layer 2.  From my  
reading, it seems to be the case that devices that support cRTP can  
apply the compression to flows even though they might be generated by  
Asterisk or any other RTP originator/receiver.  Does anyone know  
anything differently?

All -
   The concept of a new "flavor" of RTP, where multiple payloads are  
presented in a single packet, seems to be worth further discussion.  I  
would expect that international carriers who are using Asterisk (but  
who do not want to use IAX2 for whatever reason) would be interested  
in this solution. Ideally, the bandwidth savings behavior might  
"automatically" work if they were peering with similarly-capable  
Asterisk servers, even when there was not prior knowledge or  
configuration to do so.

   So those of you doing international SIP trunking with Asterisk:  
free welcome to step up to the plate with some programming time, or  
perhaps at least discuss here why this might or might not work for  
you.  We anxiously await your participation!  :-)

JT


On Dec 17, 2008, at 7:16 AM, Abdul Hakeem wrote:

> Hello,
> I was involved with a similar project years back, albeit with Cisco  
> voip
> gateways.
> Anything other than RTP header compression is bound to fail using  
> the public
> internet.
> As you are aware the voip packets is already compressed (i.e. various
> codecs). The best way to tackle this is to implement IP/UDP/RTP header
> compression as described in RFC 2508. This will limit the header to  
> 2-4
> bytes.
> A layer 2 -like virtual circuit is the best way to go at the router  
> level
> because the packets are not reordered at each hop.
>
> Cheers,
> Abdul Hakeem
>
> -----Original Message-----
> From: asterisk-dev-bounces at lists.digium.com
> [mailto:asterisk-dev-bounces at lists.digium.com] On Behalf Of John Todd
> Sent: 17 December 2008 00:16
> To: Asterisk Developers Mailing List
> Subject: [asterisk-dev] "cRTP, anyone?" and more crackpot ideas
>
>
> I was in a conversation today with someone who does a lot of  
> international
> VoIP traffic.  They have Cisco gear at both ends of their links, and  
> the
> comment was that Asterisk didn't support cRTP, which is "compressed  
> RTP".
> I'd heard of CRTP, but honestly I've never heard it come up before as
> something people were using extensively, though it makes perfect  
> sense for
> traffic that transits across high- cost, low-bandwidth IP links.
>
> This seems to be a niche solution.  Why?  Because cRTP doesn't work  
> outside
> of layer 2 networks, from everything I've read.  If you have a
> T1 (or frame relay, or ATM, or MPLS, or whatever L2 protocol)  
> between two
> endpoints, you apply cRTP on each interface, but each device (hop-
> by-hop) must support it.  You can't compress headers on RTP across a  
> network
> of uncontrolled hops.  So on the internet, this would not work.  It  
> would be
> useful only if your Asterisk systems were doing IP routing (point-to- 
> point
> or frame relay) and could see each other directly on some layer 2  
> link.
>
> Has anyone looked at CRTP implementation for Asterisk?  This is one  
> of those
> questions that might be already solved, but I've just never talked  
> to the
> right person.  It seems like anything with this high a dollar value  
> on it
> would have been programmed by someone, somewhere.
>
> Or am I wrong?  Is it possible to do cRTP or something similar in a  
> way that
> is not hop-by-hop?  Please let me know, especially if you have code  
> to back
> it up.
>
> Many (most?) media sessions are actually between two servers that  
> have more
> than one RTP session active between each other at once.  It seems  
> completely
> bizarre that a method of RTP pipelining does not exist, like there  
> is for
> IAX2 in trunk mode.  Pushing several RTP payloads in the same UDP  
> datagram
> seems like a HUGE bandwidth win - why hasn't anyone done it?  For that
> matter, why haven't we done it in Asterisk and created a new RTP  
> hybrid?
> Seems like it would be easy to throw an additional identifier in the  
> SDP
> that would offer RTP in a pipelined mode so that two systems could  
> know what
> protocol to use.  Asterisk systems with multi-channel SIP RTP  
> sessions would
> "just work"
> automagically and potentially cut bandwidth usage by 60% in some
> circumstances, but other non-compatible systems wouldn't change  
> behaviors.
> Your patches are welcome!  ;-)
>
> Anyway... cRTP and related RFCs below.
>
> http://www.faqs.org/rfcs/rfc2508.html
> http://www.faqs.org/rfcs/rfc1144.html
>
> JT
>

---
John Todd                       email:jtodd at digium.com
Digium, Inc. | Asterisk Open Source Community Director
445 Jan Davis Drive NW -  Huntsville AL 35806  -   USA
direct: +1-256-428-6083         http://www.digium.com/






More information about the asterisk-dev mailing list