+------------------------------------------------------------------------------+ | Asterisk GUI client - TODO v.1.1.14 | | | | 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. - 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.