[asterisk-users] Call queues on load-balanced asterisks

Pan B. Christensen
2011-01-11T11:19:55Z

Hello Dhaval (and others),

As far as I can tell, realtime queue will not solve my problem. I can statically
define the same queue with the same members on two machines as well. I was
planning to use realtime anyway. The issue is the actual queueing of the
incoming calls.

Let?s say I define the queue "IT-support" with members Local/100 and
Local/101 on both machines. The first call comes in and is distributed by
Kamailio to Asterisk A, and answered by 100. The next call comes in to Asterisk
B, and is answered by 101. At this point, both members are busy. Call 3 now
comes in and is sent to Asterisk A, where it waits for a free member. Call 4
comes in and is also sent to Asterisk A, as is Call 5. Then call 6 is sent to
Asterisk B. At this point 100 finishes his call and becomes free. Which call is
delivered to 100? As far as I can tell, that?s a 50/50 chance between call 3 and
call 6. This is not correct behaviour! Call 6 should wait until calls 3, 4 and 5
(from the other server) have all been delivered.

In the example above: When call 3 comes in, Asterisk A may even try to deliver
it to 101, who gets call waiting indication. He will now have two simultaneous
calls from the same queue!

I have not found any way to share information about calls waiting in the queue,
wait times, member states and so on between the two servers.

Unless you guys know of a way, I think I'm going to have to ask the customer
to change their design to master-slave (with failover) instead of load-balanced.

With kind regards,
Pan

> Hello Pan,
>
> You can user DB for this just make real time configuration of Queue and
make
> all asterisk server connected to Same DB if more load then use replication
> for different server on DB, also So that Quque name should be same for all
> server and asterisk can call same agent.
>
> you didnot mentioned that which purpose youwere use queue other wise i can
> give answer in better way.
>
> regards
> Dhaval
>
> On Fri, Jan 7, 2011 at 5:08 PM, Pan B. Christensen <pan at
ibidium.no> wrote:
>
>>  Hello,
>>
>> I have been asked to implement the following design:
>>
>> Load-balanced Kamailio servers handling registrations and routing.
>> Load-balanced asterisk feature servers handling voicemail and other
things
>> Kamailio cannot do. Plus several load-balanced gateways, but they are
not
>> relevant to my question.
>>
>> All this is working fine.
>>
>> I've now been asked to start implementing calling queues, and my
question
>> is this:
>> How can I implement the same queue on multiple Asterisk servers?
>>
>> Let's say that 10 people call the same queue. These calls would
then
>> currently be distributed 5 to Asterisk A and 5 to Asterisk B. How can I
make
>> Asterisk A respect the 5 people queued on the other server and vice
versa?
>>
>> Will the customer need to change their design to make the feature
servers
>> master-slave with failover instead of load-balanced?
>>
>> Mvh
>> Pan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.digium.com/pipermail/asterisk-users/attachments/20110111/585838a7/attachment.htm>