What is a Voice Queue?
A voice queue is a way to route incoming calls to a group of agents.
Callers waiting in the queue can listen to a greeting message informing them their hold time and position in the queue.
Read more on Queue
You must have admin role or user role with voice queues permission to be able to manage voice queues in XCALLY Motion. Note that a user can only see the voice queues assigned to him/herself
The Voice Queues section
You can find the Voice Queues section under the Voice menu.
Create a Voice Queue
To create an Queue click the New button
Enter the Queue’s details:
- Description (optional)
Queue Strategy defines how incoming calls are divided between agents in a queue. You can set one of the following strategies:
- Ringall: ring all agents until one answers
- RRMemory (Round Robin Memory): ring the agent succeeding the agent contacted during last call
- Least recent: ring the agent which was least recently called by this queue
- Fewest calls: ring the agent who has recently answered to the minimum number of calls in the queue
- Random: randomly routes calls to agents
- Linear: ring agents according to the order they are listed in the configuration file
- Weight random: randomly routes calls to agents but uses the agent’s penalty as a weight.
After the voice queue is created, you can view the queue in the list of voice queues. You can edit the queue, add agents to a queue or add a team to a queue.
Edit/Modify a Voice Queue
To edit a voice queue find the queue from the voice queue list (you can use the search box on the top-right of the page to filter) and click on the three dots button to make the available commands appear:
When you edit a Voice Queue you can insert all the configuration parameters in three tabs:
In the Queue General Settings form you can edit and modify the following queue parameters:
- Strategy: choose among the proposed list the proper strategy (see above for the list of them)
- Timeout: how long (in seconds) the devices receiving calls from this queue must ring (Default value=15)
- Maximum Length: insert here the maximum number of callers allowed to wait in the queue (0=unlimited)
- Retry: insert here the time in seconds to wait before passing a call to another agent, after a previous agent timeout expiration (Default=2)
- Wrapup Time: set here the time in seconds a queue member must be unavailable after completing a call (default=0)
- Weight: insert here a value to associate to the queue weight, in case an Agent belongs to several queues (default=0)
- Join when empty: leave the default value “yes” if you want a caller is passed to a queue even if no member is available to answer (otherwise insert “no”)
- Leave when empty: insert “yes” if you want the callers are moved from the queue if no member is available to take the call (otherwise leave the default value “no”)
- Music on Hold: click on this field to choose one of the available sounds to be played to the caller while waiting to be connected to a queue member
- Announce to Agent: click on this field to choose one of the available sounds to be played to the agent just before answering the call
If you want to play announcements to callers waiting in your Queue just go to the Announcement tab (for example, you might want to announce the caller’s position in the queue, the average wait time, or make periodic announcements, for instance thanking your callers for waiting):
It’s important to tune the values that control when these announcements are played to the callers, because announcing their position, thanking them for waiting, and telling them the average hold time too often may annoy them! Please note that while the announcements play the call is not routed to the Agent!
In the Advanced Section you can set the Queue Parameters:
- After Call Work (default=NO): if you select this feature the Agents will be set on pause after handling a call on the queue (the pause duration must be inserted in the field displayed)
- Auto Pause: set this value to YES if you want to pause the member who fail to answer a call; this will work on all queues the Agent is member of (Default=NO)
- Ring in Use: enables/disables delivering a call to the Agents already engaged in a conversation
- Member Delay: here you can specify the number of seconds to add as a delay before the call is passed to the Agent
- Timeout Restart: if yes, this resets the timeout for an agent to answer when either a BUSY or CONGESTION status is received from the channel
- Recording Format: specify here the file format to use when recording (choose a value from the list). If the value is inactive, calls will not be recorded
About the Recording Format Please consider that the recording file size depends on its format. For example, recording one minute conversation will issue a file approximately of the following size:
- Context: Allows a caller to exit the queue by pressing a single DTMF digit. If a context is specified and the caller enters a number, the digit will be matched in the context specified and, if it is found, the dialplan execution will continue there
- Set Interface Variables: If set to yes, just prior to the caller being connected with a queue agent some variables will be set
Interface Variables If this value set to yes, just prior to the caller being bridged with a queue member some variables will be set (see Asterisk docs for more information): MEMBERINTERFACE is the interface name (eg. Agent/1234), MEMBERNAME is the member name (eg. Joe Soap), MEMBERCALLS is the number of calls that interface has taken, MEMBERLASTCALL is the last time the member took a call, MEMBERPENALTY is the penalty of the member, MEMBERDYNAMIC indicates if a member is dynamic or not, MEMBERREALTIME indicates if a member is realtime or not
- Set Queue Variables: if this value is set to yes, just prior to the caller being bridged with a queue member and just prior to the caller leaving the queue some variables will be set (see Asterisk wiki for more information)
Queue Variables QUEUEHOLDTIME callers hold time, QUEUEORIGINALPOS original position of the caller in the queue
- Set Queue Entry Variables: if set to yes, just prior to the caller being bridged with a queue member some variables will be set (see Asterisk wiki for more information)
Queue Entry Variables QUEUENAME name of the queue, QUEUEMAX maximum number of calls allowed, QUEUESTRATEGY the strategy of the queue, QUEUECALLS number of calls currently in the queue, QUEUEHOLDTIME current average hold time, QUEUECOMPLETED number of completed calls for the queue, QUEUEABANDONED number of abandoned calls, QUEUESRVLEVEL queue service level, QUEUESRVLEVELPERF current service level performance
- Mandatory Disposition (default=NO): if you select this feature the Agents will be forced to dispose the interactions managed before closing them. Insert in the field displayed the automatic pause status the Agents will be set during this operation (this field is mandatory, choose a value from the list of those available):
Add an Agent/Team to a Voice Queue
Administrator or user with the right permission must add an agent or a team to a queue to enable them handle calls in the queue. You can also define the Agent Penalty to set his priority in the queue (low penalty value means high priority in receiving interactions).
To add an agent to a voice queue find the queue from the voice queue list (you can use the search box on the top-right of the page to filter) and use the Add Agent button :
On pop-up screen, use the search box to find the agent you want to add to the queue and click on it.
If you want to change the penalty (default is 0), set the penalty and then add the agent to the queue: the Agents with a higher penalty will receive the call notification only if those with lower penalty refuse to accept the call.
You can add more than one agent or click on to add all agents to the queue.
Remember all changes are automatically saved!
After you add an agent to a queue, the agent will always be logged in the queue when he/she login in the system. Please note that this Agent-Queue association is not applied in realtime! If the agent is already logged in the system, he/she need to perform the logout and login in order to get the new configurations! For this reason, we suggest you to change these associations when the agent is not logged. If you need to set a realtime Agent-Queue association, please see the Realtime section: remember the button will switch you to realtime environment automatically!
To add all members of the team to the queue at once and to enable them to handle calls in the queue,find the queue from the voice queue list (you can use the search box on the top-right of the page to filter) and use the Add Team button :
On pop-up screen, use the search box to find the team you want to add to the queue and click on it.
You can also define the Agent Penalty that would be applied to all agents in the team. Penalty sets agent’s priority in the queue (low penalty value means high priority)
You can add more than one team or click on to add all teams to the queue.
Remember all changes are automatically saved!
After you add a team to a queue, the agents in the team will always be logged in the queue when they login in the system. Please note that this association is not applied in realtime! If an agent is already logged in the system, he/she need to perform the logout and login in order to get the new configuration! For this reason, we suggest you to change these associations when agents are not logged in.