I have a queue configured for each and I would want Extension 100 to ring for 5 seconds and then start ringing both extension 100 & 110 until the call is answered or the timeout is reached.
I try to do it through a penalty, but it doesn’t work.
there is always a call only to number 100
[extensions.conf]
exten => ${NUM001},1,SET(CALLERID(name)=‘test’)
same => n,Answer()
same => n,Set(QUEUE_MIN_PENALTY=1)
same => n,Set(QUEUE_MAX_PENALTY=1)
same => n,Queue(3TIL,record_call)
same => n,Hangup()
I’m surprised it doesn’t wait to timeout + retry. At a guess, it must be working out that the first agent cannot go the whole 10 seconds.
I wouldn’t expect the penalties to be taken into account until the current round of ringing had ended, after timeout, as, from what I remember, the complete list of eligible members is worked out at the start of each cycle.
here I lied a little.
In fact, within ten seconds number 100 rings, and then from 11 seconds only number 110 starts ringing. Sorry for the misinformation
My experience with penalties are, that Asterisk evaluates the lowest penalty first. If an agent is available, their phone will ring, and other, higher, penalties are not taken into account.
So if your queue contains the members
100, penalty 1
110, penalty 2
If 100 is not busy or paused, then 110 will never ring.
With ring all, I have to use the above mentioned rules, in order to make Asterisk ring first all penalty 1 members, then penalty 2, and so forth, unless all members on the lowest penalty are busy/paused, no one on the next penalty level will be called… It may be a bug, and not intended behaviour, but that’s how it has been working for me, since at least Asterisk 13.