[Asterisk-Users] UPDATE - 512 Calls w/ Dig Rec: NFS Setup and Benchmarks

Matt Roth mroth at imminc.com
Tue Oct 4 17:19:17 MST 2005


Matt,

> Well, almost all of the reports, database schema and other code is all 
> fully GPL'd and available on the project site for download:
> http://astguiclient.sf.net

I guess I should've realized it was open source.  Thanks for the link, 
we'll download everything and take a look for ourselves.

> We do not use Asterisk Queues or Agents because we found them limiting 
> in terms of functionality and scalability as well as not being as open 
> to call manipulation as the system we built is. Because of this we 
> haven't really used the Queue stat analysis tools out there any more 
> than to look at the kind of stats they generate.

I figured as much, but with your experience I didn't think it would hurt 
to ask.  Your statement concerning scalability being a problem with 
Asterisk Queues and Agents concerns me, because we are planning on using 
both in our large scale (250-500 concurrent calls) call center setup.  
Could you expound on it?  Are they resource intensive at large numbers 
of calls, does the code have hard limits, etc?  We've dealt with the 
scalability issue of the Monitor application and thought that would be 
the last such hurdle.  The Asterisk source code looks to be very well 
written and I was hoping that the other applications that aren't bound 
to disk I/O do not introduce other bottlenecks.

Are there other Asterisk applications that present serious scaling 
issues?  We were hoping that our hardware (four 3.16 GHz Intel Xeon 
processors and 4 GB of RAM) would help us overcome most of them.

> Our reporting is entirely based on database tables where we log 
> everything from asterisk calls to agent actions, that way we can 
> easily generate real-time stats based on whatever we want.

I believe that will be the core of our architecture as well.  Capture 
EVERYTHING in a database and derive all of the reports from it.  I'm 
sure your database schema will be quite helpful in this endeavor.

> The ACQS is still viable because it is more of a streamlined interface 
> that is easier on the Asterisk server than some of the other proxies 
> being developed, and it can be tightly integrated into how our other 
> software like VICIDIAL works. It is also fully backward compatible 
> with all versions of Asterisk from 1.2beta1 all the way back to 
> CVS_2003-10-04

Anything that reduces the load on our Asterisk server is a Very Good 
Thing.  We'll take a look at building ACQS into our architecture.

> If you have the time and a spare machine I would suggest installing 
> astGUIclient/VICIDIAL on a machine. That would give you the best idea 
> of how everything works inside of it.

I'll probably do that when I get a break in my schedule.

> The guys from GnuDialer also have been going through a lot of the 
> figuring-out of how all of this works as well. They started earlier 
> this year building their own GPL'd asterisk dialer and they are 
> already on their third major code rebuilding because of all of the 
> things that they have learned.

Working on Asterisk is definitely a learning experience.

> Could you tell me a little more about what it is exactly that you are 
> trying to build?

Sure.  We are developing a three server system to handle inbound calling 
in a call center environment:

 1) Asterisk Server
 2) Digital Recording Server
 3) Reporting Server

The Asterisk Server itself performs no codec translations and no DSP.  
It will be connected to a Cisco AS5400HPX Universal Gateway that 
terminates the Ts and handles all TDM to VoIP (SIP) processing.  As you 
know it's a pretty beefy box and we've tried to reserve as many 
resources on it as possible for running Asterisk and its applications.  
We won't be doing call conferencing on it, but we are planning on having 
multiple queues with music on hold (our music files are converted to raw 
files and do not require any decoding) and queue announcements.  The 
majority of calls will be digitally recorded as well, but this involves 
no transcoding and no writes to the local disk.  Some calls will also 
involve transfers to outsides lines, three way calling, and unattended 
monitoring via the app_chanspy.so module.  We are looking to scale to 
500 agents spread across multiple queues, but I believe our initial 
numbers will be closer to 200 agents.

Currently, we are running a beta of Asterisk Business Edition with a 
license limit of 1000 simultaneous calls.  We are using Asterisk's 
standard queues, but would like to move to realtime/dynamic queues in 
the future.

The Digital Recording Server receives the leg files at the end of each 
call and is responsible for mixing, indexing, and eventually archiving 
them.  The digital recordings will be available for downloading via FTP 
from this server as well.

The Reporting Server is the biggest unknown at this point.  Currently, 
it has a mySQL database that receives call detail records from Asterisk 
via the cdr_addon_mysql.so module.  AstManProxy also runs on this box 
and may be used to add additional data to the mySQL database.  Any 
real-time or next-day reporting will be created from this database, so 
that Asterisk itself is not affected by the reporting process.

Please let me know if you would like any more specific details.  I would 
be happy to supply them to you.

Thanks,

Matthew Roth
InterMedia Marketing Solutions
Software Engineer and Systems Developer



More information about the asterisk-users mailing list