Added new Call Count Limit option to the campaign screen. This allows you to limit the number of attempts for any lead being dialed by a campaign. Previously you had to use a filter to achieve this functionality.
Added new Complete flag for statuses and campaign statuses. Used by the new colums mentioned below as well as for future reports. Added Dialable and Penetration colums to the Statuses Within This List/Campaign tables on the list and campaign screens, showing the DIALABLE count for each status as well as the complete-flag and call-count-limit percentage as PENETRATION. git-svn-id: svn://192.168.202.10@1736 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -727,6 +727,18 @@ OTHER CHANGES:
|
||||
option added to allow for vicidial_list field logging of responses
|
||||
inside of a call menu.
|
||||
|
||||
166. Added new Call Count Limit option to the campaign screen. This allows you
|
||||
to limit the number of attempts for any lead being dialed by a campaign.
|
||||
Previously you had to use a filter to achieve this functionality.
|
||||
|
||||
167. Added new Complete flag for statuses and campaign statuses. Used by the
|
||||
new colums mentioned below as well as for future reports.
|
||||
|
||||
168. Added Dialable and Penetration colums to the Statuses Within This List/
|
||||
Campaign tables on the list and campaign screens, showing the DIALABLE
|
||||
count for each status as well as the complete-flag and call-count-limit
|
||||
percentage as PENETRATION.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
# 110103-1118 - Added lead_order_randomize option
|
||||
# 110212-2255 - Added scheduled callback custom statuses capability
|
||||
# 110214-2319 - Added lead_order_secondary option
|
||||
# 111006-1416 - Added call_count_limit option
|
||||
#
|
||||
|
||||
# constants
|
||||
@@ -801,11 +802,11 @@ if ($hopper_dnc_count > 0)
|
||||
|
||||
if ($CLIcampaign)
|
||||
{
|
||||
$stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses,dial_timeout,auto_hopper_multi,use_auto_hopper,auto_trim_hopper,lead_order_randomize,lead_order_secondary from vicidial_campaigns where campaign_id='$CLIcampaign';";
|
||||
$stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses,dial_timeout,auto_hopper_multi,use_auto_hopper,auto_trim_hopper,lead_order_randomize,lead_order_secondary,call_count_limit from vicidial_campaigns where campaign_id='$CLIcampaign';";
|
||||
}
|
||||
else
|
||||
{
|
||||
$stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses,dial_timeout,auto_hopper_multi,use_auto_hopper,auto_trim_hopper,lead_order_randomize,lead_order_secondary from vicidial_campaigns where active='Y';";
|
||||
$stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses,dial_timeout,auto_hopper_multi,use_auto_hopper,auto_trim_hopper,lead_order_randomize,lead_order_secondary,call_count_limit from vicidial_campaigns where active='Y';";
|
||||
}
|
||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
||||
@@ -840,6 +841,7 @@ while ($sthArows > $rec_count)
|
||||
$auto_trim_hopper[$rec_count] = $aryA[20];
|
||||
$lead_order_randomize[$rec_count] = $aryA[21];
|
||||
$lead_order_secondary[$rec_count] = $aryA[22];
|
||||
$call_count_limit[$rec_count] = $aryA[23];
|
||||
|
||||
### Auto Hopper Level
|
||||
if ( $use_auto_hopper[$rec_count] =~ /Y/)
|
||||
@@ -1727,11 +1729,19 @@ foreach(@campaign_id)
|
||||
if ($DB) {print " drop lockout time $drop_lockout_time[$i]($DLseconds[$i]) defined for $campaign_id[$i]\n";}
|
||||
if ($DBX) {print " |$DLTsql[$i]|\n";}
|
||||
}
|
||||
|
||||
|
||||
$CCLsql[$i]='';
|
||||
if ($call_count_limit[$i] > 0)
|
||||
{
|
||||
$CCLsql[$i] = "and (called_count < $call_count_limit[$i])";
|
||||
if ($DB) {print " call count limit $call_count_limit[$i] defined for $campaign_id[$i]\n";}
|
||||
if ($DBX) {print " |$CCLsql[$i]|\n";}
|
||||
}
|
||||
|
||||
##### Get count of leads that are dialable #####
|
||||
if ($list_order_mix[$i] =~ /DISABLED/)
|
||||
{
|
||||
$stmtA = "SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($STATUSsql[$i]) and list_id IN($camp_lists[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i];";
|
||||
$stmtA = "SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($STATUSsql[$i]) and list_id IN($camp_lists[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $CCLsql[$i];";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -832,7 +832,9 @@ status_display_fields VARCHAR(30) default 'CALLID',
|
||||
na_call_url TEXT,
|
||||
survey_recording ENUM('Y','N','Y_WITH_AMD') default 'N',
|
||||
pllb_grouping ENUM('DISABLED','ONE_SERVER_ONLY','CASCADING') default 'DISABLED',
|
||||
pllb_grouping_limit SMALLINT(5) default '50'
|
||||
pllb_grouping_limit SMALLINT(5) default '50',
|
||||
call_count_limit SMALLINT(5) UNSIGNED default '0',
|
||||
call_count_target SMALLINT(5) UNSIGNED default '3'
|
||||
);
|
||||
|
||||
CREATE TABLE vicidial_lists (
|
||||
@@ -869,7 +871,8 @@ dnc ENUM('Y','N') default 'N',
|
||||
customer_contact ENUM('Y','N') default 'N',
|
||||
not_interested ENUM('Y','N') default 'N',
|
||||
unworkable ENUM('Y','N') default 'N',
|
||||
scheduled_callback ENUM('Y','N') default 'N'
|
||||
scheduled_callback ENUM('Y','N') default 'N',
|
||||
completed ENUM('Y','N') default 'N'
|
||||
);
|
||||
|
||||
CREATE TABLE vicidial_campaign_statuses (
|
||||
@@ -885,6 +888,7 @@ customer_contact ENUM('Y','N') default 'N',
|
||||
not_interested ENUM('Y','N') default 'N',
|
||||
unworkable ENUM('Y','N') default 'N',
|
||||
scheduled_callback ENUM('Y','N') default 'N',
|
||||
completed ENUM('Y','N') default 'N',
|
||||
index (campaign_id)
|
||||
);
|
||||
|
||||
@@ -1446,7 +1450,8 @@ tables_use_alt_log_db VARCHAR(2000) default '',
|
||||
did_agent_log ENUM('Y','N') default 'N',
|
||||
campaign_cid_areacodes_enabled ENUM('0','1') default '1',
|
||||
pllb_grouping_limit SMALLINT(5) default '100',
|
||||
did_ra_extensions_enabled ENUM('0','1') default '0'
|
||||
did_ra_extensions_enabled ENUM('0','1') default '0',
|
||||
expanded_list_stats ENUM('0','1') default '1'
|
||||
);
|
||||
|
||||
CREATE TABLE vicidial_campaigns_list_mix (
|
||||
@@ -1604,6 +1609,7 @@ shift_name VARCHAR(50),
|
||||
shift_start_time VARCHAR(4) default '0900',
|
||||
shift_length VARCHAR(5) default '16:00',
|
||||
shift_weekdays VARCHAR(7) default '0123456',
|
||||
report_option ENUM('Y','N') default 'N',
|
||||
index (shift_id)
|
||||
);
|
||||
|
||||
@@ -2673,7 +2679,7 @@ CREATE TABLE vicidial_log_noanswer_archive LIKE vicidial_log_noanswer;
|
||||
CREATE TABLE vicidial_did_agent_log_archive LIKE vicidial_did_agent_log;
|
||||
CREATE UNIQUE INDEX vdala on vicidial_did_agent_log_archive (uniqueid,call_date,did_route);
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1301',db_schema_update_date=NOW();
|
||||
UPDATE system_settings SET db_schema_version='1302',db_schema_update_date=NOW();
|
||||
|
||||
GRANT RELOAD ON *.* TO cron@'%';
|
||||
GRANT RELOAD ON *.* TO cron@localhost;
|
||||
|
||||
@@ -1083,3 +1083,15 @@ UPDATE system_settings SET db_schema_version='1300',db_schema_update_date=NOW()
|
||||
ALTER TABLE vicidial_call_menu ADD dtmf_field VARCHAR(50) default 'NONE';
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1301',db_schema_update_date=NOW() where db_schema_version < 1301;
|
||||
|
||||
ALTER TABLE vicidial_campaigns ADD call_count_limit SMALLINT(5) UNSIGNED default '0';
|
||||
ALTER TABLE vicidial_campaigns ADD call_count_target SMALLINT(5) UNSIGNED default '3';
|
||||
|
||||
ALTER TABLE vicidial_statuses ADD completed ENUM('Y','N') default 'N';
|
||||
ALTER TABLE vicidial_campaign_statuses ADD completed ENUM('Y','N') default 'N';
|
||||
|
||||
ALTER TABLE system_settings ADD expanded_list_stats ENUM('0','1') default '1';
|
||||
|
||||
ALTER TABLE vicidial_shifts ADD report_option ENUM('Y','N') default 'N';
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1302',db_schema_update_date=NOW() where db_schema_version < 1302;
|
||||
|
||||
@@ -752,6 +752,16 @@ If set to Y_WITH_AMD even answering machine detected message calls will be recor
|
||||
Log Field||
|
||||
If the Log Key Press option is enabled, this optional setting can allow the response to also be stored in this list field||
|
||||
Default is NONE for disabled||
|
||||
Call Count Limit||
|
||||
This enforces a limit on the number of call attempts for the leads dialed in this campaign. A lead may go over this limit slightly if Lead Recycling or Auto-Alt-Dialing is enabled. Default is 0 for no limit||
|
||||
Call Count Target||
|
||||
This option is only used for reporting purposes and has no effect on leads dialed. Default is 3||
|
||||
Enable Expanded List Stats||
|
||||
This setting enables two additional columns to be displayed on most of the List status breakdown tables on the list modification and campaign modification pages. Penetration is defined as the percent of leads that are at or above the campaign Call Count Limit and-or the status is marked as Completed. Default is 1 for enabled||
|
||||
Report Option||
|
||||
This option allows this specific shift to show up in selected reports that support this option||
|
||||
There are||
|
||||
completed leads in those lists||
|
||||
|
||||
|
||||
lead_report_export.php
|
||||
|
||||
@@ -290,10 +290,11 @@
|
||||
# 110723-2256 - Added disable_alter_custphone HIDE option for call logs display
|
||||
# 110731-2318 - Added dispo/start call url logging to DB table
|
||||
# 110901-1117 - Added areacode custom cid function
|
||||
# 111006-1425 - Added call_count_limit campaign option
|
||||
#
|
||||
|
||||
$version = '2.4-193';
|
||||
$build = '110901-1117';
|
||||
$version = '2.4-194';
|
||||
$build = '111006-1425';
|
||||
$mel=1; # Mysql Error Log enabled = 1
|
||||
$mysql_log_count=425;
|
||||
$one_mysql_log=0;
|
||||
@@ -1524,7 +1525,7 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
else
|
||||
{
|
||||
##### gather no hopper dialing settings from campaign
|
||||
$stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order,lead_order_randomize,lead_order_secondary FROM vicidial_campaigns where campaign_id='$campaign';";
|
||||
$stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order,lead_order_randomize,lead_order_secondary,call_count_limit FROM vicidial_campaigns where campaign_id='$campaign';";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
@@ -1541,6 +1542,7 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
$lead_order = $row[6];
|
||||
$lead_order_randomize = $row[7];
|
||||
$lead_order_secondary = $row[8];
|
||||
$call_count_limit = $row[9];
|
||||
}
|
||||
if (eregi("N",$no_hopper_dialing))
|
||||
{
|
||||
@@ -1877,6 +1879,12 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
$DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )";
|
||||
}
|
||||
|
||||
$CCLsql='';
|
||||
if ($call_count_limit > 0)
|
||||
{
|
||||
$CCLsql = "and (called_count < $call_count_limit)";
|
||||
}
|
||||
|
||||
$stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
@@ -2000,7 +2008,7 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = "order by gmt_offset_now desc, $last_order";}
|
||||
if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = "order by gmt_offset_now, $last_order";}
|
||||
|
||||
$stmt="UPDATE vicidial_list SET user='QUEUE$user' where called_since_last_reset='N' and user NOT LIKE \"QUEUE%\" and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;";
|
||||
$stmt="UPDATE vicidial_list SET user='QUEUE$user' where called_since_last_reset='N' and user NOT LIKE \"QUEUE%\" and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $CCLsql $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user