[asterisk-bugs] [Asterisk 0011007]: Circular call distribution no longer works

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Oct 17 10:08:38 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11007 
====================================================================== 
Reported By:                bcnit
Assigned To:                putnopvut
====================================================================== 
Project:                    Asterisk
Issue ID:                   11007
Category:                   Applications/app_queue
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
Asterisk Version:           1.4.13  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             10-17-2007 02:35 CDT
Last Modified:              10-17-2007 10:08 CDT
====================================================================== 
Summary:                    Circular call distribution no longer works
Description: 
In Asterisk 1.2, if I wanted to specifically state the order extensions
were run, I would use priorities and the 'roundrobin' strategy, for
example:

-----------------------------------
[queue]
strategy=roundrobin
timeout=10
retry=1

member => SIP/100,1
member => SIP/102,2
member => SIP/101,3
-----------------------------------

This would have the effect of ringing 100 for 10 seconds, then 102, then
101.

In Asterisk 1.4(.13) and being driven from realtime, this no longer works.
Using 'roundrobin' is now deprectaed and if the queue defined above were
called, 100 would ring for 10 seconds, then would ring for another 10
seconds and so on.

I suspect that this behaviour will break a lot of implementations when
they are upgraded to 1.4 - it's certainly broken two of ours.
====================================================================== 

---------------------------------------------------------------------- 
 putnopvut - 10-17-07 10:08  
---------------------------------------------------------------------- 
I had a bit of a brain fart this morning when I was reading this. I realize
that what you are experiencing is actually the correct behavior. Member
penalties are used for when a member with a lower penalty is busy or
unavailable in some way. So in your setup, SIP/102 will only be rung if
SIP/100 is busy and SIP/101 will only be rung if both SIP/100 and SIP/102
are unavailable.

That being said, I don't know of a simple way to implement the behavior
you desire for your queues in 1.4. There IS, however, an issue
(http://bugs.digium.com/view.php?id=7279)
which implements a "linear" strategy, which will always call the queue
members in the order specified in queues.conf (or in the order in which
they were added if they are dynamic queue members). Unfortunately, the
patch on that issue is for trunk and does not apply cleanly to 1.4. Due to
the policies regarding new features for 1.4, right now I can't guarantee
the linear strategy's inclusion in 1.4, but what I will do is add a 1.4
version of the patch to that issue so that you may use it. A caveat though:
the linear strategy has only been tested minimally by me in a small setup,
so I can't guarantee that it will work flawlessly.

I will add a note here once the 1.4 version of the linear strategy has
been added to 7279. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
10-17-07 10:08  putnopvut      Note Added: 0072165                          
======================================================================




More information about the asterisk-bugs mailing list