Configuring large contact centers with Asterisk

The precise extent of Asterisk usage for PBX and call centers may be unknown but one can safely say that it is omnipresent. The clear give away is when you call an office and hear the default prompts that come with standard Asterisk installation when someone’s extension goes to voice-mail.

We started migration of our contact center software to Asterisk in 2003 and it has been a great experience. Now we offer a high end call center software which works with Asterisk PBX and delivers almost all features right out of the box. It is a multi-tenant contact center software which provides inbound, outbound and blended options. It also comes with a powerful API for .NET integration to native clients.
There is a lot of interest in determining how to scale Asterisk and setup large contact centers. Here I have a laid out a basic contact center using Q-Suite, the Indosoft call center software.

I have made some assumptions on the infrastructure and usage of the contact center. We will use hardware servers with a Quad core and 8GB of RAM. Voice recording will be turned on for all calls. Since Indosoft contact center software comes with a feature rich agent interface that leverages our amazing Script-builder, we will assume that the Agents are using web browsers (Mozilla Firefox) to access the screens with a SIP phone like x-lite for voice. The Script-builder not only creates on demand custom variables in agent scripts, it can also get and post data through web services and embed your web enabled applications like CRM. I have also moved the gateway to a separate server. This could be SIP or PRI (T1/E1). Let us take the case of predictive dialing which is a lot more load intensive than the load generated by the operations of an inbound contact center.
If you are using 2 physical hardware servers, one with MySQL and Apache and the other with Asterisk and Indosoft call center software Q-suite, a conservative estimate of 45 to 50 concurrent agents can all work in predictive dialing mode. The same setup for inbound should allow 100 to 150 concurrent calls. The number of agents in an inbound contact center is determined by the service levels. I would assume that when the load is 150 calls, you will require 100 agents or more, assuming the calls are short duration.
An added server hardware can increase the server capacity in a significant way. With our contact center software, the agent interaction through Apache is very high with AJAX keeping all the statuses in sync. The separation of MySQL and Apache into their own servers allows the doubling of the contact capacity. I have seen 140 agents working concurrently on a three server deployment, all in predictive dialing mode. This is the point where the hardware on Asterisk server reaches its limit and we will have to add additional Asterisk servers to Q-Suite to scale further.