Automatic Call Distribution (ACD) | Background
Automatic Call Distribution queues put callers into a queue and typically play Music on Hold or custom announcement messages to keep them informed or relaxed while they wait for an agent to become available.
Studies prove that a caller listening to Music on Hold will stay on hold longer than a caller hearing a ring back tone
Agents are typically employees of a contact center that login to one or more queues in order to answer callers.
Typically an agent cannot answer more than one call at a time (although ScopTEL queue options can be configured to allow more than one call to be presented to an agent). There is typically a break period after a hangup so the agent can do some post call processing
A ScopTEL queue can play a forced announcement before joining the caller to a queue
A ScopTEL queue can play a Expected Wait Time announcements and/or periodic announcement to a waiting caller
ScopTEL supports 5 agent priorities per queue (Skills Based Routing)
ScopTEL supports Advanced Skills Based Routing (Object Based Skills Based Routing)
ACD reports live in the server cradle to grave and do not require an external database or server
There is no limit to the number of queues or agents that can be configured per server
The ScopSTATS reporting engine is used to generate Historical and Realtime reports
Automatic Call Distribution (ACD) | Background
A caller can exit a queue by dialing a DTMF key from their phone keypad which will follow the Auto Attendant rules applied to each queue
The reporting system can generate many advanced reports ad hoc
Service Level represents a percentage of calls answered before a pre-defined time period defined in seconds
ScopTEL supports a Custom Service Level per queue
Each ACD call can have a different disposition:
Abandoned (caller hangs up before an agent can answer or call can be overflowed) (CLID information is saved in reports)
Answered (agent answers the caller) (CLID information is saved in reports)
Overflow (caller reaches a queue condition that transfers the caller to a new destination) (CLID is saved in reports)
Overflow Caller Exit with Key or Single Key Destination
Agents are considered not logged if they are paused or not logged in
You can use Incoming Lines>CallerID>CallerID/Source to ring area codes and numbers to any queue
Automatic Call Distribution (ACD) | Ring Strategies
Calls are distributed among the members configured to the queue(s).
Use the drop list to select a Ring Strategy:
Ring all - ring all available channels until one answers.
Least Recent - Ring interface which was least recently hung up by this queue. The agent must answer a call before it can hang up. Therefore if the agent status precludes answering a call the call distribution may stall here. Not a recommended method.
Fewest Calls - Ring the Agent with fewest completed calls from this queue. This can cause issues if an agent logs in after a substantial period of time allowing other agents to answer calls first. Calls will not be distributed to other agents until all agents have answered an equal number of calls.
Random - ring random interface
Round Robin - Round robin with memory, remember where we left off last ring pass. This is the recommended method and ensures the most even distribution of calls to all agents.
Linear - rings interfaces in the order specified in this configuration file. If you use dynamic members, the members will be rung in the order in which they were added/logged to the queue(s).
Here are some examples of the many ScopSTATS Realtime ACD panelsYou can also drill down into each report in real time
Automatic Call Distribution (ACD) Configuration | Pre-requisites
Before building an ACD queue you must:
Enable the Queues and Agents module in Configuration>Telephony Modules
Define the ACD feature codes in the Configuration>Features Code tab and commit changes
Decide on a ring strategy
Add all of your agents
Decide on a Service Level for each queue in seconds
Build any Auto Attendants needed to support caller DTMF input to exit the queue (see module 14)
Decide on whether to remove a caller from a queue or allow a caller to enter a queue if there are no logged agents
Configure Overflow Destinations. If Overflows are not configured for a queue then calls will be terminated with busy signals.
Automatic Call Distribution (ACD) Configuration | Pre-requisites | Feature Codes
Agent (ACD) Access Codes must be configured prior to building your queues and logging in agents
Here the default feature codes are displayed and a customized list is also displayed
Automatic Call Distribution (ACD) Configuration | Agent Status | queue show
In the Asterisk app_queue system there are basic and weighted states using penalties. The command ‘queue show’ can be executed to show queue memberships.
CLI> queue show
debcomainbtn-reception has 0 calls (max unlimited) in 'rrmemory' strategy (3s holdtime, 11s talktime), W:0, C:12, A:4, SL:75.0% within 5s
Local/225@debcomainbtn-agent/n (ringinuse disabled) (dynamic) (in call) (In use) has taken 2 calls (last was 97 secs ago)
The agent membership belongs to local channel 225 and the agent is on an ACD call therefore in use
Local/216@debcomainbtn-agent/n (ringinuse disabled) (dynamic) (In use) has taken 4 calls (last was 57 secs ago)
The agent membership belongs to local channel 216 and the agent is on a NON-ACD call and therefore in use
Local/213@debcomainbtn-agent/n (ringinuse disabled) (dynamic) (paused) (Not in use) has taken no calls yet
The agent membership belongs to local channel 213 and the agent is paused, not on any call but cannot take any new ACD calls since the agent is paused
Automatic Call Distribution (ACD) Configuration | Agent Status | ScopSTATS
ScopSTATS can also be used to display Agent Status but in case of
conflict the ‘queue show’ output will always show the agent status as
By selecting an agent row the ScopSTATS admin can control Agent availability using the Login, Logout, Pause buttons.
Automatic Call Distribution (ACD) Configuration | Agent Types
There are three types of agents:
Dynamic Local Agents
Dynamic External Agents
Static External Agents
It is best practice for agents to login at the beginning of their shift, Pause during the shift when not ready, and only logout at the end of their shift.
All three Agent Types can dial the Agent Pause Code to Pause their agent membership in all assigned queues.
Usage | Agent needs to go on a break:
Agent Dials Agent Pause Code (configured in the Telephony Features Code Manager)
Agent is Paused in all queues and cannot receive new calls while logged into the queue(s)
Automatic Call Distribution (ACD) Configuration |Agent Types | Dynamic Agent
Dynamic Agents get a unique extension number and are not associated with any extension until they use the ‘Agent Login’ or ‘Agent Login (External)’ Feature Code or Dynamic Agents can roam to any extension on their assigned tenant.
Agent Extension: 1
Name: John Smith
Agent 1 needs to login to SIP extension 222 |Usage:
From SIP extension 222 the user dials the ACD Login Feature Code (default *50)
User is prompted for Agent Login and enters 1#
User is prompted for Password and enters 1234#
Agent 1 is now logged to SIP extension 222 and a member of all assigned queues
If Agent 1 dials the Agent Login code again the Agent is logged off SIP extension 222 and all assigned queues and is no longer an Available member.
Automatic Call Distribution (ACD) Configuration |Agent Types | Dynamic External Agent
Dynamic External Agents are added as queue members in exactly the same way as Dynamic Local Agents. The only difference in their operation is the feature code used to login the agent extension.
Agent Extension: 1
Name: John Smith
Agent Login (External) Feature Code: *52
Agent 1 needs to login to cell phone number 9055551234 | Usage:
From any SIP extension within the same tenant the user dials the Agent Login (External) Feature Code: *52
User is prompted for the external number to be used for call transfer and enters 9055551234
User is prompted for their agent extension and enters 1#
User is prompted for Password and enters 1234#
Agent 1 is now logged to external number 9055551234 and a member of all assigned queues
If Agent 1 dials the Agent Login (External) Feature Code again the Agent is logged off the external number and all assigned queues and is no longer an available member.
Automatic Call Distribution (ACD) Configuration | Agent Types | Static Local Agent
3. Static Local Agents
Static Agents cannot use the ACD Login Feature Code because they are always considered logged queue members. Trying to login or logout will generate an
error prompt. They are added as queue members with the Phone drop list selection.
Static Agents are always associated with a local physical extension and they are added to Queue Memberships as Phones
Static Agents may dial the ACD Pause Feature code so they do not receive calls during break periods.
Automatic Call Distribution (ACD) Configuration | Agent Types | External Agent
4. External AgentsExternal Agents can be added to queue(s) as members using the Queue Manager using the drop list selector External Number
External Agents are always associated with an external number and they are added to Queue Memberships as an External Number
External Agents cannot pause their queue membership. If the External Number cannot be reached a failover must be configured.
ACD Manager | Add a new Agent
Click on the Agents tab
Click on Add a new
Add a new Agent | Dynamic Agents | General
Choose a Tenant if there are multiple tenants configured
Enter an Agent Extension number (usually starts at 1 and does not conflict with extension numbers)
Enter the Agent’s Login Password
Enter the Agent’s Full name as it should appear in the reports
Click on the Options tab
Add a new Agent | Options
Maximum Concurrent Calls is normally set to 1 but can be set higher if the Queue’s Ring in Use option is enabled
Skills Based Group is normally set to None.
There is an option to Monitor (Record) all calls per queue but you
can leave the queue option disabled if you only wish to record specific
Enter a Recording Tab to include special text in the ACD reports when a call is recorded (monitored)
The Caller ID and Web Authentication tab are optional
Click on the Add button when done
Add additional Agents as required
Queues Manager | Add a new Queue
On the Queues and Agents>Call Queues tab
Click on Add a new Queue
Add a new Queue | General
If there is more than one Tenant then choose a tenant from the drop list
Give the queue a useful name which will appear in the ACD reports
Do not use upper case or special characters or spaces in the queue name
Click on the Announce tab when done
Add a new Queue | Announce
This example shows a viable configuration for announcements.
The Announce Message is forced regardless if agents are available. Optional
The Agent Announcement plays back to the agent when the agent answers a queued call if configured. Optional
The Periodic Announcement plays back at the selectable interval. Optional.
Callers typically hear Music On Hold between announcements but
the queue can be configured to play a ring back to the caller so the
caller is not aware they are waiting in a queue
Announce Queue position will announce the waiting position to the caller. Optional
Click on the Select button to add a prompt(s)
Click on Members when done
Add a new Queue | Members
In this example Round Robin is used (typical selection)
Agents in Level 1 (High) will receive calls whenever they are available
Agents in Levels 2-5 are placed in lower priority and calls will
only be distributed if each higher priority level has no available
There are a total of 5 Agent Priority levels (Level 1 is the highest priority).
Use the Select button for each Level to add one or more Agents to this queue
Click on Fallback/Overflow after adding all of your agent assignments.
Add a new Queue | Dynamic Agent Members
To add a Dynamic Agent use the drop list Agent
Add a new Queue | Static Agent Members
To add a Static Agent use the drop list Phone
Add a new Queue | External Agent Members
To add a External Agent use the drop
list External Number selection and Add
the external number to dial.
Add a new Queue | Fallback/Overflow
There are three conditions which trigger a Fallback Overflow and they are defined in the Queue Options for each queue.
Failure to configure destinations for each condition will result in the default Busy playback and a hangup:
Maximum Waiting Time (Timeout) – Defined by Maximum Waiting time in Queue (in seconds)
Maximum Waiting Caller (Full) – Defined by Maximum number of people waiting in the queue
No Agent Available – Defined by Join/Leave Agent Status
Add a new Queue |Queue Options | Join/Leave Agent Status
Join Empty status – The caller will not be distributed to the queue and the Fallback/Overflow>No Agent Available rule(s) will be triggered based on each rule. These conditions can be turned off by enabling the Disable Join Empty option.
Leave when Empty status – The waiting caller already in call distribution will be removed from the queue and the Fallback/Overflow>No Agent Available rule(s) will be triggered based on each rule. These conditions can be turned off by enabling the Disable Leave When Empty option.
In Use: an agent is not considered available if the agent is currently on a call.
Unavailable: If the agent is a member of the queue but has not logged in, then do not consider the agent to be available.
Penalty: an agent is not considered available if the agent penalty is less than QUEUE_MAX_PENALTY.
Invalid: Do not consider an agent to be available if the agent has an 'invalid' device state.
Unknown: Do not consider an agent to be available if the queue is unable to determine the agent's current device state.
Paused: an agent is not considered available if the agent is paused.
Wrapup: an agent is not considered available if the agent is currently in wrapuptime after taking a call.
Ringing: an agent is not considered available if the agent's device is currently ringing.
Add a new Queue | Agent Options
The Agent Options options are well described on the management page.
The Agent Timeout is responsible for generating ‘Missed Calls’
in the ScopSTATS ACD Reports. If the Agent is presented a call and does
not answer within the Agent Timeout then a ‘Missed Call’ is added to the
ACD reports. Missed Calls are generally an indication that the users
are not logging out at the end of the day or pausing before they leave
to go on break. In this scenario the Auto Pause feature may be enabled
to automatically Pause the agent if they ‘miss’ a call. The Enable Auto
Logout function can force all agents to be logged off at the configured
time. In any case ‘Missed Calls’ are an indicator that Agents require
Security, Alarms, Wallboard and Thresholds are all optional
items which are especially useful in ScopSTATS to flag visual indicators
when Service Levels are dropping below desired values.
Click Add to finish creating the queue
Queues (ACD) Callback | Background
This feature allows a caller to exit a queue but first request a callback from the Contact Center when an agent is available rather than waiting in queue.
The caller requests the callback by dialing a digit on their keypad that matches a Key action defined on the Auto Attendant Menu. So a new Auto Attendant configuration is required.
The Auto Attendant is assigned to the required queue using the Single Digit Key Press drop list option in the Queues Manager
The matching queue must already exist to be associated with the Callback configuration
The following slides presume knowledge of the ScopTEL IVR Auto Attendant Configuration.
Queues (ACD) Callback | Usage
Once a caller reaches a queue they will hear the normal Queue Announcements.
Any of the Announcements may be recorded to include instructions on how to receive a Callback or exit the
Queue via a Key Press. Other Key Press options could include a digit to dial to transfer to a preconfigured Voicemail Box, Extension, External Number, Operator etc…
Depending on which Key press the caller chooses the Queue will Exit the Caller with Key Press. If the Callback Key Press option is the key pressed then the caller will be prompted for Callback, Disconnected and called back once an Agent becomes available.
Once the caller receives their callback the Queue will announce to the caller that they are receiving their callback and then join the caller with the available Agent.
Queues (ACD) Callback | Add a new Callback (ACD)
From the ACD Manager click on the Queues (ACD)
Click on Add a new Queues (ACD) Callback
Queues (ACD) Callback | General
Give this callback a name
Click on the Announce Messages tab
Queues (ACD) Callback | Announce Messages
Description: Message to play when the caller request a callback.
Example script: You have requested a callback a sales agent will return your call when they are available.
Description: Message to play when the PBX callback the caller.
Example script: This is the sales department from Company ABC returning your call.
Use the Select Tools to add each pre-recorded prompt
Click on the Options tab
Queues (ACD) Callback | Options
It is on this tab where you associate an existing ACD Queue with this Queues (ACD) Callback object
Choose your preferred language for the Callback and choose a
secure Class of Service to match the Outgoing Line(s) used for the
If you uncheck the default option to Use CallerID as Callback
number then the caller will have to enter a callback number from their
touch tone keypad
Configure any other options as needed and click Add
Queues (ACD) Callback | Auto Attendant Keys Assignment
Navigate to Applications>Auto Attendants
Click on Add a new Auto Attendant
Give the Auto Attendant a name on the General tab
Click on the Key Assignment tab
Select a Key and set the Destination #1 to pull down option
Queue (ACD) Callback in the sub menu choose the ACD Queue you want to
apply to this key.
Optionally define more Key values and configure each Destination
to set other Exit with Key Press options for the caller to exit the
Queue with a Key Press
Click Add when done
Edit ACD Queue | Queue Options | Single Digit Key Press assignment
The last step is to Edit the previously configured ACD Queue
Options tab to associate the Single Digit Key Press option with the Auto
Attendant Menu that was created to invoke the key press to Queue (ACD)
Save this configuration and Commit your changes