Wednesday, January 2, 2013

High Availability with Load Balancing for contact centers using Asterisk

Contact center software is immensely complex for a variety of reasons. The functionality required for efficient operation of modern call centers is immense. The software system needs to be convergent, capable of handling voice and data, while allowing the operators of contact centers to take advantage of the all the information available within the system. In the last decade, technology evolution and economic forces have continually pushed the cost per seat down, while features and functionality have expanded tremendously. Managed and hosted contact center services are slowly becoming mainstream because they offer just in time contact centers with very little up-front capital cost investment. Managed Hosted services also does away with the need to keep expensive in-house dedicated IT resources.

Asterisk, the leading open source hybrid telephony platform has played a central role in all this. Using commodity hardware, Asterisk does all the DSP (Digital Signal Processing) within the motherboard reducing the dependence on expensive add-on hardware. Of course, this and the commodity hardware imposes an upper limit on the total number of concurrent calls that an individual Asterisk server can handle. The ability to cluster Asterisk and scale to handle larger volume of concurrent calls is a necessity when deploying Asterisk for large contact center solutions.

Call center software has an ACD which provides the call flow, Skills based Routing, Queues and call distribution. It also offers the ability to provide IVR interactions with TTS and ASR during the call-flow. Contact center software uses the telephone switch (PBX) as the media server for voice. As one of the most powerful media servers for voice, Asterisk can be leveraged to provide extraordinary amount of features for a contact center. For larger contact center setup, the ACD should be able to scale and cluster multiple Asterisk servers seamlessly.

Once a call center ACD is capable of handling multiple Asterisk servers in a cluster, it requires a mechanism to bring large call volumes (that exceed the capacity of individual Asterisk servers) into the ACD and still retain the ability to maintain the sequence and order of calls coming to the individual queues. Here, the calls may arrive into any of the Asterisk servers in the cluster. A simple round robin load balancing, will distribute the calls evenly among the servers in the Asterisk cluster. Q-Suite, Indosoft's call center software has a High availability SIP proxy which also provides load balancing to distribute calls to the Asterisk cluster. The call center ACD within Q-Suite controls the switching of calls through the manager interface of Asterisk. The ACD controls the order of calls as they come in, irrespective of the Asterisk server in the cluster to provide Skills based routing and call distribution as per queues. 

No comments:

Post a Comment