Files
agc_1-X/docs/TODO_1.1.12.txt
mattf 065b96d043 release 1.1.12
git-svn-id: svn://192.168.202.10@10 3d104415-ff17-0410-8863-d5cf3c621b8a
2006-07-07 15:30:10 +00:00

490 lines
26 KiB
Plaintext

+------------------------------------------------------------------------------+
| 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.