[asterisk-bugs] [Asterisk 0012884]: Queue is treated as empty if it isn't, but no agents meet the QUEUE_MIN_PENALTY and QUEUE_MAX_PENALTY criteria

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Jun 18 13:13:12 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12884 
====================================================================== 
Reported By:                bcnit
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12884
Category:                   Applications/app_queue
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           1.6.0-beta9 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             06-18-2008 12:19 CDT
Last Modified:              06-18-2008 13:13 CDT
====================================================================== 
Summary:                    Queue is treated as empty if it isn't, but no agents
meet the QUEUE_MIN_PENALTY and QUEUE_MAX_PENALTY criteria
Description: 

In a situation where a call is placed into a queue as follows:

exten => s,n,Set(QUEUE_MAX_PENALTY=1)
exten => s,n,Set(QUEUE_MIN_PENALTY=1)
exten =>
s,n,Queue(${ORGCODE}_${ORGQUEUE},ih,,${ORGCODE}/announce-incoming)
)
The queue is deemed to be empty if there are no agents with a penalty of 1
as a member of the queue.

We use queuerules.conf to raise the QUEUE_MAX_PENALTY value to overflow
calls to other departments and in our case (and I can imagine, other
people's too), it is perfectly legitimate to have members with a penalty of
2 logged in and no members with penalty 1.

As a result of this, the function QUEUE_MEMBER() returns incorrect data
(i.e. QUEUE_MEMBER(free) may return the "number of logged-in members for
the specified queue available to take a call" as 10, but in reality and
because of the penalty issue, it is zero.

I have been able to work around this by checking QUEUE_MEMBER(count) after
I receive a JOINEMPTY bounce out, incrementing QUEUE_MAX_PRIORITY and
trying again, but this is far from ideal!
====================================================================== 

---------------------------------------------------------------------- 
 putnopvut - 06-18-08 13:13  
---------------------------------------------------------------------- 
davidw: Keep in mind that this issue is 1.6-specific. In 1.6, there is a
means by which the QUEUE_MAX_PENALTY may change in mid-call. My feeling is
that if there are rules defined for changing the QUEUE_MAX_PENALTY, then a
call which would otherwise exit with JOINEMPTY status should instead first
try moving through the defined rules to see if increasing the maximum
penalty produces reachable members. 

As far as tighter control in defining what it means for members to be
reachable, that seems like a different issue altogether, though I agree
that more control couldn't hurt. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
06-18-08 13:13  putnopvut      Note Added: 0088874                          
======================================================================




More information about the asterisk-bugs mailing list