Asterisk for callcenters

Asterisk for callcenters

In an inbound callcenter scenario, the customers usually call to a certain number to ask for information, help etc.

An automated attendant will answer the phone, will give a warning that calls might be recorded for quality purposes and will allow the client to select some options through an IVR (interactive voice response.), such as language selection, what type of question they have etc.

The telephone system could then check if the call arrives during business hours and decide wether to call an agent phone or playback an automated message as "we are sorry, our offices are closed please call back in....", or even pass the customer on to an answering machine.

19.1. Queues

1. General information about telephony queues

Queues are used by the PSTN systems to queue their customer’s requests until free resources become available. This means that if incoming traffic intensity levels exceed available capacity, customer’s calls are here no longer lost; the customers instead wait in line until they can be served.[4] This method is used in queueing customers for the next available operator.

A queueing discipline determines the manner in which the exchange handles calls from customers.[4] It defines the way they will be served, the order in which they are served, and the way in which resources are divided between the customers.

2. Introducing to the Asterisk queues


Enough information about the queues in general.


Let’s talk about the queues which we will discuss in the tutorial – Asterisk queues.


At the beginning let’s say what are these Asterisk call queues. Asterisk queues are wealth! You can do anything with the incoming calls using the queues. Have you ever wanted to route incoming calls to another person, or to a []voicemail, without the knowledge of the customer? With the Asterisk queues you can balance incoming call workload among your employees. Have you ever wanted one person to have more priority in the calls, or a whole group of callers?


The main Asterisk configuration files are located in /etc/asterisk/. In this directory is located queues.conf - /etc/asterisk/queues.conf.


There are two possible ways to configure the settings in this file.


The first one, is the so called "static" way. For this configuration you do not need the



Asterisk Queue Information - voip-info.org

This allows you to:
So, from any single number, you can login all your agents as members in any queue and test the queues: just add your agent contact information to the redundant context.

In extensions.conf:

exten => 567,1,Dial(SIP/12223334444@sip-out-context,,Tr) ;this is the callback number

exten => s,1,Answer
exten => s,n,Flite("Press one to add or remove agent and three to queue yourself.")
exten => s,n,WaitExten(10)

exten => 1,1,Read(agext|enter-exten) ; in this example enter-exten asks the agent for their extension and agext=567 (see redundant context)
exten => 1,n,Macro(agent-add,queue-name,1111,${agext})
exten => 1,n,Hangup
exten => 3,1,Queue(queue-name)
exten => 3,2,Playback(goodbye)
exten => 3,3,Hangup

; Adds a dynamic agent/member to a Queue
exten => s,1,Wait(1)
exten => s,n,GotoIf($["${ARG2}x" = "x"]?${MATH(${PRIORITY}+2)}:${MATH(${PRIORITY}+1)}) ; arg2 is queue password
exten => s,n,Authenticate(${ARG2})
;exten => s,n(Add),AddQueueMember(${ARG1}|Local/${ARG3}@redundant/n) ;maybe SIP/12223334444@sip-out-context
exten => s,n(Add),AddQueueMember(${ARG1}|Local/${ARG3}@redundant/n,,j) ;for priority jumping after and including I believe
exten => s,n,UserEvent(Agentlogin|Agent: ${ARG3})
exten => s,n,Wait(1)
exten => s,n,Playback(agent-loginok)
exten => s,n,Hangup()
exten => s,Add+101,Macro(agent-del,${ARG1},${ARG3})

; Removes a dynamic agent/member from a Queue
exten => s,1,Wait(1)
exten => s,n,RemoveQueueMember(${ARG1}|Local/${ARG2}@redundant/n)
exten => s,n,UserEvent(RefreshQueue)
exten => s,n,Wait(1)
exten => s,n,Playback(agent-loggedoff)
exten => s,n,Hangup()

See also:
Asterisk call queues
Asterisk cmd AddQueueMember
Asterisk cmd RemoveQueueMember

Recommended Links

OrderlyQ Asterisk Queues Tutorial

Asterisk cmd Queue - voip-info.org

Queue (dialplan application)

Asterisk config queues.conf - voip-info.org

Asterisk RealTime Queue - voip-info.org


OrderlyQ Asterisk Queues Tutorial


Asterisk call queues - voip-info.org

Running a small call-center with QueueMetrics and Trixbox

Asterisk 1.4 – the Professional’s Guide Table Of Contents

  • Chapter 4: Call Centers—Queues and Recording
    • Asterisk queues
      • Queue gotchas
        • A practical queue
        • Using queues to cascade calls
    • Call recording—the issues
      • Show-stoppers
    • VoIP recording approaches
    • Impact of VoIP on recording systems
      • Hardware convergence
    • Distributed call centers
      • Home working
    • VoIP recording challenges
      • Routing
      • Bandwidth
      • Encryption
      • Solutions
    • Asterisk call center solutions
      • How VICIDIAL works
        • Handling inbound calls
        • Installation
        • Timing sources
        • Scalability
    • Summary