System information
Of course, we could define a different destination, but the VoiceMail() application is
as good as any. Just make sure that if you’re going to send callers to voicemail someone
checks it regularly and calls your customers back.
Now let’s say we have the scenario where we have set our absolute timeout to 10 sec-
onds, our timeout value for ringing queue members to 5 seconds, and our retry timeout
value to 4 seconds. In this scenario, we would ring the queue member for 5 seconds,
then wait 4 seconds before attempting another queue member. That brings us up to
9 seconds of our absolute timeout of 10 seconds. At this point, should we ring the
second queue member for 1 second and then exit the queue, or should we ring this
member for the full 5 seconds before exiting?
We control which timeout value has priority with the timeoutpriority option in
queues.conf. The available values are app and conf. If we want the application timeout
(the absolute timeout) to take priority, which would cause our caller to be kicked out
after exactly 10 seconds, we should set the timeoutpriority value to app. If we want
the configuration file timeout to take priority and finish ringing the queue member,
which will cause the caller to stay in the queue a little longer, we should set timeout
priority to conf. The default value is app (which is the default behavior in previous
versions of Asterisk).
Controlling when to join and leave a queue
Asterisk provides two options that control when callers can join and are forced to leave
queues, based on the statuses of the queue members. The first option, joinempty, is
used to control whether callers can enter a queue. The leavewhenempty option is used
to control when callers already in a queue should be removed from that queue (i.e., if
all of the queue members become unavailable). Both options take a comma-separated
list of values that control this behavior. The factors are listed in Table 13-7.
Table 13-7. Options that can be set for joinempty or leavewhenempty
Value Description
paused Members are considered unavailable if they are paused.
penalty Members are considered unavailable if their penalties are less than QUEUE_MAX_PENALTY.
inuse Members are considered unavailable if their device status is In Use.
ringing Members are considered unavailable if their device status is Ringing.
unavailable Applies primarily to agent channels; if the agent is not logged in but is a member of the queue it is considered
unavailable.
invalid Members are considered unavailable if their device status is Invalid. This is typically an error condition.
unknown Members are considered unavailable if device status is unknown.
wrapup Members are considered unavailable if they are currently in the wrapup time after the completion of a call.
292 | Chapter 13: Automatic Call Distribution (ACD) Queues