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 platform, Auto Dialer, Call Centre, Contact Centre and interactive voice response systems. ICTBRoadcast SP Edition is Auto dialer and Call Centre software developed over Asterisk communications engine at back-end. Asterisk load / stress testing becomes imperative to ensure the robustness and reliability of Asterisk-based solutions. We performed stress / load testing of Asterisk communication engine upto 5000 concurrent calls on a single node.
We setup two asterisk nodes with ICTBRoadcast SP Edition installed on both nodes, One node was used to generate calls and other node was used to receive calls .
Testing Factor 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 takes high CPU processing but less bandwidth while G.711 codecs uses 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 with Codec G.7.11 using ICTBroacdast Sp edition. We managed 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 upto 5000 concurrent capacity and deployed other 2288G machine to receive and answer these calls accordingly.
Following are 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 source server in Trunk Configuration.
- Trunk Configuration: then we configure the trunk on the local IP address of source server and we configure the trunk with protocol SIP and Max concurrent channels 50000.
- Codec: we use the Codec G.7.11 for node server to sent the calls to targeted server. You can use other codec such as G79, GSM and so on.
- Targeted group: after that we created group and then import 50 thousand contacts in targeted group. You need minimum 50 thousand contacts for testing 5000 concurrent channels properly.
After that we tested the asterisk load testing with 5000 concurrent channels via ICBroadcast voice campaign. We created voice campaign then select the target group and voice recording for testi8ng and also allowed max concurrent channels limit to 10000 for this campaign.
As we tested the Asterisk load testing with 5000 concurrent channels using ICTBroadcast SP edition and its result was perfect according to 5000 channels.
we tested with 2 servers. ServerA sent using Codec and Recording (using network bandwidth), while ServerB 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
we tested the 5000 Concurrent channels with multiple campaigns also and we saw that asterisk max concurrent channels are using in range 4500 to 5000 means channels are dividing among each campaigns.
check above image 4 campaign are running and 1100 plus channels are active through each campaign means 4500 to 5000 channels are active and using 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 other nodes and successfully tested 5000 concurrent calls .
Following are the stats of load on both node server:
Load on node 1 (call generator) :
- Total CPU 800% out of %1600 (16 thread X each thread 100% = 1600%)
- CPU load= 50%
- memory usage load= 30%
- Hard disk load= 90%
and the load on node2 (call receiver) is not mentioned because the load on the node 2 is normal.
Load on node server 1 is high than node 2 because node 1 server has to generate calls and sent to node server 2.
we also checked the active channels and call through server and 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 4,500 concurrent calls.
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.