initial 2.0 tree trunk
git-svn-id: svn://192.168.202.10@18 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
+------------------------------------------------------------------------------+
|
||||
| Asterisk GUI client - astguiclient - fourth public release 0.9.2 |
|
||||
| Description of the Asterisk Central Queue System |
|
||||
| created by Matt Florell <mattf@vicimarketing.com> <info@eflo.net> |
|
||||
| project started 2003-10-06 http://sourceforge.net/projects/astguiclient/ |
|
||||
+------------------------------------------------------------------------------+
|
||||
|
||||
This suite of programs is designed to work with the Asterisk Open-source PBX
|
||||
(http://www.asterisk.org) as a cross-platform GUI client and the supporting
|
||||
server side applications necessary for the features of the GUI application to
|
||||
work with Asterisk.
|
||||
|
||||
Scripts that are involved with the ACQS backend are:
|
||||
|
||||
- AST_SERVER_conf.pl - file where you define your variables for the server apps
|
||||
+ Must be present in the /home/cron/ directory
|
||||
|
||||
- AST_manager_listen.pl - listener for the Asterisk Central Queue System (ACQS)
|
||||
+ Must be present in the /home/cron/ directory
|
||||
+ Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules
|
||||
|
||||
- AST_manager_send.pl - send-spawn for the ACQS
|
||||
+ Must be present in the /home/cron/ directory
|
||||
+ Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules
|
||||
|
||||
- AST_send_action_child.pl - blind-send for the ACQS
|
||||
+ Must be present in the /home/cron/ directory
|
||||
+ Requires Net::Telnet, Net::MySQL perl Modules
|
||||
|
||||
- ADMIN_keepalive_AST_send_listen.pl - checks to see that ACQS is running
|
||||
+ Must put entry for this script in the cron as "* * * * * /path/script"
|
||||
|
||||
- ADMIN_restart_roll_logs.pl - rolls logs over datestamp upon restart
|
||||
+ put this script in your machine's startup routine
|
||||
|
||||
|
||||
DESCRIPTION:
|
||||
This set of programs was created to reduce the risk of deadlocks that occur when
|
||||
the manager interface connection from a remote machine to the Asterisk server
|
||||
becomes severed or backlogged in some way resulting in a buffer-overflow of the
|
||||
manager interface on the Asterisk box and a deadlock of the Asterisk PBX. The
|
||||
probability of this happening is rare on a system where you may have 100 or less
|
||||
action commans being executed a day, but when the action commands rise to the
|
||||
level of 3000+ per server across 30 machines you will have at least 1 deadlock
|
||||
per day if not one per hour. That's why we needed to find a way to still issue
|
||||
manager Actions but not have to maintain a connection with the Asterisk Manager
|
||||
interface. Here is a rundown of how the ACQS works:
|
||||
|
||||
There is a simple database table where the action information with unique IDs is
|
||||
stored and where each action's information is updated by the listener. The table
|
||||
I use is called vicidial_manager and is detailed in the CONF_MySQL.txt file in
|
||||
this distribution.
|
||||
|
||||
1. First, the GUI client application inserts a record into the table as a NEW
|
||||
action and includes a unique callerID for REDIRECT and ORIGINATE commands(the
|
||||
callerID field is how the listener will update the record in the DB)
|
||||
INSERT INTO vicidial_manager values('','','2004-01-30
|
||||
17:22:53','NEW','N','10.10.11.12','','Originate','DL40130172253cc160','Channel:
|
||||
local/8600011@demo','Context: default','Exten: 917274515135','Priority:
|
||||
1','Callerid: DL40130172253cc160','','','','','');
|
||||
|
||||
2. Second, there is a constantly running application on the Asterisk box that
|
||||
selects queues from the database to be processed, and launches a new child
|
||||
script to send the action to the database, then marks the action as SENT.
|
||||
|
||||
3. Third, each child process logs into the manager interface and sends the
|
||||
action immediately, then stays open for 10 seconds to not cause any problems,
|
||||
clears it's buffer and then logs out and exits.
|
||||
|
||||
4. Fourth, the listener app is constantly connected on the Asterisk box to the
|
||||
manager interface and parses all output from the manager interface. Every time a
|
||||
"Newstate Ringing" event is seen an update statement is sent to the DB based
|
||||
upon the callerid of the call filling in the channel that the call is on and the
|
||||
uniqueID of the call and sets the record to "UPDATED"
|
||||
|
||||
5. Fifth, the listener also listens for "Hangup" events and sends an update to
|
||||
the DB with a "DEAD" status keyed by the call's uniqueID.
|
||||
|
||||
The above process is executed extremely fast and actually has suprisingly little
|
||||
effect on the load of the Asterisk box. Because each action is sent through it's
|
||||
own child process there is no risk of the system deadlocking because of a single
|
||||
bad action thread.
|
||||
|
||||
|
||||
|
||||
NOTES:
|
||||
This started out as a desperate quick fix that evolved into a system that has
|
||||
been up and running reliably on two separate Asterisk servers. Since we
|
||||
implemented ACQS we haven't had a single deadlock on either of these servers.
|
||||
If anyone has suggestions/praises/criticisms I would love to hear them.
|
||||
|
||||
To use, install the scripts listed above and set the $QUEUE_ACTION_enabled
|
||||
variable in the client's libs/AST_VICI_conf.pl configuration file to 1
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
VICIDIAL and app_conference
|
||||
(1.2 tree) EXPERIMENTAL!!!
|
||||
|
||||
app_conference offers the plusses of being able to do conferencing
|
||||
without any zaptel hardware or timers as well as doing native codec
|
||||
streaming, meaning no manditory downsampling to slin like meetme.
|
||||
These two features alone mean a rather significant performance boost
|
||||
to companies who only use VOIP for agents and trunks as well as not
|
||||
requiring the cost of zaptel hardware or the nightmare of getting
|
||||
ztdummy to work on some systems.
|
||||
|
||||
As of right now, I have a test system fully up and running using
|
||||
app_conference with VICIDIAL on Asterisk 1.2.8. I have made several
|
||||
modifications to the app_conference code to make it more of a drop-in
|
||||
replacement for meetme so that it does not require any changes to the
|
||||
VICIDIAL codebase. I have added entry and exit sounds(slightly
|
||||
different from meetme's) as well as "only one in this conference"
|
||||
message in addition to changing the default member type to speaker(S).
|
||||
So far I have tested with IAX and SIP channels only and everything
|
||||
works just like on meetme but I have not done any capacity testing or
|
||||
tested it in production yet.
|
||||
|
||||
If you want to use app_conference instead of meetme for VICIDIAL then follow these instructions:
|
||||
|
||||
cd /usr/src/asterisk
|
||||
wget http://www.eflo.net/files/VD_app_conference_0.6.zip
|
||||
unzip VD_app_conference_0.6.zip
|
||||
cd app_conference
|
||||
make clean
|
||||
make
|
||||
make install
|
||||
|
||||
|
||||
In your extensions.conf file you would replace these lines:
|
||||
exten => 8600051,1,Meetme,8600051
|
||||
exten => 8600052,1,Meetme,8600052
|
||||
...continue through 8600100...
|
||||
exten => 78600051,1,Meetme,8600051|q
|
||||
exten => 78600052,1,Meetme,8600052|q
|
||||
...continue through 78600100...
|
||||
exten => 68600051,1,Meetme,8600051|mq
|
||||
exten => 68600052,1,Meetme,8600052|mq
|
||||
...continue through 68600100...
|
||||
|
||||
|
||||
with these lines:
|
||||
exten => 8600051,1,Conference(8600051)
|
||||
exten => 8600052,1,Conference(8600052)
|
||||
...continue through 8600100...
|
||||
exten => 78600051,1,Conference(8600051|q)
|
||||
exten => 78600052,1,Conference(8600052|q)
|
||||
...continue through 78600100...
|
||||
exten => 68600051,1,Conference(8600051|Lq)
|
||||
exten => 68600052,1,Conference(8600052|Lq)
|
||||
...continue through 68600100...
|
||||
|
||||
NOTES:
|
||||
Here are the possible feature flags for this version of app_conference:
|
||||
o M: Moderator (presently same as speaker) [default]
|
||||
o S: Speaker
|
||||
o L: Listener
|
||||
o T: "Telephone caller" (just for stats?).
|
||||
o V: Do VAD on this caller
|
||||
o D: Use Denoise filter on this caller.
|
||||
o d: Send manager events when DTMF is received.
|
||||
o q: Do not play enter or exit sounds.
|
||||
o i: use inband dtmf broadcast.
|
||||
o t: use rfc dtmf signal broadcast.
|
||||
|
||||
COMPILE NOTES:
|
||||
|
||||
Some Makefile alterations may be necessary for your system:
|
||||
|
||||
From Alek Barkley:
|
||||
I am running FC4 with latest updates ( 2.6.16 kernel )
|
||||
My CPU is AMD K6 and GCC 4.0.2.
|
||||
|
||||
I edited Makefile in app_conference distribution.
|
||||
To enter CPU architecture in my case -march=k6
|
||||
========================================================
|
||||
PROC = k6
|
||||
# this is fun for x86
|
||||
#CFLAGS += -march=pentium3 -msse -mfpmath=sse,387
|
||||
CFLAGS += -march=k6
|
||||
===========================================================
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
CALLBACK proces flow 2006-01-05
|
||||
|
||||
***** FULL CALLBACKS FUNCTIONALITY WAS ADDED IN THE 1.1.11 RELEASE *****
|
||||
|
||||
This will outline the process I have thought through in my head for a call-back
|
||||
process in VICIDIAL. I have received suggestions for methodologies of how many
|
||||
people think that call-backs should work and I think I've finally come to a
|
||||
conclusion of how I may build it into VICIDIAL that incorporates most of these
|
||||
suggestions.
|
||||
|
||||
|
||||
|
||||
The Agent Side:
|
||||
When an Agent dispositions a call as CALLBK, a popup frame will appear that will
|
||||
allow selecting a date from a calendar window(with option to go forward by month
|
||||
up to 1 year) and a pull-down list that will show hours(in 30 minute increments
|
||||
defaulting to current half hour). After the agent selects a day and time, they
|
||||
must check a box to denote that only they should be able to get this Callback.
|
||||
If the box is unchecked, anyone will be able to call this lead after it's
|
||||
callback_time elapses. The lead will be entered as vicidial_list.status CBHOLD
|
||||
in the system and will not be able to be dialed or selected as a dial status in
|
||||
the admin screen.
|
||||
|
||||
If the agent checks the box that they will be the only one that can callback the
|
||||
lead and it is time to call that lead again(vicidial.php will check at login and
|
||||
every 30 minutes to see if there are any agent-specific leads that need to be
|
||||
called back by that agent) then when the agent is paused they will be able to
|
||||
click on the "CALLBACK" button on the bottom of the screen and select which lead
|
||||
that they want to callback. The call will proceed as a normal call and will be
|
||||
dispositioned as normal. The callback button will probably be able to flash or
|
||||
gently strobe like the astguiclient.php voicemail button does when callbacks are
|
||||
available to be called for that logged-in agent.
|
||||
|
||||
If the agent does not check that they are the only ones to be able to call that
|
||||
specific lead back, then it will be updated by the AST_VDhopper.pl script once
|
||||
it's callback date/time has been reached the status will be changed to CALLBK
|
||||
and will be available for calling if that status is selected in the dial
|
||||
statuses for the campaign and if the list is active.
|
||||
|
||||
If the managr has given the agent permission to set USERONLY callbacks, then
|
||||
the agent will be able to call those customers back by clicking on the CALLBACK
|
||||
count link below the comments field of vicidial.php once they are logged in.
|
||||
From here they can see the listing of their callbacks and their settings, and
|
||||
can call the customer back by clicking on the callback record.
|
||||
|
||||
|
||||
|
||||
The Admin Side:
|
||||
In the admin.php web page will be a callback viewer. Admin users will be able to
|
||||
search and sort by campaign, list, user, status and time-range to see summary
|
||||
lists of the Callbacks in the vicidial_callbacks table. Callbacks will be
|
||||
alterable through the modify lead screen.
|
||||
|
||||
|
||||
|
||||
The Server Side:
|
||||
The vicidial_callbacks table will look like this:
|
||||
CREATE TABLE vicidial_callbacks (
|
||||
callback_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||
lead_id INT(9) UNSIGNED,
|
||||
list_id INT(8) UNSIGNED,
|
||||
campaign_id VARCHAR(8),
|
||||
status VARCHAR(10),
|
||||
entry_time DATETIME,
|
||||
callback_time DATETIME,
|
||||
modify_date TIMESTAMP,
|
||||
user VARCHAR(20),
|
||||
recipient ENUM('USERONLY','ANYONE'),
|
||||
comments VARCHAR(255),
|
||||
index (lead_id),
|
||||
index (status),
|
||||
index (callback_time)
|
||||
);
|
||||
|
||||
The status field will probably have the following possible values: ACTIVE, LIVE,
|
||||
ARCHIVE and all old callback entries will be kept for archival purposes,
|
||||
anthough not viewable by the agent.
|
||||
|
||||
The AST_VDhopper.pl script will do a select every minute(before it does it's
|
||||
hopper filling run) for callbacks that need to be placed back in CALLBK status.
|
||||
Something like this query:
|
||||
SELECT lead_id from vicidial_callbacks where callback_time < '2006-01-06
|
||||
10:02:03' and status='ACTIVE';
|
||||
|
||||
AST_VDhopper.pl will then:
|
||||
- set these leads to vicidial_list.status of CALLBK
|
||||
- set the called_since_last_reset to N
|
||||
- insert the lead into the vicidial_hopper under the campaign it was originally
|
||||
set if it is an ANYONE callback
|
||||
- change the vicidial_callbacks.status to LIVE.
|
||||
|
||||
At the time of a hangup of a callback call, the vicidial.php script will set the
|
||||
vicidial_callbacks.status to ARCHIVE. The leads that designate the recipient as
|
||||
USERONLY will not be altered in any way by AST_VDhopper.pl.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Here is what you need to add to your Asterisk configuration by configuration filename:
|
||||
|
||||
Notes:
|
||||
- You do NOT have to have MusicOnHold enabled or mpg123 installed to use this
|
||||
- it is assumed in the client app code that you need to dial a "9" to get an outside line
|
||||
- Parking is really just sending a call to a a Playback file then doing a redirect to an extension
|
||||
|
||||
***************************** DEPRICATED ***************************************
|
||||
Look at the SCRATCH_INSTALL document for instructions on how to modify Asterisk conf files for astGUIclient operation
|
||||
@@ -0,0 +1,17 @@
|
||||
### Create the following tables in your "asterisk" MySQL database
|
||||
|
||||
|
||||
################################################################################
|
||||
################################################################################
|
||||
#### ####
|
||||
#### THIS FILE IS DEPRICATED, LOOK AT THE MySQL_AST_CREATE_tables.sql ####
|
||||
#### FILE FOR MORE INFO ON MYSQL DATABASE SETUP ####
|
||||
#### ####
|
||||
################################################################################
|
||||
################################################################################
|
||||
|
||||
### remember to prepopulate the conferencing table with meetme conferences defined
|
||||
### remember to prepopulate the phones table with proper values
|
||||
### remember to prepopulate the servers table with the asterisk servers' IP addresses
|
||||
### remember to prepopulate the server_updater table with the asterisk servers' IP addresses
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
### to use VICIDIAL create these tables in your "asterisk" MySQL database
|
||||
|
||||
################################################################################
|
||||
################################################################################
|
||||
#### ####
|
||||
#### THIS FILE IS DEPRICATED, LOOK AT THE MySQL_AST_CREATE_tables.sql ####
|
||||
#### FILE and the SCRATCH_INSTALL FILEFOR MORE INFO ON ####
|
||||
#### MYSQL DATABASE SETUP ####
|
||||
#### ####
|
||||
################################################################################
|
||||
################################################################################
|
||||
|
||||
@@ -0,0 +1,278 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
@@ -0,0 +1,123 @@
|
||||
VICIDIAL - LOAD BALANCING setup.
|
||||
|
||||
This document is meant to summarize the capabilities and setup of VICIDIAL in a multi-server environment.
|
||||
|
||||
Why Load Balance?
|
||||
|
||||
The primary reason to do load balancing, or clustering of multiple VICIDIAL servers, is to spread the calls taken in or the answered calls on an outbound campaign across all of the agents that are logged into a campaign no matter what server they are on. For instance, on an outbound campaign, you have 2 servers, server one has 20 agents logged in on a campaign and the other server(two) has 5 agents logged in on the same campaign. Lets say that the campaign is set to a dial_level of 3.0 so there are 60 active calls being placed on server one and 15 active calls being placed on server two. Then 23 of the calls on server one answer meaning that there are three calls too many for the agents available on that server. Under a load-balancing-overflow setup those three calls can travel over an IAX2 trunk directly to the agents on that server that are still available. This increased efficiency in both inbound and outbound environments as well as reducing on-hold times for customers and equalizing wait times for agents across all servers for a campaign.
|
||||
|
||||
Another reason for load balancing is the ability to use cheaper hardware on the server side. It is much cheaper and more fault-tolerant to buy four P4 2.0GHz 1U servers for $800 a piece than it is to buy a single 4U quad Xeon 3.2GHz server. The four 1U servers will have more total capacity, can be easily scaled and if one fails you've only lost 25% of capacity instead of everything. This philosophy has serverd our call center very well over the last two years.
|
||||
|
||||
|
||||
How do I set up load balancing on my two server VICIDIAL setup?
|
||||
|
||||
These steps are taken directly from the SCRATCH_INSTALL document, but they are all put together here to give a better idea of what is needed all in one place. It is assumed that you already have VICIDIAL up and running on both servers.
|
||||
|
||||
NOTE: In a multi-server setup you may want to have your database and web server on a separate machine from your Asterisk/VICIDIAL servers. Simply copy the web page directories to your new database/web server and set the AST_SERVER_conf.pl files on your VICIDIAL servers to point to that new database server. You can also have several web servers(or even load-balancing web servers) if you have more than 70 seats in one installation you may want to do that. For the web pages you just need to make sure the dbconnect.php files are configured for your database server. We have had 9 VICIDIAL servers and 2 web servers using a single database server with no problems.
|
||||
|
||||
|
||||
1. The VICIDIAL/Asterisk servers need to have all of the perl scripts and cron jobs installed on them, except these which only need to be on one of the servers:
|
||||
- AST_VDhopper.pl
|
||||
- AST_cleanup_agent_log.pl
|
||||
- ADMIN_adjust_GMTnow_on_leads.pl
|
||||
- AST_DB_optimize.pl
|
||||
|
||||
|
||||
2. The two servers need to be registered to each other as IAX2 friends:
|
||||
SERVER ONE(ASTtest1-10.10.10.15)
|
||||
iax.conf:
|
||||
register => ASTtest1:test@10.10.10.16
|
||||
|
||||
[ASTtest2]
|
||||
type=friend
|
||||
accountcode=IAXtrunk2
|
||||
context=default
|
||||
auth=plaintext
|
||||
host=dynamic
|
||||
permit=0.0.0.0/0.0.0.0
|
||||
secret=test
|
||||
qualify=yes
|
||||
|
||||
SERVER TWO(ASTtest2-10.10.10.16)
|
||||
iax.conf:
|
||||
register => ASTtest2:test@10.10.10.15
|
||||
|
||||
[ASTtest1]
|
||||
type=friend
|
||||
accountcode=IAXtrunk1
|
||||
context=default
|
||||
auth=plaintext
|
||||
host=dynamic
|
||||
permit=0.0.0.0/0.0.0.0
|
||||
secret=test
|
||||
qualify=yes
|
||||
|
||||
|
||||
3. The two servers need to have wildcard extensions assigned to the other server in the dialplan:
|
||||
SERVER ONE(ASTtest1-10.10.10.15)
|
||||
extensions.conf:
|
||||
[globals]
|
||||
TRUNKIAX2=IAX2/ASTtest1:test@10.10.10.16
|
||||
|
||||
[default]
|
||||
exten => _010*010*010*016*8600XXX,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o)
|
||||
exten => _010*010*010*016*8600XXX,2,Hangup
|
||||
|
||||
SERVER TWO(ASTtest2-10.10.10.16)
|
||||
extensions.conf:
|
||||
[globals]
|
||||
TRUNKIAX1=IAX2/ASTtest2:test@10.10.10.15
|
||||
|
||||
[default]
|
||||
exten => _010*010*010*015*8600XXX,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o)
|
||||
exten => _010*010*010*015*8600XXX,2,Hangup
|
||||
|
||||
|
||||
4. For BOTH servers the VDAD extens need to be setup there as well for the Load-Balance and Load-Balance-Overflow AGI scripts, as well as setting up the closer and inbound extens if needed:
|
||||
|
||||
; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
|
||||
exten => 8367,1,AGI(call_log.agi,${EXTEN})
|
||||
exten => 8367,2,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
|
||||
exten => 8367,3,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
|
||||
exten => 8367,4,AGI(agi-VDAD_LO_transfer.agi,${EXTEN})
|
||||
exten => 8367,5,Hangup
|
||||
|
||||
; VICIDIAL_auto_dialer transfer script Load Balanced:
|
||||
exten => 8368,1,AGI(call_log.agi,${EXTEN})
|
||||
exten => 8368,2,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
|
||||
exten => 8368,3,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
|
||||
exten => 8368,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
|
||||
exten => 8368,5,Hangup
|
||||
|
||||
; parameters for agi-VDAD_LB_closer.agi (2 fields separated by five dashes "-----"):
|
||||
; 1. the full extension formatted by VICIDIAL for internal transfers * separated
|
||||
; 2. the word START to denote the beginning of the acceptance of the transfer
|
||||
; inbound VICIDIAL transfer calls [INTERNAL TRANSFER]
|
||||
exten => _90009.,1,Answer ; Answer the line
|
||||
exten => _90009.,2,AGI(agi-VDAD_LB_closer.agi,${EXTEN}-----START)
|
||||
exten => _90009.,3,Hangup
|
||||
|
||||
; parameters for agi-VDAD_LO_closer.agi (2 fields separated by five dashes "-----"):
|
||||
; 1. the full extension formatted by VICIDIAL for internal transfers * separated
|
||||
; 2. the word START to denote the beginning of the acceptance of the transfer
|
||||
; inbound VICIDIAL transfer calls [LOCAL TRANSFER]
|
||||
exten => _990009.,1,Answer ; Answer the line
|
||||
exten => _990009.,2,AGI(agi-VDAD_LO_closer.agi,${EXTEN}-----START)
|
||||
exten => _990009.,3,Hangup
|
||||
|
||||
; inbound VICIDIAL call with prompt for 4-digit fronter code
|
||||
exten => 1234,1,Answer ; Answer the line
|
||||
exten => 1234,2,AGI(agi-VDAD_LO_closer_inbound.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1)
|
||||
exten => 1234,3,Hangup
|
||||
|
||||
|
||||
5. Reload both Asterisk servers and for outbound change the VDAD exten to 8367 or 8368 and kill the AST_VDauto_dial.pl scripts on both servers so they can restart and you can now look at the AST_timeonVDADall.php page(per campaign time-on-VDAD available from the STATS and REPORTS link on the vicidial admin screen) that will allo you to see the server_ip of the agent and the server_ip of the call per campaign across all campaigns.
|
||||
|
||||
If you have any questions or problems please post to the astguiclient-users list(link available on the project website)
|
||||
|
||||
6. For multi-server VICIDIAL/astGUIclient installations these cron scripts only need to be set up and run on one of the servers:
|
||||
- AST_VDhopper.pl
|
||||
- AST_cleanup_agent_log.pl
|
||||
- ADMIN_adjust_GMTnow_on_leads.pl
|
||||
- AST_DB_optimize.pl
|
||||
|
||||
+713
@@ -0,0 +1,713 @@
|
||||
+------------------------------------------------------------------------------+
|
||||
| Asterisk GUI client - astguiclient - twenty-fifth public release 1.1.12 |
|
||||
| created by astGUIclient group <astguiclient@eflo.net> |
|
||||
| project started 2003-10-06 http://sourceforge.net/projects/astguiclient/ |
|
||||
+------------------------------------------------------------------------------+
|
||||
|
||||
This suite of programs is designed to work with the Asterisk Open-source PBX
|
||||
(http://www.asterisk.org) as a cross-platform GUI client and the supporting
|
||||
server side applications necessary for the features of the GUI application to
|
||||
work with Asterisk. The client-side GUI apps are available now as web pages
|
||||
running AJAX scripted web pages(Firefox recommended)
|
||||
|
||||
***** Description, Notes and Changelog below *****
|
||||
|
||||
Included in this distribution of the Asterisk GUI client are:
|
||||
|
||||
- README.txt - this file
|
||||
|
||||
- SCRATCH_INSTALL.txt - detailed instructions of how to fully install Asterisk
|
||||
with astguiclient from scratch. Also you could use this doc to install from
|
||||
PHASE 6 of the document if you have an existing Asterisk installation you want
|
||||
to put astguiclient onto.
|
||||
|
||||
- ACQS.txt - Readme file describing the Asterisk Central Queue System
|
||||
|
||||
- VICIDIAL.txt - Readme file describing the VICIDIAL auto-dialing system
|
||||
|
||||
- REQUIREMENTS.txt - Basic requirements for running astGUIclient/VICIDIAL
|
||||
|
||||
- LOAD_BALANCING.txt - Instructions for multi-server installations
|
||||
|
||||
- TODO.txt - List of what has changed since last release including changes for future releases
|
||||
|
||||
- LICENSE.txt - The license for this release GPLv2
|
||||
|
||||
- install_server_files.pl - perl script to put files in the right place on the
|
||||
server. Run as "perl install_server_files.pl"
|
||||
|
||||
- languages.txt - translations file for web-client scripts
|
||||
- languages_admin.txt - translations fiel for admin pages
|
||||
|
||||
- start_asterisk_boot.pl - starts asterisk through a screen, good for system
|
||||
boot time startups of asterisk.
|
||||
|
||||
- MySQL_AST_CREATE_tables.sql - used to create tables for astguiclient and
|
||||
vicidial in your MySQL database
|
||||
|
||||
- astLEADLOADER.pl - client perl/Tk GUI for loading leads into the vicidial_list
|
||||
+ same application run specs as the AST_WINphoneAPP above
|
||||
### SOON TO BE DEPRICATED AND UNSUPPORTED ### see the web lead loader
|
||||
|
||||
- ADMIN_area_code_populate.pl - run once to update phone codes to database
|
||||
|
||||
- AST_VICI_conf.pl - file where you define your variables for the client app
|
||||
+ Must be present in one of the libs_path folders
|
||||
|
||||
- AST_update.pl - command line DB updater
|
||||
+ Ideally is run on the Asterisk server locally
|
||||
+ Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules
|
||||
|
||||
- AST_vm_update.pl - command line DB voicemail count updater
|
||||
+ Ideally is run on the Asterisk server locally
|
||||
+ Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules
|
||||
+ place in the cron as "* * * * * /path/to/script"
|
||||
|
||||
- AST_conf_update.pl - command line DB conference room reg validator
|
||||
+ Ideally is run on the Asterisk server locally
|
||||
+ Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules
|
||||
+ place in the cron as "* * * * * /path/to/script"
|
||||
|
||||
- ADMIN_keepalive_AST_update.pl - checks to see that updater is running
|
||||
+ Must put entry for this script in the cron as "* * * * * /path/to/script"
|
||||
|
||||
- AST_CRON_mix_recordings.pl - command line recording mixer to be put in cron
|
||||
+ Runs under UNIX CLI in the cron of the Asterisk Server
|
||||
+ Requires perl (Net::FTP and Net::Ping optional if FTPing to archive server)
|
||||
|
||||
- AST_SERVER_conf.pl - file where you define your variables for the server apps
|
||||
+ Must be present in the /home/cron/ directory
|
||||
|
||||
- AST_manager_listen.pl - listener for the Asterisk Central Queue System (ACQS)
|
||||
+ Must be present in the /home/cron/ directory
|
||||
+ Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules
|
||||
|
||||
- AST_manager_send.pl - send-spawn for the ACQS
|
||||
+ Must be present in the /home/cron/ directory
|
||||
+ Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules
|
||||
|
||||
- AST_send_action_child.pl - blind-send for the ACQS
|
||||
+ Must be present in the /home/cron/ directory
|
||||
+ Requires Net::Telnet, Net::MySQL perl Modules
|
||||
|
||||
- ADMIN_keepalive_AST_send_listen.pl - checks to see that ACQS is running
|
||||
+ Must put entry for this script in the cron as "* * * * * /path/to/script"
|
||||
|
||||
- ADMIN_keepalive_send_listen.at - used for batch restarts of ACQS in seconds
|
||||
|
||||
- AST_manager_kill_hung_congested.pl - kills CONGEST Local/ channels
|
||||
+ To be used with VICIDIAL
|
||||
+ Must put entry for this script in the cron as "* * * * * /path/to/script"
|
||||
|
||||
- ADMIN_listener_restart.pl - automatically restart ACQS
|
||||
+ Assumes installation in /home/cron/
|
||||
|
||||
- ADMIN_restart_roll_logs.pl - rolls logs over datestamp upon restart
|
||||
+ put this script in your machine's startup routine
|
||||
|
||||
- AST_reset_mysql_vars.pl - resets MySQL tables
|
||||
+ To be used with VICIDIAL
|
||||
+ put this script in your machine's startup routine
|
||||
|
||||
- AST_flush_DBqueue.pl - streamlines DB on heavy volume VICIDIAL systems
|
||||
+ To be used with VICIDIAL
|
||||
+ put this script in the cron at a regular interval(once an hour or so)
|
||||
|
||||
- AST_cleanup_agent_log.pl - cleans up agent log times in VICIDIAL systems
|
||||
+ To be used with VICIDIAL
|
||||
+ put this script in the cron at a regular interval(once an hour or so)
|
||||
|
||||
- The following AGI scripts:
|
||||
+ Run on the Asterisk Server
|
||||
+ Must be present in the /var/lib/asterisk/agi-bin/ directory
|
||||
+ Require perl and Net::MySQL to run
|
||||
- call_log.agi - AGI/perl program for call logging
|
||||
- call_logCID.agi - AGI/perl program for call logging receiving CallerID
|
||||
- call_inbound.agi - AGI/perl program for CallerID popup info (OPTIONAL)
|
||||
- agi-dtmf.agi - AGI/perl program that plays DTMF tines for conferences
|
||||
+ Requires DTMF sounds to be copied to /var/lib/asterisk/sounds/
|
||||
- agi-VDADtransfer.agi - AGI/perl program that transfers calls to VICIDIAL reps
|
||||
- agi-VDAD_LO_transfer.agi - transfers calls to VICIDIAL reps Load Balance Overflow
|
||||
- agi-VDAD_LB_transfer.agi - transfers calls to VICIDIAL reps Load Balanced
|
||||
- agi-VDADcloser.agi - AGI/perl program that takes calls from VICIDIAL reps
|
||||
+ Allows calls from internal or over Zap crossover or IAX from another server
|
||||
- agi-VDAD_LO_closer.agi - calls from VICIDIAL front to CLOSERS Balance Overflow
|
||||
- agi-VDAD_LB_closer.agi - calls from VICIDIAL front to CLOSERS Load Balanced
|
||||
- agi-VDADcloser_inboundANI.agi - AGI/perl that takes calls from outside lines
|
||||
+ like agi-VDADcloser.agi except grabs ANI from robbed-bit T1 channel inbound
|
||||
- agi-VDADcloser_inboundCID.agi - AGI/perl that takes calls from outside lines
|
||||
+ like agi-VDADcloser.agi except grabs CID from T1-PRI channel inbound
|
||||
- agi-VDADcloser_inboundCIDlookup.agi - AGI/perl that takes calls from outside lines
|
||||
+ like agi-VDADcloser.agi except looks up CID in DB to display info
|
||||
- agi-VDADcloser_inbound.agi - AGI/perl that takes calls from outside lines
|
||||
+ like agi-VDADcloser.agi except grabs 4-digit entered code as fronter #
|
||||
- agi-VDAD_LO_closer_inbound.agi - Load-balance-overflow version
|
||||
- agi-VDAD_LB_closer_inbound.agi - Load-balance version
|
||||
- agi-VDADcloser_PHONE.agi - AGI/perl that takes calls from outside lines
|
||||
+ like agi-VDADcloser.agi except attempts to lookup the info from PHONE provided
|
||||
- park_CID.agi - AGI/perl program to place the callID in the park entry
|
||||
- call_park_I.agi and call_park_L.agi - AGI/perl script for handling inbound
|
||||
+ Used in conjunction with VICIDIAL closers
|
||||
|
||||
- AST_VDauto_dial.pl - script to automatically call leads for VICIDIAL
|
||||
+ To be used with VICIDIAL
|
||||
+ kept running with the associated keepalive script in the cron
|
||||
|
||||
- AST_VDremote_agents.pl - script to keep remote agents logged in
|
||||
+ To be used with VICIDIAL
|
||||
+ kept running with the associated keepalive script in the cron
|
||||
|
||||
- AST_VDhopper.pl - script to keep leads in the VICIDIAL hopper
|
||||
+ To be used with VICIDIAL
|
||||
+ recommended to put into cron as "* * * * * /path/to/script"
|
||||
|
||||
- ADMIN_keepalive_AST_VDautodial.pl - checks to see that VDAD is running
|
||||
+ Must put entry for this script in the cron as "* * * * * /path/to/script"
|
||||
|
||||
- ADMIN_keepalive_AST_VDremote_agents.pl - keeps remote agents logged in
|
||||
+ Must put entry for this script in the cron as "* * * * * /path/to/script"
|
||||
|
||||
- VICIDIAL_IN_new_leads_file.pl - script to load lead files into VICIDIAL
|
||||
+ To be used with VICIDIAL
|
||||
|
||||
- AST_DB_optimize.pl - optimizes many heavily-used tables in the asterisk DB
|
||||
+ recommended to put into cron as "2 1 * * * /path/to/script"
|
||||
|
||||
- ADMIN_adjust_GMTnow_on_leads.pl - adjusts the current GMT offset for leads
|
||||
+ recommended to put into cron as "3 1 * * * /path/to/script"
|
||||
+ should be run immediately after loading in new leads
|
||||
+ follows daylight saving rules for several countries including:
|
||||
USA, Canada, Mexico, UK, Ireland, Australia, New Zealand, etc...
|
||||
|
||||
- phone_codes_GMT.txt - file that contains all GMT offsets
|
||||
+ used by ADMIN_adjust_GMTnow_on_leads.pl script
|
||||
+ has over 1,000 entries for various areacode/country/GMT combinations
|
||||
|
||||
- ASTGUICLIENT Web admin pages - administration for ASTGUICLIENT
|
||||
+ must be installed on machine with PHP and MySQL enabled
|
||||
+ must be able to read/write/update to asterisk MySQL database
|
||||
+ welcome.php - just a welcome page
|
||||
+ admin.php - all admin functions for ASTGUICLIENT database
|
||||
+ user_stats.php - look at live user stats
|
||||
+ remote_inbound.php - custom script to grab parked inbound calls remotely
|
||||
+ inbound_popup.php - from remote_inbound page
|
||||
|
||||
- astGUIclient web-client pages - web-only client app in agc folder
|
||||
+ must be installed on machine with PHP and MySQL enabled
|
||||
+ must be able to read/write/update to asterisk MySQL database
|
||||
+ astguiclient.php - the client app
|
||||
+ vicidial.php - the VICIDIAL web-client app
|
||||
+ dbconnect.php - must set to database
|
||||
+ all other scripts are for use by the astguiclient.php script internally
|
||||
|
||||
- VICIDIAL Web admin pages - administration for VICIDIAL campaigns
|
||||
+ must be installed on machine with PHP and MySQL enabled
|
||||
+ must be able to read/write/update to asterisk MySQL database
|
||||
+ welcome.php - just a welcome page
|
||||
+ admin.php - all admin functions for VICIDIAL
|
||||
+ user_stats.php - look at live user stats
|
||||
+ record_conf_1_hour.php - record a VICIDIAL conference for 1 hour
|
||||
+ closer.php - where closers log in to grab calls sent from fronters
|
||||
+ closer_popup.php - from closer page, sends call to closers phone
|
||||
+ closer_dispo.php - from closer_popup, allows dispositioning of call
|
||||
|
||||
|
||||
DESCRIPTION:
|
||||
This program was designed as a GUI client for the Asterisk PBX with Zaptel
|
||||
trunks or IAX or SIP VOIP trunks and SIP/IAX/Zap hard or softphones or devices
|
||||
as extensions, it could be adapted to other functions, but it was designed for
|
||||
Zap/IAX/SIP users. The client programs are web-based and will run on most
|
||||
modern web browsers
|
||||
|
||||
|
||||
TO BE ADDED:
|
||||
See the TODO.txt file for more info on what has been finished in this version as
|
||||
well as what we're thinking of working on. The items marked HIGH priority in the
|
||||
TODO file are the ones we expect to have finished for the next release. If you
|
||||
have suggestions please send them.
|
||||
|
||||
|
||||
NOTES:
|
||||
There are several features/processes that could have been done many different
|
||||
ways in this suite, one for example is call parking. After tinkering with
|
||||
Asterisk/AGI-only call parking where all of the call parking would be achieved
|
||||
with no need for a GUI client, I discovered that my implementation did not
|
||||
function well on all single line phones or the Grandstream phones. I settled on
|
||||
the current method of call-parking by creating a record in a table for a call
|
||||
parked and Redirecting the call to a constant music extension to take any phone
|
||||
button pressing out of the loop. We haven't had any problems since we switched
|
||||
to this method of call parking. Many of the other decisions of how to program
|
||||
features in this suite we arrived at through similar trial-and-error methods. If
|
||||
anyone has suggestions/praises/criticisms I would love to hear them.
|
||||
|
||||
|
||||
KNOWN BUGS:
|
||||
- the astGUIclient web client exposes a nasty memory leak in Internet Explorer,
|
||||
Firefox does not have the same problem so we recommend it instead.
|
||||
- on astGUIclient you cannot record a native bridge VOIP-only conversation
|
||||
unless you go into a conference, you also cannot monitor a native-bridge
|
||||
VOIP-only conversation
|
||||
- Depending on what version of perl you are running(for the Perl scripts only),
|
||||
you may have a conflicting version of the Time::HiRes perl module installed.
|
||||
To fix this, jut go to http://search.cpan.org/~jhi/Time-HiRes-1.82/ and
|
||||
download the version that your error message says it's looking for(HiRes.pm).
|
||||
|
||||
|
||||
VERSION HISTORY:
|
||||
|
||||
0.7 - First public release - 2003-11-18
|
||||
This is the first release of the Asterisk GUI Client code, it is entirely
|
||||
written in Perl with portability and rapid development/testing in mind. The perl
|
||||
code is NOT strict, it was written loose and fast and has been functioning
|
||||
rather well in a production environment of 60 clients for one month now.
|
||||
|
||||
0.8 - Second public release - 2003-12-09
|
||||
- Several bug fixes
|
||||
- New button for monitoring live extensions on Zap channels
|
||||
- Changed the method that the live channels/phone were populated on the
|
||||
listboxes of the client app.
|
||||
- Changed the Asterisk/Manager commands to work correctly with new Asterisk CVS
|
||||
versions requirements.
|
||||
- A new routine was enabled to allow for making sure that the updater is
|
||||
running and bringing up a popup alert window on the client if the updater has
|
||||
not updated in the last 6 seconds. (this also added a new MySQL table)
|
||||
- Changed the updater to run every 450 milliseconds instead of every 333
|
||||
milliseconds.
|
||||
- Updater changed to allow for ringing channels to appear in the live_channels
|
||||
table.
|
||||
|
||||
0.9 - Third public release - 2004-02-05
|
||||
The majority of the work in this release it to make it more stable and fix some
|
||||
pretty bad bugs. We created the Asterisk Central Queue System to address the
|
||||
problem with buffer-overflows in the manager interface of Asterisk causing total
|
||||
system deadlocks. We also completed and touched-up many other features that we
|
||||
didn't finish in previous releases. Here is the list of changes:
|
||||
- Several bug fixes
|
||||
- Inclusion of listing for active SIP/Local channels and ability to hang them up
|
||||
- Completely changed the method of conferencing to be more fluid
|
||||
- Added HELP popup screen
|
||||
- Added intrasystem calling funtionality
|
||||
- Updater changed to allow for SIP/Local channels
|
||||
- Recording for conferences is now able to record all audio in and out
|
||||
- Added ability to send DTMF tones within a conference
|
||||
- Changed alert window for updater being down timeout to 20 seconds
|
||||
- Added an option for using the new Asterisk Central Queue System(ACQS) that
|
||||
reduces the risk of deadlocks that occur with buffer-overflows on remote manager
|
||||
interface connections
|
||||
- Included new script to run at boot time and rotate the logs as well as a
|
||||
keepalive script for the new ACQS
|
||||
- Changed non-AGI server-side scripts to allow for a single config file
|
||||
- Detailed activity logging to text file option added
|
||||
- Activity logging added to all non-AGI server applications
|
||||
|
||||
0.9.2 - Fourth public release - 2004-03-08
|
||||
- several bug fixes for the GUI client and ACQS applications
|
||||
- addition of the new VICIDIAL auto-dialer application and admin web pages
|
||||
- added new script to reset MySQL tables
|
||||
- added new script to kill CONGEST Local/ channels
|
||||
|
||||
0.9.4 - Fifth public release - 2004-03-12
|
||||
- a few bug fixes for the GUI and server apps
|
||||
- addition of callerID popup for the GUI
|
||||
- callerID buttons to launch web pages from callerID popup
|
||||
- addition of voicemail count display to GUI
|
||||
- addition of button to directly connect to voicemail
|
||||
- addition of voicemail counter updater
|
||||
- MySQL table "phones" modified and "inbound" table added(see CONF_MySQL.txt)
|
||||
- new extensions.conf entries need to be added to use callerid and vmail GUI
|
||||
|
||||
1.0.0 - Sixth public release - 2004-03-26
|
||||
- a few bug fixes for the GUI and server apps
|
||||
- Major documentation changes with the addition of the SCRATCH_INSTALL.txt file
|
||||
that goes step-by-step through the entire install process of an asterisk server
|
||||
from blank hardware to astguiclient installation and configuration.
|
||||
- added pretty buttons to the WINphoneAPP
|
||||
- added blind transfer to voicemail, blind transfer to another extension and
|
||||
blind external transfer
|
||||
- new install script created to put server files in default positions and set
|
||||
permissions to execute
|
||||
- new sql file to create all tables by running a script execute command in MySQL
|
||||
|
||||
1.0.1 - Seventh public release - 2004-04-27
|
||||
- a few bug fixes for the GUI and server apps
|
||||
- minor changes to WINphoneAPP
|
||||
- major changes to VICIDIAL client code:
|
||||
+ rearranged VICIDIAL buttons and added some color to DIAL and HANGUP buttons
|
||||
+ allowed for call parking with different park music per-campaign
|
||||
+ allowed for webpage forms launched from GUI with call info
|
||||
+ allowed for different web form web page per-campaign
|
||||
+ allowed agents using VICIDIAL client to send calls with data to a closer
|
||||
+ new call-closer functionality is web-based for flexibility
|
||||
+ added new DTMF dialpad for sending tones quickly
|
||||
- fixed bugs in VICIDIAL web admin pages
|
||||
- fixed bugs in ASTGUICLIENT web admin pages
|
||||
- added code from Paul Concepcion to allow admin pages to work with globals off
|
||||
- added common database connection file for each set of PHP admin pages
|
||||
- made small changes to the MySQL database Schema
|
||||
(NOTE: if upgrading from 1.0.0 run the upgrade_1.0.1.sql script in MySQL)
|
||||
|
||||
1.0.2 - Eighth public release - 2004-06-03
|
||||
- a few bug fixes for the GUI apps
|
||||
- corrected documentation errors in SCRATCH_INSTALL instructions
|
||||
- updated SCRATCH_INSTALL instructions for some newer software
|
||||
- corrected errors in SQL install queries
|
||||
- corrected errors in server installation scripts
|
||||
- WINphoneAPP config option to allow one persistant mysql DB connection
|
||||
- WINphoneAPP config option to allow modification of info refresh interval
|
||||
- VICIDIAL modified to allow for auto-dial of next number
|
||||
(NOTE: if upgrading from 1.0.1 you do not need to update any web pages or
|
||||
server apps, this update is only a client GUI and docs update. Note that the
|
||||
AST_VICI_conf.pl has been updated, so you may need to modify your client
|
||||
configs to enable new features.)
|
||||
|
||||
1.0.3 - Ninth public release - 2004-07-21
|
||||
- a few bug fixes for the GUI apps
|
||||
- changed the recording to show recording ID when recording is started
|
||||
- VICIDIAL overhauled:
|
||||
+ added Time::HiRes module requirement to better control time increments
|
||||
+ changed to dial from a small hopper of pre-ordered leads per campaign
|
||||
+ added cron script to always keep leads in the hopper every minute
|
||||
+ added a counter to see how many times a lead is called
|
||||
+ added ability to dial campaign by how many times lead called
|
||||
+ added some new stats to the admin web pages
|
||||
+ created a limited predictive-dialer that will dial a certain amount of leads
|
||||
per logged in agent and direct the calls that are picked up to the next agent
|
||||
+ ability to transfer the called line and the 3rd party call into a separate
|
||||
meetme room and continue on dialing
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.0.2 you need to update the web pages and all
|
||||
server apps.
|
||||
* if upgrading from 1.0.2 run the upgrade_1.0.3.sql script in MySQL
|
||||
* if upgrading from 1.0.2 you may want to run AST_upgrade_1.0.3.pl to update
|
||||
your called counts of your leads in vicidial_list.
|
||||
* AST_SERVER_conf.pl has been updated, so you may need to modify your server
|
||||
configs to enable new features.
|
||||
* client app names have been changed to astVICIDIAL and astGUIclient
|
||||
|
||||
1.0.4 - Tenth public release - 2004-09-21
|
||||
- several minor bug fixes for GUI apps and server apps
|
||||
- fixed recording bug in astGUIclient that would rarely stop recording
|
||||
- added timezone dialing in VICIDIAL
|
||||
- added new client GUI app for inserting leads into the VICIDIAL leads table
|
||||
- adjusted timings in the VICIDIAL autodialer for better performance
|
||||
- added streamlined manager interface logins to help scripts run more smoothly
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.0.3 you need to update the web pages and all
|
||||
server apps.
|
||||
* if upgrading from 1.0.3 run the upgrade_1.0.4.sql script in MySQL
|
||||
* if upgrading from 1.0.3 you may want to run ADMIN_adjust_GMTnow_on_leads.pl
|
||||
to update the timezone in the vicidial_list table
|
||||
* AST_SERVER_conf.pl on the server has been updated, so you may need to modify
|
||||
your server configs to enable new features(like timezone dialing).
|
||||
* AST_VICI_conf.pl for clients has been updated, so you may need to modify
|
||||
your client configs to enable new features(like timezone dialing).
|
||||
* run this script if you plan on doing timezone restrictions on VICIDIAL:
|
||||
ADMIN_area_code_populate.pl
|
||||
|
||||
1.0.5 - Eleventh public release - 2004-10-28
|
||||
- many minor bug fixes in most of the server and client scripts
|
||||
- fixed multiple login bug on VICIDIAL
|
||||
- fixed the manual-dial/auto-dial switching bug on VICIDIAL
|
||||
- fixed a few time zone calling bugs on VICIDIAL server apps
|
||||
- all apps now allow for IAX trunks to be used in addition to the usual Zap
|
||||
- added more options to install script
|
||||
- changed CLI lead loader to use Net::MySQL instead of DBI
|
||||
- modified several scripts that handle CallerID because of the early October
|
||||
change in the CVS of outputting CID info as two separate fields(CallerID and
|
||||
CallerIDname) instead of everything being sent in CallerID.
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.0.4 you need to update the web pages and all
|
||||
server and client apps.
|
||||
* if upgrading from 1.0.4 run the upgrade_1.0.5.sql script in MySQL
|
||||
* if using a CVS version 2004-10-07 or newer or release 1.0.3 or newer
|
||||
change the line in extensions.conf
|
||||
exten => 8309,2,Monitor(wav,${CALLERIDNUM})
|
||||
change to
|
||||
exten => 8309,2,Monitor(wav,${CALLERIDNAME})
|
||||
|
||||
1.0.6 - Twelfth public release - 2004-12-23
|
||||
- many minor bug fixes in most of the server and client scripts
|
||||
- optimized the ACQS and restructured its keepalive scripts
|
||||
- added hijack line feature to astGUIclient
|
||||
- added inbound call handling for VICIDIAL
|
||||
- added blended in-outbound calling within VICIDIAL
|
||||
- added new closer stats report
|
||||
- updated the SCRATCH_INSTALL instructions and corrected errors
|
||||
- see the TODO.txt file for other items DONE in this release
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.0.5 you need to update the web pages and all
|
||||
server and client apps.
|
||||
* if upgrading from 1.0.5 run the upgrade_1.0.6.sql script in MySQL
|
||||
* if upgrading from 1.0.5 add a campaign "CLOSER" to enable closers and
|
||||
inbound call taking through the VICIDIAL application
|
||||
(see the SCRATCH_INSTALL document SUBPHASE 6.2 for more information)
|
||||
|
||||
1.1.0 - Thirteenth public release - 2005-03-09
|
||||
- several small bug fixes in most of the server and client scripts
|
||||
- added IAX and Zap client/agent compatibility
|
||||
- implemented some major database optimizations
|
||||
- ability to specify MySQL port across all apps
|
||||
- moved almost all client config variables from client files to the Database
|
||||
- created a meetme room validator that will allow faster reassignment of conferences
|
||||
- created a new remote_agent login system for VICIDIAL in/outbound calls
|
||||
- restructuring of AST_update script to cope better with manager output hiccups
|
||||
- added dial timeout field to VICIDIAL to specify the timeout per campaign
|
||||
- added help popups to every page of the admin web pages to explain fields
|
||||
- see the TODO.txt file for other items DONE in this release
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.0.6 you need to update the web pages and all
|
||||
server and client apps.
|
||||
* if upgrading from 1.0.6 run the upgrade_1.1.0.sql script in MySQL
|
||||
* if upgrading from 1.0.6 you will need to configure your client parameters on
|
||||
the admin web page and remove them from the client computers (except for the
|
||||
fields that are in the sample AST_VICI_conf.pl file)
|
||||
* older client apps are not compatible with this version, you must upgrade
|
||||
|
||||
1.1.1 - Fourteenth public release - 2005-06-03
|
||||
- several small bug fixes in most of the server and client scripts
|
||||
- added astGUIclient web-only client
|
||||
- added campaign-custom disposition statuses to VICIDIAL
|
||||
- added campaign-custom CallerID to VICIDIAL
|
||||
- added fronter-display-disable option to VICIDIAL Inbound Groups
|
||||
- added ability to separate vicidial users by groups
|
||||
- added performance stats gathering ability to AST_update script
|
||||
- fixed the send-to-vmail portion of inbound AGI scripts
|
||||
- added simple web-based lead file loader for VICIDIAL
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.0 you need to update the web pages and all
|
||||
server apps.
|
||||
* if upgrading from 1.1.0 run the upgrade_1.1.1.sql script in MySQL
|
||||
|
||||
1.1.2 - Fifteenth public release - 2005-06-06
|
||||
- fixed fatal bug in AST_update.pl script
|
||||
- added instructions for ploticus install to SCRATCH_INSTALL
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.0 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
* if upgrading from 1.1.0 run the upgrade_1.1.1.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.1.sql)
|
||||
|
||||
1.1.3 - Sixteenth public release - 2005-06-10
|
||||
- fixed config bug in AST_VDauto_dial.pl script
|
||||
- added null query result checks to scripts in the agc web-only client
|
||||
- added documentation for the inbound and transfer AGI script variables
|
||||
- added documentation and tested install with MySQL 4.1 tree (4.1.12)
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.0 - 1.1.2 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
* if upgrading from 1.1.0 run the upgrade_1.1.1.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.1.sql)
|
||||
|
||||
1.1.4 - Seventeenth public release - 2005-06-24
|
||||
- fixed new Local channel bugs caused by changes in Asterisk 1.0.8 and CVS
|
||||
- added beta support for SIP trunks
|
||||
- added ability to send VICIDIAL outbound calls to custom AGI script per
|
||||
campaign and included new survey sample AGI script
|
||||
- added better Asterisk shutdown detection to AST_manager_listen script
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.3 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
- if using VICIDIAL download the new client script to all client stations
|
||||
- make sure you populate the new $AST_ver variable in AST_SERVER_conf.pl
|
||||
* if upgrading from 1.1.3 run the upgrade_1.1.4.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.4.sql)
|
||||
|
||||
1.1.5 - Eighteenth public release - 2005-08-12
|
||||
- fixed new Local channel bugs caused by changes in Asterisk 1.0.8 and 1.0.9
|
||||
- moved many server variables to the database, editable through admin.php
|
||||
- added ability to limit number of outbound trunks used by VICIDIAL auto dialer
|
||||
- many small changes and bug fixes to the astguiclient web client
|
||||
- added alpha vicidial web-client (click-to-dial only)
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.4 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
- VICIDIAL perl/TK client is unchanged from 1.1.4
|
||||
- make sure you check the astguiclient admin.php server parameters
|
||||
* if upgrading from 1.1.4 run the upgrade_1.1.5.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.5.sql)
|
||||
|
||||
1.1.6 - Nineteenth public release - 2005-08-29
|
||||
- streamlined many of the server apps and added command-line debug capability
|
||||
- finished the vicidial web-client and tested in prduction
|
||||
- modified server-side scripts to function with Asterisk CVS_HEAD(soon to be 1.2)
|
||||
- modified server performance logging and graphing, added user/system proc %
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.5 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
(make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly)
|
||||
- perl/TK clients are unchanged from 1.1.5
|
||||
- make sure you check the astguiclient admin.php server parameters
|
||||
- make the agi-VDADtransfer.agi changes in extensions.conf (mentioned in SCRATCH_INSTALL doc)
|
||||
* if upgrading from 1.1.5 run the upgrade_1.1.6.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.6.sql)
|
||||
|
||||
1.1.7 - Twentieth public release - 2005-10-05
|
||||
- Added HotKeys key binding for VICIDIAL web-client fast dispositioning
|
||||
- Internationalization(multi-language) of web-clients and admin pages
|
||||
- Added ability in manual VICIDIAL to call alternate lead phone numbers
|
||||
- Added option of pull-down of active campaigns to VICIDIAL web login
|
||||
- Fixed some issues with scripts interacting with Asterisk 1.2
|
||||
- other small changes listed in the TODO.txt file
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.6 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
(make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly)
|
||||
- perl/TK clients have been slightly updated(will be unsupported soon)
|
||||
- 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.
|
||||
* if upgrading from 1.1.6 run the upgrade_1.1.7.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.7.sql)
|
||||
|
||||
1.1.8 - Twenty-First public release - 2005-11-10
|
||||
- Added per-campaign call recording options to VICIDIAL
|
||||
- Added detailed logging for VICIDIAL agent time
|
||||
- Fixed some issues with scripts interacting with Asterisk 1.2
|
||||
- other small changes listed in the TODO.txt file
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.7 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
(make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly)
|
||||
- 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.
|
||||
* if upgrading from 1.1.7 run the upgrade_1.1.8.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.8.sql)
|
||||
|
||||
1.1.9 - Twenty-Second public release - 2006-01-19
|
||||
- Added Load Balancing of Inbound and Outbound calls across multiple Asterisk
|
||||
servers in the same setup
|
||||
- Removed all PHP globals requirements, can now use register_globals=Off in PHP
|
||||
- Add fully translated Greek admin and agc scripts(agc images to come)
|
||||
- Added security elements to admin pages and added record deletion functions
|
||||
- Added a script tab to VICIDIAL to have a variable-populated agent script
|
||||
- Added new Super lead loader with field chooser and CVS/XLS-format capability
|
||||
- Added favorites panel to astguiclient.php that shows off/on hook
|
||||
- Many other small changes listed in the TODO.txt file
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.8 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
(make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly)
|
||||
- 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.
|
||||
* if upgrading from 1.1.8 run the upgrade_1.1.9.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.9.sql)
|
||||
|
||||
1.1.10 - Twenty-Third public release - 2006-03-17
|
||||
- Added capability to work with app_amd(answering machine detection)
|
||||
- Added transfer-conference number and DTMF presets per campaign
|
||||
- Added sphinx ring-time analysis disposition package(beta)
|
||||
- Added scheduled callbacks to VICIDIAL
|
||||
- Added more user-permission options/restrictions
|
||||
- Several small bug fixes for better Asterisk 1.2.4 compatibility
|
||||
- Many other small changes listed in the TODO.txt file
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.9 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
(make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly)
|
||||
- add "exten => h,2,DeadAGI(VD_hangup.agi,${EXTEN})" to extensions.conf
|
||||
- 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.
|
||||
* if upgrading from 1.1.9 run the upgrade_1.1.10.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.10.sql)
|
||||
|
||||
1.1.11 - Twenty-Fourth public release - 2006-04-28
|
||||
- Added Agent-only Scheduled Callbacks
|
||||
- Added Lead Filters for campaigns to use custom SQL to narrow calling scope
|
||||
- Added Agent manual-lead-insertion capability
|
||||
- Fixed PHP variable checking in all PHP scripts to be more compliant
|
||||
- Added more user-permission options/restrictions for both agents and admins
|
||||
- Several small bug fixes for better Asterisk 1.2.6 and SVN compatibility
|
||||
- Many other small changes listed in the TODO.txt file
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.10 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
(make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly)
|
||||
- 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.
|
||||
* if upgrading from 1.1.10 run the upgrade_1.1.11.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.11.sql)
|
||||
|
||||
1.1.12 - Twenty-Fifth public release - 2006-06-22
|
||||
- Security enhancements of PHP scripts to reduce SQL-injection and other threats
|
||||
- Completely redesigned local call time system in VICIDIAL for more flexibility
|
||||
- Added Drop-call and safe-harbor options to campaigns and inbound groups
|
||||
- Added option for allowing wrapup time between calls in vicidial.php
|
||||
- Multi-language translation rewritten for more flexibility and easy of use
|
||||
- Added more user-permission options/restrictions for both agents and admins
|
||||
- Added option of using app_conference instead of meetme engine
|
||||
- Added internal DNC list for Do-Not-Call entries across the system
|
||||
- Added automatic lead recycling to call back Busy calls at definable intervals
|
||||
- Added listID override and timezone lookup to all lead importing scripts
|
||||
- Added easy-prompt-recording AGI and playback: agi-record_prompts.agi
|
||||
- Many other changes and bug fixes listed in the TODO.txt file
|
||||
UPGRADE NOTES:
|
||||
* if upgrading from 1.1.11 you need to:
|
||||
- download the new version from the project website
|
||||
- unzip the zip file into the /home/cron/astguiclient directory
|
||||
- and either:
|
||||
+ copy the web pages and all server apps to their proper locations manually
|
||||
+ or run the install_server_files.pl script to put all items in their
|
||||
default places
|
||||
(make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly)
|
||||
- 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.
|
||||
* if upgrading from 1.1.11 run the upgrade_1.1.12.sql script in MySQL
|
||||
(\. /home/cron/astguiclient/upgrade_1.1.12.sql)
|
||||
* if upgrading from older version you will need to run this query for each
|
||||
campaign in VICIDIAL in MySQL:
|
||||
(INSERT INTO vicidial_campaign_stats (campaign_id) values('campaignname');)
|
||||
@@ -0,0 +1,32 @@
|
||||
This is the basic list of requirements for using astGUIclient. It is highly
|
||||
recommended that you read the SCRATCH_INSTALL doc for more information on
|
||||
installing the package properly.
|
||||
|
||||
Requirements for installing astGUIclient/VICIDIAL on an Asterisk server:
|
||||
- Asterisk 1.0.10 and 1.2.6 recommended but will work with older versions
|
||||
- Zap trunks(T1/E1 or PSTN lines), IAX2 trunks or SIP trunks required
|
||||
- If using VOIP trunks and VICIDIAL auto-dial, you must have trunks registered
|
||||
- You must have a zaptel timer like a PSTN/T1/E1 card or ztdummy
|
||||
or you can use the experimental app_conference module
|
||||
- Client phones can be SIP/IAX/Zap
|
||||
- In extensions.conf you must use the 'o' Dial flag on your outbound extensions
|
||||
- In extensions.conf you must have thee following line in your default context:
|
||||
exten => h,1,DeadAGI(call_log.agi,${EXTEN})
|
||||
- No modification of outgoing callerID (you can set callerID through admin)
|
||||
- In php.ini you must have uploads turned on to use the web lead loader
|
||||
- SoX 12.17.5 or greater must be installed
|
||||
- GNU screen 3.9.15 or greater must be installed
|
||||
- ntp must be installed and syncd to same time source as any other servers
|
||||
- Perl5 with several CPAN modules(Time::HiRes, Net::MySQL, Net::Telnet, etc)
|
||||
- Access to MySQL server, must be version 4.0.X or higher
|
||||
- Access to Apache/PHP webserver
|
||||
- Several entries in the cron for interval-running scripts and keepalives
|
||||
|
||||
Requirements for using the astGUIclient/VICIDIAL web-client versions
|
||||
- Recommended 500MHz speed or faster and 64MB RAM or more
|
||||
- Any Unix with Xwindows, Mac OS9/X or Win98/2k/XP operating system
|
||||
- Recommended use Firefox for all OSs (will run under IE5.0 or greater as well)
|
||||
NOTE: (Internet Explorer has memory leaks that will cause it to freeze +3hrs)
|
||||
Will also run on Opera 8.5+, Mozilla 1.7+ and Netscape 8+
|
||||
- ntp or sntp time syncing to same source as server recommended
|
||||
- Proper configuration settings for each phone/computer in the phones DB table
|
||||
File diff suppressed because it is too large
Load Diff
+116
@@ -0,0 +1,116 @@
|
||||
+------------------------------------------------------------------------------+
|
||||
| Asterisk GUI client - TODO v.2.0.1 |
|
||||
| |
|
||||
| TODO file is a list of what is new from previous version as well a list of |
|
||||
| features that are planned to be completed for future releases. HIGH priority |
|
||||
| items are usually going to be completed for the next release. This file is |
|
||||
| kept updated on the project website by the developers and does not |
|
||||
| necessarily reflect the status of features for the last release. If you are |
|
||||
| reading this file from the release package, then it is accurate for the |
|
||||
| version your downloaded. |
|
||||
+------------------------------------------------------------------------------+
|
||||
|
||||
- HIGH add option to disable detailed logging for VICIDIAL and astGUIclient server apps.
|
||||
|
||||
- HIGH add new ALLFORCE to recording method for campaigns. will force recording of all calls and disable the button for agents no matter their vicidial_users setting.
|
||||
|
||||
- HIGH add a basic predictive/adaptive algorithm to VICIDIAL to automatically speed-up and slow-down dialing by altering the dial_level at regular intervals. Would need more settings in the vicidial_campaigns table for adaptive like maximum lines per agent, dropped call ratio, dropped call rule to guide the predictive app. Would also need to change dial_level to be a DOUBLE or VARCHAR field to allow for different fractional increments. The admin.php page would have to be altered to ignore auto_dial_level changes when adaptive dialing is activated. The minimum dial_level would be set to '1' for adaptive dialing
|
||||
auto_dial_level VARCHAR(6), # allow for just about anything. precision decimal too
|
||||
adaptive_dial_level ENUM('Y','N'), # turns on adaptive script and prevents dial_level admin changes
|
||||
adaptive_maximum_level VARCHAR(6), # sets highest dial_level possible by adaptive app
|
||||
adaptive_dropped_percentage SMALLINT(3), # percentage of accaptable dropped calls
|
||||
adaptive_dropped_rule ENUM('HARD_LIMIT','TAPERED','AVERAGE'), # method for adhearing to % limit
|
||||
|
||||
- HIGH room manager documentation - manual. Probably a free 2 chapter black and white manual and a full color print download available for sale.
|
||||
|
||||
- HIGH fix lead recycling so that it will allow recycling of non-selectable leads
|
||||
|
||||
- HIGH change minimum phone_number length in leadloader to 7 digits and note in documentation that country code is needed in phone_code field fro proper GMT coding.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- MEDIUM add checkbox options for campaigns(Art Tarsha new feature) needs to be modified to be multi-campaign compliant: http://www.eflo.net/files/customer_checkboxes.zip
|
||||
|
||||
- MEDIUM Add auto dial next number option to manual dialing in vicidial.php. With preview enabled this would allow for a preview timeout and would auto dial if the STOP DIALING checkbox was not checked on the dispo screen.
|
||||
|
||||
- MEDIUM Try converting the call_log and/or VD_hangup scripts to FastAGI and see what the load difference would be.
|
||||
|
||||
- MEDIUM Add buttons and selector box to script modification page to allow for insertion of field codes without having to manually type them.
|
||||
|
||||
- MEDIUM Rewrite the inbound and closer call handling to allow for music on hold per in-group and a single queue app instead of multiple AGIs each running their own queries. Currently with large queues and long wait times a lot of load is generated with calls on hold in the queue. Switching to a central queue application would reduce the load and speed things up.
|
||||
|
||||
- MEDIUM Add optional field to phones table to allow for different recording file names in astguiclient.php, Similar to vicidial options.
|
||||
|
||||
- MEDIUM make 3rd party consultative transfers work for Local extensions, also for internal/local transfer to vicidial closers if possible.
|
||||
|
||||
- MEDIUM Attempt to make some kind of holiday schedule function for national and state holidays that would be able block out states on specific no-call days. This is rather difficult because of the way some holidays are scheduled, I.E. Easter.
|
||||
|
||||
- MEDIUM Add ChanSpy functionality to listen-in on VOIP channels in astguiclient.php. Maybe not since Chanspy can cause problems like crashing the Asterisk server. Need to do more testing.
|
||||
|
||||
- MEDIUM Create a script to allow vicidial agents to dial into an AGI script that would ask for user/pass and then place them onto their vicidial.php-defined sessionid.
|
||||
|
||||
- MEDIUM add link in astguiclient to login and logout from Asterisk Queues
|
||||
|
||||
- MEDIUM add script to get "show queues" information and place in a DB table to be used to see who is in an Asterisk Queue. This would mostly be used to give a LOGGED-IN and LOGGED-OUT display for astguiclient.php and possibly add an Asterisk Queue display tab or popup for astguiclient.php. Info would be updated one to four times a minute so it would not be real-time.
|
||||
|
||||
- MEDIUM add new tab to astguiclient.php script to show status of Asterisk queues
|
||||
|
||||
- MEDIUM Convert all scripts to DBD::MySQL perl library in place of Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs on the machine. One problem is that you need the mysqlclientlibs installed on every
|
||||
Asterisk server and the default installation of only the MySQL client libs will result in having to do a force install of cpan DBD::MySQL(because it tries to test with the local DB). Not to mention all of the code changes that would need to be made. There are also MySQL client licensing issues for certain installation circumstances(Net::MySQL doesn't use mysql client libs so it doesn't have those issues) but I really don't want to get into that discussion. We will start by converting at least one perl script for each release until we have converted then all, then we will no longer support Net::MySQL. This will probably take some time, but the scripts that are added to the DBI-scripts folder will be drop-in replacements for the Net versions that are installed by default.
|
||||
|
||||
- MEDIUM Create a visual SQL builder for the filter SQL section.
|
||||
|
||||
- MEDIUM add ability to call CLOSER campaigns "BLEND" or "INBND". would require many script changes from server side to client side, not set in stone yet, but considering it.
|
||||
|
||||
- MEDIUM add some kind of intelligent call-routing to astguiclient so that you can auto-forward calls to another extension from within astguiclient.php instead of using your phone or something like Queues which can mess up other things. This will need it's own table in the DB and probably some extensions.conf entries and an AGI script or two to do the actual call routing.
|
||||
|
||||
- MEDIUM add skills-based routing to give the ability for a manager to set an agent at a higher or lower level per campaign or in-group. Defaults to level 0 possible values will be -9 through 9
|
||||
|
||||
- MEDIUM add all possible fields to the SCRIPT tab to auto-populate like in-group for inbound/closer, campaign and others
|
||||
|
||||
- MEDIUM add ability to scrub leads being imported in the lead loader against the vicidial_dnc list as they are being imported.
|
||||
|
||||
- MEDIUM add ability upon vicidial.php login to take a number to dial as a password and a reserved word(something like MANUAL in all caps) that would allow the use of an EXTERNAL phone without setting it up as an asterisk.phones entry.
|
||||
|
||||
- MEDIUM rebuild the vdremote.php remote agents pages to use AJAX(PHP/Javascript/XMLHTTPRequest) for real-time popups of call data.
|
||||
|
||||
- MEDIUM allow custom audio welcome message for vicidial campaigns. This might be an app_conference only feature.
|
||||
|
||||
- MEDIUM create a cron script and method for creating new extensions in the sip.conf/iax.conf files as well as dialplan entries(extensions.conf). This will require more fields in the phones table to account for variables available to the protocols. The conf files would need to be altered before to have a flag for the beginning and ending of the auto-generated content. This would also necessitate a TEXT area for the extensions.conf content(that would be default generated but could be manually altered). The cron script would be run every 5 minutes or so to see if any phones had altered content, and if so generate new auto-content and do a 'reload' on the asterisk server to activate the new content.
|
||||
|
||||
- MEDIUM add a count-up-timer to active channels on the astguiclient MAIN screen(this may be an Asterisk 1.2+ required feature).
|
||||
|
||||
- MEDIUM Change VICIDIAL autodialing configuration to allow dialing of alt_phone numbers as well as address3 phone numbers after dialing main number. It is already possible to dial an alternate phone number manually as an agent once the customer info is up on the screen, but this would be doing it in an automated fashion. Best way for this may be to reconfigure the called_since_last_reset field to allow N, 1, 2, Y. This would require reprogramming several server scripts and php pages.
|
||||
|
||||
- MEDIUM Try a few of the frequently launched scripts as C programs(call_log.agi and the AST_send child scripts) to see if they reduce system load and/or speed up those processes.
|
||||
|
||||
- MEDIUM Change the autodialing system around so that there can be dialing-out-only servers and agent-only servers in a multi-server load-balanced environment. This is suprisingly simple to do, but would require all servers to be controlled by a single instance of AST_VDauto_dial.pl running on one machine. Also, in the case of IAX2 channel native transfers, we would need to change the AGI scripts that route the calls and create a new script to alter the vicidial_auto_calls records to the agent server call_server_ip and channel name because the call would disappear from the originating server causing "customer hungup" warnings.
|
||||
|
||||
- MEDIUM Add method of picking up astGUIclient parked calls by only dialing digits on a regular extension without using the astGUIclient.
|
||||
|
||||
- MEDIUM admin/installer/maintainer documentation as well as troubleshooting guide
|
||||
|
||||
- MEDIUM Run some lab-style load tests on VICIDIAL and show recommended configurations as well as "highest recommended" settings
|
||||
|
||||
|
||||
|
||||
- LOW add the ability to run separate companies on the same VICIDIAL server. This will not be easy. All admin tasks as well asl user tasks and stats will need to have divisions so that nothing is accessible from the other groups. Also, the resources of the system(outbound trunks, hard drive space, other shared elements, etc...) so that one group cannot hog the shared resources of the the server.
|
||||
|
||||
- LOW Making the server install script a customizable with installer prompts
|
||||
|
||||
- LOW Create guidelines and suggestions for deactivating unused modules from Asterisk for astGUIclient users
|
||||
|
||||
- LOW Revisit possibility of using something other than CallerIDname to tag a call process, probably a long shot without altering the Asterisk code, but that may be an option.
|
||||
|
||||
- LOW add new method for capping the maximum number of attempts to try leads of a specific status. This would be set up like HotKeys are, per campaign where you would select the status and define the maximum number of attempts for that type of status for that campaign and the VDhopper wouldn't allow that kind of lead into the hopper if it was over the max value of call_count.(having filters reduced the priority of this item since you can do a lot of custom coding to duplicate this feature in vicidial_lead_filters)
|
||||
|
||||
- LOW add a new script for using SoX to analyze the first 5 seconds of a ring-time recording within 15 minutes of the NA call ending and detecting if it has the SIT tone at the beginning of it so the lead can be taken out of the list as a DC. adding PRI hangup codes has reduced priority for this item.
|
||||
|
||||
- ON-HOLD We are also looking at creating an inbound-agent-specific GUI that would ideally work with Asterisk queues but that is not very likely given the current lack of events being given off by queues(this is much less likely to be built now that VICIDIAL takes inbound calls)
|
||||
|
||||
- ON-HOLD add a way of checking that there is no more than 1 channel in the meetme room with the agent before another call to that agent. Currently this happens less than 0.1% of the time(mostly on heavily loaded systems), but another check might change that to zero.
|
||||
|
||||
- ON-HOLD Localization of each server based on Intl. dial codes and/or country codes. very difficult to do this based on dial-codes, if used in other country, best to not use the adjust_gmt script.
|
||||
|
||||
@@ -0,0 +1,208 @@
|
||||
+------------------------------------------------------------------------------+
|
||||
| Asterisk GUI client - TODO v.1.1.11 |
|
||||
| |
|
||||
| TODO file is a list of what is new from previous version as well a list of |
|
||||
| features that are planned to be completed for future releases. HIGH priority |
|
||||
| items are usually going to be completed for the next release. This file is |
|
||||
| kept updated on the project website by the developers and does not |
|
||||
| necessarily reflect the status of features for the last release. If you are |
|
||||
| reading this file from the release package, then it is accurate for the |
|
||||
| version your downloaded. |
|
||||
+------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
- DONE Add ability in AST_CRON_mix_recordings_BASIC.pl and AST_CRON_mix_recordings.pl to mix gsm in and out audio files
|
||||
|
||||
- DONE Added deletion from hopper of inactive list leads. AST_VDhopper.pl
|
||||
|
||||
- DONE Create AGI script for customer entering PIN number. very limited use and difficult to setup, internal project. agi-VDADlisten_DTMF.agi
|
||||
|
||||
- DONE Change the phone_codes_GMT.txt file to reflect Indiana's move to adopting Daylight Savings Time
|
||||
|
||||
- DONE Add to update.sql script changes in Indiana's timezone data in database, and send out announcement to change production systems as of 2006-04-02
|
||||
|
||||
- DONE Alter AST_manager_listen.pl to work with new SVN manager output that includes a Timestamp field
|
||||
|
||||
- DONE change wording of vicidial.php disposition screen bottom phrases to be more clear
|
||||
|
||||
- DONE Alter list_id to be BIGINT(14) to allow for timestamped list_ids
|
||||
|
||||
- DONE Add notes to LOAD_BALANCING.txt file about which cron scripts only need to be run on one server.
|
||||
|
||||
- DONE Add a vicidial.php variable at the top of the script to allow for the change in behaviour of pausing after dispositioning of a call, something like $dispo_check_all_pause =1; If set to 1 then it will stay the way it is and pause after every call if checked once. if set to 0 (which will be the default) it will only pause once and uncheck the box for subsequent calls.
|
||||
|
||||
- DONE Add a WEB FORM submit link to the dispo screen that would dispo the call as well as open a web form link with the customer info and status dispod when clicked.
|
||||
|
||||
- DONE Add notice to a call that was CALLBK on the agent screen next time it is called so agent knows it was a scheduled callback. Positioned to the right of the customer info header.
|
||||
|
||||
- DONE Add link to the dispo screen to allow the agent to try to hangup the call again if it did not hangup. Only can click it once per call then it disappears.
|
||||
|
||||
- DONE Add link to "noone is in your session" window to call agent back and update status to PAUSE.
|
||||
|
||||
- DONE Add a Hangup Customer link on the "Customer has hungup" popup to reduce the steps to dispo. options would now be "back to Main" and "Disposition and finish call"
|
||||
|
||||
- DONE Add display for agent status and number of calls being dialed to vicidial.php. $agentcallsstatus set to 1 activates the display below the SENDDTMF button, $campagentstatctmax sets the number of seconds delay between updates of that information
|
||||
|
||||
- DONE Fixed bug in AST_update.pl test section that would crash script when ** came through as extension on Asterisk 1.2.6 in certain circumstances.
|
||||
|
||||
- DONE Added status name to list modification screen in admin.php. Also consolidated called and not-called into one row for each status. Added status name to campaign dial_statuses select lists
|
||||
|
||||
- DONE Second stage Scheduled-Callback functionality: add agent-specific callback status with date and time definition to vicidial.php. This second stage will allow a callback to be restricted to the specific agent that set the callback. There will need to be some other provisions in place on the vicidial.php to handle what are basically manual dial calls happening on an auto-dial session. Also, a counter on the vicidial.php page to show how many active or live callbacks the agent has and an interface for the agent to see and call back which callbacks are ready to be called back.
|
||||
|
||||
- DONE Add the ability to manually dial a number from within vicidial.php. There will be an option to add the number as a new lead to the campaign the agent is logged into, or just call the number and go back to the main screen(the call would then need to be dropped from the CALLS IN THIS SESSION link at the bottom). This feature will only be enabled when the agent is paused and not on a call.
|
||||
|
||||
- DONE Fix "waiting for ring" bug with manual dial override in vicidial.php.
|
||||
|
||||
- DONE Fixed manual dial lead preview bug. caused by undefined function variable created for manual dial override, just defined the variable in all function calls to fix it.
|
||||
|
||||
- DONE Add capability to allow manual dialing of an alt_phone or address3 phone number in vicidial.php in auto_dial mode. This required a lot of changes to the code where dial_level>0 for things to work correctly, but most of the changes were already done for the agent-only callbacks feature so it wasn't that difficult.
|
||||
|
||||
- DONE Change the links at the top of the vicidial admin.php page to be color-coded sectional links with sub-link row below the main sections in the same color. This will make navigating the admin.php page easier. suggested by Mike Fedyk.
|
||||
|
||||
- DONE Added script name to campaign and in-group modification screens in admin.php.
|
||||
|
||||
- DONE add a field to vicidial_campaigns for alt_number_dialing. This would override the vicidial.php hard-coded variable and would allow it per campaign. The default will be to DISABLE alt_number_dialing.
|
||||
|
||||
- DONE add a permission field to vicidial_campaigns for scheduled_callbacks to allow an agent to dispo a lead as a callback and choose a callback date/time. The default will be to DISABLE scheduled callbacks. Both this and the vicidial_users field must be enabled for and agent to leave scheduled callbacks.
|
||||
|
||||
- DONE add a permission field to vicidial_users for scheduled_callbacks to allow an agent to dispo a lead as a callback and choose a callback date/time. The default will be to ENABLE scheduled callbacks.
|
||||
|
||||
- DONE add a permission field to vicidial_users for agentonly_callbacks to allow an agent to set a callback as USERONLY as well as call that lead back. The default will be to DISABLE USERONLY callbacks.
|
||||
|
||||
- DONE add a permission field to vicidial_users for agentcall_manual manual dialing within vicidial.php. The default will be to DISABLE manual dialing.
|
||||
|
||||
- DONE add a permission field to vicidial_users to restrict recording in vicidial.php per user. Default would be to ENABLE recording
|
||||
|
||||
- DONE add a permission field to vicidial_users to restrict transfers in vicidial.php per user. Default would be to ENABLE transfers
|
||||
|
||||
- DONE Add a FILTERS section to the vicidial admin screen and a FILTERS feature that would operate a lot like how the lead filters work in the GnuDialer project. It would be a way of defining SQL subsets on leads that the campaign would be dialing. You would create new filters in the ADD NEW FILTER section and a vicidial_campaign can only have one active FILTER at any one time. The Filter modification page would have something like a SQL builder that would let you select a parameter field(like called_count, state, postal_code, etc...) and then a value set, or you could directly edit the SQL it generates. This feature could make it rather easy to mess up dialing for a campaign since it lets managers directly edit the SQL statement that is used to put leads into the hopper. The SQL would only be SELECT based and would not effect the order that the leads are selected in. would require a new table(vicidial_filters) as well as a new field in vicidial_campaigns(filter_id).
|
||||
create table vicidial_filters (
|
||||
filter_id VARCHAR(10),
|
||||
filter_name VARCHAR(30),
|
||||
filter_comments VARCHAR(255),
|
||||
filter_sqlTEXT);
|
||||
|
||||
- DONE Add auto-hopper-insertion to triggered ANYONE callbacks. This will need to check on campaign and list status before insertion. This is an option at the top of the script that can be disabled if you do not want this functionality: insert_auto_CB_to_hopper
|
||||
|
||||
- DONE For ANYONE callbacks, alter vdc_db_query.php script to update the vicidial_callback record to INACTIVE after it has been sent to an agent.
|
||||
|
||||
- DONE Need to prevent launching of a manual dial call or callback when in alt-dial-mode before finishing lead.
|
||||
|
||||
- DONE For USERONLY callbacks there will need to be an admin interface change necessary to be able to override this and a method to change a USERONLY callback to ANYONE. Allow the other-way-around as well.
|
||||
|
||||
- DONE change PHP variable checking and definitions at the top of php scripts to isset/elseif for all php scripts.
|
||||
|
||||
- DONE Fix alt_phone_dial disabled bug (no dispo when campaign alt_dial disabled and calling a callback or manual dial)
|
||||
|
||||
- DONE Fix default park hold exten 8303 to 8301 and added 8303 to SCRATCH_INSTALL.
|
||||
|
||||
- DONE end-user agent documentation - manual. Probably a free text-only manual and a full color print book available for sale as PDF and Hardcopy. Available at http://www.eflo.net/
|
||||
|
||||
- DONE Add "alter agent interface options" as option to vicidial_users table for admin.php permissions
|
||||
|
||||
- DONE separate agent interface options from admin options in the vicidial_users modification portion of admin.php
|
||||
|
||||
- DONE Add a closer blended default field to vicidial_users to allow setting the blended checkbox as checked upon CLOSER campaign login for a specific agent.
|
||||
|
||||
- DONE Fix phone search bug in astguiclient/admin.php.
|
||||
|
||||
- DONE Fix AST_VDauto_dial issue that causes continuous calls to be placed in blended campaigns if the closer campaign name didn't begin with CL.
|
||||
|
||||
- DONE Fix vdc_db_query issue with manager override of in-group choices for CLOSER campaign Agents
|
||||
|
||||
- DONE Fix VDAD inbound scripts to use status of "INBND" for new vicidial_list entries instead of "INBOUND" which is not compliant with the database schema.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- MEDIUM Add wrapup_seconds and wrapup_message fields to vicidial_campaigns along with a function to force a minimum wrapup time into vicidial.php after an Agent hangs up a call. The timer would start when the agent clicks on the HANGUP CUSTOMER button and if the agent dispositions the call before the wrapup time is up then they would see a screen blanking out the vicidial screen that would display the wrapup message until the timer ran out. If the wrapup timer runs out before the agent is finished dispositioning a call, nothing would happen, so the agent would not be able to move on to the next call until they selected a disposition.
|
||||
|
||||
- MEDIUM Add internal DNC list of phone numbers(vicidial_dnc table) that would be scrubbed against by the AST_VDhopper.pl script while putting leads into the hopper to be dialed and it would kick the internal DNC matches out with a special status as DNCL(Do-Not-Call-Load) so they would be in the system but unable to be dialed. Would need to add a mechanism to add a lead to this list upon agent-dispo of a call as DNC within vicidial.php. Would need to create a new admin page section to manually add leads to DNC list. Also, would add a parameter to vicidial_campaigns(dnc_list_enabled ENUM('Y','N')) where a campaign could be exempted from the system's DNC list restrictions(would be active by default 'Y').
|
||||
|
||||
- MEDIUM add a basic predictive/adaptive algorithm to VICIDIAL to automatically speed-up and slow-down dialing by altering the dial_level at regular intervals. Would need more settings in the vicidial_campaigns table for adaptive like maximum lines per agent, dropped call ratio, dropped call rule to guide the predictive app. Would also need to change dial_level to be a DOUBLE or VARCHAR field to allow for different fractional increments. The admin.php page would have to be altered to ignore auto_dial_level changes when adaptive dialing is activated. The minimum dial_level would be set to '1' for adaptive dialing
|
||||
auto_dial_level VARCHAR(6), # allow for just about anything. precision decimal too
|
||||
adaptive_dial_level ENUM('Y','N'), # turns on adaptive script and prevents dial_level admin changes
|
||||
adaptive_maximum_level VARCHAR(6), # sets highest dial_level possible by adaptive app
|
||||
adaptive_dropped_percentage SMALLINT(3), # percentage of accaptable dropped calls
|
||||
adaptive_dropped_rule ENUM('HARD_LIMIT','TAPERED','AVERAGE'), # method for adhearing to % limit
|
||||
|
||||
- MEDIUM Add optional set of scripts for PRI system usage with VICIDIAL to automatically grab Busy and disconnect information from PRI call termincation codes and use those for NA dispositions. The problem with these is that they are not 100% accurate.
|
||||
|
||||
- MEDIUM Add some sort of method to be able to auto-insert Busy/Ring-no-answer/other-NA calls back into the hopper after a certain timeout. Not sure on a method or formula yet.
|
||||
|
||||
- MEDIUM Add optional field to phones table to allow for different recording file names in astguiclient.php, Similar to vicidial options.
|
||||
|
||||
- MEDIUM make 3rd party consultative transfers work for Local extensions, also for internal/local transfer to closers if possible.
|
||||
|
||||
- MEDIUM Add ChanSpy functionality to listen-in on VOIP channels in astguiclient.php. Maybe not since Chanspy can cause problems like crashing the Asterisk server.
|
||||
|
||||
- MEDIUM Create a script to allow vicidial agents to dial into an AGI script that would ask for user/pass and then pass them onto their vicidial.php-defined sessionid.
|
||||
|
||||
- MEDIUM add link in astguiclient to login and logout from Asterisk Queues
|
||||
|
||||
- MEDIUM add script to get "show queues" information and place in a DB table to be used to see who is in an Asterisk Queue. This would mostly be used to give a LOGGED-IN and LOGGED-OUT display for astguiclient.php and possibly add an Asterisk Queue display tab or popup for astguiclient.php. Info would be updated one to four times a minute so it would not be real-time.
|
||||
|
||||
- MEDIUM add new tab to astguiclient.php script to show status of Asterisk queues
|
||||
|
||||
- MEDIUM Convert scripts to DBD::MySQL perl library in place of Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs on the machine. One problem is that you need the mysqlclientlibs installed on every
|
||||
Asterisk server and the default installation of only the MySQL client libs will result in having to do a force install of cpan DBD::MySQL(because it tries to test with the local DB). Not to mention all of the code changes that would need to be made. There are also MySQL client licensing issues for certain installation circumstances(Net::MySQL doesn't use mysql client libs so it doesn't have those issues) but I really don't want to get into that discussion.
|
||||
|
||||
- MEDIUM add ability to call CLOSER campaigns "BLEND" or "INBND". would require many script changes from server side to client side, not set in stone yet, but considering it.
|
||||
|
||||
- MEDIUM add new method for capping the maximum number of attempts to try leads of a specific status. This would be set up like HotKeys are, per campaign where you would select the status and define the maximum number of attempts for that type of status for that campaign and the VDhopper wouldn't allow that kind of lead into the hopper if it was over the max value of call_count.(having filters reduced the priority of this item since you can do a lot of custom coding to duplicate this feature in vicidial_lead_filters)
|
||||
|
||||
- MEDIUM add some kind of intelligent call-routing to astguiclient so that you can auto-forward calls to another extension from within astguiclient.php instead of using your phone or something like Queues which can mess up other things. This will need it's own table in the DB and probably some extensions.conf entries and an AGI script or two to do the actual call routing.
|
||||
|
||||
- MEDIUM add a new script for using SoX to analyze the first 5 seconds of a ring-time recording within 15 minutes of the NA call ending and detecting if it has the SIT tone at the beginning of it so the lead can be taken out of the list as a DC
|
||||
|
||||
- MEDIUM add skills-based routing to give the ability for a manager to set an agent at a higher or lower level per campaign or in-group. Defaults to level 0 possible values will be -9 through 9
|
||||
|
||||
- MEDIUM add all possible fields to the SCRIPT tab to auto-populate like in-group for inbound/closer, campaign and others
|
||||
|
||||
- MEDIUM add ability to specify list_id in lead loader at time of picking fields
|
||||
|
||||
- MEDIUM add ability upon vicidial.php login to take a number to dial as a password and a reserved word(something like MANUAL in all caps) that would allow the use of an EXTERNAL phone without setting it up as a aasterisk.phones entry.
|
||||
|
||||
- MEDIUM rebuild the vdremote.php remote agents pages to use AJAX(PHP/Javascript/XMLHTTPRequest) for real-time popups of call data.
|
||||
|
||||
- MEDIUM allow custom audio welcome message for vicidial campaigns.
|
||||
|
||||
- MEDIUM change local_call_time to allow for variable time ranges instead of the presets that are available in the current version
|
||||
|
||||
- MEDIUM create a cron script and method for creating new extensions in the sip.conf/iax.conf files as well as dialplan entries(extensions.conf). This will require more fields in the phones table to account for variables available to the protocols. The conf files would need to be altered before to have a flag for the beginning and ending of the auto-generated content. This would also necessitate a TEXT area for the extensions.conf content(that would be default generated but could be manually altered). The cron script would be run every 5 minutes or so to see if any phones had altered content, and if so generate new auto-content and do a 'reload' on the asterisk server to activate the new content.
|
||||
|
||||
- MEDIUM add a count-up-timer to active channels on the astguiclient MAIN screen(this may be an Asterisk 1.2+ required feature).
|
||||
|
||||
- MEDIUM Change VICIDIAL autodialing configuration to allow dialing of alt_phone numbers as well as address3 phone numbers after dialing main number. It is already possible to dial an alternate phone number manually as an agent once the customer info is up on the screen, but this would be doing it in an automated fashion. Best way for this may be to reconfigure the called_since_last_reset field to allow N, 1, 2, Y. This would require reprogramming several server scripts and php pages.
|
||||
|
||||
- MEDIUM Try a few of the frequently launched scripts as C programs(call_log.agi and the AST_send child scripts) to see if they reduce system load and/or speed up those processes.
|
||||
|
||||
- MEDIUM Change the autodialing system around so that there can be dialing-out-only servers and agent-only servers in a multi-server load-balanced environment. This is suprisingly simple to do, but would require all servers to be controlled by a single instance of AST_VDauto_dial.pl running on one machine. Also, in the case of IAX2 channel native transfers, we would need to change the AGI scripts that route the calls and create a new script to alter the vicidial_auto_calls records to the agent server call_server_ip and channel name because the call would disappear from the originating server causing "customer hungup" warnings.
|
||||
|
||||
- MEDIUM Add method of picking up astGUIclient parked calls by only dialing digits on a regular extension without using the astGUIclient.
|
||||
|
||||
- MEDIUM room manager documentation - manual. Probably a free text-only manual and a full color print book available for sale
|
||||
|
||||
- MEDIUM admin/installer/maintainer documentation as well as troubleshooting guide
|
||||
|
||||
- MEDIUM Run some lab-style load tests on VICIDIAL and show recommended configurations as well as "highest recommended" settings
|
||||
|
||||
|
||||
|
||||
- LOW add the ability to run separate companies on the same VICIDIAL server. This will not be easy. All admin tasks as well asl user tasks and stats will need to have divisions so that nothing is accessible from the other groups. Also, the resources of the system(outbound trunks, hard drive space, other shared elements, etc...) so that one group cannot hog the shared resources of the the server.
|
||||
|
||||
- LOW Making the server install script a customizable with installer prompts
|
||||
|
||||
- LOW Create guidelines and suggestions for deactivating unused modules from Asterisk for astGUIclient users
|
||||
|
||||
- LOW Revisit possibility of using something other than CallerIDname to tag a call process, probably a long shot without altering the Asterisk code, but that may be an option.
|
||||
|
||||
- ON-HOLD We are also looking at creating an inbound-agent-specific GUI that would ideally work with Asterisk queues but that is not very likely given the current lack of events being given off by queues(this is much less likely to be built now that VICIDIAL takes inbound calls)
|
||||
|
||||
- ON-HOLD add a way of checking that there is no more than 1 channel in the meetme room with the agent before another call to that agent. Currently this happens less than 0.1% of the time(mostly on heavily loaded systems), but another check might change that to zero.
|
||||
|
||||
- ON-HOLD Localization of each server based on Intl. dial codes and/or country codes. very difficult to do this based on dial-codes, if used in other country, best to not use the adjust_gmt script.
|
||||
@@ -0,0 +1,489 @@
|
||||
+------------------------------------------------------------------------------+
|
||||
| Asterisk GUI client - TODO v.1.1.12 |
|
||||
| |
|
||||
| TODO file is a list of what is new from previous version as well a list of |
|
||||
| features that are planned to be completed for future releases. HIGH priority |
|
||||
| items are usually going to be completed for the next release. This file is |
|
||||
| kept updated on the project website by the developers and does not |
|
||||
| necessarily reflect the status of features for the last release. If you are |
|
||||
| reading this file from the release package, then it is accurate for the |
|
||||
| version your downloaded. |
|
||||
+------------------------------------------------------------------------------+
|
||||
|
||||
- DONE Fix several errors in the install script. moving -R to before
|
||||
the chmod rwx settings. changing call_park_CID to park_CID.
|
||||
|
||||
- DONE Added option to manual dialing to allow lookup of existing
|
||||
vicidial_list lead by phone number. If found, would not insert a new lead.
|
||||
|
||||
- DONE Add drop_call_seconds(TINYINT), safe_harbor_message(Y/N) and
|
||||
safe_harbor_exten(VARCHAR) to the vicidial_campaigns table to allow for the
|
||||
playing of the safe harbor message to outbound calls two seconds after customer
|
||||
completes greeting(average of 5 seconds from call pickup[definable by the
|
||||
safe_harbor_seconds variable]), also needs to be added to the
|
||||
vicidial/admin.php.
|
||||
|
||||
- DONE Modify all of the outbound AGI scripts to read the
|
||||
drop_call_seconds and safe_harbor_ fields and use them for DROP timeout as well
|
||||
as playing of the safe_harbor message if selected to do so.
|
||||
|
||||
- DONE Add drop_call_seconds(SMALLINT), drop_message(Y/N) and
|
||||
drop_exten(VARCHAR) to the vicidial_inbound_groups table to allow for the
|
||||
playing of drop call message to inbound calls a set number of seconds after
|
||||
customer calls in, also needs to be added to the vicidial/admin.php.
|
||||
|
||||
- DONE Modify all of the inbound(and closer) AGI scripts to read the
|
||||
drop_call_seconds and drop_ fields and use them for DROP timeout as well as
|
||||
playing of the drop message if selected to do so.
|
||||
|
||||
- DONE Fix agentonly_callback checkbox not-defined bug in scheduled
|
||||
callbacks screen
|
||||
|
||||
- DONE Fix alert message when transfer/conf is inactive for
|
||||
vicidial_user and they go to disposition a call the warning shows up even if
|
||||
they did not try to transfer/conf.
|
||||
|
||||
- DONE Fix permissions issue in vicidial.php where
|
||||
vicidial_campaigns.auto_dial_level=0 and vicidial_user.manual_dial=0 the manual
|
||||
dial link still shows up.
|
||||
|
||||
- DONE Fix recording filename display when the filename is longer than
|
||||
the span supports. chop off the last few characters to make it fit should be
|
||||
acceptable. If over 25 characters, it will chop off the end to 22 characters and
|
||||
place ... at the end of the display filename. This does not effect the actualy
|
||||
recording filename.
|
||||
|
||||
- DONE Added AST_timeonVDADall_SIPmonitor.php from Angelito Manansala
|
||||
that allows SIP listening of sessions through click on the campaign timeonVDAD
|
||||
script. Added link from server_stats.php page as well.
|
||||
|
||||
- DONE Add permissions to vicidial admin.php for admin interfaces to
|
||||
restrict going into the call times and deleting the call times records:
|
||||
|
||||
- DONE Add validation to only allow one state_call_times record per
|
||||
state per call_times record
|
||||
|
||||
- DONE Add method for disabling the showing of the
|
||||
leads-able-to-be-dialed in the campaign screen of vicidial/admin.php. This will
|
||||
help to reduce load time of the page and reduce load on the database for systems
|
||||
with very large vicidial_list tables(several million records or more). This will
|
||||
mean adding another field to the vicidial_campaigns table. Default is to display
|
||||
the count.
|
||||
|
||||
- DONE Add a popup link that would show the dialable leads count from
|
||||
the campaigns screen if the dialable leads count has been hidden.
|
||||
|
||||
- DONE Add link or form that would show the results and query of a
|
||||
filter in the filter modification page without making it the active filter.
|
||||
|
||||
- DONE Add state to the vicidial_hopper for compatibility with the new
|
||||
local_call_times functions.
|
||||
|
||||
- DONE Change local_call_time to allow for variable time ranges instead
|
||||
of the presets that are available in the current version. Allow definitions by
|
||||
days of the week as well as by state[state will be defined in another table and
|
||||
referenced in a many-to-many relationship through the ct_state_call_times field
|
||||
which will be pipe-delimited with a list of state_call_time_ids]. There would be
|
||||
a default time scheme for all calls not covered by state. This will require
|
||||
another new table and a new section under the vicidial/admin.php page.
|
||||
|
||||
- DONE For the call_times and state_call_times include some presets for
|
||||
records including several state restrictions on dialing hours and days in the
|
||||
United States(USA).
|
||||
|
||||
- DONE Fixed alt_number_dialing form element in admin.php campaign
|
||||
screen
|
||||
|
||||
- DONE Add wrapup_seconds and wrapup_message fields to
|
||||
vicidial_campaigns along with a function to force a minimum wrapup time into
|
||||
vicidial.php after an Agent hangs up a call. The timer would start when the
|
||||
agent clicks on the HANGUP CUSTOMER button and if the agent dispositions the
|
||||
call before the wrapup time is up then they would see a screen blanking out the
|
||||
vicidial screen that would display the wrapup message until the timer ran out.
|
||||
If the wrapup timer runs out before the agent is finished dispositioning a call,
|
||||
nothing would happen, so the agent would not be able to move on to the next call
|
||||
until they selected a disposition. Wrapup time would not be in effect if the
|
||||
Agent uses HotKeys.
|
||||
|
||||
- DONE Change all vicidial stats and reports scripts to use UTF-8
|
||||
instead of latin-english for multi-language support
|
||||
|
||||
- DONE Fix admin pages SQL errors(vicidial campaign when no active
|
||||
lists present and astguiclient phone searches)
|
||||
|
||||
- DONE Rewrite the multi-language translations to use one file per
|
||||
language and to allow translation to be done on a single file at a time.
|
||||
es_language.txt and es_language_admin.txt would be the files used for Spanish.
|
||||
Also, the order of the translated lines in the files would be unimportant
|
||||
because the translation script would order the phrases by character length to
|
||||
ensure that larger phrases that could contain parts of smaller phrases would be
|
||||
translated correctly, this allows for comments to be placed in-line with new
|
||||
sections of phrases for newer versions making it easier to find new un-verified
|
||||
translations sections and submit changes to translations files.
|
||||
|
||||
- DONE Create a table that will keep a current statistics cache for
|
||||
items like drop count and percentages per campaign per day(and for the future:
|
||||
last 1 minute/5 minutes/30 minutes) and dialable leads counts.
|
||||
|
||||
- DONE Add number of leads in hopper, link to admin.php campaign modify
|
||||
screen(and link from admin to this screen) and hopper and leads stats as well as
|
||||
drops and drop percentage to the AST_timeonVDADall page.
|
||||
|
||||
- DONE Convert the AST_VDhopper.pl script to DBD::MySQL perl library in
|
||||
place of Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs
|
||||
on the machine. One problem is that you need the mysqlclientlibs installed on
|
||||
every Asterisk server and the default installation of only the MySQL client libs
|
||||
will result in having to do a force install of cpan DBD::MySQL(because it tries
|
||||
to test with the local DB). Not to mention all of the code changes that would
|
||||
need to be made. There are also MySQL client licensing issues for certain
|
||||
installation circumstances(Net::MySQL doesn't use mysql client libs so it
|
||||
doesn't have those issues) but I really don't want to get into that discussion.
|
||||
The reason for this change is that Net::MySQL is limiting in the capacity of the
|
||||
queries that you can use because of how it's connection to MySQL is used. DBI
|
||||
doesn't have those issues and is much better supported. This is the first script
|
||||
to be converted to DBI, you can find the Net::MySQL version in the main
|
||||
directory and the DBI(DBD::mysql) version in the new DBI-scripts directory.
|
||||
|
||||
- DONE Test and package app_conference for beta usage with VICIDIAL as
|
||||
a meetme replacement. This has many performance benefits including not having to
|
||||
use a zaptel timer. Packaged and released on the project site. Tested in medium
|
||||
to low capacity VICIDIAL server, some random infrequent bugs. In contact with
|
||||
app_conference developers working on stabilizing code. Added instructions to
|
||||
SCRATCH_INSTALL on how to get app_conferenc working with VICIDIAL.
|
||||
|
||||
- DONE Add a link from the campaign-based reports pages to go back to
|
||||
the campaign screen.
|
||||
|
||||
- DONE Create a script to grab the login time stats from
|
||||
vicidial_agent_log and create a day-by-day timesheet log each week
|
||||
AST_agent_week.pl script. Add script to the cron instructions in SCRATCH_INSTALL
|
||||
doc.
|
||||
|
||||
- DONE Fix issues with ast_VDauto_dial script when you have two CLOSER
|
||||
campaigns in Blended mode dialing at the same time. To fix this we need to
|
||||
change many things in how the CLOSER campaigns work. We need to add a new field
|
||||
to the vicidial_auto_calls table to denote whether the call is from inbound or
|
||||
outbound(call_type ENUM('IN','OUT') default 'OUT'). For each CLOSER campaign, a
|
||||
special field needs to be added to vicidial_campaigns for allowable inbound
|
||||
groups. This will change what in-groups an agent logging into the campaign can
|
||||
select from as well as changing how the auto_dial script calculates how many
|
||||
calls to place on CLOSER campaigns in blended mode. the vicidial.php script
|
||||
needs to be changed as well as several changes in the admin.php script. The
|
||||
AST_VDauto_dial.pl script needs to be changed as well as all of the
|
||||
agi-VDAD....closer.agi scripts.
|
||||
|
||||
- DONE Fix active calls stats for multiple CLOSER campaigns in Realtime
|
||||
Campaign screen.
|
||||
|
||||
- DONE Add internal DNC list of phone numbers(vicidial_dnc table) that
|
||||
would be scrubbed against by the AST_VDhopper.pl script while putting leads into
|
||||
the hopper to be dialed and it would kick the internal DNC matches out with a
|
||||
special status as DNCL(Do-Not-Call-Load) so they would be in the system but
|
||||
unable to be dialed. Would need to add a mechanism to add a lead to this list
|
||||
upon agent-dispo of a call as DNC within vicidial.php. Would need to create a
|
||||
new admin page section to manually add leads to DNC list, ADD TO DNC link in the
|
||||
LISTS section. Also, would add a parameter to
|
||||
vicidial_campaigns(dnc_list_enabled ENUM('Y','N')) where a campaign could be
|
||||
exempted from the system's DNC list restrictions if set to N(would not be active
|
||||
by default 'N').
|
||||
|
||||
- DONE Add option for PRI T1 system usage with VICIDIAL outbound to
|
||||
automatically grab Busy and Disconnect information from PRI call termincation
|
||||
codes and use those for NA dispositions. VD_hangup.agi and AST_VDauto_dial.pl
|
||||
modified.
|
||||
|
||||
- DONE Remove gmt time validation of leads from AST_VDauto-dial because
|
||||
AST_VDhopper already removes leads that are outside of the appropriate range of
|
||||
GMT offsets when it is run every minute. Removing this redundancy should speed
|
||||
up the dialing slightly.
|
||||
|
||||
- DONE Fix VD_hangup to work with CLOSER transfer-from-fronter calls,
|
||||
different log contents than from CLOSER inbound call.
|
||||
|
||||
- DONE Add option for disposition-based lead recycling on an automated
|
||||
and timed basis per campaign. It will be some sort of method to be able to
|
||||
auto-insert Busy/Ring-no-answer/other-NA calls back into the hopper after a
|
||||
certain timeout. there will be a minimum of 120 seconds before the lead will be
|
||||
allowed to go back into the hopper and a lead can only go back into the hopper a
|
||||
maximum of 10 times before the list would need to be reset. The
|
||||
vicidial_list.called_since_last_reset field needs to be altered to allow for
|
||||
counting of recycle attempts. All scripts need to be able to keep the state of
|
||||
call_since_last_reset. A new table: vicidial_lead_recycle that will function
|
||||
somewhat like HotKeys on the campaign screen. admin.php and AST_VDhopper.pl will
|
||||
need to be modified.
|
||||
|
||||
- DONE Change ADMIN_area_code_populate.pl script to ignore the header
|
||||
row of the phone codes gmt file DB import
|
||||
|
||||
- DONE Add database GMT lookup to the VICIDIAL_IN_new_leads_file.pl
|
||||
lead loader lead import process.
|
||||
|
||||
- DONE Change ADMIN_adjust_GMTnow_on_leads.pl script to use database
|
||||
instead of flat text file.
|
||||
|
||||
- DONE Fix display issues with LIST MODIFY page on admin.php for
|
||||
statuses because of lead recycling and with GMT offset for positive GMT offsets.
|
||||
|
||||
- DONE Add listID override feature to the VICIDIAL_IN_new_leads_file.pl
|
||||
lead loader lead import process to force all leads being loaded into the same
|
||||
list_id.
|
||||
|
||||
- DONE Add listID override feature to the basic web-based lead loader
|
||||
lead import process to force all leads being loaded into the same list_id.
|
||||
|
||||
- DONE Add database GMT lookup to the basic web-based lead loader lead
|
||||
import process.
|
||||
|
||||
- DONE Add listID override feature to the super web-based lead loader
|
||||
lead import process to force all leads being loaded into the same list_id.
|
||||
|
||||
- DONE Add database GMT lookup to the super web-based lead loader lead
|
||||
import process. This one is more difficult because of the many scripts and
|
||||
sections used to parse and insert leads for the different formats and field
|
||||
orders: listloader_super.pl, listloader.pl, new_listloader_superL.php
|
||||
|
||||
- DONE standardize the query results variable in PHP scripts to $rslt.
|
||||
|
||||
- DONE SECURITY FIX, filter all variables relating to SQL queries in
|
||||
agc scripts(vicidial.php, astguiclient.php, etc...) This is for a SQL injection
|
||||
vulnerability where a malicious user puts SQL fragments into a variable field in
|
||||
order to manipulate or destroy the database.
|
||||
|
||||
- DONE SECURITY FIX, filter all variables relating to SQL queries in
|
||||
admin scripts(vicidial and astguiclient folders, admin.php, etc...)
|
||||
|
||||
- DONE Change the admin_search_lead page to include multiple results.
|
||||
|
||||
- DONE Add an AGI script to record audio for prompts with an 8-digit
|
||||
filename that can be played by dialing the 8 digit filename. 85100001-85199999.
|
||||
The AGI script would announce beginning of recording and to press pound when
|
||||
done recording, then would say thank-you and announce the filename of the
|
||||
recording. The recordings would be saved in GSM format and can be used in any of
|
||||
the fields within VICIDIAL that call for a message exten like the survey script.
|
||||
agi-record_prompts.agi script created.
|
||||
|
||||
- DONE Add link from reports pages back to main reports page.
|
||||
|
||||
- DONE fix MySQL errors on campaign modify and leads modify pages for
|
||||
dialable leads when no active lists for campaign lists.
|
||||
|
||||
- DONE Fix call_log entries for Zap client phones where call
|
||||
information is in different places than if calls are placed from SIP or IAX
|
||||
client phones. call_log and call_logCID AGI scripts.
|
||||
|
||||
- DONE Finish rough German Admin pages translations
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- MEDIUM add option to disable detailed logging for VICIDIAL and
|
||||
astGUIclient server apps.
|
||||
|
||||
- MEDIUM add new ALLFORCE to recording method for campaigns. will force
|
||||
recording of all calls and disable the button for agents no matter their
|
||||
vicidial_users setting.
|
||||
|
||||
- MEDIUM add a basic predictive/adaptive algorithm to VICIDIAL to
|
||||
automatically speed-up and slow-down dialing by altering the dial_level at
|
||||
regular intervals. Would need more settings in the vicidial_campaigns table for
|
||||
adaptive like maximum lines per agent, dropped call ratio, dropped call rule to
|
||||
guide the predictive app. Would also need to change dial_level to be a DOUBLE or
|
||||
VARCHAR field to allow for different fractional increments. The admin.php page
|
||||
would have to be altered to ignore auto_dial_level changes when adaptive dialing
|
||||
is activated. The minimum dial_level would be set to '1' for adaptive dialing
|
||||
auto_dial_level VARCHAR(6), # allow for just about anything.
|
||||
precision decimal too
|
||||
adaptive_dial_level ENUM('Y','N'), # turns on adaptive script and
|
||||
prevents dial_level admin changes
|
||||
adaptive_maximum_level VARCHAR(6), # sets highest dial_level
|
||||
possible by adaptive app
|
||||
adaptive_dropped_percentage SMALLINT(3), # percentage of
|
||||
accaptable dropped calls
|
||||
adaptive_dropped_rule ENUM('HARD_LIMIT','TAPERED','AVERAGE'), # method
|
||||
for adhearing to % limit
|
||||
|
||||
- MEDIUM room manager documentation - manual. Probably a free 2 chapter
|
||||
black and white manual and a full color print download available for sale.
|
||||
|
||||
- MEDIUM Rewrite the inbound and closer call handling to allow for music
|
||||
on hold per in-group and a single queue app instead of multiple AGIs each
|
||||
running their own queries. Currently with large queues and long wait times a lot
|
||||
of load is generated with calls on hold in the queue. Switching to a central
|
||||
queue application would reduce the load and speed things up.
|
||||
|
||||
- MEDIUM Add optional field to phones table to allow for different
|
||||
recording file names in astguiclient.php, Similar to vicidial options.
|
||||
|
||||
- MEDIUM make 3rd party consultative transfers work for Local extensions,
|
||||
also for internal/local transfer to vicidial closers if possible.
|
||||
|
||||
- MEDIUM Attempt to make some kind of holiday schedule function for
|
||||
national and state holidays that would be able block out states on specific
|
||||
no-call days. This is rather difficult because of the way some holidays are
|
||||
scheduled, I.E. Easter.
|
||||
|
||||
- MEDIUM Add ChanSpy functionality to listen-in on VOIP channels in
|
||||
astguiclient.php. Maybe not since Chanspy can cause problems like crashing the
|
||||
Asterisk server. Need to do more testing.
|
||||
|
||||
- MEDIUM Create a script to allow vicidial agents to dial into an AGI
|
||||
script that would ask for user/pass and then place them onto their
|
||||
vicidial.php-defined sessionid.
|
||||
|
||||
- MEDIUM add link in astguiclient to login and logout from Asterisk
|
||||
Queues
|
||||
|
||||
- MEDIUM add script to get "show queues" information and place in a DB
|
||||
table to be used to see who is in an Asterisk Queue. This would mostly be used
|
||||
to give a LOGGED-IN and LOGGED-OUT display for astguiclient.php and possibly add
|
||||
an Asterisk Queue display tab or popup for astguiclient.php. Info would be
|
||||
updated one to four times a minute so it would not be real-time.
|
||||
|
||||
- MEDIUM add new tab to astguiclient.php script to show status of
|
||||
Asterisk queues
|
||||
|
||||
- MEDIUM Convert all scripts to DBD::MySQL perl library in place of
|
||||
Net::MySQL. DBD::MySQL is faster because it uses the MySQL client libs on the
|
||||
machine. One problem is that you need the mysqlclientlibs installed on every
|
||||
Asterisk server and the default installation of only the MySQL client libs will
|
||||
result in having to do a force install of cpan DBD::MySQL(because it tries to
|
||||
test with the local DB). Not to mention all of the code changes that would need
|
||||
to be made. There are also MySQL client licensing issues for certain
|
||||
installation circumstances(Net::MySQL doesn't use mysql client libs so it
|
||||
doesn't have those issues) but I really don't want to get into that discussion.
|
||||
We will start by converting at least one perl script for each release until we
|
||||
have converted then all, then we will no longer support Net::MySQL. This will
|
||||
probably take some time, but the scripts that are added to the DBI-scripts
|
||||
folder will be drop-in replacements for the Net versions that are installed by
|
||||
default.
|
||||
|
||||
- MEDIUM Create a visual SQL builder for the filter SQL section.
|
||||
|
||||
- MEDIUM add ability to call CLOSER campaigns "BLEND" or "INBND". would
|
||||
require many script changes from server side to client side, not set in stone
|
||||
yet, but considering it.
|
||||
|
||||
- MEDIUM add some kind of intelligent call-routing to astguiclient so
|
||||
that you can auto-forward calls to another extension from within
|
||||
astguiclient.php instead of using your phone or something like Queues which can
|
||||
mess up other things. This will need it's own table in the DB and probably some
|
||||
extensions.conf entries and an AGI script or two to do the actual call routing.
|
||||
|
||||
- MEDIUM add skills-based routing to give the ability for a manager to
|
||||
set an agent at a higher or lower level per campaign or in-group. Defaults to
|
||||
level 0 possible values will be -9 through 9
|
||||
|
||||
- MEDIUM add all possible fields to the SCRIPT tab to auto-populate like
|
||||
in-group for inbound/closer, campaign and others
|
||||
|
||||
- MEDIUM add ability to scrub leads being imported in the lead loader
|
||||
against the vicidial_dnc list as they are being imported.
|
||||
|
||||
- MEDIUM add ability upon vicidial.php login to take a number to dial as
|
||||
a password and a reserved word(something like MANUAL in all caps) that would
|
||||
allow the use of an EXTERNAL phone without setting it up as an asterisk.phones
|
||||
entry.
|
||||
|
||||
- MEDIUM rebuild the vdremote.php remote agents pages to use
|
||||
AJAX(PHP/Javascript/XMLHTTPRequest) for real-time popups of call data.
|
||||
|
||||
- MEDIUM allow custom audio welcome message for vicidial campaigns. This
|
||||
might be an app_conference only feature.
|
||||
|
||||
- MEDIUM create a cron script and method for creating new extensions in
|
||||
the sip.conf/iax.conf files as well as dialplan entries(extensions.conf). This
|
||||
will require more fields in the phones table to account for variables available
|
||||
to the protocols. The conf files would need to be altered before to have a flag
|
||||
for the beginning and ending of the auto-generated content. This would also
|
||||
necessitate a TEXT area for the extensions.conf content(that would be default
|
||||
generated but could be manually altered). The cron script would be run every 5
|
||||
minutes or so to see if any phones had altered content, and if so generate new
|
||||
auto-content and do a 'reload' on the asterisk server to activate the new
|
||||
content.
|
||||
|
||||
- MEDIUM add a count-up-timer to active channels on the astguiclient MAIN
|
||||
screen(this may be an Asterisk 1.2+ required feature).
|
||||
|
||||
- MEDIUM Change VICIDIAL autodialing configuration to allow dialing of
|
||||
alt_phone numbers as well as address3 phone numbers after dialing main number.
|
||||
It is already possible to dial an alternate phone number manually as an agent
|
||||
once the customer info is up on the screen, but this would be doing it in an
|
||||
automated fashion. Best way for this may be to reconfigure the
|
||||
called_since_last_reset field to allow N, 1, 2, Y. This would require
|
||||
reprogramming several server scripts and php pages.
|
||||
|
||||
- MEDIUM Try a few of the frequently launched scripts as C
|
||||
programs(call_log.agi and the AST_send child scripts) to see if they reduce
|
||||
system load and/or speed up those processes.
|
||||
|
||||
- MEDIUM Change the autodialing system around so that there can be
|
||||
dialing-out-only servers and agent-only servers in a multi-server load-balanced
|
||||
environment. This is suprisingly simple to do, but would require all servers to
|
||||
be controlled by a single instance of AST_VDauto_dial.pl running on one machine.
|
||||
Also, in the case of IAX2 channel native transfers, we would need to change the
|
||||
AGI scripts that route the calls and create a new script to alter the
|
||||
vicidial_auto_calls records to the agent server call_server_ip and channel name
|
||||
because the call would disappear from the originating server causing "customer
|
||||
hungup" warnings.
|
||||
|
||||
- MEDIUM Add method of picking up astGUIclient parked calls by only
|
||||
dialing digits on a regular extension without using the astGUIclient.
|
||||
|
||||
- MEDIUM admin/installer/maintainer documentation as well as
|
||||
troubleshooting guide
|
||||
|
||||
- MEDIUM Run some lab-style load tests on VICIDIAL and show recommended
|
||||
configurations as well as "highest recommended" settings
|
||||
|
||||
|
||||
|
||||
- LOW add the ability to run separate companies on the same VICIDIAL
|
||||
server. This will not be easy. All admin tasks as well asl user tasks and stats
|
||||
will need to have divisions so that nothing is accessible from the other groups.
|
||||
Also, the resources of the system(outbound trunks, hard drive space, other
|
||||
shared elements, etc...) so that one group cannot hog the shared resources of
|
||||
the the server.
|
||||
|
||||
- LOW Making the server install script a customizable with installer
|
||||
prompts
|
||||
|
||||
- LOW Create guidelines and suggestions for deactivating unused
|
||||
modules from Asterisk for astGUIclient users
|
||||
|
||||
- LOW Revisit possibility of using something other than CallerIDname
|
||||
to tag a call process, probably a long shot without altering the Asterisk code,
|
||||
but that may be an option.
|
||||
|
||||
- LOW add new method for capping the maximum number of attempts to try
|
||||
leads of a specific status. This would be set up like HotKeys are, per campaign
|
||||
where you would select the status and define the maximum number of attempts for
|
||||
that type of status for that campaign and the VDhopper wouldn't allow that kind
|
||||
of lead into the hopper if it was over the max value of call_count.(having
|
||||
filters reduced the priority of this item since you can do a lot of custom
|
||||
coding to duplicate this feature in vicidial_lead_filters)
|
||||
|
||||
- LOW add a new script for using SoX to analyze the first 5 seconds of
|
||||
a ring-time recording within 15 minutes of the NA call ending and detecting if
|
||||
it has the SIT tone at the beginning of it so the lead can be taken out of the
|
||||
list as a DC. adding PRI hangup codes has reduced priority for this item.
|
||||
|
||||
- ON-HOLD We are also looking at creating an inbound-agent-specific GUI
|
||||
that would ideally work with Asterisk queues but that is not very likely given
|
||||
the current lack of events being given off by queues(this is much less likely to
|
||||
be built now that VICIDIAL takes inbound calls)
|
||||
|
||||
- ON-HOLD add a way of checking that there is no more than 1 channel in
|
||||
the meetme room with the agent before another call to that agent. Currently this
|
||||
happens less than 0.1% of the time(mostly on heavily loaded systems), but
|
||||
another check might change that to zero.
|
||||
|
||||
- ON-HOLD Localization of each server based on Intl. dial codes and/or
|
||||
country codes. very difficult to do this based on dial-codes, if used in other
|
||||
country, best to not use the adjust_gmt script.
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
# pronounced (VEE-CHEE DIAL)
|
||||
|
||||
This system was initially created to fill the need of a customer service group
|
||||
being able to call up clients efficiently and without using a predictive dialer
|
||||
that would potentially lose calls and alienate clients. Since then we have added
|
||||
the ability to do limited predictive dialing alongside the traditional
|
||||
one-call-at-a-time dialing as well as the ability to take inbound calls and set
|
||||
up campaigns to do blended inbound and outbound at the same time.
|
||||
|
||||
Features:
|
||||
- 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 on a single campaign across multiple Asterisk servers, or multiple campaigns on a single server
|
||||
- All calls are logged and statuses of calls are logged as well as agent time breakdowns
|
||||
- Ability to transfer calls with customer data to a closer 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 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 closer calls
|
||||
- Ability to have an agent take both inbound and outbound calls in one session(blended)
|
||||
- Ability for agents to log in remotely and have calls redirected to any phone number
|
||||
- Ability to start and stop recording an agent's calls at any time
|
||||
- Ability to automatically record all calls
|
||||
- Ability to call upto two other customer numbers for the same lead
|
||||
- Ability to schedule a callback with a customer as either any agent or agent specific
|
||||
- Faster dispositioning of calls with agent key-binding (HotKeys)
|
||||
- Ability to add custom call dispositions per campaign
|
||||
- Dialing with custom TimeZone restrictions including per state and per weekday
|
||||
- Dialing with Answering Machine Detection, also playing a message for AM calls
|
||||
- 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
|
||||
- Multiple campaigns and lead-lists are possible
|
||||
- Recycling of Busy calls at a specified interval without resetting a list
|
||||
- Ability to use custom database queries in campaign dialing
|
||||
- Option of a drop timer with safe-harbor message for FTC compliance
|
||||
- Internal DNC list can optionally be activated per campaign
|
||||
- Definable Wrapup-time per campaign
|
||||
- Load Balancing across multiple inbound or outbound Asterisk servers is possible
|
||||
- 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
|
||||
- Ability to set user levels and permissions for certain features
|
||||
- Ability for managers to listen-in on agent conversations
|
||||
- Ability for managers to enter conversations with agents and customers
|
||||
- Each user has their own login
|
||||
- Web-based administration
|
||||
- Client web-app and admin web pages available in English, Spanish, Greek and German
|
||||
- Client web-app web pages available in English, Spanish, Greek, German, French, Italian, Portuguese and Brazillian Portuguese
|
||||
- Admin web pages available in English, Spanish, Greek and German
|
||||
|
||||
Required components:
|
||||
- Asterisk server with Zap, IAX2 or SIP trunks
|
||||
- SIP/IAX/Zap phones(hard or soft single-line or multiple)
|
||||
- Computer with proper software installed
|
||||
- on Win32 Activestate perl
|
||||
- on UNIX Xwindows Activestate perl recommended with perlTK libs loaded
|
||||
- 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 nine months now on up to 70 seats at
|
||||
once across 4 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 if you
|
||||
already have asterisk running
|
||||
|
||||
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 call center manager can either set the auto_dial_level (on the campaign
|
||||
screen of the admin web page) to 0(zero) for no autodialing or any other choice
|
||||
for a different number of lines-per-agent-logged-in.
|
||||
- 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:
|
||||
- count how many agents are READY,QUEUE,INCALL with updated
|
||||
last_update_time in the last 5 seconds
|
||||
- look at the campaign's auto_dial_level to determine how many calls
|
||||
should be placed each specific campaign on each server.
|
||||
- update the vicidial_auto_calls records by searching for active
|
||||
callerids in the vicidial_manager to see if they have hung up
|
||||
- count the number of active calls that are
|
||||
occuring(vicidial_auto_calls records with a status of SENT,RINGING or
|
||||
LIVE)
|
||||
- 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)
|
||||
- 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
|
||||
- delete the record from vicidial_hopper for that lead
|
||||
- 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.
|
||||
- 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
|
||||
- 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
|
||||
- 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])
|
||||
- inserts the number_dialed and the caller_code in the vicidial_log
|
||||
table for the uniqueid record of the call
|
||||
- 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]
|
||||
- if there are agents available[affected rows = 1](goto substep VII.)
|
||||
- if there are no agents available:
|
||||
- wait in 1 second increments and then checking substep IV.
|
||||
- if no agent is available for 1 minute, the call is hung up
|
||||
and logged as ABANDN in vicidial_log under user VDAD
|
||||
- grabs the agent info from the vicidial_live_agents[conf_exten] and
|
||||
does a redirect to the agent's meetme room.
|
||||
- agent's app checks the vicidial_live_agents record every second for
|
||||
itself to see if it is changed to QUEUE
|
||||
- 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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user