Delay function in queues


I’d like to design my system to not have cascading queues (one Q after the other), so it’s easier to report on.

1 thing that’s stopping me from doing it though, is the way I’d have to implement some Q members with a delay on the ringing.

I have a group of people I need to ring, and then a fail-over group, the phone needs to physically ring the second group to make sure it gets their attention (BLF not ideal), but I need them all on a 10~20 second delay (some on 10, some on 20 or so) before they start to ring.

What would be the best way of doing this, with the constraint of just using 1 queue? Any ideas very much appreciated.

I thought using weights would be the solution, but iv’e played with them, along with queuerules.conf and it just doesn’t work right (system dynamically changes the weight, but stops ringing the 1st line of people and just rings the 2nd group, i need the 1st group to keep ringing along with the 2nd)

*I’m thinking of using “Local” channels from the queue context, to ring a context that simply has “Wait()” in it, and populating the wait time from a database for each individual user

Thanking all who reply


your last comment on using the local channels is the best way to do it, set the queue as a ring all queue and the use a Local channel as described.


Darn, I was hoping it wouldn’t come to local dials in a queue…
would be very nice to have a delay setting in queues.conf that could be specified for each member

Still, if anyone has any other ideas, no matter how ambitious/crazy :smile:, I’d be very interested to read them

Thanks ianplain, and to anyone else who posts a suggestion/idea

I think you can do it with queuerules.conf, but I’ve never tried.

This is the way I understand your situation.
You have group 1 who gets the initial call. If unanswered after 10 seconds, group 1 and group 2 agents ring. If after another 10 seconds group 1, group 2 and group 3 agents begin ringing.

If this is correct, my though would be that you could use three queues.
Some agents are in groups 1, 2 and 3.
Some agents are in groups 2 and 3.
Some agents are in group 3 only.

Set the time out on queues 1 and 2 to 10 seconds.
If you want group 2 to get the call immediately if group 1 agents are all busy, you can set the joinempty value appropriately.