How to use the voip bandwidth calculator
- Enter the codec bit rate in kilobits per second.
- Enter the packet interval in milliseconds and the size of the link layer header in bytes.
- Enter the number of simultaneous calls.
- Read the bandwidth for one call and for all the calls, in one direction.
Formula
Payload per packet = bit rate x packet interval / 8 bits per byte
Packet size = payload + 12 byte RTP + 8 byte UDP + 20 byte IP + link header
Packets per second = 1000 / packet interval
Bandwidth per call = packet size x 8 x packets per second
The result is for one direction. A call uses the same amount each way.
A 64 kbps codec with 20 ms packets
Each packet carries 160 bytes of audio. Adding 40 bytes of RTP, UDP and IP headers and an 18 byte Ethernet header gives 218 bytes, sent 50 times a second. That is 87.2 kbps per call in each direction, and 25 calls need 2,180.0 kbps.
With a codec at 8 kbps the payload is only 20 bytes, so the headers dominate and a call needs 31.2 kbps, nearly four times the codec rate. Using 30 ms packets sends fewer packets and lowers the overhead, at the price of more delay.
Overhead matters
Voice is sent in many small packets, and each packet carries the same headers no matter how little audio is inside. The lower the codec rate, the larger the share taken by headers. That is why the real bandwidth of a call is always higher than the rate in the codec name, sometimes by more than double.
Longer packet intervals reduce the overhead but add delay and make a lost packet more noticeable. Most systems use 20 ms as a balance.
What the tool leaves out
It does not include signaling, silence suppression, header compression, encryption or the extra headers added by a VPN or a wireless link. Leave a margin for those and for other traffic. To size a link by the delay it adds, see the Bandwidth Delay Product Calculator, and for a radio link the Free Space Path Loss and Link Budget Calculator is the next step. The number of lines needed for the traffic can be found with the Erlang B Blocking Calculator or the Erlang C Staffing Calculator.
Assumptions and limits
- Headers are 12 bytes for RTP, 8 for UDP and 20 for IPv4. IPv6 would add 20 more bytes.
- The link header is the value you enter, for example 18 for Ethernet.
- Every call uses the same codec and packet interval.
- The figures shown are examples. Use the codec and network of your own system.
Frequently asked questions
Is the result per direction or total?
Per direction. A call is sent both ways, so a link that is full duplex needs this much each way.
Why is it more than the codec rate?
Because every packet carries headers. The codec rate counts only the audio.
Does silence suppression help?
It can reduce the average, but the tool shows the worst case where audio is always being sent.
What packet interval should I use?
Twenty milliseconds is common. Check what your phones or software actually use.