How To Implement “priority Queuing” Within A Single Queue ?

Home » Asterisk Users » How To Implement “priority Queuing” Within A Single Queue ?
Asterisk Users 2 Comments


Let say that in a call center, callers are recognized and categorized in 4
priority levels (priority 1 for Very Very Important Personalities, 2 for VIP, and so on) before entering a Queue. How can you make sure a priority 2 caller is answered before priority 3
callers, for instance ?

I can think of several solutions but none really pleases me :

1. Have 4 different queues, set penalty value and let each caller enter one queue depending on its own priority. I don’t like this solution because I foresee editing stats for 4 queues instead of one is harder.

2. Iterate over each call waiting in the queue and insert new call with Queue’s position argument accordingly valued. I don’t like this one because I’m afraid coding this won’t be so easy.

What would you suggest ?


2 thoughts on - How To Implement “priority Queuing” Within A Single Queue ?

  • Am 25.01.2013 um 17:22 schrieb Olivier:

    Just set the Queue_PRIO for that specific caller-type before you send them all into the same queue:

    exten => s,n,Set(QUEUE_PRIO=10)
    exten => s,n,Queue(test,tC,,,180)


  • Penalty isn’t anything to do with the caller, it’s to do with the agent.

    We set round robin for our queues. With penalty=0 for the main members of a queue, to service most of the calls. Penalty 50 for a trainee. Penalty 99 for the supervisor of the queue.

    This way the supervisor isn’t bothered with the bulk of the calls, only when the queue is busy does the supervisor get any calls.

    Of course this can be done by analysis later, but in realtime the supervisor can assess why they got the call – assuming they are in close proximinity. Large queues, different story. We only have 5 members in a queue, so it works for us.

    Alec Davis