Asterisk provides basic call center
functionality via its queueing system, but those who are using it
in more mission-critical environments often report that their
solutions required customization. You can do this customization in
the queues.conf file.
musiconhold
-
This parameter allows you to configure which
Music on Hold class (configured in musiconhold.conf) to use for the queue.
announce
-
When a call is presented to a member of the
queue, the prompt specified by announce will be played to
that agent before the caller is connected. This can be useful for
agents who are logged into more than one queue. You can specify
either the full path to the file, or a path relative to
/var/lib/asterisk/sounds/.
strategy
-
Asterisk can use six strategies to distribute
calls to agents:
ringall
-
The queue rings every available agent and
connects the call to whichever agent answers first (this is the
default).
roundrobin
-
The queue cycles through the agents until it
finds one who is available to take the call. roundrobin
does not take into account the workload of the agents. Also,
because roundrobin always starts with the first agent in
the queue, this strategy is suitable only in an environment where
you want your higher-ranked agents to handle all calls unless they
are busy, in which case the lower-ranked agents may get a call.
leastrecent
-
The call is presented to the agent who has not
been presented a call for the longest period of time.
fewestcalls
-
The call is presented to the agent who has
received the least amount of calls. This strategy does not take
into account the actual agent workloads; it only considers the
number of calls they have taken (for example, an agent who has had
3 calls that each lasted for 10 minutes will be preferred over an
agent who has had 5 calls each lasting 2 minutes).
random
-
As its name suggests, the random strategy
chooses an agent at random. In a small call center, this strategy
may prove to be the most fair.
rrmemory
-
The queue cycles through each agent, keeping
track of which agent last received a call (this strategy is known
as round-robin memory). This
ensures that call presentation cycles through the agents as fairly
as possible.
servicelevel
-
In a call center, the service level represents
the maximum amount of time a caller should ideally have to wait
before being presented to an agent. For example, if
servicelevel is set to 60 and the service level percentage
is 80%, that means 80% of the calls that came into the queue were
presented to an agent in less than 60 seconds.
context
-
If a context is assigned to a queue, the caller
will be able to press a single digit to exit to the corresponding
extension within the configured context, if it exists. This action
takes the caller out of the queue, which means that she will lose
her place in the queuebe aware of this when you use this
feature.
timeout
-
The timeout value defines the maximum
amount of time (in seconds) to let an agent's phone ring before
deeming the agent unavailable and placing the call back into the
queue.
retry
-
When a timeout occurs, the retry value
specifies how many seconds to wait before presenting the call again
to an available agent.
weight
-
The weight parameter assigns a rank to
the queue. If calls are waiting in multiple queues, those queues
with the highest weight values will be presented to agents
first. When you are designing your queues, be aware that this
strategy can prevent a call in a lower-weighted queue from ever
being answered. Always ensure that calls in lower-weighted queues
eventually get promoted to higher-weighted queues to ensure that
they don't have to hold forever.
wrapuptime
-
You can configure this parameter to allow agents
a few seconds of downtime after completing a call before the queue
presents them with another call.
maxlen
-
maxlen is the maximum number of calls
that can be added to the queue before the call goes to the next
priority of the current extension.
announce-frequency
-
The announce-frequency value (defined
in seconds) determines how often to announce to the caller his
place in the queue and estimated hold time.
announce-holdtime
-
There are three possible values for this
parameter: yes, no, and once. The
announce-holdtime parameter determines whether or not to
include the estimated hold time within the position announcement.
If set to once, it will be played to the caller only
once.
monitor-format
-
This parameter accepts three possible values:
wav, gsm, and wav49. By enabling this
option, you are telling Asterisk that you wish to record all
completed calls in the queue in the format specified. If this
option is not specified, no calls will be recorded.
monitor-join
-
The Monitor( ) application in Asterisk
normally records either end of the conversation in a separate file.
Setting monitor-join to yes instructs Asterisk to
merge the files at the end of the call.
joinempty
-
This parameter accepts three values:
yes, no, and strict. It allows you to
determine whether callers can be added to a queue based on the
status of the members of the queue. The strict option will
not allow callers to join the queue if all members are
unavailable.
leavewhenempty
-
This parameter determines whether you want your
holding callers to be removed from the queue when the conditions
preventing a caller from joining exist (i.e., when all of your
agents log out and go home).
eventwhencalled
-
Set eventwhencalled to yes if
you wish to have queue events presented on the Manager
interface.
eventmemberstatusoff
-
Setting this parameter to no will
generate extra information pertaining to each queue member.
reportholdtime
-
If you set this parameter to yes, the
amount of time the caller held before being connected will be
announced to the answering agent.
memberdelay
-
This parameter defines whether a delay will be
inserted between the time when the queue identifies a free agent
and the time when the call is connected to that agent.
member => member_name
-
Members of a queue can be either channel types
or agents. Any agents you list here must be defined in the
agents.conf file.