Ring strategy / queue weirdness

Cotton

Joined
Feb 3, 2010
Messages
6
Likes
0
Points
0
#1
I've tried all ring strategies for a queue with about 10 static agents, with and without Autofill enabled. The voip-info wiki says for autofill:
AutoFill Behavior
; The old/current behavior of the queue has a serial type behavior in that the queue will make all waiting callers wait in the queue even if there is more than one available member ready to take calls until the head caller is connected with the member they were trying to get to.
; The next waiting caller in line then becomes the head caller, and they are then connected with the next available member and all available members and waiting callers waits while this happens.
; The new behavior, enabled by setting autofill=yes makes sure that when the waiting callers are connecting with available members in a parallel fashion until there are no more available members or no more waiting callers.
; This is probably more along the lines of how a queue should work and in most cases, you will want to enable this behavior.
; If you do not specify or comment out this option, it will default to no to keep backward compatibility with the old behavior.
;
autofill = yes
My queue will ALWAYS end up sending a caller besides the longest hold time to an agent, even if the longest hold time call is not ringing. WHY OH WHY??!

Thanks for the great distro btw, first installation, we went live Saturday.

Cotton
 

Cotton

Joined
Feb 3, 2010
Messages
6
Likes
0
Points
0
#2
Everywhere I see that the default Asterisk queue rings FIFO. Mine is definitely not, it seems most random as to the call it presents to the available agent. It'll hand out a call that came into the queue 15 seconds ago, while another call that has been waiting for 45 minutes is skipped, and not ringing.

This is a fresh Elastix 1.6 install, all updated via yum and GUI. Asterisk 1.4.28.
 

Cotton

Joined
Feb 3, 2010
Messages
6
Likes
0
Points
0
#3
Bump...

The problem is with queues. Two priority 0 calls will be handed to agents out of order. During high call volume we've had calls waiting almost an hour get skipped when a 15-second call 8th in line will be handed/picked up by an agent.

I've tested this on Elastix 1.6, Trixbox 2.8 and also vanilla FreePBX 2.6. The same behavior is apparent on all systems.

I've captured some logs here. First, the show queue command, with 2 calls waiting:

Code:
Every 1.0s: asterisk -rx 'show queue 9900'                                                                                          Fri Feb 12 18:38:05 2010

9900         has 2 calls (max unlimited) in 'ringall' strategy (30s holdtime), W:0, C:1, A:3, SL:0.0% within 0s
   Members:
      Local/8502@from-internal/n (dynamic) (Not in use) has taken 1 calls (last was 4412 secs ago)
      Local/1001@from-internal/n (dynamic) (In use) has taken no calls yet
      Local/8335@from-internal/n (dynamic) (In use) has taken 1 calls (last was 4021 secs ago)
   Callers:  
      1. SIP/64.24.35.78-0000012a (wait: 7:20, prio: 0) 907XXXXXXX
      2. SIP/64.24.35.77-0000012d (wait: 6:51, prio: 0) 520XXXXXXX
Here, we have a tail of all Asterisk logs while these 2 calls are in the queue. The 2 RINGNOANSWERs at the very end are from the 2nd, incorrect call to be passed out to the 2 agents that are logged into the queue (1001/8335).

Here's the queue in queues_additional.conf:

Code:
[9900]
announce-frequency=105
announce-holdtime=yes
autofill=no
eventmemberstatus=yes
eventwhencalled=yes
joinempty=yes
leavewhenempty=no
maxlen=0
monitor-type=mixmonitor
monitor-format=wav
periodic-announce-frequency=150
queue-callswaiting=queue-callswaiting
queue-thankyou=queue-thankyou
queue-thereare=queue-thereare
queue-youarenext=queue-youarenext
retry=15
strategy=ringall
timeout=20
weight=0
wrapuptime=60
context=ivr-5
periodic-announce=custom/leaveamessage
Any ideas what's going on here? All the docs I've seen say Asterisk queues are FIFO unless autofill is on, which it is not! Also, the queue will hand out the correct call, until someone answers a call, then they start coming out of order.
 

dicko

Joined
Oct 24, 2008
Messages
4,099
Likes
0
Points
0
#4
From the queues page "hover over" help"

Static Agents:
Static agents are extensions that are assumed to always be on the queue. Static agents do not need to 'log in' to the queue, and cannot 'log out' of the queue.

List extensions to ring, one per line.

You can include an extension on a remote system, or an external number (Outbound Routing must contain a valid route for external numbers).

You can list agents defined in agents.conf by preceding the agent number with A, so agent 4002 would be listed as A4002. This is experimental and not supported. There are known issues, such as the inability for an agents.conf agent to do subsequent transfers to voicemail

In all cases, you can put a "," after the agent followed by a penalty value. Use penalties at your own risk, they are very broken in asterisk.


please note:

. . . Use penalties (priorities) at your own risk, they are very broken in asterisk . . .
 

Cotton

Joined
Feb 3, 2010
Messages
6
Likes
0
Points
0
#5
I'm not sure what static agents has to do with the queue call hand-out. Certainly, I've tried with and without static agents, with penalties set to 0 or 1 with no difference. A call besides top call in queue will always ring through to an agent. This is a very default config, nothing special.

; AutoFill Behavior
; The old/current behavior of the queue has a serial type behavior
; in that the queue will make all waiting callers wait in the queue
; even if there is more than one available member ready to take
; calls until the head caller is connected with the member they
; were trying to get to. The next waiting caller in line then
; becomes the head caller, and they are then connected with the
; next available member and all available members and waiting callers
; waits while this happens. The new behavior, enabled by setting
; autofill=yes makes sure that when the waiting callers are connecting
; with available members in a parallel fashion until there are
; no more available members or no more waiting callers. This is
; probably more along the lines of how a queue should work and
; in most cases, you will want to enable this behavior. If you
; do not specify or comment out this option, it will default to no
; to keep backward compatibility with the old behavior.
 

dicko

Joined
Oct 24, 2008
Messages
4,099
Likes
0
Points
0
#6
In general the whole queues/agent thing in Asterisk 1.4 is considered to be a little (if not more) "broken" the whole schamoozle is reworked in Asterisk 1.6.
 

Cotton

Joined
Feb 3, 2010
Messages
6
Likes
0
Points
0
#7
I'm pretty sure there are hundreds of queue setups out there that work just fine.

I've tried Asterisk 1.6 via trixbox also, same issue.

Even manually setting QUEUE_PRIO for every call joining the queue has no effect. A call besides top call (highest priority) will get handed to agents.
 

dicko

Joined
Oct 24, 2008
Messages
4,099
Likes
0
Points
0
#8
. .I've tried Asterisk 1.6 via trixbox also, same issue.. .

Then it's obviously not Elastix, Trixbox or Asterisk, please ignore my input. I suggest you try posting in FreePBX forums.
 

fmvillares

Joined
Sep 8, 2007
Messages
1,785
Likes
0
Points
0
#9
did you try to upgrade freepbx to 2.6? im not having any of this issues and im working with 100 agent call centers usnig elastix and queuemetrics

my bigger actual call is elastix 1.6.14 fully upgraded to yeasterday...
asterisk 1.4.29 via rpm from elastix repo, freepbx 2.6 manually upgrade via module admin in freepbx...and not a single problem...

also 4 more small callcenters that i support hasnt got any queue problems at all...even without the upgrade

best regards
 

Members online

Latest posts

Forum statistics

Threads
30,902
Messages
130,886
Members
17,563
Latest member
dineshr
Top