As VoIP becomes more widely used in the enterprise, the number of voice calls traversing the enterprise WAN becomes larger and larger. Typically the use of a proper codec is implemented to reduce the amount of bandwidth a voice call requires. The most commonly used codec for WAN voice traffic is called G.729. While there are a few versions of the G.729 codec, they all have a similar characteristic in the size of the packet they create. Unlike other codecs, G.729 only allows for a certain audible range to be digitized. This smaller range results in a smaller packet. In a typical G.729 packet, the voice payload is only around 20 bytes. This is great until we have to put the 20 byte payload into an IP/RTP packet. The IP/UDP/RTP header that is required for transport adds an additional 40 bytes to the packet, resulting in a 60 byte frame; nearly 66% of the G.729 packet is overhead (IP/UDP/RTP).

Through the use of Compressed Real-time Transport Protocol (CRTP), we can minimize the amount of the header traffic we need to send which will reduce the average packet size. cRTP uses substitution to minimize the amount of the header data that is sent between 2 routers. With this technology, typically the 40 byte header can be compressed down to 2-4 bytes. Comparing the two different packets shows us that we are saving about 35 bytes per packet. If we take into consideration that G.729 creates 50 packets per second, the savings can be significant. A typical G.729 call would consume 24Kbps=(PS*50*8)/1000. The new compressed call would consume only 14Kbps=(PS*50*8)/1000. (PS is packet size)

So, we can implement cRTP either at the interface or inside a service-policy that is attached to an interface. Here is the syntax:

Regular WAN interface

Cell_Router(config)#interface serial X
Cell_Router(config)#ip rtp head-compression

Frame-Relay interface

Cell_Router(config)#interface serial X.X
Cell_Router(config)#encapsulation frame-relay
Cell_Router(config)#frame-relay ip rtp header-compression

Using a service-policy with the MQC

Cell_Router(config)#policy-map voice-policy
Cell_Router(config)#class voice-class
Cell_Router(config)#compress ip rtp
Cell_Router(config)#interface serial X
Cell_Router(config)#service-policy output voice-policy

We hope this helps.

Comments powered by CComment

Did you learn something?
Did I save you time? 

Buy me a coffeeBuy me a coffee!