[asterisk-users] Call queues on load-balanced asterisks
Pan B. Christensen
pan at ibidium.no
Tue Jan 11 05:19:55 CST 2011
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>
More information about the asterisk-users
mailing list