Blogs
Take a look at the things that interest us.
Creating a callcenter with Asterisk
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.
Customers
- 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.
Agents
- 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
[general]
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
[outbound]
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.
There are no comments.