Queue Limit Callers

Home » Asterisk Users » Queue Limit Callers
Asterisk Users 4 Comments


I have a requirement, which I am not sure whether it can be implemented. I had done some searches but didnt find an answer to this. Kindly let me know if some one has an idea to implement this:

I have two Queues – Sales & Booking I have 12 Agents who are added to both the queues

Suppose there are 12 calls in the Booking Queue, and 6 calls in the Sales Queue.

Only 8 calls in the Booking Queue should hit the Agents and the other 4 calls should remain in hold.
4 calls in the Sales Queue should hit the other 4 agents and the other 2 call should be in hold.

Means at a time a maximum of 8 Booking calls only should hit the agents and 4 Sales Calls only should hit the agents.

If number of logged in agents are less, proportionally the number of call limit should be reduced. For example, if there are only 10 agents, 7 Booking Calls should hit and 3 Sales calls should hit. The idea is that all agents should be able to answer calls in both queues in rotation. Otherwise its possible to add some agents to booking queue and other agents to sales queue. But thats not what is required.

Kindly help if there is some idea to implement this.

Regards Shanavaz.

4 thoughts on - Queue Limit Callers

  • I am not aware of an existing way to do this. By default, Asterisk does not appear to be able to dynamically change the priority of a queue, which seems to be what you are after.

    On one of my systems I implemented the patch at https://issues.asterisk.org/jira/browse/ASTERISK-17570 which, although it does not do exactly what you are after, it does help a great deal. Basically it dynamically increases the priority of callers based on their hold time across all queues, so that for a given agent they will be presented with the call having the longest wait time across all the queues they are a member of. This has made a big difference to our avg hold time, as queues are no longer competing against one anther for available agents.

    Hope this helps.

    -Barry Flanagan

    I have two Queues – Sales & Booking

  • You should have different sets of agents logged in to different queues and you should have a monitor to move them from one queue to the other based on incoming traffic. l.

    2013/6/17 Shanavaz E A

  • Hello Shanavaz.,

    Please find some quick thoughts:

    * 2 main queues
    * agents logged on one or on both main queues
    * before sending a new call to one of the main queues check the number of waiting callers (QUEUE_WAITING_COUNT function) and divert (for example for
    30 sec) the call on a empty members queue/parking slot/music-on-hold if the queue threshold is reached.

    The threshold could be read from a database, internal astdb or could be set as a global variable updated when agents login/logout/pause/unpause or could be dynamically computed based on QUEUE_MEMBER_COUNT /

    After the divert period is ended the call will return and the threshold is checked again, etc.

    This method have some negative impacts (the entry position number for calls over the threshold //origposition// will have no meaning, a newer call could be served before an older one, etc.) but you could manipulate the call flow exactly how you want.

    HTH, Ioan http://www.modulo.ro

  • Thanks all for the inputs… Let me work on it and come back again with some results…