QoS · 4 min read

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.

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.

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.

Bandwidth & Transfer Time
Free tool to calculate bandwidth requirements by codec, frame size, and protocol overhead.
Open →
Practise this on today’s Daily Ops Drill — a free network task every day.
Open the app →
Free tools for this
More from the blog
CCNA Design Lab: EIGRP vs OSPF for Branch NetworksRead →FortiGate NSE4: Rotating Admin Credentials Without DowntimeRead →