|
VICIDIAL Call Center Suite
MAJOR VICIDIAL FEATURES:
-
Inbound, Outbound and Blended call handling
-
Outbound agent-controlled, broadcast and predictive
dialing
-
Full USA FTC-compliance capability
-
Web-based agent and administrative interfaces
-
Ability to have agents operate remotely
-
Integrated call recording
-
Three-Way calling within the agent application
-
Scheduled Callbacks: Agent-Only and Anyone
-
Scalable to hundreds of seats
-
Ability to use standard Telco lines and VOIP trunks
-
Open-Source AGPLv2 licensed, with no software
licensing cost
Full Features List:
-
Ability for an agent to call clients in succession
from a database through a web-client
-
Ability to display a script for the agent to read
with fields like name, address, etc. filled-in
-
Ability to set a campaign to auto-dial and send live
calls to available agents
-
Ability to dial predictively in a campaign with an
adaptive dialing algorithm
-
Ability to dial on a single campaign across multiple
Asterisk servers, or multiple campaigns on a single
server
-
Ability to transfer calls with customer data to a
closer/verifier on the local system or a remote
Asterisk server
-
Ability to open a custom web page with user data
from the call, per campaign
-
Ability to autodial campaigns to start with a simple
IVR then direct to agent
-
Ability to broadcast dial to customers with a
pre-recorded message
-
Ability to park the customer with custom music per
campaign
-
Ability to send a dropped call to a voicemail box
per campaign if no agent is available
-
Ability to set outbound CallerID per campaign
-
Ability to take inbound calls grabbing CallerID
-
Ability to function as an ACD for inbound and
fronter/closer verification calls
-
Ability to have an agent take both inbound and
outbound calls in one session(blended)
-
Ability to start and stop recording an agent's calls
at any time
-
Ability to automatically record all calls
-
Ability to manually or automatically call upto two
other customer numbers for the same lead
-
Automtically dial unlimited numbers per customer
until you get an answer
-
Ability to schedule a callback with a customer as
either any-agent or agent-specific
-
Ability in Manual dial mode to preview leads before
dialing
-
Ability for agents to be logged in remotely anywhere
with just a phone and a web browser
-
Faster hangup and dispositioning of calls with one
key press (HotKeys)
-
Definable Agent Wrapup-time per campaign
-
Ability to add custom call dispositions per campaign
-
Ability to use custom database queries in campaign
dialing
-
Recycling of specified status calls at a specified
interval without resetting a list
-
Dialing with custom TimeZone restrictions including
per state and per day-of-the-week
-
Dialing with Answering Machine Detection, also
playing a message for AM calls
-
Multiple campaigns and lead-lists are possible
-
Option of a drop timer with safe-harbor message for
FTC compliance
-
Variable drop call percentage when dialing
predictively for FTC compliance
-
Internal DNC list can optionally be activated per
campaign
-
All calls are logged and statuses of calls are
logged as well as agent time breakdowns
-
Load Balancing of call across multiple inbound or
outbound Asterisk servers is possible
-
Agent phone login balancing and failover across
multiple ViciDial servers
-
Several real-time and summary reports available
-
Real-time campaign display screens
-
3rd party conferencing(with DTMF macros and number
presets)
-
3rd party blind call transfer
-
3rd party conferencing with agent drop-off
-
Custom Music-On-Hold and agent alert sound for
inbound calls
-
Estimated hold time, place in line, overflow queues
and several other inbound-only features
-
Skills-based ranking and call routing per inbound
group(queues) and campaign
-
Queue Prioritization per campaign and inbound group
-
Single agent call queueing
-
Ability to set user levels and permissions for
certain features and campaigns
-
Ability for managers to listen-in on agent
conversations
-
Ability for managers to enter conversations with
agents and customers
-
Ability for agents to select a Pause Code when they
are not active
-
Ability for agents to control volume levels and mute
themselves
-
Agent shift enforcemant by day and time, defined per
user group
-
Full QueueMetrics-compatible call logging, inbound
and outbound
-
Several Vtier integration features: user-sync,
account-sync, data interconnection
-
Full integration with Sangoma Call Progress
Detection(CDP) for better Answering Machine
Detection(AMD)
-
Multi-function web-based agent API allowing for
control of agent sessions including click-to-dial
outside of the agent screen
-
Lead import web-based API
-
Web-based data export utilities
-
Separate Time-clock application to track user work
time
-
Web-based administration
-
DID, phone and carrier trunk provisioning through
the web interface
-
Client web-app web pages available in English,
Spanish, Greek, German, French, Italian, Polish,
Portuguese, Brazillian Portuguese, Slovak, Russian
and Dutch.
-
Admin web pages available in English, Spanish,
Greek, German, Italian and French.
Required components:
- Asterisk server with Zap(T1/E1/PSTN), IAX or SIP
trunks
- SIP/IAX/Zap phones(hard or soft single-line or
multiple)
- Client Computer with Firefox or other compatible web
browser installed
- Asterisk server with proper software installed
- astGUIclient must be installed with the
Asterisk Central Queue System(ACQS) running
Approach:
This system is dependant on a MySQL server acting as the
storage place of all data and settings for the system.
This was done so that it would be very scalable and
flexible. This application draws on a lot of the core
scripting inside of the astGUIclient suite of
applications and was built with flexibility in mind. We
have used VICIDIAL for over two years now on up to 120
seats at once across 6 separate Asterisk servers all
using the same MySQL server and dialing on the same
campaign. It is important to keep in mind that because
VICIDIAL uses Asterisk meetme rooms for it's dialing
that the Asterisk server will see an increased load as
compared to a simple Zap/SIP-only calls.
Installation:
Look at the
INSTALL FROM SCRATCH documentation and start at
phase 6
Process flow of a one-call-at-a-time call:
-
all components are installed and running(with
Asterisk and MySQL servers)
-
user logs in to the client GUI
[user/password/campaign]
-
GUI assigns an open meetme extension to the user,
this is called the session_id
-
GUI sends manager command ORIGINATE to connect the
user to the meetme ext
-
user clicks DIAL NEXT NUMBER and GUI UPDATEs first
available number-to-call in DB to PENDING status
-
GUI SELECTs info on that number[name/address/...]
-
GUI sends ORIGINATE command to call that client's
number from meetme ext
-
user is talking to the client
-
user transfers call to 3rd party, client Zap
channel is REDIRECTed to 3rd party
or
-
User transfers client to a closer to finish the
call
or
-
user puts client on park and dials 3rd party,
then transfers client back to meetme room
-
Call is Hung up
-
user hangs up call and clicks HANGUP CALL on GUI
or
-
person called hangs up so user clicks on the
CALL HUNGUP then HANGUP CALL
-
call is disconnected
-
user selects disposition status of the call and
clicks OK
-
goes back to step 4 and repeats
Process flow of an auto-dial call:
-
The lead hopper app(AST_VDhopper.pl) that is running
every minute keeps the hopper for each campaign up
to at least the minimum hopper lead size providing
there are enough leads to fill it.
-
The predictive dialing control app(AST_VDadapt.pl)
that is running constantly analyzes the current
status of calls and agents and calculates the dial
level that the campaign will need to be set at for
the campaign's specific settings.
-
The call center manager can either set the dial
method (on the campaign screen of the admin web
page) to Manual for no autodialing, Ratio for fixed
lines-to-agent dialing or any of the Adapt
predictive dialing models to use Predictive dialing.
-
As soon as an agent logs into a campaign, the client
app will look at the auto_dial_level setting of the
campaign and determine whether
-
it will insert a record into the
vicidial_live_agents table(and set status to
READY) and update that record every second with
a random 8 digit number to show that the client
is still alive and ready. Also, the client app
will show a "pause" and "resume" button to start
or stop receiving calls automatically instead of
the usual "dial next number" button.
or
-
it will allow normal manual dialing operation
-
The auto_dial app(AST_VDauto_dial.pl) will:
I.
count how many agents are READY,QUEUE,INCALL with
updated last_update_time in the last 5 seconds
II.
look at the campaign's auto_dial_level to
determine how many calls should be placed each specific
campaign on each server.
III.
update the vicidial_auto_calls records by
searching for active callerids in the vicidial_manager
to see if they have hung up
IV.
count the number of active calls that are
occuring(vicidial_auto_calls records with a status of
SENT,RINGING or LIVE)
V.
place the calls for each server if the active
calls is less than the total that should be placed
-
The auto_dial app will then:
.
grab the next lead to be called from the
vicidial_hopper for each campaign(it will update that
lead record in the vicidial_hopper table to QUEUE with
VDAD as the user)
I.
grab the lead information from vicidial_list and
update called_since_last_reset Y, the user to VDAD and
increment the called_count by 1
II.
delete the record from vicidial_hopper for that
lead
III.
place the call first to the Zap trunk(Exten:
917275551212), then to a specified Local extension
number(Channel: Local/99999@default) where the
auto_dial_transfer_agent app(agi-VDADtransfer.agi) is
waiting to take over.
IV.
if the call is busy, disconnect or telco
voicemail the call is never technically picked up so it
never makes it to the auto_dial_transfer_agent app
V.
check for dead calls by looking in the call_log
for and end time of the call keyed by
callerID(caller_code) and delete them t=from the
vicidial_auto_calls table
-
The auto_dial_transfer_agent app takes the call and:
.
immediately grabs the uniqueid and callerid of
the call and updates the vicidial_auto_calls record to
LIVE
I.
logs the call to vicidial_log using the callerid
to find out the lead number(VmmddhhmmssLLLLLLLLL[where
LLLLLLLLL is the zero-padded lead_id from vicidial_list])
II.
inserts the number_dialed and the caller_code in
the vicidial_log table for the uniqueid record of the
call
III.
attempts to update(limit 1) a record in the
vicidial_live_agents table to see who is the next agent
to receive a call(ordered by last_call_time)[update the
status to QUEUE, the lead_id to the proper lead_id and
the uniqueid and callerID to proper values for the call]
IV.
if there are agents available[affected rows =
1](goto substep VII.)
V.
if there are no agents available:
-
wait in 1 second increments and then
checking substep IV.
-
if no agent is available for the drop
interval(usually 5 seconds on outbound
campaigns), the call is hung up and logged
as DROP in vicidial_log under user VDAD.
VI.
grabs the agent info from the
vicidial_live_agents[conf_exten] and does a redirect to
the agent's meetme room.
VII.
agent's app checks the vicidial_live_agents
record every second for itself to see if it is changed
to QUEUE
VIII.
agent's app changes the vicidial_live_agents
status to INCALL and updates the vicidial_list record to
INCALL and user to the agent's userID and the call
progresses normally
-
The agent hangs up and the vicidial_live_agents
record is changed back to READY with the lead and
call fields cleared out so the agent is ready to
take another call
VICIDIAL Web-only client
With
1.1.6 release of astguiclient we have finished the
rewrite of the VICIDIAL
client app in AJAX(PHP/Javascript/XMLHTTPRequest) to
enable a full, real-time
GUI
interface using only a web browser like we have done
with astGUIclient.
The
browser requirements for this are:
-
Firefox 0.9 or greater (Firefox 1.0.7 is the recommended
browser)
-
Mozilla 1.7 or greater
-
Netscape 8 or greater
-
Opera 8.5 or greater
-
Microsoft Internet Explorer 5.0 or greater (we have
noticed some serious
memory leaks in IE5 and IE6 when using this program,
they do not occur in
Firefox which is why we recommend it overall.)
This
beta version is fully functional and has been tested in
our production
call
center with no problems. On RedHat 9.0 Linux
workstations we have noticed
a
decrease in system load running the web-client as
compared to the Perl/Tk
client. Also, the memory usage stayed at about 22MB for
a full shift of
activity, so no memory leaks with Firefox.
To
log into this app you will need a login setup in the
vicidial_users table
with
a user_level of 1 or greater as well as an entry for the
phone you are
using in the phones table. You will first get a login
prompt for the vicidial
login then you will have the phone login where you enter
the Login and Password
for
that phone entry. From there the app should display and
you will see the
VICIDIAL screen with your phone information.
The
example web page you would go to on this installation
would be:
http://10.10.10.15/agc/vicidial.php
One
more feature that the VICIDIAL web-client offers is the
ability to set up
an
EXTERNAL phone extension in the astguiclient admin
section so that you can
have
agents log in to vicidial.php wherever they have access
to a phone with
an
external phone number and a web browser. To do this
follow these steps:
-
"ADD A NEW PHONE" in the admin.php web page and enter
whatever name you want
-
For the dialplan number field put in the full digits
that you would dial from
the Asterisk server to get to that agent's external
phone(with 91 if used)
-
For the Protocol select EXTERNAL
-
make sure the agent knows the login and password set for
this phone entry.
Then
the agent will go to the vicidial.php page and enter in
their phone
login/pass, their vicidial user/pass/campaign and their
phone should ring in a
few
seconds, and they are logged in and ready to take calls.
Another thing to note is that you can have the agc
folder(with the .php files
in
it) copied to multiple web servers, you just need to
make sure that the
MySQL database connection works (check the settings in
the dbconnect.php file
that
is in the agc directory). We have had astguiclient.php
running on 3
separate web servers for the same DB server and Asterisk
server. This is an
easy
way to allow for auto failover and/or redundancy. Also,
this client will
work
over SSL connections(https) for encrypted communications
with the server.
New
in astGUIclient release 1.1.7 is multi-language support.
multi-language
versions of web-clients and admin pages are available in
the LANG_agc.zip and
LANG_admin.zip files and can be unzipped into your
webroot directory. Make sure
you
check the dbconnect.php file in each directory.
Admin Note: If you want to enable your agents to login
with only their user/pass
you
can hardcode the phone_login and phone_pass into the
query string(URL) and
use
a bookmark on their desktop, taking one more step out of
their login process
example: http://10.10.10.15/agc/vicidial.php?pl=gs102&pp=test
It
is recommended if you are in a call center environment
that you would disable
the
"Saved Form Information" option in Firefox settings.
This is a checkbox in
the
Privacy settings under the Options menu.
NOTE: make sure you
have your machine time-syncing with an ntp server
Windows instructions:
http://www.tech-recipes.com/windows_tips466.html
http://support.microsoft.com/kb/q216734/
If anyone has suggestions/praises/criticisms about
VICIDIAL we would love to
hear them.
All astGUIclient software elements are distributed
freely through the GPL with no warranty.
|