login | register
Wed 09 of Jul, 2008 [05:42 UTC]

voip-info.org

History

ACD

Created by: pgaz,Last modification on Mon 26 of Nov, 2007 [17:57 UTC] by andrewik

ACD (Automatic Call Distribution)

The following is the definition of ACD from Wikipedia:

"In telephony, an Automatic Call Distributor (ACD) is a device that distributes incoming calls to a specific group of terminals that agents use. It is often part of a computer telephony integration system. ACD systems are often found in offices that handle large volumes of incoming phone calls from callers who have no specific need to talk to a certain person, but want to talk to a person who is ready to serve at the earliest opportunity."


See Also


Comments

Comments Filter
222

333Scenario

by sbejarano, Monday 05 of November, 2007 [06:14:44 UTC]
Calls collected from 1-800 in Los Angeles from several T1's on a Sysmaster SM7000 then forwarded to an office in Mexico City where the agents sit and respond in two languages depending on the ACD report.
1) Call has to be directed to Mexico with autoattendant or autoattendant has to be played in Mexico, to keep the same type of IVR played we decided to play it on the SM7000 and just forward 2000 or 3000 , 2000 for english, 3000 for Spanish to Mexico.

sip.conf

;Defined SM7000 information, g729 is free if used as passthrough, meaning all your devices have to be g729 capable to avoid requiring codec conversion on the Asterisk.

sm-xx
type=peer
context=from-fwd
host=xxx.xxx.xxx.xxx
disallow=all
allow=g729
allow=ulaw

;Also created all the extensions required for the office, in this case 150 extensions which started at 100 - 250

100
type=friend
username=100
secret=12345
host=dynamic
dtmfmode=rfc2833
nat=yes
context=from-sip

101
type=friend
username=101
secret=12345
host=dynamic
dtmfmode=rfc2833
nat=yes
context=from-sip



extensions.conf

;I created a context named from-sip similar to the context that the extensions in sip.conf

from-sip

exten => 1000,1,Dial(SIP/1000)
exten => 1001,1,Dial(SIP/1001)
exten => 1002,1,Dial(SIP/1002)
exten => 1003,1,Dial(SIP/1003)
exten => 1004,1,Dial(SIP/1004)
exten => 1005,1,Dial(SIP/1005)
exten => 1006,1,Dial(SIP/1006)

;English
exten=> 2000,1,Answer
exten=> 2000,2,Ringing
exten=> 2000,3,Wait(2)
exten=> 2000,4,Queue(queue1|t|||180)
exten=> 2000,5,Hangup

;Spanish
exten=> 3000,1,Answer
exten=> 3000,2,Ringing
exten=> 3000,3,Wait(2)
exten=> 3000,4,Queue(queue2|t|||180)
exten=> 3000,5,Hangup

;Agent Login English
exten=> 2001,1,AgentCallbackLogin(||${CALLERIDNUM}@from-sip)

;Agent Logout English
exten=> 2002,1,AgentCallbackLogin(||l)

;Agent Login Spanish
exten=> 3001,1,AgentCallbackLogin(||${CALLERIDNUM}@from-sip)

;Agent Logout Spanish
exten=> 3002,1,AgentCallbackLogin(||l)

;This allows us to use any extension to record in gsm format special announcements

Exten => 888,1,Wait(2)
Exten => 888,2,Record(/tmp/asterisk-recording:gsm)
Exten => 888,3,Wait(2)
Exten => 888,4,Playback (/tmp/asterisk-recording)
Exten => 888,5,wait(2)
Exten => 888,6,Hangup


The point is that with this information I am ready to receive from sm-xx 2000 or 3000 depending on the language selected via dtmf by customer in LA, now that I have named that and in my prescendence 4 pointed to the queue1 or queue2 and also made it a timer of 3 minutes I can check the queues.
Announce = queue-english was not there, we had to record it with the 888 extension and save it into /var/lib/asterisk/sounds directory, pretty easy, this message is played to the Agent that is signed to english and spanish queue to let him know which language customer selected to answer properly.

queue1

music=default
autofill = yes
reportholdtime=yes
strategy = random
timeout = 5
retry = 5
wrapuptime = 0
maxlen = 0
setinterfacevar = yes
ringinuse = no
announce-holdtime = yes
periodic-announce-frequency=60
announce-round-seconds = 10
announce = queue-english
leavewhenempty=strict
joinempty=strict
queue-youarenext = queue-youarenext
queue-thereare = queue-thereare
queue-callswaiting = queue-callswaiting
queue-holdtime = queue-holdtime
queue-minutes = queue-minutes
queue-seconds = queue-seconds
queue-thankyou = queue-thankyou
queue-lessthan = queue-less-than
queue-reporthold = queue-reporthold
periodic-announce = queue-periodic-announce
member => Agent/1000
member => Agent/1001
member => Agent/1002
member => Agent/1003
member => Agent/1004
member => Agent/1005
member => Agent/1006

queue2 same thing with this queue.

agents.conf

agent => 1000,1234,Nancy
agent => 1001,1234,Rodrigo
agent => 1002,1234,Alberto
agent => 1003,1234,Alpha
agent => 1004,1234,Lisseth
agent => 1005,1234,Oscar
agent => 1006,1234,Noemi

The most interesting part is the Agents, signing in and out, which I will show as well as the HUD integration that I am working on right away.

Server characteristics:
IBM e-server, 2GB RAM
3.0Ghz Processor.

Hope this information can be of any help to people attempting to manage they're own ACD.

Saul Bejarano