[asterisk-users] Call load balancing

Steve Edwards asterisk.org at sedwards.com
Thu Mar 8 16:20:51 MST 2007


On Thu, 8 Mar 2007, David Ruggles wrote:

> I've got a system I'm putting together to handle IVR calls with *
>
> I have one head system that terminates two PRIs. It routes the calls from
> the PRIs to * boxes using IAX I'm planning on having four or five * boxes.
> The * boxes run AGI scripts to process the IVR calls. Can I load balance the
> routing if I have five calls each of the IVR * boxes gets two call and the
> next call would go to the system that currently has the lowest number of
> calls?

Quick answer, yes.

How is more interesting :)

First, unless your AGI's are massive or incredibly inefficient, 2 PRI's 
won't swamp your IVR boxes.

I have 3 1u servers each with 2 PRI's forwarding all 138 calls to a single 
"application server." All of the PRI's could be handled by 1 1u but 
management wanted flexibility and redundancy.

The application server does IVR, conferencing, records messages, plays 
canned stories, credit card processing, etc, etc, etc. All implemented 
with a bunch of AGI's written in C. Each call executes a minimum of 9 
AGI's and yes, some AGI consolidation is planned.

All database work is handled by a separate box.

Anyway, back to your question, how about your head system running an AGI 
that connects to the manager interface on the IVR boxes to find out how 
many calls each is currently processing? You could set a channel variable 
with the least busy host name and use that in your dial statement.

If you passed the IVR host name list to the AGI, you could take a box out 
of service by editing and reloading your dialplan.

Thanks in advance,
------------------------------------------------------------------------
Steve Edwards      sedwards at sedwards.com      Voice: +1-760-468-3867 PST
Newline                                             Fax: +1-760-731-3000


More information about the asterisk-users mailing list