[Home]

Summary:ASTERISK-09282: agents assigned to multiple queues and weight=0 cause callers be handled in wrong order
Reporter:Henning Holtschneider (hehol)Labels:
Date Opened:2007-04-19 07:00:43Date Closed:2011-06-07 14:07:23
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Core/Configuration
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Assume the following setup:

- two queues
- weight=0 or undefined (thus default 0) in queues.conf
- one dynamic agent logged onto the server

When placing calls in both queues, the calls are being handled first-in-last-out instead of first-in-first-out, i.e. the last caller to join either of the two queues will be served to the agent first.

****** ADDITIONAL INFORMATION ******

Setting "weight" to a non-zero value will circumvent the problem.
Comments:By: Mark Michelson (mmichelson) 2007-08-06 11:47:03

Just so we have semantics straight here:

when you use the word "agent" do you mean an agent logged in via AgentLogin or a queue member logged in via AddQueueMember?

Also, is this a problem in 1.4 as well? 1.2 is in security maintenance mode now, so only security-related patches are being made for 1.2.



By: Mark Michelson (mmichelson) 2007-08-06 16:13:55

Also, this will be easier to debug if I could see your queues.conf file, so I can know things like what strategy your queues use, whether you have autofill on, etc. Also, are you using realtime queue members?

By: Henning Holtschneider (hehol) 2007-08-10 07:51:15

Here is a sample queue from queues.conf:

[queue-support]
queue-youarenext=queue-youarenext
queue-thereare=queue-thereare
queue-callswaiting=queue-callswaiting
queue-holdtime=queue-holdtime
queue-minutes=queue-minutes
queue-seconds=queue-seconds
queue-thankyou=queue-thankyou
queue-lessthan=queue-less-than
queue-reporthold=queue-reporthold
timeout=22
retry=5
maxlen=0
joinempty=strict
leavewhenempty=yes
eventwhencalled=yes
reportholdtime=yes
wrapuptime=45
announce-frequency=120
announce-holdtime=yes
timeoutrestart=yes
musiconhold = default
strategy = ringall
weight=1

The members are logging in via AddQueueMember(). Sorry for not being more precise about this. I'm not using realtime queue members.

I haven't tested the problem against Asterisk 1.4.

By: Mark Michelson (mmichelson) 2007-08-10 16:03:03

I'm sorry but there are still a few things I want to get straightened out before I go about trying to come up with a fix.

First of all, I need to clarify what you mean when you say "When placing calls in both queues, the calls are being handled first-in-last-out instead of first-in-first-out, i.e. the last caller to join either of the two queues will be served to the agent first." Does this mean that calls within a single queue are handled last-in-first-out

Caller 1 calls Queue 1
Caller 2 calls Queue 1
Agent becomes available
Agent is connected to Caller 2

or does this mean something more like this:

Caller 1 calls Queue 1
Caller 2 calls Queue 2
Agent becomes available
Agent is connected to Caller 2
?

Furthermore, does this ALWAYS happen, or does it happen only some of the time? When you say that changing the weight to a non-zero value fixes the problem, are you setting both queues' weights to non-zero values or just one of them? If you're changing both, are you changing them both to the same value?



By: Henning Holtschneider (hehol) 2007-08-12 07:16:47

> be served to the agent first." Does this mean that calls within a single queue > are handled last-in-first-out

Yes.

> Furthermore, does this ALWAYS happen, or does it happen only some of the time?

It always happens.

> When you say that changing the weight to a non-zero value fixes the problem,
> are you setting both queues' weights to non-zero values or just one of them?
> If you're changing both, are you changing them both to the same value?

I set the value of both queues to 1.

By: Mark Michelson (mmichelson) 2007-08-13 09:57:02

I've tried reproducing this in 1.2 and 1.4 but I couldn't get it to happen either way.

Could you post any relevant sections from extensions.conf?

Also, if you don't mind, could you check to be sure that you can still do this in 1.4.

By: Mark Michelson (mmichelson) 2007-08-27 10:01:24

After hanging out in #asterisk for a while, I have received confirmation from others that this indeed does happen in 1.4. Still, I have not been able to reproduce the issue myself, and since it appears to be so easily reproducible, I was hoping you might share EXACTLY the steps you take in order to get the last in first out behavior to happen.

By: Mark Michelson (mmichelson) 2007-10-31 10:00:35

It's been two months and I've heard no feedback. I am suspending this pending more information