Hi,
I set up a queue, with these parameters:
exten => 820,1,Macro(user-callerid,)
exten => 820,n,Answer
exten => 820,n,Macro(blkvm-set,reset)
exten => 820,n,ExecIf($["${REGEX("(M[(]auto-blkvm[)])" ${DIAL_OPTIONS})}" != "1"]?Set(_DIAL_OPTIONS=${DIAL_OPTIONS}M(auto-blkvm)))
exten => 820,n,Set(__NODEST=${EXTEN})
exten => 820,n,Set(QCIDPP=${IF($[${LEN(${VQ_CIDPP})}>0]?${VQ_CIDPP}: )})
exten => 820,n,Set(VQ_CIDPP=)
exten => 820,n,ExecIf($["${QCIDPP}"!=""]?Macro(prepend-cid,${QCIDPP}))
exten => 820,n,Set(QAINFO=${IF($[${LEN(${VQ_AINFO})}>0]?${VQ_AINFO}: )})
exten => 820,n,Set(VQ_AINFO=)
exten => 820,n,ExecIf($["${QAINFO}"!=""]?Set(__ALERT_INFO=${QAINFO}))
exten => 820,n,Set(QJOINMSG=${IF($[${LEN(${VQ_JOINMSG})}>0]?${IF($["${VQ_JOINMSG}"!="0"]?${VQ_JOINMSG}: )}: )})
exten => 820,n,Set(VQ_JOINMSG=)
exten => 820,n,Set(QMOH=${IF($["${VQ_MOH}"!=""]?${VQ_MOH}: )})
exten => 820,n,Set(VQ_MOH=)
exten => 820,n,ExecIf($["${QMOH}"!=""]?Set(__MOHCLASS=${QMOH}))
exten => 820,n,ExecIf($["${MOHCLASS}"!=""]?Set(CHANNEL(musicclass)=${MOHCLASS}))
exten => 820,n,Set(QRETRY=${IF($[${LEN(${VQ_RETRY})}>0]?${VQ_RETRY}: )})
exten => 820,n,Set(VQ_RETRY=)
exten => 820,n(qoptions),Set(QOPTIONS=${IF($[${LEN(${VQ_OPTIONS})}>0]?${VQ_OPTIONS}:t)}${QCANCELMISSED}${QRINGOPTS}${QRETRY})
exten => 820,n,Set(VQ_OPTIONS=)
exten => 820,n(qgosub),Set(QGOSUB=${IF($[${LEN(${VQ_GOSUB})}>0]?${VQ_GOSUB}:${QGOSUB})})
exten => 820,n,Set(VQ_GOSUB=)
exten => 820,n(qagi),Set(QAGI=${IF($[${LEN(${VQ_AGI})}>0]?${VQ_AGI}:${QAGI})})
exten => 820,n,Set(VQ_AGI=)
exten => 820,n(qrule),Set(QRULE=${IF($[${LEN(${VQ_RULE})}>0]?${IF($["${VQ_RULE}"!="0"]?${VQ_RULE}: )}:${QRULE})})
exten => 820,n,Set(VQ_RULE=)
exten => 820,n(qposition),Set(QPOSITION=${IF($[${LEN(${VQ_POSITION})}>0]?${VQ_POSITION}:${QPOSITION})})
exten => 820,n,Set(VQ_POSITION=)
exten => 820,n,Gosub(sub-record-check,s,1(q,820,dontcare))
exten => 820,n,Set(__CWIGNORE=TRUE)
exten => 820,n,ExecIf($["${QJOINMSG}"!=""]?Playback(${QJOINMSG}, ))
exten => 820,n,QueueLog(820,${UNIQUEID},NONE,DID,${FROM_DID})
exten => 820,n,Set(QAANNOUNCE=${IF($[${LEN(${VQ_AANNOUNCE})}>0]?${IF($["${VQ_AANNOUNCE}"!="0"]?${VQ_AANNOUNCE}: )}: )})
exten => 820,n,Set(VQ_AANNOUNCE=)
exten => 820,n,Set(QMAXWAIT=${IF($[${LEN(${VQ_MAXWAIT})}>0]?${VQ_MAXWAIT}: )})
exten => 820,n,Set(VQ_MAXWAIT=)
exten => 820,n(qcall),Queue(820,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI},,${QGOSUB},${QRULE},${QPOSITION})
exten => 820,n,Macro(blkvm-clr,)
exten => 820,n,Gosub(sub-record-cancel,s,1())
exten => 820,n,Set(__NODEST=)
exten => 820,n,Set(_QUEUE_PRIO=0)
exten => 820,n,Set(__CWIGNORE=)
exten => 820,n,Set(QDEST=${VQ_DEST})
exten => 820,n,Set(VQ_DEST=)
exten => 820,n(gotodest),GotoIf($["${QDEST}"=""]?app-blackhole,hangup,1:${CUT(QDEST,^,1)},${CUT(QDEST,^,2)},${CUT(QDEST,^,3)})
So, when a caller enter the queue, my phone ring and then i answer the call.
Now imagine another caller entering the Queue, my phone doesn’t ring as i’m on the phone, and it’s ok for me, because i want my phone to receive only 1 call at a time
But, as soon as i hang up the first call, my phone doesn’t ring until the “Agent timeout” timer is elapsed…
for exemple: with “agent timeout” as 15 seconds
- at 0 seconds, a first call enter the queue and my phone ring.
- at 2 seconds i answer the call
- at 15 seconds another call enter the queue
- at 20 seconds i hang up the first call
-> My phone will ring at 30 seconds… i want it to ring at 20 seconds (as soon as i hangup)
If i put the agent timeout to 1 second for exemple, then the phone ring only for 1 second, then re ring for 1 second, etc… and this generate false statistics
how can i force Asterisk to ring my phone as soon as i hang up?
i’m sorry, if you did not understand me, tell me, english is not my natural language