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

John Todd jtodd at digium.com
Tue Dec 16 18:16:13 CST 2008


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