[Asterisk-Users] Large Asterisk Setup (~500 Concurrent Calls + Scalability)

Matt Roth mroth at imminc.com
Wed Apr 20 13:10:39 MST 2005


List Members,

I am involved in the process of designing a large Asterisk setup for a 
call center.  A graphical overview of our tentative design can be found 
here:

http://home.comcast.net/~mroth01/LargeAsteriskSetup.gif

Originally, we planned to implement this design by purchasing one 
multi-processor machine and putting multiple quad-span T1 cards 
(Wildcard TE4xxPs) into it.  Through research, it was determined that 
the PCI bus couldn't handle the digital signal processing (DSP) from 
more than one quad-span card.
The goal of our new design is to offload the DSP to the Asterisk slave 
servers, then route the calls via IAX2 trunks to the Asterisk master 
server.  The Asterisk master server will provide us with a centralized 
point for queuing, digital recording, and music on hold, as well as 
configuration, monitoring, and reporting.  Configuration of the Asterisk 
slave servers would be limited to setting up extensions to terminate the 
incoming T1s and setting up IAX2 trunks to the Asterisk master server.  
These configurations would be rare, so the slave servers would be 
configured manually on the boxes themselves.

Failover of the primary slave servers will be provided by backup slave 
servers configured to mirror one or more of the primary slave servers' 
extensions and IAX2 trunks.  The master server will be mirrored as 
well.  On failure, automatic T1 switching is an option, but we would 
initially be doing it manually.

Scalability is provided by adding machines to the slave server pool, up 
to the point where the master server can no longer handle the call volume.
An example of a typical incoming call's flow follows:
- The call originates from the PSTN and reaches an inbound Asterisk 
slave server via an inbound T1.
- The Asterisk slave server handles DSP and routes the call to the 
Asterisk master server via an IAX2 trunk.
- The Asterisk master server handles queuing the call and eventually 
routes it to a SIP phone via a SIP channel.

An example of a typical outgoing call's flow follows:
- The call originates from a SIP phone and reaches the Asterisk master 
server via a SIP channel.
- The Asterisk master server routes the call to an outbound Asterisk 
slave server via an IAX2 trunk.
- The outbound Asterisk slave server handles DSP and passes the call off 
to the PSTN via an outbound T1.

Note that the master server must handle protocol bridging between IAX2 
and SIP, but will not have to do any transcoding because we can control 
the codecs used on the servers and the SIP phones.  Digital recording as 
well as monitoring, reporting, and configuration tasks will be offloaded 
to client machines via mounted drives and the Asterisk Management API in 
order to lessen the burden on the Asterisk master server.  The Asterisk 
master server will also be responsible for opening a socket connection 
to an agent station on each incoming call in order to pass the phone 
number that the call came in on.

We have done a lot of research and were unable to find any documented 
cases of a centralized design of this scale.  This is our preliminary 
design and is apt to have a few holes, mistakes, and possibly 
deal-breaking oversights.  Please provide any opinions that you have on 
the overall feasibility of this design as well as any hardware 
recommendations for each of the components or suggestions for improving 
the overall scheme.  If you see any bottlenecks we have overlooked, 
please point them out and give any suggestions for circumventing them.  
Any ideas on how large this system could be scaled would also be 
appreciated.

I also have a question regarding DSP: Does outbound DSP (digital to 
analog) require less processing than inbound DSP (analog to digital), 
and if so by what ratio?

There is a spot on the wiki 
(http://www.voip-info.org/wiki-Asterisk%20hardware%20recommendations) 
regarding this size Asterisk setup, but it has not been addressed yet.  
Hopefully, this will be the start of filling in that hole.

Thank you for your time,

Matthew Roth
http://voip-info.org/tiki-index.php?page=Running%20Asterisk%20on%20Debian



More information about the asterisk-users mailing list