Queue setup with 2.10

I was on 2.8 previously and my Queues worked as expected. I have three static agents with a ringall strategy and skip busy agents set to no. When a call would come in, it’d ring all three agents regardless if they had another call or had a call on hold.

I’ve built a new system with 2.10, used bulk extensions to transfer extensions and setup the rest manually. Everything is working great except for the queues. Instead of the expected behavior, any agent(s) that are on the phone or have a call on hold are skipped completely.

A log shows that the app_queue.c is only calling agents that aren’t busy:

2012-03-12 11:16:42] VERBOSE[21851] app_queue.c: -- Called Local/100@from-queue/n [2012-03-12 11:16:42] VERBOSE[21851] app_queue.c: -- Called Local/101@from-queue/n [2012-03-12 11:16:42] VERBOSE[21851] app_queue.c: -- Called Local/109@from-queue/n

vs

I checked the /etc/asterisk/queues_additional.conf file and don’t see any differences (compared to my 2.8 system that had the correct behavior) other then the few new things 2.10 has put in there.

What am I missing?

Some further testing:

If agent1 has a call on hold from the Queue, I can call that agent direct and the call will ring line 2 as expected.

If I call agent1 direct and then the call is put on hold and then a call comes in via the Queue (that agent1 is static in), the call will not ring through to the phone. When I hang up the direct dial call, the queue call is then allowed to proceed to agent1’s phone.

This is with the strategy set to ringall and skip busy agent set to no.

I did this test to confirm that the phone can receive an incoming call when another call is on the line.

So it would appear that skip busy agent set to no is being ignored.

Was able to do a work around by changing the extension settings for the agent.
Queue State Detection: Ignore State

Works fine for us, but would like to know why the Skip Busy Agent is working appropriately.

With a little more testing, it appears that when the static agents’ extensions are set with Queue State Detection set to Ignore State, the desired queue option Skip Busy Agent is honored. That is, when I have the extensions set to Ignore State, and then set the Queue’s Skip Busy Agents checked, the agents that are busy are skipped. If I uncheck Skip Busy Agents, the calls go through.

The description for Queue State Detection does not reflect this behavior, however, it is the behavior I desire.

After more testing, that ‘work around’ doesn’t work so well.

With Queue State Detection set to Ignore State, the queues app doesn’t always send the calls to agents. An agent can be not in use (me visually seeing they are off the phone), yet when I do a ‘queue show’ at the asterisk cli, they show ‘in use’ and thereby calls from the queue don’t go to them.

Hopefully someone will chime in with an idea of what to check next as I’m running out of ideas.