Queues and roundrobin strategy


#1

Anyone used the roundrobin strategy in ACD Queues? Seems like a bug exists. If you specify strategy=roundrobin in queues.conf, it seems to act more like the rrmemory strategy.

roundrobin should ring each interface in turn, presumably starting from the same interface each time. rrmemory should pick up at the last interface it was at when the last call came into the queue. I saw a bunch of newsgroup posts from people who seemed to be experiencing the same problem. Unfortunately no answers. This is with asterisk 1.0.9. The last post from a person experiencing this problem was in August, so it was definitely a bug until at least fairly recently.


#2

I’ve been chasing weirdness with the queues for a while now. I’ll keep you posted if I do find something out about it. The system does do ‘acd’ style routing, but wow, its not perfect (but free is free huh?)


#3

DicksonC: Found this interesting piece of info on the Asterisk Wiki at voip-info.org/wiki-Asterisk+ … ueues.conf

It says…
"Some notes about roundrobin and rrmemory

roundrobin is not to be confused with “circular call distribution”, infact even using roundrobin without memory subsequent calls are circulated between agent, here in detail it’s how it works, by kpfleming.

roundrobin mode remembers the last agent it started with for a new call, and starts with the next agent in the list. If you have three agents, the first call will go to agent 1->2->3, the next call will go to 2->3->1, the next call will go to 3->2->1, etc.

rrmemory mode remembers the last agent it tried to call, regardless of who it started with, so that the next call will go the agent after the last one who answered. If you have three agents and the first call rings 1->2 (and is answered), then the next call will ring 3->1 (and is answered), then the next call will ring 2->3->1, etc. For the first call, if agent 2 answered it in roundrobin mode, they would still be the first agent for the next call, but rrmemory mode will move past them.

You can, however, achieve circular call distribution by using roundrobin mode and putting a different penalty on each agent, in the order you wish them to be called. app_queue will always try all agents with no penalty, then the ones with penalty 1, etc."

So, this person, whoever they are seem to know a lot about it. I tried setting a penalty on the agents, ie:

Member => Agent/2001,1
Member => Agent/2001,2
Member => Agent/2001,3
Member => Agent/2001,4

as they suggested and the stupid thing then ALWAYS rings for Agent 1.


#4

Interesting post, i’ll give it a good read.

I’ve got 3 phones, and all did was create a basic 3 phone ACD using a very simple logon method. Users at the phone logon to the queue by dialing the queue number follwed by the * key (ie 5002*) then when the attendant asks for their agent ID, they just press # and the are entered in the queue. That might be part of the problem since i’m not using specific agent IDs. I just have calls not being distributed very evenly. (1 phone may always get the calls, other 2 phones might never be a target, or may only ring once). Its kind of annoying, but i’ll implement more of the agent ID’s and such, see if that helps. Thanks for the link.