VQ Plus is an add-on module to the standard queue features of your PBX. It expands the options of your queue and allows you to :
Ability to route the agent or caller to any destination on hangup of a queue call. Meaning you could route the inbound caller to a survey system automatically when the agent hangs up the call.
Caller Post Hangup Destination- Destination to send the caller to upon the agent hanging up the call. This is often used to send a caller to take a post call survey.
Agent Post Hangup Destination- Destination to send the agent to upon the caller hanging up the call.
The Queue CallBack option of VQ Plus allow callers to optionally hangup their call and have the queue hold their position in line for them and call them back once their held position would be the next caller to be transferred to a agent.
We first need to create our Queue CallBack rules and once created we can link 1 or more queues to use it. In module admin click on Queue Callback option and select the "New Queue Callback" button on the right side.
We now need to provide some options for this callback
- Name- Name of this Queue Callback
- Caller ID- Caller ID to be used when calling back a caller.
- Number Prepend- Here you can define any prepend to be added to the number the caller has requested to be called back from. Useful if you want to make the system use a specific route that only looks for the prepended number such as a 9.
- Dial Matches- Here is where we define what are valid numbers a user can enter to have the system call them back on. We highly suggest setting this to things like 10 or 11 digit numbers in the US and not allowing callers to enter in expensive numbers like international or things like 911. It uses dial pattern matches just like outbound routes module.
The call backs process through your outbound routes. These would be handled in the same manner as you picking up your phone and dialing a number.
Now we can optionally change out the default prompts. Below is a list of prompts and what each one current says.
- Announcement- Here you can set the announcement that is played to the callers in the queue instructing them to press 1 to have the system call them back. This announcement is only played if you have your queue setup to use the Queue Callback announcement. You could optionally have your queue actually breakout to a IVR and have the IVR have a dial option such as press 3 to have the queue call you back. In that mode the announcement picked here will not be played but the IVR announcement in the IVR will be used. The IVR mode is only used when you want to give them more then just a option of pressing 1 to have the system call them back.
- Callback Queue- When we call back the caller you can pick to have them routed back to the queue they came from or to any specific queue or virtual queue on the system.
- Number Prompt- This is the prompt played to the caller after they have decided to have the queue call them back. Its played to the caller after it reads back the Caller ID number that they called in from and ask them to press 1 to use that number or press 2 to enter their own number.
- Record Name- After the caller has completed the Number Prompt above you can optionally have the system ask them to record their name. Enabling this will have the Name Prompt announcement below get played.
- Name Prompt- If Record Name is enabled this prompt will be played asking the caller to say their name and press # when done.
- Confirmed Prompt- This is the final prompt played to the caller informing them the system will call them back when their position in line is reached.
- Callback Prompt- This is the prompt played to the caller when we call them back. It states you have a call back for and then will say the name the caller recorded or if no name was recored it will play back the callback number.
- Accept Prompt- This is the prompt that is played after the Callback Prompt above that instructs the caller to press 1 to be connected back.
Lastly we need to setup how to handle the call back and what happens when we can not reach someone.
- Timeout- This is how many seconds from when we first start dialing the person back we should let the system wait for them to answer and press 1 to be connected back. The default is 45 seconds.
- Retires- If we are not able to reach the caller and have them press 1 how many times do you want to have the system retry dialing them. The default is 2.
- Retry Delay- This is how many seconds we should wait after failing to have the caller press 1 on a call back before we try and call them again if you have retries above enabled. We suggest something like 300 seconds.
Submit our changes when done
Now we need to go into the queue and link it to this Queue Callback. Inside your queue scroll down the the Periodic Announcements section and set the following options
- Break Out Type- Set this to be Queue Callback for the simple mode. You can also set this to be IVR Breakout Menu which will then let this breakout be to a IVR you have created on your system but you will then need to make sure in your IVR you add a option such as 3 to go to your queue callback you created.
- IVR Break Out Menu- Pick which IVR you want to play to the caller. This option is only available if the Break Out Type is IVR Breakout Menu'
- Queue Callback- Pick which Queue Callback you want to send the caller to. This option is only available if the Break Out Type is Queue Callback
- Repeat Frequency- How often to play the Announcement from the Queue Callback informing them they can press 1 to have the system call them back or if in IVR Breakout Menu option how often to play the IVR to the caller. We recommend never setting this to less then 1 minute intervals.
Queue CallBack Reports
Under the reports section you can view all your queue callback callers. For each report you can view
- Pending- These are callbacks that have not been called back yet because their turn in line has not come up yet or we tried to call them back and they did not answer but we have not fulfilled all the retries yet.
- Successful- These are callbacks that were called back and transferred to the queue.
- Failed- These are callbacks that we tried to call back the number of times you configured in the retry count but the caller never answered the call or pressed 1 to be transferred back into the queue on the callback.
Queue Penalty Rules
Queue penalty rules allow you to setup penalty rules that can be mapped to any queue. A penalty rule simple states which agent penalties to try and for how long.
By default app_queue in asterisk handles agent penalties in a fashion some people do not like. How it works is asterisk tries the lowest penalty group first. Only if nobody in that group is able to take a call does it escalate to the next group. Its behavior is any agent logged into the queue that is not paused or on a call is around to take a call which means if you have one agent who has stepped away from their phone and they are in penalty group 1 it will never ever move on to higher penalty group until that agent either is logged out, paused, takes a call or your min penalty is changed to be greater then that agents penalty.
One way to get around this is to enable auto-pause in the queue page in FreePBX. This will auto pause the agent when they miss a call and be paused until they unpause themselves.
The other way around this is to use lazymember patch that Schmooze has built and included in Asterisk 11 and newer on FreePBX Distro and PBXact systems only. This will force app_queue to mark the agent who does not answer a call as busy for the current caller which will allow app_queue to move on to the next penalty group. Once all agents in all penalties have been called for that inbound call it will reset the temp busy and restart the cycle again. You can turn on lazymembers on a per queue basis in the queue module in FreePBX.
In our example, we have a normal support queue called “Support.” In this queue, the default agent penalty range for a new caller has a minimum penalty of 0 and a maximum penalty of 0. So when a new caller enters the queue, it will only try agents with a penalty of 0. We have a queue rule in place that after a minute we then try agents with a penalty of 0 through 3 if the caller has not answered the call.
Since we have some important customers that we want to give VIP treatment to, we have 2 options. We could create another queue that agents have to log into to get calls from the VIP callers or we could create a new “Virtual Queue” for our VIP members that would change the following queue options before sending the caller into our normal support queue.
Caller ID Prepend- We will change this to VIP so each VIP customer who flows through this virtual queue will be prepended with VIP.
Initial Max Penalty- The default support queue is to leave this set at 0. Since we want to try and find agents for this VIP caller quicker, we will set this to 100 so it will include all agents with a penalty of 0 to 100.
We will also set the normal failover destination to go to a special VIP voicemail box that only VIP customers get to leave a voicemail on. A normal support caller who times out of a queue would go to the normal support voicemail box that may not be checked or monitored as often as the VIP voicemail box is.
Now we need to tell this virtual queue what queue to send this actual caller to with the changes we defined above.
Now that we have setup a simple virtual queue, don’t forget to press the “Submit” button on the bottom of the page.
Lastly, you just need to route your VIP customers to this virtual queue. You will see “Virtual Queues” as a destination option now just like normal queues were. In our example, we will route an inbound route right to this virtual queue, which will make the changes above and forward the caller to our support queue.
VQ Plus Options in Queues
- The VQ Plus add on expands some of your normal queue options. The additional queue options can be found when you are editing or creating a normal queue on your PBX.
- Initial Min Penalty- The minimum penalty an agent must have to be included in this virtual queue. This penalty can change dynamically if a queue rule is also applied.
- Initial Max Penalty- The maximum penalty an agent must have to be included in this virtual queue. This penalty can change dynamically if a queue rule is also applied.
- Queue Penalty Rule- Queue penalty rules, part of the generated queuerules.conf, allow the QUEUE_MIN_PENALTY and QUEUE_MAX_PENALTY to change as a caller ages in a queue. Make sure to set the initial min and max penalties above when using rules.
- Caller Post Hangup Destination- Destination to send the caller to upon the agent hanging up the call. This is often used to send a caller to take a post call survey.
- Agent Post Hangup Destination- Destination to send the agent to upon the caller hanging up the call.
- Queue Fail Over on Full Destination- Alternative destination defined in the hosting queue if the call exits the queue with QUEUESTATUS: FULL.
- Queue Fail Over on JOINEMPTY Destination- Alternative destination defined in the hosting queue if the call exits the queue with QUEUESTATUS: JOINEMPTY.
- Queue Fail Over on LEAVEEMPTY Destination- Alternative destination defined in the hosting queue if the call exits the queue with QUEUESTATUS: LEAVEEMPTY.
- Queue Fail Over on JOINUNAVAIL Destination- Alternative destination defined in the hosting queue if the call exits the queue with QUEUESTATUS: JOINUNAVAIL.
- Queue Fail Over on LEAVEUNAVAIL Destination- Alternative destination defined in the hosting queue if the call exits the queue with QUEUESTATUS: LEAVEUNAVAIL.
set up queue callbacks, build dynamic queue penalty rules, set up more destinations, route the agent or caller to destinations upon hangup, and create virtual queues.
Since VQ Plus is composed of several features, we've divided this admin guide into multiple sections for easier viewing. Click on one of the sections below to go to that page: