Asterisk queues.conf

In Asterisk queues.con file is where we define queues and the way that how to handle the callers.

• Reasonable queuing support within Asterisk
• Queues can have static or dynamic members
• Members can be channels, or Agents
• Automatic distribution of calls based on queue strategy

Here is queues.conf options are available:

In Asterisk queues.con file is where we define queues and the way that how to handle the callers.

• Reasonable queuing support within Asterisk
• Queues can have static or dynamic members
• Members can be channels, or Agents
• Automatic distribution of calls based on queue strategy

Here is queues.conf options are available:

persistentmembers = yes, so that when you restart Asterisk the agents will be automatically readded into their recorded queues. By default the option is set to yes.

Each queue is a separate section. For example, a snake in the [support]. The following parameters are available:

musiconhold In musiconhold.conf file defined category of music queue. We choose the top-scale Category default:

musiconhold = default

you can specify an announcement, which to be played to the agents, when they answer the incoming call. Usually this option is used to inform the agents, which queue exactly, they will answer. This is made for agents which are set in more than one queue.

; announce = Technical-support

If you use this option, make sure that file technical-support.gsm should be availabe in the sound directory the default path of sound directory is /var/lib/asterisk/sounds.

Determines how and what’s the order of the agents when a call comes to this queue:

All available agent should ring until one responds. (Default)
ring the each available agent one by one.
Call the agent who is longest idle in available agents
ring the agent with fewest completed calls from this queue.
Select the agent randomly from this queue.
Round-robin with memory. Starts the series in which, after the last call to the series.

In Asterisk 1.6 will probably be the roundrobin procedure is forfeited and rrmemory in roundrobin renamed.

It should be noted that agents, for which a lower penalty (penalty) has been established agent who always preferred a higher penalty.

Strategy = ringall

The setting depends on your circumstances: ringall may be annoying, while others cause additional waiting time for the caller, if agents not connected to the phone.

Sets the time (in seconds), in which calls should be answered. Only for statistical analysis interesting ( “How many calls were made within the service time of x seconds answered?”).

Service = 60

Here can be a context where you want to send the caller, if the caller presses the key (the one you want the caller to be pressed) the extension will be dialed from the mentioned queue.

context = support-context – so we could adjust it

Determines how long (in seconds) a phone ringing, until we are not as busy (timeout).

timeout = 15

Determines how long (in seconds) to wait before all agents phoned again.

retry = 5

Weight of queue – when compared to other queues, higher weights get preference
weight = 0

how long before sending agent another call

We let our agents a little breather to a sip of water to drink:
wrapuptime = 10

Maximum number of the callers in the queue (default: 0 for unlimited).
maxlen = 0

Certainly, at what intervals (in seconds) the callers their position in the queue and / or the estimated waiting time will be announced (0 for nothing i.e. announce-frequency = 0 means off).
announce-frequency = 90

Whether the estimated waiting time in the announcements for the position would be called. Possible values are yes (yes), no (no) or once (only once).
announce-holdtime = Yes

Rounding steps of seconds. With the setting of 0, only minutes, not seconds announced. Other possible values are: 0, 1, 5, 10, 15, 20 and 30 [72] (At 30, for example, would an estimated waiting time from 2:34 to 2:30 rounded.)
announce-round-seconds = 0

Language blocks
The following parameters are, what language blocks for the announcements of the position and waiting periods. I.d.R changes are not necessary:

queue-youarenext = queue-youarenext; “You are now first in line.”
queue-thereare = queue-thereare; “There are” …
queue-callswaiting = queue-callswaiting … “Calls waiting.”
queue-holdtime = queue-holdtime; “The current est. holdtime is” …
queue-minutes = queue-minutes … “Minutes”
queue-seconds = queue-seconds … “Seconds”
queue-thankyou = queue-thankyou, “Thank you for your patience.”
queue-lessthan = queue-less-than … “less than” …
queue-reporthold = queue-reporthold; “hold time” …
periodic-announce = queue-periodic-announce, “All reps busy, wait for next”

