Bandwidth Utilisation for VoIP Calls

Calculating the bandwidth used for VoIP may seem like a daunting task, however it is rather simple, especially after understanding simple some principles.

VoIP calls consist of two main parts:

  • The call management section is the part which gets the call going. It signals call initiation, ringing, disconnect, and other communications performed between the two endpoints in order to get the call going.
  • The second part is the audio, which is transmitted using RTP. Since the bandwidth consumed by SIP is insignificant, we shall focus on calculating the bandwidth consumed by audio in the rest of this article.

Since raw audio can be rather large, it needs to be encoded before it is sent on the network. This is done using a codec. Different codecs produce different audio quality, consume different levels of bandwidth, and some are more CPU intensive than others. Thus it is important that you select the right codec for your application.

Before we delve into the differences of the common codecs, let’s introduce another principle which would allow us to accurately calculate the bandwidth utilised. When you need to send data over the network, the data needs to be packaged. The “packaging” contains information which allows the data to be sent to the destination and to be rebuilt correctly. As you might imagine, the packaging does not come free – it adds to the bandwidth consumption.

There are different network packaging layers (required by the 7 layer OSI model). The encoded audio needs to be packaged into RTP packets. In turn, the RTP packets need to be packaged into UDP packets, which then need to be packaged into IP packets. Ethernet is the most common type of network, and this requires another wrapper.

Ethernet packet

We shall refer to these packages collectively as overhead. Irrelevant of the codec used, the overhead introduced in the packet is fixed. Below is the overhead introduced by each overhead item:

  • RTP – 4.8 kbps
  • UDP – 3.2 kbps
  • IP – 8 kbps
  • Ethernet (not using QOS) – 15.2 kbps

The total overhead is 31.2 kbps.

Codecs

Now that we understand the basics, let’s proceed with explaining the differences between the common codecs which can be used to encapsulate the Audio in a VoIP call. The following table shows the audio quality expected, the CPU resources required to encode and decode the audio, the base size of the audio packets, and total bandwidth consumption after taking into consideration the overhead.

Codec Audio Quality CPU Resources Base Size Total Size (Base + Overhead)
G711 Good Very Low 64 kbps 95.2 kbps
G722 Very Good Low 64 kbps 95.2 kbps
GSM Acceptable Average 13 kbps 44.2 kbps
G729 Average High 8 kbps 39.2 kbps

Note that the above bandwidth consumption is in kilobits per second. You will need to divide by 8 in order to get the equivalent in kilobytes per second. Using the above data, we can come up with the following stats:

Codec Kilobits per second Kilobytes per second Kilobytes per minute Megabytes per hour
G711 95.2 11.9 714 41.8
G722 95.2 11.9 714 41.8
GSM 44.2 5.525 331.5 19.4
G729 39.2 4.9 294 17.2

Here are some notes and suggestions for the application of specific codecs:

  • The above are stats for one audio stream. A VoIP call will use one audio stream for each leg (or endpoint). Thus a call between two parties will use double the bandwidth shown above.
  • G729 is the codec which consumes the least bandwidth and has a relatively good audio quality. However that comes with two drawbacks:
    1. Its efficiency comes at a cost, CPU usage. It is more CPU intensive to encode audio in such a low size while maintaining the quality.
    2. G729 is a proprietary codec. Because of this, the number of simultaneous G729 channels cannot exceed half your 3CX Phone System simultaneous call license depending on the number of participants and type of calls.
  • Because of this, G729 should only be used when really required, such as for external calls to VoIP Providers, calls across a bridge, or for remote extensions (basically all calls being done over the internet). You can configure the PBX to fall back to GSM if G729 calls cannot be made.
  • Although G711 and G722 consume over twice as much bandwidth as the other codecs, most Local Area Networks are able to handle this bandwidth. Using the above table, a 1 hour call using G711 is equivalent to transferring a 41.8 MB file. If that causes an issue, you should consider upgrading your network.

Related Links

Bandwidth Overhead over DSL connections

Liked this article?


Get notified of new articles
or share
You might also be interested in:
  1. Mohsin

    Wonderful article. Many many thanks for this thought provoking writing.

    December 20, 2012 at 11:48 am
  2. Glen Logovik

    Great work,very simple to understand :)

    December 21, 2012 at 7:10 am
  3. Bruce G. Kreeger

    Well written explanation and very necssary to determine the optimum bandwidth needed to deploy a VoIP PBX.

    December 21, 2012 at 8:42 am
  4. Igor Snezhko

    Please add more info about G722 codec. It is interesting one.

    December 25, 2012 at 11:09 am
  5. Wonderful !

    December 25, 2012 at 11:21 pm
  6. Marcin Walter

    Excellent article. It still surprising me, how many people don’t know or just forget there is ‘transport’ layers overhead on top of codec stream. Educational and easy to understand articles like this one are very desirable.

    January 1, 2013 at 5:19 pm
  7. stash

    Nice article but what would be the computation of RTP packages when using QOS?
    Another is computation of CPU resources :)

    Thanks,

    January 3, 2013 at 11:55 pm
  8. When calculating bandwidth, one can’t assume that every channel is used all the time. Normal conversation includes a lot of silence, which often means no packets are sent at all. So even if one voice call sets up two 64 Kbit RTP streams over UDP over IP over Ethernet (which adds overhead), the full bandwidth is not used at all times.

    January 7, 2013 at 8:07 am