Voice VLAN Bandwidth Sizing: Codec, Frame Size, and Overhead Calculation
Sizing bandwidth for Voice VLANs requires more than guessing 64 kbps per call. The actual consumption depends on codec selection, frame size, and the often-overlooked protocol overhead from RTP, UDP, and IP headers. This guide walks you through the exact calculation so you can right-size your network without overprovisioning or risking call quality.
Codec Payload Rates and Frame Sizes
The codec determines how much voice data is generated per second. G.711 (mu-law or a-law) produces 64 kbps of payload, while G.729 compresses to 8 kbps. Both are common in enterprise deployments, but the choice affects bandwidth immediately.
Frame size (also called packetization interval or PI) defines how many milliseconds of voice fit into one RTP packet. Standard values are 10 ms, 20 ms, or 30 ms. A 20 ms frame with G.729 means 160 bytes of payload (8 kbps multiplied by 0.02 seconds). Smaller frames reduce latency but increase overhead; larger frames reduce overhead but increase jitter and latency.
- →G.711: 64 kbps payload, 1 byte per sample at 8 kHz
- →G.729: 8 kbps payload, 1 byte per 10 samples at 8 kHz
- →G.726: 16, 24, 32, or 40 kbps depending on variant
- →Opus: 6 to 510 kbps variable, less common in enterprise VoIP
Protocol Overhead: RTP, UDP, and IP
Each voice packet carries headers beyond the audio payload. RTP adds 12 bytes, UDP adds 8 bytes, and IPv4 adds 20 bytes (or 40 bytes for IPv6). That is 40 bytes of overhead per packet for IPv4, or 60 bytes for IPv6. This overhead repeats with every frame transmission, so it matters when calculating total bandwidth.
For example, a G.729 call with 20 ms frames sends 50 packets per second (1000 ms divided by 20 ms). Each packet is 160 bytes of payload plus 40 bytes of headers, totaling 200 bytes per packet. Multiply by 50 packets per second: 10,000 bytes per second or 80 kbps total bandwidth per call. That is 10 times the codec rate alone.
The Bandwidth Formula
Use this formula to calculate bandwidth per call in kbps:
Bandwidth (kbps) = [(Payload Bytes + Header Bytes) * 8 bits/byte * Packets/sec] Where: Payload Bytes = (Codec Rate in kbps * Frame Size in ms) / 8 Header Bytes = 40 (IPv4) or 60 (IPv6) Packets/sec = 1000 / Frame Size in ms Example: G.729, 20 ms frame, IPv4 Payload = (8 * 20) / 8 = 20 bytes Packets/sec = 1000 / 20 = 50 Total bytes/sec = (20 + 40) * 50 = 3000 bytes/sec Bandwidth = 3000 * 8 / 1000 = 24 kbps per call (one direction)
Common Results and Bidirectional Calls
A typical enterprise call uses G.729 with 20 ms frames. Each direction consumes 24 kbps, so a bidirectional call uses 48 kbps. G.711 with the same frame size uses 87.2 kbps per direction (174.4 kbps for a call). If your VLAN carries 100 concurrent calls on G.729, budget 4.8 Mbps minimum, plus overhead for signaling (SIP or H.323) and headroom for jitter buffer retransmissions.
- →G.729, 20 ms, IPv4: 24 kbps per direction
- →G.711, 20 ms, IPv4: 87.2 kbps per direction
- →G.729, 10 ms, IPv4: 40 kbps per direction (lower latency, higher overhead)
- →G.729, 30 ms, IPv4: 18.4 kbps per direction (higher latency, lower overhead)
Always double the one-way figure for a full duplex call, and add 5-10% for signaling traffic and packet loss recovery. Use these calculations to set QoS policies, reserve bandwidth on WAN links, and validate that your network can handle peak concurrent call load without degrading voice quality.