[asterisk-bugs] [Asterisk 0013220]: Calls in high-weighted queue block low-weighted

Asterisk Bug Tracker noreply at bugs.digium.com
Wed Sep 10 12:08:56 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13220 
====================================================================== 
Reported By:                garychen
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   13220
Category:                   Applications/app_queue
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.4.19 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-08-01 08:28 CDT
Last Modified:              2008-09-10 12:08 CDT
====================================================================== 
Summary:                    Calls in high-weighted queue block low-weighted
Description: 
I have two queues, weighted 4 and 5. High priority calls are placed in
Q6002, while low priority ones in Q6001.

All agents are member of both queues.

The problem is whenever there's a high priority call ringing on an agent
(the agent not answer the call), low priority calls not routed to any idle
agents. They are blocked.
====================================================================== 

---------------------------------------------------------------------- 
 (0092311) garychen (reporter) - 2008-09-10 12:08
 http://bugs.digium.com/view.php?id=13220#c92311 
---------------------------------------------------------------------- 
I fixed my problem by adding a condition on line 1738:
//if ( q->weight > rq->weight) { 	
if ( (q->weight > rq->weight) && ( q->count >= get_available_members(q) )
) {

The function get_available_members() is to calculate the number of agents
that are not in use, which means not in talking or ringing. It's logic is
pretty much the same as is_our_turn().

It would be better to merge together to avoid duplication. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-09-10 12:08 garychen       Note Added: 0092311                          
======================================================================




More information about the asterisk-bugs mailing list