Voice Channel Sizing: Erlang, CPS and Capacity Planning
Learn how to use the Erlang B formula, calculate CPS, and correctly size voice channels, media servers, and bandwidth for your VoIP operation.

Voice Channel Sizing: Erlang, CPS and Capacity Planning
Correctly sizing voice infrastructure is one of the most critical tasks for operators, ISPs, and contact centers. Undersizing means blocked calls and unhappy customers. Oversizing means wasted resources and investment. This article presents the formulas and tools to get sizing right, with practical examples using the actual capacity of the SipPulse platform.
The Erlang B Formula
The Erlang is the unit of measure for telephone traffic. One Erlang represents one voice channel occupied continuously for one hour. The Erlang B formula calculates the blocking probability (call rejected due to lack of channels) given a traffic volume and a number of channels.
The formula parameters are:
- A (traffic in Erlangs): calculated as (number of calls per hour x average duration in hours)
- N (number of channels): number of trunks or simultaneous channels available
- B (blocking probability): acceptable percentage of blocked calls (typically 1% to 2%)
Practical Example
A company receives 200 calls per hour, with an average duration of 3 minutes:
- Traffic = 200 x (3/60) = 10 Erlangs
- For a 1% blocking probability, approximately 18 channels are needed
- For a 2% blocking probability, approximately 16 channels are needed
Erlang B Reference Table
| Traffic (Erlangs) | Channels (1% blocking) | Channels (2% blocking) |
|---|---|---|
| 5 | 11 | 10 |
| 10 | 18 | 16 |
| 20 | 29 | 27 |
| 30 | 40 | 37 |
| 50 | 62 | 58 |
| 100 | 117 | 112 |
CPS and CAPS: Signaling Capacity
While Erlang measures sustained traffic, CPS (Calls Per Second) or CAPS (Call Attempts Per Second) measures signaling processing capacity. It is a critical metric for sizing the softswitch and SBC.
CPS indicates how many new calls the system can establish per second. This involves:
- Processing the SIP INVITE
- Querying routing rules
- Authenticating the originator
- Forwarding the call to the destination
- Processing the response (180 Ringing, 200 OK)
SipPulse SoftSwitch Capacity: 1,000 CAPS
The SipPulse SoftSwitch processes up to 1,000 CAPS (Call Attempts Per Second). This places it in the large-scale platform category, suitable for regional operators, wholesale carriers, and large contact centers.
To put this number in perspective: 1,000 CAPS means the SoftSwitch can establish 1,000 new calls every second. In one hour, that equals 3,600,000 call attempts. Even in the most demanding scenarios, signaling capacity will not be the bottleneck.
SipPulse SBC Capacity: 4,000 Concurrent Calls
The SipPulse SBC supports up to 4,000 concurrent calls per instance. This is the media channel capacity (RTP/SRTP), which determines how many active calls can coexist.
Relationship Between Concurrent Calls and CPS
The relationship between concurrent calls and CPS depends directly on the average call duration (ACD):
Concurrent calls = CPS x ACD (in seconds)
Examples with SipPulse SoftSwitch (1,000 CAPS)
| Scenario | ACD | Theoretical Concurrent Calls |
|---|---|---|
| Robocalls / auto-dialer | 30 sec | 30,000 |
| Outbound contact center | 120 sec (2 min) | 120,000 |
| Technical support | 300 sec (5 min) | 300,000 |
| Wholesale voice | 180 sec (3 min) | 180,000 |
In practice, the concurrent call limit will be defined by the SBC capacity (4,000 per instance) or the media infrastructure, not by the SoftSwitch's signaling capacity.
Sizing an Operation with SipPulse
Let us consider real-world scenarios and how to size the SipPulse platform for each one.
Scenario 1: Regional ISP Offering SIP Trunking
- 500 business customers
- Average of 5 concurrent channels per customer at peak hours
- Estimated peak total: 800 concurrent calls
- ACD: 3 minutes
SipPulse Sizing:
- SipPulse SBC: 1 instance (supports up to 4,000 concurrent calls; 800 is well within capacity)
- SipPulse SoftSwitch: 1 instance (800 concurrent calls with 180s ACD requires only ~4.4 CPS, far below 1,000 CAPS)
- Bandwidth needed (G.711): 800 x 87 kbps x 2 = 139.2 Mbps
- Bandwidth needed (G.729): 800 x 31 kbps x 2 = 49.6 Mbps
Scenario 2: Large Contact Center
- 300 agents
- Peak of 250 concurrent calls
- ACD: 5 minutes
- High new-call rate (predictive dialer)
SipPulse Sizing:
- SipPulse SBC NNI-CC: 1 instance (250 concurrent calls, with ample headroom up to 4,000)
- SipPulse SoftSwitch: 1 instance (predictive dialer generating ~50 CPS at peak, well below 1,000 CAPS)
- Bandwidth needed (G.711): 250 x 87 kbps x 2 = 43.5 Mbps
Scenario 3: Wholesale Carrier
- Interconnection with 20 operators
- Peak of 3,500 concurrent calls
- ACD: 3 minutes
- Peak CPS: 200
SipPulse Sizing:
- SipPulse SBC NNI: 1 instance (3,500 is within the 4,000 concurrent call limit, but a safety margin is recommended)
- For redundancy and headroom: 2 SBC instances in high availability
- SipPulse SoftSwitch: 1 instance (200 peak CPS is well below 1,000 CAPS)
- Bandwidth needed (G.729): 3,500 x 31 kbps x 2 = 217 Mbps
Scenario 4: High-Scale Operation
- Peak of 10,000 concurrent calls
- Peak CPS: 800
SipPulse Sizing:
- SipPulse SBC: 3 instances (each with 4,000 calls, totaling 12,000 capacity for 10,000 demand)
- SipPulse SoftSwitch: 1 instance (800 CPS is within the 1,000 CAPS limit)
- For operations above 1,000 CPS, the SoftSwitch can be scaled horizontally
Bandwidth Calculation
The bandwidth required for voice depends on the codec used and the number of concurrent calls:
| Codec | Codec Bitrate | Bandwidth with Overhead (IP/UDP/RTP) |
|---|---|---|
| G.711 | 64 kbps | ~87 kbps per call |
| G.729 | 8 kbps | ~31 kbps per call |
| Opus | 20-40 kbps | ~43-63 kbps per call |
To calculate total bandwidth:
Total bandwidth = concurrent calls x bandwidth per call x 2 (bidirectional)
Bandwidth Sizing Table with SipPulse SBC
| Concurrent Calls | % SBC Capacity | Bandwidth (G.711) | Bandwidth (G.729) |
|---|---|---|---|
| 500 | 12.5% | 87 Mbps | 31 Mbps |
| 1,000 | 25% | 174 Mbps | 62 Mbps |
| 2,000 | 50% | 348 Mbps | 124 Mbps |
| 4,000 (max/instance) | 100% | 696 Mbps | 248 Mbps |
Common Sizing Mistakes
Confusing CPS with Concurrent Calls
CPS is the rate of new calls per second. Concurrent calls is the total number of active calls at the same time. A system can have 1,000 CAPS (like the SipPulse SoftSwitch) and sustain thousands of concurrent calls, depending on the ACD.
Undersizing the SBC
The softswitch may have the signaling capacity to process call volume, but the SBC needs the media capacity to sustain all active calls simultaneously. Each call on the SipPulse SBC consumes media processing resources (RTP). When sizing, always consider the peak of concurrent calls, not the average.
Ignoring Transcoding Load
When the two sides of a call use different codecs (for example, Opus on WebRTC to G.711 on the PBX), the SBC must transcode in real time. A session with transcoding consumes 3 to 5 times more CPU than a session in media bypass. The SipPulse SBC with its 4,000 concurrent calls already accounts for mixed transcoding and bypass scenarios.
Not Accounting for Peak Hours
Sizing should be done for peak traffic, not the average. In contact centers, the peak can be 3 to 5 times the average. For operators, special dates (Mother's Day, Black Friday) can generate peaks of 2 to 3 times normal traffic.
A best practice is to size the SipPulse SBC so that peak traffic stays at 70-80% of maximum capacity (2,800 to 3,200 concurrent calls per instance), maintaining headroom for unexpected spikes.
Forgetting Signaling Overhead
In addition to media traffic (RTP), there is signaling traffic (SIP). In scenarios with many short calls (high CPS), SIP traffic can be significant. The SipPulse SoftSwitch, with 1,000 CAPS, is sized to handle this signaling volume.
Tools for Traffic Analysis
- Online Erlang calculators: several free tools available for quick Erlang B and Erlang C calculations
- CDR analysis: the SipPulse SoftSwitch generates detailed CDRs that can be analyzed by SipPulse BSS to identify traffic patterns and size the operation
- SNMP/Grafana: real-time monitoring of concurrent calls, CPS, and resource usage on the SBC and SoftSwitch
- SipPulse BSS reports: traffic dashboards by time-of-day, destination, and customer, essential for capacity planning
Conclusion
Correct voice channel sizing starts with concrete data: call volume, average duration, peak hours, and codec used. The Erlang B formula provides the mathematical foundation, and the SipPulse platform's capacity numbers provide the practical limits: 1,000 CAPS on the SoftSwitch and 4,000 concurrent calls per SBC instance. With these parameters, you can size everything from a regional ISP to a large-scale wholesale operation, knowing exactly how many instances are needed and what growth headroom is available.
References
Related Articles

Redundancy and High Availability in Voice Platforms
Understand redundancy and high availability strategies for voice platforms and how SipPulse SoftSwitch and SBC implement carrier-grade architectures with transparent failover.

How to Choose an SBC for Your Voice Operation
Understand the role of a Session Border Controller in your voice network and learn how to choose the right SBC based on capacity, protocol support and deployment model.

Voice Codecs: G.711, G.729 and Opus in Practice
Compare G.711, G.729 and Opus codecs in terms of bandwidth, quality and practical use. Learn when to use each one and how to configure codec priority in your softswitch.