Asterisk, an open-source unified communication platform, has become a cornerstone in the realm of Voice over IP (VoIP) systems. It serves as a powerful tool for building communication applications, including IP PBX, open-source unified communications platforms, auto dialers, call centres, contact centres, and interactive voice response systems. ICTBroadcast SP Edition is auto dialer and call centre software developed over the Asterisk communications engine at the back-end. Asterisk load/stress testing becomes imperative to ensure the robustness and reliability of Asterisk-based solutions. We performed stress/load testing of the Asterisk communication engine up to 5000 concurrent calls on a single node.

We set up two Asterisk nodes with ICTBroadcast SP Edition installed on both nodes. One node was used to generate calls and the other node was used to receive calls.

Testing Factors for Asterisk Concurrent Channel Load Testing

Asterisk is known for its scalability and ability to handle thousands of concurrent calls with proper hardware and configuration. Asterisk can handle hundreds or even thousands of concurrent calls on a single server.

The specific number of concurrent calls that Asterisk can support will vary based on factors such as:

  • Hardware Resources:
    The processing power (CPU), memory, and hard disk operations of the server running Asterisk can impact the number of concurrent calls. A server with more powerful hardware resources will generally be able to handle a larger number of calls.
  • Network Conditions:
    The available bandwidth and network efficiency play a role in determining how many concurrent calls Asterisk can handle. Insufficient bandwidth or network congestion can limit the number of concurrent calls.
  • Codec Selection:
    The choice of codecs used for the calls can also affect the number of concurrent calls. Some codecs require more processing power than others — such as G.729, which requires higher CPU processing but less bandwidth — while G.711 codecs use the least CPU processing but more bandwidth resources. So selecting efficient codecs can help increase the number of concurrent calls.
  • System Configuration:
    The configuration of Asterisk, including settings related to media handling, playing voice recordings, recording calls, call routing, and call processing, can impact the capacity for concurrent calls. Proper optimisation and tuning of Asterisk can improve its performance and scalability.

In summary, the exact number of concurrent calls that Asterisk can support is highly dependent on various factors, including hardware resources, network conditions, codec selection, and system configuration. With proper hardware and optimisation, Asterisk can handle a significant number of concurrent calls on a single server or with multiple Server/Nodes.

Testing Scenarios for Asterisk Load Testing with 5000 Concurrent Calls Using ICTBroadcast SP Edition

We tested the Asterisk load testing with 5000 concurrent channels using Codec G.711 through ICTBroadcast SP Edition. We managed the installation of ICTBroadcast SP Edition on two bare metal Intel 2288G machines from Vultr.com and used one 2288G machine to generate G.711 outbound calls up to 5000 concurrent capacity and deployed the other 2288G machine to receive and answer these calls accordingly.

Following are the hardware specifications:

  • Intel 2288G
  • 8 Core / 16 Threads @ 3.7 GHz
  • 128 GB RAM
  • 2 x 1.92 TB NVMe
  • Local IP:
    Because a trunk connection is made between both servers and it is authenticated by IP, it is necessary to know the IP of the source server. So we configure the Local IP address of the source server in Trunk Configuration.
  • Trunk Configuration:
    Then we configure the trunk on the Local IP address of the source server and we configure the trunk with protocol SIP and Max concurrent channels: 50,000.
  • Codec:
    We use the Codec G.711 for the node server to send the calls to the targeted server. You can use other codecs such as G.729, GSM, and so on.
  • Targeted Group:
    After that, we created a group and then imported 50,000 contacts into the targeted group. You need a minimum of 50,000 contacts for testing 5000 concurrent channels properly.

After that, we tested the Asterisk load testing with 5000 concurrent channels via ICTBroadcast voice campaign. We created a voice campaign, then selected the target group and voice recording for testing and also allowed max concurrent channels limit to 10,000 for this campaign.

Testing Result/Summary

As we tested the Asterisk load testing with 5000 concurrent channels using ICTBroadcast SP Edition, its result was perfect according to the 5000 channels.

We tested with 2 servers. Server A sent using Codec and Recording (using network bandwidth), while Server B received. The total Max concurrent channels ranged from 4500 to 5050. We believe this is the maximum number of channels we can use for live calling, and the server appears to be functioning normally.

Dashboard

We tested the 5000 concurrent channels with multiple campaigns also and we saw that Asterisk max concurrent channels are being used in the range of 4500 to 5000 — meaning channels are dividing among each campaign.

Active Campaigns

Check the above image — 4 campaigns are running and 1100+ channels are active through each campaign, meaning 4500 to 5000 channels are active and being used by Asterisk.

We installed ICTBroadcast SP Edition on both nodes and generated outbound calls from one node and received calls and played voice recordings on the other node and successfully tested 5000 concurrent calls.

activecamp

Following Are the Stats of Load on Both Node Servers:

Load on Node 1 (Call Generator):

  • Total CPU: 800% out of 1600% (16 threads × each thread 100% = 1600%)
  • CPU Load: 50%
  • Memory Usage Load: 30%
  • Hard Disk Load: 90%

The load on Node 2 (Call Receiver) is not mentioned because the load on Node 2 is normal.

Load on Node Server 1 is higher than Node 2 because Node 1 has to generate calls and send them to Node Server 2.

We also checked the active channels and calls through the server and Asterisk CLI.

asteriskcli

Asterisk CLI

If we go to the Asterisk source code and edit the files, we could have more concurrent calls. Although we do not recommend this because we believe that it is more than enough for a server to have 4500 concurrent calls.

camp statistics

Conclusion

In conclusion, the Asterisk Load Testing with 5000 Concurrent Calls using ICTBroadcast SP Edition stands as a pivotal approach to ensuring the robustness and reliability of Asterisk-based communication systems. As Asterisk continues to be a preferred choice for diverse telephony applications, the need for comprehensive load testing becomes increasingly essential.

In the dynamic landscape of telephony and communication technologies, the combination of Asterisk and ICTBroadcast SP Edition offers a powerful synergy, enabling organizations to stay ahead of the curve and deliver resilient, high-performance communication systems. As the demand for scalable and reliable telephony solutions continues to grow, the significance of load testing with tools like ICTBroadcast SP Edition becomes paramount in achieving excellence in Asterisk deployments.

Important Links:

Scalable Auto dialer software

Become internet Telephony Service provider