Extended Erlang B Calculator
Size SIP trunks, PBX channels, lab call generators, and voice gateways with blocked-call retries included, not just the first-attempt Erlang B result.
Formula Breakdown
| Voice scenario | Typical GoS target | Retry assumption | Planning note |
|---|---|---|---|
| Home PBX with family extensions | 1% to 3% | Low to medium human redial | Small channel counts swing sharply with one extra trunk. |
| SOHO SIP trunk group | 0.5% to 1.5% | Medium redial and voicemail fallback | Include meetings, ring groups, and outbound overlap. |
| Helpdesk or clinic phones | 0.2% to 1% | Medium retry, higher lost-call sensitivity | Use measured busy-hour attempts, not daily averages. |
| Outbound IVR or callback burst | 1% to 5% | High controlled reattempts | Retry pacing matters as much as total call volume. |
| Lab load generator | Variable | High synthetic retry | Use this to stress trunks before production changes. |
| Formula item | Expression | Use in calculator | Practical meaning |
|---|---|---|---|
| Traffic from calls | A = calls x hold / 3600 | Converts busy-hour attempts into Erlangs | 180 calls/hour at 120 seconds is 6 Erlangs. |
| Erlang B recursion | B(n) = A x B(n-1) / (n + A x B(n-1)) | Stable calculation for trunk blocking | Recursive form avoids huge factorials. |
| Retry series | Aext = A x (1 + x + x^2 ...) | Adds finite blocked-call reattempts | x is the retry share multiplied by current blocking. |
| Carried traffic | Ac = Aext x (1 - B) | Shows occupied channel demand | High carried traffic means high trunk occupancy. |
| Target sizing | Increase N until B <= target | Finds channels required for GoS | Extended sizing can need more trunks than classic B. |
| Retry behavior | Retry percent | Retry rounds | When it fits |
|---|---|---|---|
| Low human redial | 10% to 25% | 1 to 2 | Casual calling, voicemail fallback, low urgency. |
| Normal office redial | 25% to 45% | 2 to 4 | Users call again when a fast busy or rejection appears. |
| High campaign retry | 50% to 80% | 3 to 6 | Outbound dialers, callbacks, or scripted reattempts. |
| Lab stress retry | 70% to 100% | 4 to 10 | Use to expose overload behavior in test trunks. |
| Common project size | Starting data | Useful result | Secondary check |
|---|---|---|---|
| Two-line home SIP trunk | 0.4 to 0.9 Erlangs | Blocking under family peak | One reserved emergency channel may dominate. |
| Eight-channel SOHO PBX | 2 to 5 Erlangs | Target GoS with redials | Check occupancy before adding ring groups. |
| Small helpdesk | 5 to 12 Erlangs | Trunks required at 0.5% to 1% | Use queue data to estimate true attempts. |
| Lab SBC load test | 10 to 40 Erlangs | Blocking curve under retry pressure | Compare synthetic retry to carrier limits. |
This planner estimates circuit-switched or SIP trunk blocking. Real deployments should also account for carrier limits, SBC call admission control, codec bandwidth, emergency routing, queue design, and measured abandoned calls.
When analyzing the scenario of dropped calls on a phone system, the cause of those dropped calls is typicaly not a “broken” phone line, but instead a lack of sufficient trunk to carry all of the calls. Many people will provision a phone system with a number of trunks in accordance with an average traffic that runs across the system. However, the average traffic does not take into account the high level of traffic that typically exist during the busy hour of the system.
The extended Erlang B formula account for this high level of traffic because it incorporates the retry calls that those callers that are initially blocked by the system make. The classic Erlang B formula assumes that every call that the system blocks is a call that is going to be placed and gone forever, an assumption that is typicaly incorrect about the behavior of many moddern phone systems and users. Many callers will attempt to make the same call to an individual within one or two minute of their initial attempted call.
Plan Phone Trunks for Busy Hour and Call Retries
Outbound calling dialers will also typicaly attempt to call a number many times until the outbound dialer system is success in placing the called call. These retries can be calculated in the extended Erlang B formula to determine how the increased offered traffic to the trunk group can increase the chance that other callers will be blocked due to busy channel. The extended Erlang B formula calculates these feedback loop until it determines a state of stability in the system.
The inputs for the calculator are those that a person must make when building the trunk group. For instance, it is necessary to input the traffic in terms of Erlang, or to calculate the number of Erlangs from raw calls and average hold times. In addition to Erlangs, it is also necessary to input the percentage of callers that will attempt to making retry calls to the blocked number, the number of rounds that these retry calls are made, the time delay between initial calls and retry calls, the growth allowance for future calls to the system, and the design buffer to account for future growth.
The results of the calculation will include the percentage of calls that the system will block, the additional traffic that the retry calls create, the number of channels that will be occupied by all calls (including retry calls), and whether or not the number of trunks that are currently provisioned for the system meet the grade of service that is declared for the system. The occupancy of the system is another key number in the results because a high percentage of occupancy mean that there is little room for errors in the system. The reference tables provide examples of the retry calls for different type of systems.
For instance, small home PBX systems may experience few retry calls, while helpdesk and outbound call applications may experience high retry call percentage. These different percentages will have impacts on the number of channels that is required to provide trunk service for the system. For instance, adding one channel can significantly reduce the percentage of blocked calls for systems with short retry times, but may not have the same impact on callers that have more longer delay times for retry calls.
There are a few complication with the network that are outside of the extended Erlang B formula. For instance, the codecs that are used for calls will impact the bandwidth of the system, but does not factor into the calculation of the number of channels that are required. Similarly, other types of call controls on the network can impact the calls that are placed in ways that do not factor into the calculation of the number of channels that are required.
Yet, the calculator and its results will provide an accurate baseline from which to evaluate these other impacts. The trunk group that is created for a system should of been sized according to the measured data of busy hour calls to the system, not daily call total. It is possible to have enough channels to handle the calls to a system each day, yet not enough to handle the busy hour during that day.
Rather than asking the question of how many trunks would theoretically be required for the system, the user should determine the number of trunks that will prevent the percentage of retry calls during the busy hour from increasing. Thus, the extended Erlang B formula both prevents the error of ignoring the retry calls that callers make, and ensures that the provisioned system accounts for the fact that callers will try to call again if they are initially blocked.



