[Asterisk-Users] RTP header compression?

John Todd jtodd at loligo.com
Fri Aug 22 00:51:19 MST 2003


>Uh oh.  I think I may be looking at the wrong tool.
>
>My goal is to implement (in an open source software suite) an 
>RTP/UDP/IP header compression algorithm that would save bandwidth 
>used by voice traffic packets.  So a 5ms G.711 packet that would 
>otherwise be 98 bytes, could be reduced to 62 bytes when its 
>RTP/UDP/IP header is compressed.  This would require me to get into 
>the RTP stack used to packetize the actual data (voice) packets. 
>From what I am reading, * is not the right software for that kind of 
>work because it don't really touch the voice packets themselves but 
>rather enables the two endpoints to talk to negotiate and connect 
>with each other (as well as utilize a number of other features - 
>vmail, callerID, etc).  Is this correct?

OK, again, from the top: What is it, exactly, that you are trying to 
do?  Are you trying to save bandwidth between two networks, or 
between any two SIP endpoints?  Most people that design Asterisk 
systems treat them as "gateways", and then it's usually a gateway on 
a LAN or WAN with more-or-less unlimited bandwidth between the 
endpoints and the gateway.  Then, the gateway talks out across the 
WAN (Internet) with limited bandwidth to other gateways.  In essence, 
a mesh-of-stars topology.  Thus, we really care about the bandwidth 
between the two gateways, and not necessarily about the bandwidth 
between the UA (SIP endpoint) and the gateway.  There are, of course 
exceptions: plenty of people use G.729 between the UA and the 
Asterisk server, and lots of people have their Asterisk servers and 
SIP clients spread out all over the planet.  But, Asterisk is the 
"open-source PBX", which generally means there's an office (or 
school, or whatever) LAN that connects all the users back to the PBX, 
and the PBX is then responsible for sending things out onto the big 
bad rest of the world.

Got it so far?

So, the IAX2 protocol is an extremely efficient way of moving voice 
data around.  It strips off much of the IP/UDP/RTP header, and crams 
multiple channels of RTP into a single UDP flow.  After the first 
channel is established, every incremental channel is close to exactly 
the codec specifications as far as additional bandwidth (i.e.: G729 
channels are ~9.6kbps for each one you add onto the pile.)  This 
obviates a need for RTP header compression... 'cause there isn't any 
real RTP header to compress.  Mark, or someone with more 
understanding of this could correct me, but I'm pretty sure that's an 
adequate description.

So, if you're wanting to get better bandwidth usage betwen your SIP 
clients and Asterisk, then maybe RTP compression is still an 
interesting feature to add to Asterisk.  However, until a good number 
of SIP clients support RTP compression, there's no reason to put it 
into Asterisk.  Sorry, the chicken in our case is the hardware 
vendors and their SIP clients, and we're the egg - they implement 
features, and we catch up with them for the most part (as far as SIP 
goes, at least.)

>Is what I am looking for an open-sourced SIP user agent?  Or is it 
>more than that?

Yes,  you're looking for an open-sourced SIP user agent (really, an 
open sourced RTP stack) unless your answers to my questions above 
were enlightening.  Google will help you in this search...

(/me bangs head on table, wonders how he keeps sending out these huge 
email messages when there is work to do that actually PAYS 
something...)

JT


>Any help would be great, as I appear to be confused.
>
>Thanks,
>Kevin
>
>----Original Message Follows----
>From: John Todd <jtodd at loligo.com>
>Reply-To: asterisk-users at lists.digium.com
>To: asterisk-users at lists.digium.com
>Subject: Re: [Asterisk-Users] RTP header compression?
>Date: Wed, 20 Aug 2003 13:38:22 -0700
>
>>I sent this to the asterisk-dev by accident...
>>
>>----Original Message Follows----
>>
>>Hi all,
>>
>>I have a couple questions about RTP header compression with Asterisk:
>>
>>1) Has this been implemented before or is it included in the 
>>Asterisk package?
>>2) If the answer to (1) is no, is there an RTP stack that this can 
>>be logically implemented into?  Where would that be?
>>
>>Thanks,
>>Kevin
>
>
>As I mentioned before in a reply to this:
>
>1) No.
>2) Take a look at the source code; you should be able to find the 
>rtp sections in it readily enough.
>
>3) If you are asking about RTP compression between Asterisk servers, 
>look at IAX2 and trunking mode.  Questions 1 and 2 become less 
>meaningful.
>
>JT
>_______________________________________________
>Asterisk-Users mailing list
>Asterisk-Users at lists.digium.com
>http://lists.digium.com/mailman/listinfo/asterisk-users
>
>_________________________________________________________________
>The new MSN 8: smart spam protection and 2 months FREE* 
>http://join.msn.com/?page=features/junkmail
>
>_______________________________________________
>Asterisk-Users mailing list
>Asterisk-Users at lists.digium.com
>http://lists.digium.com/mailman/listinfo/asterisk-users




More information about the asterisk-users mailing list