System information
We’ve all been frustrated by poorly designed and managed queues: enduring hold mu-
sic from a radio that isn’t in tune, mind-numbing wait times, and pointless messages
that tell you every 20 seconds how important your call is, despite that fact that you’ve
been waiting for 30 minutes and have heard the message so many times you can quote
it from memory. From a customer service perspective, queue design may be one of the
most important aspects of your telephone system. As with an automated attendant,
what must be kept in mind above all else is that your callers are not interested in holding
in a queue. They called because they want to talk to you. All your design decisions must
keep this crucial fact front-and-center in your mind: people want to talk to other people;
not to your phone system.
†
The purpose of this chapter is to teach you how to create and design queues that get
callers to their intended destinations as quickly and painlessly as possible.
In this chapter, we may flip back and forth between the usage of the
terms queue members and agents. Unless we are talking about agents
logged in via chan_agent (using AgentLogin()), we’re almost certainly
talking about queue members as added via AddQueueMember() or the CLI
commands (which we’ll discuss in this chapter). Just know that there is
a difference in Asterisk between an agent and a queue member, but that
we’ll use the term agent loosely to simply describe an endpoint as called
by a Queue().
Creating a Simple ACD Queue
To start with, we’re going to create a simple ACD queue. It will accept callers and
attempt to deliver them to a member of the queue.
In Asterisk, the term member refers to a peer assigned to a queue that
can be dialed, such as SIP/0000FFFF0001. An agent technically refers to
the Agent channel also used for dialing endpoints. Unfortunately, the
Agent channel is a deprecated technology in Asterisk, as it is limited in
flexibility and can cause unexpected issues that can be hard to diagnose
and resolve. We will not be covering the use of chan_agent, so be aware
that we will generally use the term member to refer to the telephone
device and agent to refer to the person who handles the call. Since one
isn’t generally effective without the other, either term may refer to both.
We’ll create the queue(s) in the queues.conf file, and manually add queue members to
it through the Asterisk console. In the section “Queue Members” on page 266, we’ll
† There are several books available that discuss call center metrics and available queuing strategies, such as
James C. Abbott’s The Executive Guide to Call Center Metrics (Robert Houston Smith).
262 | Chapter 13: Automatic Call Distribution (ACD) Queues