System information

was wrapping up a call from the support queue might still get a call from the sales
queue. This option should also always be set to yes (the default).
The next section, [StandardQueue] is the template we’ll apply to our sales and support
queues (we declared it a template by adding (!)). We’ve defined the musicclass to be
the default music on hold, as configured in the musiconhold.conf file. The strategy
we’ll employ is rrmemory, which stands for Round-Robin with Memory. The rrmemory
strategy works by rotating through the agents in the queue in sequential order, keeping
track of which agent got the last call, and presenting the next call to the next agent.
When it gets to the last agent, it goes back to the top (as agents log in, they are added
to the end of the list). We’ve set joinempty to no since it is generally bad form to put
callers into a queue where there are no agents available to take their calls.
You could set this to yes for ease of testing, but we would not recom-
mend putting it into production unless you are using the queue for some
function that is not about getting your callers to your agents. Nobody
wants to wait in a line that is not going anywhere.
The leavewhenempty option is used to control whether callers should fall out of the
Queue() application and continue on in the dialplan if no members are available to take
their calls. We’ve set this to yes because it makes no sense to wait in a line that’s not
going anywhere.
From a business perspective, you should be telling your agents to clear
all calls out of the queue before logging off for the day. If you find that
there are a lot of calls queued up at the end of the day, you might want
to consider extending someone’s shift to deal with them. Otherwise,
they’ll just add to your stress when they call back the next day, in a worse
mood.
The alternative is to use GotoIfTime() near the end of the day to redirect
callers to voicemail, or some other appropriate location in your dialplan.
Finally, we’ve set ringinuse to no, which tells Asterisk not to ring members when their
devices are already ringing. The purpose of setting ringinuse to no is to avoid multiple
calls to the same member from one or more queues.
It should be mentioned that joinempty and leavewhenempty are looking
for either no members logged into the queue, or all members unavaila-
ble. Agents that are Ringing or InUse are not considered unavailable, so
will not block callers from joining the queue or cause them to be kicked
out when joinempty=no and/or leavewhenempty=yes.
264 | Chapter 13:Automatic Call Distribution (ACD) Queues