NetworkAdmin01
asked on
offer an option while waiting in a queue / exit~re-enter a queue without loosing position
here is the dilemma:
we are using the QUEUE application in asterisk 1.8. the diaplan command we use to queue callers is:
exten => s,1,Queue(myQueue,,,,${QMA XWAIT})
the average hold time for callers is about 20 minutes. every 2 minutes, we want to be able to offer an option to press a key to leave a voicemail or continue to wait. so every 2 minutes, the caller in the queue would hear "we are sorry for the delay, you may press 1 to leave a message in our general voicemail, or continue to hold".
this option is available on every single company i know who uses queuing, this GOTTA be doable! :)
one way to achieve this would be to set the timeout of the queue to 2 minutes, and when the call exits from the queue, play the message, wait to see if the caller press 1, and if not, put the caller back in the queue, *but* the caller would loose it's place in the queue !
so i guess the questions are :
1) is there a way to offer this option natively in the asterisk Queue ?
so far i only saw in the options that you can allow caller/callee to press * to hangup, but nothing about defining another key that would run a macro/subroutine while keeping your spot in the queue. also the macro/subroutine options parameters would only run once the call is being picked up by an agent...
2) is there a way once the maximum queue wait time expires and the caller is taken out of the queue, to find out what position the caller was in the queue, so we can re-inject the caller at the same spot after offering the voicemail option ?
any other suggestions welcome !
please answer with a dialplan example.
if you believe that this question requires more points for this question, please ask and I can split this into multiple questions.
thank you very much in advance for your help!
we are using the QUEUE application in asterisk 1.8. the diaplan command we use to queue callers is:
exten => s,1,Queue(myQueue,,,,${QMA
the average hold time for callers is about 20 minutes. every 2 minutes, we want to be able to offer an option to press a key to leave a voicemail or continue to wait. so every 2 minutes, the caller in the queue would hear "we are sorry for the delay, you may press 1 to leave a message in our general voicemail, or continue to hold".
this option is available on every single company i know who uses queuing, this GOTTA be doable! :)
one way to achieve this would be to set the timeout of the queue to 2 minutes, and when the call exits from the queue, play the message, wait to see if the caller press 1, and if not, put the caller back in the queue, *but* the caller would loose it's place in the queue !
so i guess the questions are :
1) is there a way to offer this option natively in the asterisk Queue ?
so far i only saw in the options that you can allow caller/callee to press * to hangup, but nothing about defining another key that would run a macro/subroutine while keeping your spot in the queue. also the macro/subroutine options parameters would only run once the call is being picked up by an agent...
2) is there a way once the maximum queue wait time expires and the caller is taken out of the queue, to find out what position the caller was in the queue, so we can re-inject the caller at the same spot after offering the voicemail option ?
any other suggestions welcome !
please answer with a dialplan example.
if you believe that this question requires more points for this question, please ask and I can split this into multiple questions.
thank you very much in advance for your help!
Yes take a look at http://www.voip-info.org/wiki/view/Asterisk+config+queues.conf and search for 'Context' on the page. The feature is not very well documented but if you specify the context and have option 1 going to voicemail that will do the job.
ASKER
when using the context, the caller can press a DTMF, and it will be sent to the corresponding extension in the context. it seems at the same time, the caller is been taken OUT of the queue.
the queue application has an option to put the caller back in the queue at a particular position, but how do I know the position of the caller in the queue at the time the caller pressed a dtmf to exit the queue; in order to put the caller back to the same position ?
thank you
the queue application has an option to put the caller back in the queue at a particular position, but how do I know the position of the caller in the queue at the time the caller pressed a dtmf to exit the queue; in order to put the caller back to the same position ?
thank you
You cant do that. You have to have the periodic announcement giving the option for them to press a digit or continue to wait. If they press the digit they should be taken to the voicemail system. You cant put them back in the queue again otherwise they could queue jump or get put back in at the end.
ASKER
well, that's the thing, i need to be able to process some dialplan code before putting the caller back in the queue: check if agents showed up in another queue to divert there, check/et astDB values, and then ultimately make the decision to go back to the queue, keeping the original position in the queue.
so it all comes down to one question really: how do I know a caller position in the queue as it exits the queue (whether the caller exits because of timeout, or key pressed) ?
thanks a lot
so it all comes down to one question really: how do I know a caller position in the queue as it exits the queue (whether the caller exits because of timeout, or key pressed) ?
thanks a lot
Asterisk wont do what you want natively.
> the average hold time for callers is about 20 minutes. every 2 minutes, we
> want to be able to offer an option to press a key to leave a voicemail or
> continue to wait. so every 2 minutes, the caller in the queue would hear "we
> are sorry for the delay, you may press 1 to leave a message in our
> general voicemail, or continue to hold".
In this example the caller is never being taken out of the queue. They are just hearing the menu as one of the periodic announcements and they can press 1 at any time to jump to the voicemail. This is exactly how asterisk queues work.
There is no variable set when someone jumps out of a queue as to what position they were in beforehand. You could have a separate program running all the time to issue the 'queue show' command to asterisk and use the output to track all the callers as they go through the system but that wont be easy.
What method are you using to put callers back in the queue at a specific position. The asterisk documentation doesnt list any option which would enable this.
> the average hold time for callers is about 20 minutes. every 2 minutes, we
> want to be able to offer an option to press a key to leave a voicemail or
> continue to wait. so every 2 minutes, the caller in the queue would hear "we
> are sorry for the delay, you may press 1 to leave a message in our
> general voicemail, or continue to hold".
In this example the caller is never being taken out of the queue. They are just hearing the menu as one of the periodic announcements and they can press 1 at any time to jump to the voicemail. This is exactly how asterisk queues work.
There is no variable set when someone jumps out of a queue as to what position they were in beforehand. You could have a separate program running all the time to issue the 'queue show' command to asterisk and use the output to track all the callers as they go through the system but that wont be easy.
What method are you using to put callers back in the queue at a specific position. The asterisk documentation doesnt list any option which would enable this.
ASKER
ok, thanks for your help
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
kode: this is PRECISELY the information i was looking for! i can't wait to try this !! thank you!!
ASKER
wish i had an actual dialplan example with the utilization of the variables. thanks for your help.