update of documentation

removal of depricated documentation

git-svn-id: svn://192.168.202.10@230 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2006-08-29 15:35:01 +00:00
parent 69c5e58f90
commit 38fac14bb0
13 changed files with 200 additions and 895 deletions
+52 -1
View File
@@ -1,7 +1,58 @@
################ UPGRADE
If you are upgrading to the 2.0 code tree from the 1.1 code tree there have been several changes made to the code base and to where some files are stored in the release as well as on your machine.
If you are upgrading to the 2.0 code tree from the 1.1 code tree there have been
several changes made to the code base and to where some files are stored in the
release as well as on your machine.
1. upgrade the MySQL Asterisk database:
mysql
use asterisk
\. /path/from/root/extras/upgrade_2.0.1.sql
quit
2. use the new installer for astguiclient-VICIDIAL files:
perl install.pl
3. Make sure you have MySQL cli8entlibs installed:
Because all perl script now use DBI instead of Net::MySQL you need to make sure
that you have at least the MySQL client installed on all VICIDIAL servers even
if the MySQL server is installed on another machine. You can skip this step if
MySQL server is already on your VICIDIAL server:
Go to http://www.mysql.com/ and download the mysql package
- to install this directly on the command line type:
- cd /usr/local
- wget http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-4.0/mysql-4.0.27.tar.gz
- gunzip mysql-4.0.27.tar.gz
- tar xvf mysql-4.0.27.tar
- cd mysql-4.0.27
- groupadd mysql
- useradd -g mysql mysql
- "./configure --prefix=/usr/local/mysql --without-server --enable-shared=yes --with-readline"
- make
- make install
- you are done
4. New MySQL perl modules:
You will need to make sure that you have installed the following perl modules:
DBI (top-level Database interface module "install DBI")
DBD::mysql (MySQL-specific interface through DBI "force install DBD::mysql")
5. new predictive dialing crontab entry:
If you will be using the new predictive dialing functions you need to make sure
you have the keepalive for this function loaded in your crontab:
NOTE: this only needs to be on a single server if you are in a multiple
VICIDIAL server setup.
### keepalive script for VICIDIAL predictive script
* * * * * /home/cron/ADMIN_keepalive_AST_VDadapt.pl
6. other notes:
- there is a new DIAL METHOD field and several other new dial-control fields
in campaign modification page, please take a minute to read the help
documentation for these new features.
-9
View File
@@ -1,9 +0,0 @@
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
-17
View File
@@ -1,17 +0,0 @@
### 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
@@ -1,12 +0,0 @@
### 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 ####
#### ####
################################################################################
################################################################################
+4
View File
@@ -21,6 +21,8 @@ NOTE: In a multi-server setup you may want to have your database and web server
- AST_cleanup_agent_log.pl
- ADMIN_adjust_GMTnow_on_leads.pl
- AST_DB_optimize.pl
- ADMIN_keepalive_AST_VDadapt.pl
- AST_VDadapt.pl
2. The two servers need to be registered to each other as IAX2 friends:
@@ -129,4 +131,6 @@ If you have any questions or problems please post to the astguiclient-users list
- AST_cleanup_agent_log.pl
- ADMIN_adjust_GMTnow_on_leads.pl
- AST_DB_optimize.pl
- ADMIN_keepalive_AST_VDadapt.pl
- AST_VDadapt.pl
+109 -24
View File
@@ -1,46 +1,131 @@
PREDICTIVE Summary and Overview 2006-08-24
PREDICTIVE Summary and Overview 2006-08-29
*** PREDICTIVE OUTBOUND CALLING FUNCTIONALITY WAS ADDED IN THE 2.0.1 RELEASE ***
This will outline the methods used to predictively dial outbound calling campaigns in VICIDIAL with the ADAPT dial methods. This is a description of the first versions of three different Predictive/Adaptive dialing algorithms used in VICIDIAL. As the need arises we will create more versions of different algorithms in the future.
This will outline the methods used to predictively dial outbound calling
campaigns in VICIDIAL with the ADAPT dial methods. This is a description of the
first versions of the Predictive/Adaptive dialing algorithms used in VICIDIAL.
As the need arises we will create more versions of different algorithms in the
future.
The gathering of data to analyze:
In order to properly analyze calling trends and adapt to the current list that is being called we need to first gather a lot of data to analyze.
In order to properly analyze calling trends and adapt to the current list that
is being called we need to first gather a lot of data to analyze.
The first set of data we want to gather is the recent queue and agent statistics for each campaign. This information is gathered by the AST_VDauto_dial.pl script as it runs through each loop every 2.5-3.0 seconds. The data gathered in this script are all averages of the last 60 seconds of agent and queue activity:
1. The average number of agents that are logged into the campaign across one minute
2. The average number of calls waiting to be transferred to an agent across one minute
3. The average number of agents waiting for calls across one minute
4. The difference between the waiting calls and ready agents across one minute
This number if positive means that on average more agents were waiting for calls than calls waiting for agents in the last minute for that campaign.
The first set of data we want to gather is the recent queue and agent statistics
for each campaign. This information is gathered by the AST_VDauto_dial.pl script
as it runs through each loop every 2.5-3.0 seconds. This data is used only for
Blended CLOSER campaigns doing Predictive dialing and for the timeonVDADall
realtime campaign reports. The data gathered in this script are all averages of
the last 60 seconds of agent and queue activity:
1. The average number of agents that are logged into the campaign across
one minute
2. The average number of calls waiting to be transferred to an agent
across one minute
3. The average number of agents waiting for calls across one minute
4. The difference between the waiting calls and ready agents across one
minute
This number if positive means that on average more agents were
waiting for calls than calls waiting for agents in the last
minute for that campaign.
The second set of data to gather is dropped call information across several intervals. This information will be gathered by the actual AST_VDadapt.pl script that will also be the script actually changing the dial level when the predictive/adaptive dial method is activated. Once a minute this script will gather:
1. Total drops and total calls for the campaign since midnight
2. Total drops and total calls for the campaign in the past hour
3. Total drops and total calls for the campaign in the past half hour
4. Total drops and total calls for the campaign in the past five minutes
5. Total drops and total calls for the campaign in the past one minute
Also, the drop percentage is calculated and stored in the vicidial_campaign_stats table.
The second set of data to gather is dropped call information across several
intervals as well as faster agent and queue call statistics. This information
will be gathered by the actual AST_VDadapt.pl script that will also be the
script actually changing the dial level when the predictive/adaptive dial method
is activated.
Once a second this script will gather:
1. The average number of agents that are logged into the campaign for
the last 15 seconds
2. The average number of calls waiting to be transferred to an agent for
the last 15 seconds
3. The average number of agents waiting for calls for the last 15
seconds
4. The difference between the waiting calls and ready agents for the
last 15 seconds
Once every 15 seconds this script will:
1. Calculate the average dial level differential for the last 15 seconds
2. Apply the campaign's adaptive_dl_diff_target
3. Apply the campaign's adaptive_intensity setting
4. Calculate the new desired dial_level
5. Check the drop rate cap method(HARD_LIMIT, TAPERED, AVERAGE)
6. If drop rate is over the limit the proper equation is used to figure
out new dial_level difference.
7. Change the dial level for the campaign to the new suggested dial
level
Once a minute this script will gather:
1. Total drops and total calls for the campaign since midnight
2. Total drops and total calls for the campaign in the past hour
3. Total drops and total calls for the campaign in the past half hour
4. Total drops and total calls for the campaign in the past five minutes
5. Total drops and total calls for the campaign in the past one minute
Also, the drop percentage is calculated and stored in the
vicidial_campaign_stats table.
The settings in the campaign detail screen:
Dial Method - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift(as defined by call_time selected for campaign) and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods.
Dial Method - This field is the way to define how dialing is to take place. If
MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is
changed. If RATIO then the normal dialing a number of lines for Active agents.
ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then
not allow aggressive dialing once the drop limit is reached until the percentage
goes down again. ADAPT_TAPERED allows for running over the dropped percentage in
the first half of the shift(as defined by call_time selected for campaign) and
gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an
average or the dropped percentage not imposing hard limits as aggressively as
the other two methods.
Auto Dial Level - This is where you set how many lines VICIDIAL should use per active agent. zero 0 means auto dialing is off and the agents will click to dial each number. Otherwise VICIDIAL will keep dialing lines equal to active agents multiplied by the dial level to arrive at how many lines this campaign on each server should allow.
Auto Dial Level - This is where you set how many lines VICIDIAL should use per
active agent. zero 0 means auto dialing is off and the agents will click to dial
each number. Otherwise VICIDIAL will keep dialing lines equal to active agents
multiplied by the dial level to arrive at how many lines this campaign on each
server should allow.
Available Only Tally - This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N.
Available Only Tally - This field if set to Y will leave out INCALL and QUEUE
status agents when calculating the number of calls to dial when not in MANUAL
dial mode. Default is N.
Drop Percentage Limit - This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO.
Drop Percentage Limit - This field is where you set the limit of the percentage
of dropped calls you would like while using an adaptive-predictive dial method,
not MANUAL or RATIO.
Maximum Adapt Dial Level - This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0.
Maximum Adapt Dial Level - This field is where you set the limit of the limit to
the numbr of lines you would like dialed per agent while using an
adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher
than the Auto Dial Level if your hardware will support it. Value must be a
positive number greater than one and can have decimal places Default 3.0.
Latest Target Timezone - This field is only used by the ADAPT_TAPERED dial method. You should select the current GMT offset value or timezone of the latest region that you will be calling. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling. NOTE- If you are calling in the USA and you have a very small amount of leads in Alaska or Hawaii but many leads in Pacific time zone, you should choose the pacific time zone for this field for the ADAPT_TAPERED dial method to work properly.
Latest Server Time - This field is only used by the ADAPT_TAPERED dial method.
You should enter in the hour and minute that you will stop calling on this
campaign, 2100 would mean that you will stop dialing this campaign at 9PM server
time. This allows the Tapered algorithm to decide how aggressively to dial by
how long you have until you will be finished calling.
Adapt Intensity Modifier - This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods.
Adapt Intensity Modifier - This field is used to adjust the predictive intensity
either higher or lower. The higher a positive number you select, the greater the
dialer will increase the call pacing when it goes up and the slower the dialer
will decrease the call pacing when it goes down. The lower the negative number
you select here, the slower the dialer will increase the call pacing and the
faster the dialer will lower the call pacing when it goes down. Default is 0.
This field is not used by the MANUAL or RATIO dial methods.
Dial Level Difference Target - This field is used to define whether you want to
target having a specific number of agents waiting for calls or calls waiting for
agents. For example if you would always like to have on average one agent free
to take calls immediately you would set this to -1, if you would like to target
always having one call on hold waiting for an agent you would set this to 1.
Default is 0. This field is not used by the MANUAL or RATIO dial methods.
To use adaptive dialing you must have the AST_VDadapt.pl script in your crontab running every minute.
To use adaptive dialing you must have the ADMIN keepaliveAST_VDadapt.pl script
in your crontab running every minute:
### keepalive script for VICIDIAL predictive script
* * * * * /home/cron/ADMIN_keepalive_AST_VDadapt.pl
NOTE: With Predictive dialing the dial_level will never drop below 1.0.
+15 -8
View File
@@ -1,5 +1,5 @@
+------------------------------------------------------------------------------+
| Asterisk GUI client - astguiclient - twenty-fifth public release 1.1.12 |
| Asterisk GUI client - astguiclient - twenty-sixth public release 2.0.1 |
| created by astGUIclient group <astguiclient@eflo.net> |
| project started 2003-10-06 http://sourceforge.net/projects/astguiclient/ |
+------------------------------------------------------------------------------+
@@ -29,15 +29,10 @@ to put astguiclient onto.
- 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
- install.pl - perl script to put files in the right place on the
server. Run as "perl install.pl"
- start_asterisk_boot.pl - starts asterisk through a screen, good for system
boot time startups of asterisk.
@@ -711,3 +706,15 @@ UPGRADE NOTES:
* 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');)
2.0.1 - Twenty-Sixth public release - 2006-09-XX
- Changed all Perl script to use DBI instead of Net::MySQL
- Completely new interactive install script with new astguiclient.conf file
- Ability to turn off or on logging of server scripts
- Ability to redirect AGI output to file, STDERR, both or nowhere.
- Code and process optimization of many of the server-side scripts
- Added a Predictive outbound dialing algorithm with many user-defined settings
- Many other changes and bug fixes listed in the TODO Wiki webpage:
http://www.eflo.net/VICIDIALwiki/index.php/TODO:current
UPGRADE NOTES:
* if upgrading from 1.1.12 you need to follow instructions in the UPGRADE doc
+1 -1
View File
@@ -3,7 +3,7 @@ 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.2.10 recommended but will work with older versions
- Asterisk 1.2.11 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
+3
View File
@@ -2275,6 +2275,9 @@ AST_CRON_mix_recordings_BASIC.pl file in it's place)
### keepalive script for VICIDIAL remote agents
* * * * * /home/cron/ADMIN_keepalive_AST_VDremote_agents.pl
### keepalive script for VICIDIAL predictive script
* * * * * /home/cron/ADMIN_keepalive_AST_VDadapt.pl
### kill Hangup script for Asterisk updaters
* * * * * /home/cron/AST_manager_kill_hung_congested.pl
-116
View File
@@ -1,116 +0,0 @@
+------------------------------------------------------------------------------+
| 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.
-208
View File
@@ -1,208 +0,0 @@
+------------------------------------------------------------------------------+
| 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.
-489
View File
@@ -1,489 +0,0 @@
+------------------------------------------------------------------------------+
| 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.
+16 -10
View File
@@ -3,7 +3,7 @@
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
the ability to do predictive dialing alongside ratio dialing and 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.
@@ -11,6 +11,7 @@ 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 predictively in a campaign with an adaptive dialing algorithm
- Ability to dial on a single campaign across multiple Asterisk servers, or multiple campaigns on a single server
- 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
@@ -69,8 +70,8 @@ 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
in mind. We have used VICIDIAL for over two years now on up to 120 seats at
once across 6 separate Asterisk servers all using the same MySQL server and
dialing on the same campaign. It is important to keep in mind that because
VICIDIAL uses Asterisk meetme rooms for it's dialing that the Asterisk server
will see an increased load as compared to a simple Zap/SIP-only calls.
@@ -110,9 +111,13 @@ 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.
- The predictive dialing control app(AST_VDadapt.pl) that is running constantly
analyzes the current status of calls and agents and calculates the dial level
that the campaign will need to be set at for the campaign's specific settings.
- The call center manager can either set the dial method (on the campaign
screen of the admin web page) to Manual for no autodialing, Ratio for fixed
lines-to-agent dialing or any of the Adapt predictive dialing models to use
Predictive dialing.
- As soon as an agent logs into a campaign, the client app will look at the
auto_dial_level setting of the campaign and determine whether
- it will insert a record into the vicidial_live_agents table(and set
@@ -125,11 +130,11 @@ button.
- 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
last_update_time in the last 2.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
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)
@@ -168,8 +173,9 @@ 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
- if no agent is available for the drop interval(usually 5
seconds on outbound campaigns), the call is hung up and logged as DROP in
vicidial_log under user VDAD
- 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