Hi we have a small asterisk setup and are using agents with queues. our main queue dialplan looks like this:

exten => 10,1,Answer
exten => 10,n,Queue(tech|tT|||70)
exten => 10,n,Background(busy-pls-hold)
exten => 10,n,SetVar(QUEUE_PRIO=70)
exten => 10,n,Queue(tech|tT|||180)
exten => 10,n,Background(busy-pls-hold)
exten => 10,n,SetVar(QUEUE_PRIO=180)
exten => 10,n,Queue(tech|tT|||300)
exten => 10,n,Background(busy-pls-hold)
exten => 10,n,SetVar(QUEUE_PRIO=300)
exten => 10,n,Queue(tech|tT|||3600)

we are having a problem with the queue position announcements, when a caller reaches the point where they timeout, all other callers progress in the queue, and get an announcement saying they are now 1 call closer. But when the first call goes back into the queue with a higher priority all the other calls get pushed back again, and there announcement says they have gone backwards in the queue.

Does anyone know of a way we can fix this problem?

we are running asterisk 1.2.1


The reason why is that you are dumping the caller back into queue…even with the increased priority value, they are being inserted at the back of the line, so to speak.

Why not just leave the individual in queue, since you’re putting them back into the same queue anyway? that way, if they’re next in line, they’ll remain next in line…

I guess what I’m saying is that your dialplan doesn’t really change much - you’re increasing the priority for the first person in line, but if they’re first in line and everything else is equal, then they’d be answered first.

now, if you wanted to route them to a higher priority queue (call it tech_1) THAT would be the way to go - you set a timeout, and have escalating queues, versus just escalating priorities…that way, if someone gets as far as tech_3, you know that the people manning the other queues are not doing their jobs.

that is how i’d do it anyway.