Return of calls in queue - devolución de llamadas en cola

good morning

I am trying to find a solution to the following requirement: When you enter a specific queue and the waiting time is long, give the caller a chance to hang up and when he is in the first position in the queue he will automatically enter the call to your phone and will be in the first position.

Any ideas?

Buenos dias

Estoy tratando de buscar solución al siguiente requerimiento: Cuando entre a una cola especifica y el tiempo de espera sea largo le de la posibilidad a la persona que llama que cuelgue y cuando este en la primera posición en la cola automáticamente le entre la llamada a su teléfono y quedara en la primera posición.

Alguna idea?

How about this senario?

  1. caller join the queue
  2. waiting time was passed. if caller press DTMF, hang up the call <- using queue’s context
  3. waiting time was passed. caller leave the queue
  4. caller rejoin the queue at first position(change the caller position before join queue)

Hi hsunryou, I like the idea, but I don’t know how to make the dial plan. Could you give me a little explanation of how to start.

I would be very grateful.

Hola hsunryou, me gusta la idea, pero no se como realizar el plan de marcado. podria darme una pequeña explicación de como empezar.

Quedaría muy agradecido.

first, you configure the queue information at queues.conf
context = input_dtmf

and then you can set dialplan at extensions.conf
exten => XXXX.,1,noop(–It’s test–)
same => n,Queue(Queue1,…,60) <-- 60 : waittime value
same => n,GotoIf("${QUEUESTATUS" == “TIMEOUT”},requeue)
same => n,Hangup
same => n(requeue),SetVar(QUEUE_PRIO=10) <-- change priority
same => n,Queue(Queue1,…,60)
same => n,Hangup

[input_dtmf] <-- in queue call, if caller press “1”(dtmf)
exten => _1,1,noop(–It’s hangup–)
same => n,hangup

how about this? it’s written in my memory.
you can modify and add some information if you want!


I have a question: The call stays on this line

same => n, Queue (Queue1,…, 60) <- 60: waittime value

and does not pass this line

same => n, GotoIf ("$ {QUEUESTATUS" == “TIMEOUT”}, required)

What does this sentence do?

Please help me

friend that solution you gave me serves as pure asterisk? or is it only from freepbx or issabel?

same => n, Queue (Queue1,…, 60)
same => n, GotoIf ("$ {QUEUESTATUS" == “TIMEOUT”}, required)

caller join the queue(Queue1). but how about this case?

if there’s no agent available for 60 seconds, the caller is abandoned(after queue’s wait timeout)
at this time, “QUEUESTATUS” asterisk variable has a piece of information about Queue Result!

this is what I have

exten => _200,1,Answer
exten => _200,n,noop(–It’s test–)
exten => _200,n,Queue(PRUEBA1,…,10)
exten => _200,n,GotoIf(["{QUEUESTATUS}" == "TIMEOUT"]}?requeue) ;exten => _200,n,GotoIf("{QUEUESTATUS" == “TIMEOUT”},requeue)
exten => _200,n,Hangup
exten => _200,n(requeue),SetVar(QUEUE_PRIO=10)
exten => _200,n,Queue(PRUEBA1,…,10)
exten => _200,n,Hangup

[root@hawking asterisk]# asterisk -rvvvvvv | grep 4126
– Executing [200@admon:1] Answer(“SIP/4126-000ffb10”, “”) in new stack
– Executing [200@admon:2] NoOp(“SIP/4126-000ffb10”, “–It’s test–”) in new stack
– Executing [200@admon:3] Queue(“SIP/4126-000ffb10”, “PRUEBA1,…,10”) in new stack
– Started music on hold, class ‘prueba’, on SIP/4126-000ffb10
– SIP/1836-000ffb11 connected line has changed. Saving it until answer for SIP/4126-000ffb10
– Stopped music on hold on SIP/4126-000ffb10
== Spawn extension (admon, 200, 3) exited non-zero on ‘SIP/4126-000ffb10’

exten => _200,n,Queue(PRUEBA1,…,10)

I’m sorry. there is express error

exten => _200,n,Queue(PRUEBA1,…,10)

“…” it means that there are many options.
you have to change it properly!

check this site!

Hi friend, I’m back, it doesn’t work, I don’t know what to do

First, I need to know your situations.
would you explan your issue with dial-plan and CLI logs?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.