If these parameters are not specified (out), these default values.

Certainly, at what intervals (in seconds) the callers the periodic announcement (periodic-announce, “There are all employees in an interview, please wait.”) To be announced.

periodic-announce-frequency = 60

Monitor format
The indication of this parameter turns the recording of interviews (as with the monitor () Application) and determines the recording format. (For auskommentiertem monitor-format recordings are not made.) Enter here gsm, wav (large files) or wav49.

If you want records the call in the gsm format uncomment this line, please note the call will be recorded when agent answeres the call:
; monitor-format = gsm

By default, the files (one-in-and out) to $ UNIQUEID) (named. You can change if necessary, by using the dial plan before the queue () call Set (MONITOR_FILENAME = filename). We take the example but no change.

Join Monitor
Combine the two by a call recording files generated …- …- in and out to a file. Values: yes or no

Monitor-join = Yes

Determines whether callers in a queue without agents indicated.

Callers can be placed in a loop without agents or by non-agents available for classification purposes.
Callers can not in a loop without agents indicated.

Callers can not in a loop without agents indicated (but in a snake with only non-available agents).

Non-available should not be confused with the conversation (busy). An agent is not available when he is assigned to the snake, but not actually registered in the system (see also “member”). Caution: Static defined members (see “member”) are always available!

If a caller not to be a snake, the queue () application quits, and the Dial plan will continue.

joinempty = no, we want our callers are not unnecessarily wait

It will determines whether as soon as all the agents out the call will not go to this queue. Possible values as joinempty. After leaving the queue, the dial plan.

leavewhenempty = strict; callers are not unnecessarily wait

If a (yes | no), whether etc. the following events for the Manager interface is used: Called Agent, Agent dump, Agent Connect, Agent Complete.
eventwhencalled = Yes

If a (yes | no), whether members queue status events in the produce manager interface (can be many).
eventmemberstatus = No

Sets (yes | no), whether to the agent the waiting time of the caller will be announced before it entertained the caller. (Taste issue)
reportholdtime = No

Where, how long (in seconds) the caller hears silence before he connected with an agent.
memberdelay = 1

Determines whether the response time of an agent in a busy or overloaded pipe signal is reset. Can be useful for agents who have the right to reject a call.
timeoutrestart = Yes

Autopause will pause a queue member if they fail to answer a call.

Determines whether such agent phoned to be known of which is that they are in conversation. The channel so far the only driver, the status transmitted is SIP.
ringinuse = No

It is possible to intervene directly in the queues.conf agents in the form of static

member => Technology Resource [, Malus]

— Also e.g. member => Zap / 2 – them (may be used several times, see queues.conf). But this can result in problems with joinempty and leavewhenempty, since these agents always be available, even if it is in fact not at their apparatus. It also has the disadvantage that always finds an agent is assigned to an apparatus and not from another apparatus from register.

We therefore prefer to use dynamic form and arrange queue support in the form:

member => Agent / AgentenNr

two agents 1001 and 1002 to:

member => Agent/1001
member => Agent/1002

Be Sociable, Share!

2 Responses to Asterisk queues.conf

  1. peram April 9, 2009 at 12:25 pm #

    When I reload, I get the following error with queues.conf and my callers are unable to join queue.

    [Apr 9 00:42:44] WARNING[30132]: config.c:641 process_text_line: parse error: no closing ‘]’, line 226 of /etc/asterisk/queues.conf
    Reloading SIP
    [Apr 9 00:42:44] NOTICE[30132]: app_queue.c:4302 reload_queues: No call queueing config file (queues.conf), so no call queues
    — Reloading module ‘’ (Asterisk Manager Interface CDR Backend)

    help me what is going wrong?

  2. Faisal September 12, 2009 at 2:37 pm #

    useful information. Please place some details for Asterisk 1.6.x queue and what is queuerules. That will be really helpful material

Leave a Reply