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
