Routes calls in a call center environment to appropriate agents, based on skill-sets, time available and priority level
To configure ACD we need to configure queues.conf, agents.conf, extensions.conf and sip/iax/zapata.conf
If an agent is busy placing a call in a queue, the queues are configured in the queue.conf file
Sections of a queue.conf file: The general section supports only persistent members. If set to yes and if a member is added to the system via the
AddQueueMember() application, the application will be stored in
AstDB and retained when restarting
Periodicannounce
Periodicannounce and periodic-announce-frequency plays messages such as “Thank you for holding ….” at regular intervals
Weight
Assign a rank to the queue. If calls are waiting in multiple queues, then the queue with the highest weight values will be presented to agents first.
Leavewhenempty
To remove callers from a queue when no agent is present, set this option to yes
Wrapuptime
Allow a few seconds’ break to an agent after completing a call
Memberdelay
Delay between the time when a queue identifies a free agent and when the call is connected to that agent
Timeoutrestart
If set to yes, then the timeout for an agent is reset if a BUSY or CONGESTION is received
Strategy to distribute calls ringall roundrobin leastrecent fewestcalls random rrmemory
Ring all available channels
Use the first available channel, then the second and so on. Deprecated in 1.4; use rrmemory instead
Ring the interface least recently called by this queue
Ring the interface handling the fewest calls from this queue
Ring randomly
Round robin with memory. Remember where we left off the last ring pass
Timeout
Timeout in seconds when calling an agent
Announce
Play a file to an agent before the caller is connected. Useful for agents who are logged into more than one queue member => member_name
Members of queue
For example member => agent/@1 a group member => agent/501 single agent
Monitor-format
Record all completed calls. Possible values are wav, gsm, wav49
Monitor-join
If set to yes, it is an indication to merge the two files
t
T h
Queue()
Format is
Queue(queuename[|options[|URL][|announceoverride][|timeout]]) queuename
Options: name of the context in queue.conf
Allow the called user to transfer the call
Allow the calling user to transfer the call
Allow the called person to hangup by pressing *
H n r
Allow the calling person to hangup by pressing *
Forbid retries if there is a timeout. Exit and move to next extension
Ring instead of music-on-hold
URL Send a URL to the called user if a channel supports this facility
Announceoverride
Set a sound file to override the one set in queues.conf
Timeout
Maximum time to wait in queue. The next extension will be executed after the timeout
Configures agents for the queues
The [general] section contains only one parameter, which is persistentagents. This option specifies whether the agent call-back logins have to be stored in an Asterisk database or not.
The following parameters define the agents: autologoff before ackall
How long the phone has to ring without answering an agent is logged off
If an agent is logging with agentcallbacklogin, then an acknowledgement is required by pressing the # sign if this option is yes
Wrapuptime
Musiconhold
Updatecdr
Group
Custom-beep
Recordagentcalls
Time after the conversation is over
Define the music-on-hold class
Change the source channel in cdr to agent/agent-id to determine which agent generated the call
Group agents for easy management group=groupnumber example group =1 agent => 888,888,user1
Accepts the filename as an argument. Notifies an agent about an incoming call
Accept the argument yes or no. Specifies whether an agent’s calls should be recorded or not
Recordformat Specifies the recording format (wav49, gsm or wav)
Savecallsin Specifies the path to store recordings
Urlprefix the
String appended to the start of the text to be added to recording’s name
Creation of agent
Format is
Agent => agentnumber, agent_password, name
Agent_number is an agent’s number
Agent_password is an agent’s password
Name is an agent’s actual name
AgentLogin()
Logs an agent to receive calls. An agent can hang-up a call by pressing the
* key
Format is
AgentLogin([AgentNo][,options])
The Option argument contains s, which causes the login to be silent
Example
Exten => 123,1,AgentLogin(42,s)
AgentCallbackLogin()
Format is
AgentCallbackLogin([AgentNo|][exten]@context)
This application asks the agent to login to the system with call back