By Date: <-- -->
By Thread: <-- -->

Distributed ACD Queues



Hello,

We are doing distributed ACD with Asterisk, but not using Asterisk
Queues. It proved near impossible when we tried to get it to work so
we wrote our own multi-server queue system into VICIDIAL. Been using
it for over 2 years now in production. Not as full-featured as
Asterisk Queues on the server side for inbound, but it works well
across multiple servers even with agents and trunks on separate
servers.

http://astguiclient.sourceforge.net/vicidial.html

MATT---

On 6/15/06, Douglas Garstang <dgarstang (at) oneeighty.com> wrote:


It seems that I am having a heck of a time explaining my attempts at
distributing ACD Queues to the list. Here's one little problem, that's only
a piece of the puzzle.

dundi.conf:
180q =>
global_dundi_q_pbx1,100,IAX,dundi1:${SECRET} (at) ${IPADDR}/${NUMBER},nopartial
180q =>
global_dundi_q_pbx2,200,IAX,dundi2:${SECRET} (at) ${IPADDR}/${NUMBER},nopartial
180q =>
global_dundi_q_pbx3,300,IAX,dundi3:${SECRET} (at) ${IPADDR}/${NUMBER},nopartial

extensions.conf(PBX1):
[global_dundi_q_pbx1]
include => one_queue_acd
[global_dundi_q_pbx2]
[global_dundi_q_pbx3]


extensions.conf(PBX2): [global_dundi_q_pbx1]

[global_dundi_q_pbx2]
include => one_queue_acd
[global_dundi_q_pbx3]


extensions.conf(PBX3): [global_dundi_q_pbx1]

[global_dundi_q_pbx2]
[global_dundi_q_pbx3]
include => one_queue_acd

[one_queue_acd]
exten => 2944000,1,....

Our polycom phones are registering to a primary Asterisk system. It's
ESSENTIAL that queue calls for a given company go to the SAME box as the
phones are registered to. Queues won't work correctly if they're are split
between servers.

If a phone registered to pbx1 wants to call the queue at 2944000, the call
comes into pbx1. If I do a dundi lookup on that number on the console I get
this:

hestia*CLI> dundi lookup 2944000 (at) 180q
  1.   200
IAX2/dundi2:cx8tTjXAoQaPfr9V+C6EWw (at) xxx.187.142.204/oe_main
(EXISTS)
     from 00:0e:0c:a1:90:82, expires in 0 s
  2.   300
IAX2/dundi3:zGFQTD6qixAkSNVpQkviQw (at) xxx.187.142.232/oe_main
(EXISTS)
     from 00:0e:0c:a1:92:6f, expires in 0 s
DUNDi lookup completed in 63 ms

If I do the dundi lookup in the dialplan, all I get is
"IAX2/dundi2:cx8tTjXAoQaPfr9V+C6EWw (at) xxx.187.142.204/oe_main"
with no weight. DUNDi never returns local matches (with a weight of 100 in
this case). which is a problem. The result I get from the DUNDi lookup in
the dialplan is a string that points to the SECONDARY server. I don't want
to send the call to the secondary server!!!

I could first do a local lookup with ChanIsAvail and look in the correct
context (global_dundi_q_pbx1 etc) to see if the number is local first.
However, this is tricky as we're trying to maintain a common dialplan
between all our servers. I'd therefore have to probe the system by executing
an external command and pulling the hostname or something just so I know
which context to look in.

I'm guessing no one has tried to distribute acd queues before...









_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:

http://lists.digium.com/mailman/listinfo/asterisk-users



_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users