Take a look at the things that interest us.

Creating a callcenter with Asterisk

Wesley Wesley 2 years

In this post, I would like to go in-depth with how to set up a working call center through Asterisk. For our call center, we will use the Asterisk feature called Queue.

What is a callcenter

A call center is a centralized department to which phone calls from current and potential customers are directed. Call centers can handle inbound and/or outbound calls.

Our Use Case

In our example we will use two patterns.


  • Customer A calls to a public phone number.
  • He/she gets greeted by an audio recording.
  • Customer A gets connected to the next available agent.


  • Agent signs in at the beginning of the day.
  • Agent answer calls.
  • Agent signs out at the end of the day.

Setting up a callcenter Queue in Asterisk

To be able to use the Asterisk queue feature, we'll need to add a few parameters to our queue.conf file. First, let's move to our Asterisk directory and open the queue.conf file.

$ cd /etc/asterisk
$ vi /queue.conf

Now let's add the following parameters to the file and save it.

# queue.conf
autofill=yes             ; distribute all waiting callers to available members
shared_lastcall=yes      ; respect the wrapup time for members logged into more than one queue

[StandardQueue](!)       ; template to provide common features
musicclass=default       ; play [default] music
strategy=leastrecent     ; Ring persons with least recent calls
joinempty=no             ; do not join the queue when no members available
leavewhenempty=yes       ; leave the queue when no members available
ringinuse=no             ; don't ring members when already InUse (prevents multiple calls to an agent)

[sales](StandardQueue)   ; create the sales queue using the parameters in the StandardQueue template

Setting up a callcenter dial plan in Asterisk

After creating our Asterisk Queue feature. it's time to create our dial plan. Let's open the extensions.conf file.

$ vi /extensions.conf

Now let's add the following parameters to the file and save it.

Let's start with the agent function. The agents need to be able to sign in and sign out from the sales queue.

# extension.conf
; sales queue agent sign in
; sign in can be done by dailing 91
exten => *91,1,Ringing
same => n,AddQueueMember(support,PJSIP/${CALLERID(num)})
same => n,UnpauseQueueMember(sales,PJSIP/${CALLERID(num)})
same => n,Playback(agent-loginok)
same => n,Wait(2)
same => n,Hangup
# extension.conf
; sales queue agent sign out
; sign out can be done by dailing 92
exten => *92,1,Verbose(2,Logging Out Queue Member)
same => n,RemoveQueueMember(sales,PJSIP/${CALLERID(num)})
same => n,Playback(agent-loggedoff)
same => n,Wait(2)
same => n,Hangup

Now let's create the customer function.

# extension.conf
; customer accept outbound calls
exten => 12345678,1,Verbose(2,${CALLERID(all)} entering the support queue)
same => n,Playback(hello)
same => n,Wait(1)
same => n,Answer()
same => n,Queue(sales)
same => n,Hangup() 

Let's restart the Asterisk PBX and we are good to go.

Testing our Asterisk Call Center

It's time for the fun part, let's test our call center example by following the steps below:

* Step 1 — Register a normal sip account through a sip client.
* Step 1 — Let this sip account sign in to the sales queue by dailing 91.
* Step 2 — Call your outbound number to connect to the sales Queue.
* Step 3 — Let a agent sign out from the sales queue by dailing 92.

If you did everything correctly, you'll have a working call center.

Need some help with your call center or have any questions? Let us know in the comment below or send us an email through this page.

Creating a callcenter with Asterisk 2021-08-24 08:11:02

There are no comments.


Have questions about our services?

Contact our Sales team to get answers.

Contact Us