[asterisk-users] Fwd: add a new queue strategy: SBR

Andrey Solovjov solovjov at mcn.ru
Mon Apr 6 03:42:22 CDT 2009


Mark Michelson wrote:
> Caution: One shortcoming of queue member penalties is that they are not 
> taken into account if a queue member of a low penalty does not answer a 
> call. Say for instance that the queue application determines that there 
> are two members available to answer an incoming call. One member has 
> penalty 1 and the other has penalty 2. If the member with penalty 1 does 
> not answer the call, the queue application still considers that member 
> to be available the next time that it tries to reach a member. The 
> member with penalty 2 will only be tried if the queue application can 
> determine *before the call is placed* that the member with penalty 1 is 
> unavailable.
>
> Mark Michelson
>
>   
There is a patch http://bugs.digium.com/view.php?id=9165 which creates 
new strategy xrrmemory. It tries to call the member with higher penalty 
if  queue member of a lower penalty does not answer the call. 
Unfortunately disclaimer was not submitted and this patch was suspended. 
We use this patch successfully in production and in fact this is the 
most popular strategy for many of our clients. It allows to create one 
queue and you can manage which members to call first, second and so on. 
For example, you have
SIP/101,0
SIP/201,1
SIP/202,1
SIP/301,2
First queue will try to call SIP/101, then SIP/201, then SIP/202 (or 
SIP/202, SIP/201), and then SIP/301, after that it will call again 
SIP/101 and so on. You can also create simple linear strategy with 
dynamic members and they will be called in the order YOU set and not the 
order they are added to queue (current linear strategy).
I know this can be done using QUEUE_MAX_PENALTY variable but you will 
need no enter queue and leave queue many times.
This patch was written when the creator worked for our company so I can 
resubmit the code with license if it's interesting.

Andrew



More information about the asterisk-users mailing list