Queue ringall add additional members

Hello,

I’m running Asterisk 20.20.1 with a ringall queue where members have different penalties. The goal is to widen the ring as the caller waits: penalty 0 rings immediately, penalty 1 joins after 10 seconds, penalty 2 joins after 20 seconds, and so on. The agents already ringing should keep ringing the whole time.

See image:

The closest I’ve gotten is queue rules with QUEUE_RAISE_PENALTY:

; queuerules.conf
[test_rule]
penaltychange => 10,1,,1
penaltychange => 20,2,,2


; queues.conf
[5000]
strategy=ringall
timeout=10
retry=1
defaultrule=test_rule
member=>Local/101@queue-agents/n,0
member=>Local/102@queue-agents/n,1
member=>Local/103@queue-agents/n,2


; dialplan
Set(__QUEUE_MAX_PENALTY=0)
Set(__QUEUE_RAISE_PENALTY=0)
Queue(5000,,,,300)

This adds the agents at the right times, but only because timeout=10 ends the ring cycle every 10 seconds. Each time that happens all ringing legs are hung up and re-dialed, so the agents’ phones stop and start on every cycle. retry=1 shortens the gap to a second but doesn’t change that.

Is there a way to have new agents join the ring that is already in progress, with the existing legs left alone, as in the picture above?

Thank you

no.

that is the way it works in app queue .

how about using 3 queeus - penalty0, penalty1, penalty2
first inbound call go “penalty0”
if no available agent, go “penalty1”
if no available agent, go “penalty2”

It will still stop the call return hopping between queues.