System information

(lets say 30 seconds), it will appear as if it is being played every 15 seconds, rather than
every 45 seconds as may be intended.
How many times we announce the hold time to the caller is controlled via the announce-
holdtime option, which we’ve set to once. Setting the value to yes will announce it every
time, and setting to no will disable it.
We configure how and when we announce the caller’s estimated remaining hold time
via announce-position, which we’ve set to limit. Using the value of limit for announce-
position lets us announce the caller’s position only if it is within the limit defined by
announce-position-limit. So, in this case we’re only announcing the callers’ positions
if they are in the first 10 positions of the queue. We could also use yes to announce the
position every time the periodic announcement is played, set it to no to never announce
it, or use the value more if we want to announce the position only when it is greater than
the value set for announce-position-limit.
Our last option, announce-round-seconds, controls the value to round to when we an-
nounce the caller’s hold time. In this case, instead of saying “1 minute and 23 seconds,”
the value would be rounded to the nearest 30-second value, which would result in a
prompt of “1 minute and 30 seconds.”
Overflow
Overflowing out of the queue is done either with a timeout value, or when no queue
members are available (as defined by joinempty or leavewhenempty). In this section we’ll
discuss how to control when overflow happens.
Controlling timeouts
The Queue() application supports two kinds of timeout: one is for the maximum period
of time a caller stays in the queue, and the other is how long to ring a device when
attempting to connect a caller to a queue member. We’ll be talking about the maximum
period of time a caller stays in the queue before the call overflows to another location,
such as VoiceMail(). Once the call has fallen out of the queue, it can go anywhere that
a call could normally go when controlled by the dialplan.
The timeouts are specified in two locations. The timeout that indicates how long to
ring queue members for is specified in the queues.conf file. The absolute timeout (how
long the caller stays in the queue) is controlled via the Queue() application. To set a
maximum amount of time for callers to stay in a queue, simply specify it after the queue
name in the Queue() application:
[Queues]
exten => 7000,1,Verbose(2,Joining the support queue for a maximum of 2 minutes)
same => n,Queue(support,120)
same => n,VoiceMail(support@queues,u)
same => n,Hangup()
Advanced Queues | 291