Added Drop Lists feature, allowing you to add new leads to a list built from

DROP calls from inbound groups on a scheduled basis.

git-svn-id: svn://192.168.202.10@2714 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2017-03-27 19:56:06 +00:00
parent 6f0d44bf1c
commit 80c4ec36f4
13 changed files with 2377 additions and 37 deletions
+3
View File
@@ -130,6 +130,9 @@ OTHER CHANGES:
of seconds an agent can be in a specific pause code before the real-time
report will show them in a different color.
25. Added Drop Lists feature, allowing you to add new leads to a list built from
DROPped calls from inbound groups on a scheduled basis.
+52 -1
View File
@@ -208,6 +208,7 @@
# 170220-2134 - Added areacode_filter options
# 170221-0912 - Fix for areacode_filter logging issue
# 170309-1514 - Added populate_state_areacode option
# 170325-1104 - Added optional vicidial_drop_log logging
#
$script = 'agi-VDAD_ALL_inbound.agi';
@@ -337,7 +338,7 @@ $sthA->finish();
#############################################
##### START SYSTEM SETTINGS LOOKUP #####
$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend,queuemetrics_pe_phone_append,did_agent_log,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,did_ra_extensions_enabled,queuemetrics_socket,queuemetrics_socket_url,enable_did_entry_list_id FROM system_settings;";
$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend,queuemetrics_pe_phone_append,did_agent_log,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,did_ra_extensions_enabled,queuemetrics_socket,queuemetrics_socket_url,enable_did_entry_list_id,enable_drop_lists FROM system_settings;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@@ -363,6 +364,7 @@ if ($sthArows > 0)
$queuemetrics_socket = $aryA[15];
$queuemetrics_socket_url = $aryA[16];
$enable_did_entry_list_id = $aryA[17];
$enable_drop_lists = $aryA[18];
}
$sthA->finish();
##### END SYSTEM SETTINGS LOOKUP #####
@@ -1545,6 +1547,13 @@ if ( ( ( ( ($hm < $ct_default_start) || ($hm > $ct_default_stop) ) && ($hm >= $c
$VLEcount++;
}
if ($enable_drop_lists > 0)
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$insert_lead_id',campaign_id='$VD_campaign_id',status='$AHstatus',phone_code='$phone_code',phone_number='$phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$insert_lead_id|$AHstatus|"; &agi_output;}
}
$called_since_last_resetSQL='';
if ( ($after_hours_action =~ /VOICEMAIL|HANGUP|MESSAGE|VMAIL_NO_INST/) && ($after_hours_lead_reset =~ /Y/) )
{$called_since_last_resetSQL = ",called_since_last_reset='N'";}
@@ -1785,6 +1794,13 @@ if ( ( ($no_agent_no_queue =~ /Y|NO_PAUSED/) || ($MCnanque_override > 0) ) && ($
$VLEcount++;
}
if ($enable_drop_lists > 0)
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$insert_lead_id',campaign_id='$VD_campaign_id',status='$NQstatus',phone_code='$phone_code',phone_number='$phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$insert_lead_id|$NQstatus|"; &agi_output;}
}
$called_since_last_resetSQL='';
if ( ($no_agent_action =~ /VOICEMAIL|HANGUP|MESSAGE|VMAIL_NO_INST/) && ($nanq_lead_reset =~ /Y/) )
{$called_since_last_resetSQL = ",called_since_last_reset='N'";}
@@ -3836,6 +3852,13 @@ while ( ($drop_timer <= $DROP_TIME) && ($wait_in_queue > 0) && ($MCdrop_override
$dbhP=$dbhA; $mysql_count='02076'; $MEL_aff_rows=$affected_rows; &mysql_error_logging;
if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;}
if ($enable_drop_lists > 0)
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$insert_lead_id',campaign_id='$VD_campaign_id',status='HXFER',phone_code='$phone_code',phone_number='$phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$insert_lead_id|HXFER|"; &agi_output;}
}
$populate_provinceUPDATE='';
if ($populate_lead_province =~ /OW_did/i)
{&populate_lead_province_process;}
@@ -4304,6 +4327,13 @@ while ( ($drop_timer <= $DROP_TIME) && ($wait_in_queue > 0) && ($MCdrop_override
$VLEcount++;
}
if ($enable_drop_lists > 0)
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$insert_lead_id',campaign_id='$VD_campaign_id',status='$NQstatus',phone_code='$phone_code',phone_number='$phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$insert_lead_id|$NQstatus|"; &agi_output;}
}
$called_since_last_resetSQL='';
if ( ($areacode_filter_action =~ /VOICEMAIL|HANGUP|MESSAGE|VMAIL_NO_INST/) && ($nanq_lead_reset =~ /Y/) )
{$called_since_last_resetSQL = ",called_since_last_reset='N'";}
@@ -4856,6 +4886,13 @@ while ( ($drop_timer <= $DROP_TIME) && ($wait_in_queue > 0) && ($MCdrop_override
$dbhP=$dbhA; $mysql_count='02091'; $MEL_aff_rows=$affected_rows; &mysql_error_logging;
if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;}
if ($enable_drop_lists > 0)
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$insert_lead_id',campaign_id='$VD_campaign_id',status='$HT_status',phone_code='$phone_code',phone_number='$phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$insert_lead_id|$HT_status|"; &agi_output;}
}
if ( ($enable_queuemetrics_logging > 0) && ($exitwithkey < 1) )
{
$dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass")
@@ -5305,6 +5342,13 @@ while ( ($drop_timer <= $DROP_TIME) && ($wait_in_queue > 0) && ($MCdrop_override
$dbhP=$dbhA; $mysql_count='02091'; $MEL_aff_rows=$affected_rows; &mysql_error_logging;
if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;}
if ($enable_drop_lists > 0)
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$insert_lead_id',campaign_id='$VD_campaign_id',status='$HT_status',phone_code='$phone_code',phone_number='$phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$insert_lead_id|$HT_status|"; &agi_output;}
}
if ( ($enable_queuemetrics_logging > 0) && ($exitwithkey < 1) )
{
$dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass")
@@ -5664,6 +5708,13 @@ if ( ($drop_timer > $DROP_TIME) || ($MCdrop_override > 0) )
$dbhP=$dbhA; $mysql_count='02100'; $MEL_aff_rows=$affected_rows; &mysql_error_logging;
if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;}
if ($enable_drop_lists > 0)
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$insert_lead_id',campaign_id='$VD_campaign_id',status='$DRstatus',phone_code='$phone_code',phone_number='$phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$insert_lead_id|$DRstatus|"; &agi_output;}
}
$called_since_last_resetSQL='';
if ( ($drop_action =~ /VOICEMAIL|HANGUP|MESSAGE|VMAIL_NO_INST/) && ($drop_lead_reset =~ /Y/) )
{$called_since_last_resetSQL = ",called_since_last_reset='N'";}
+130 -3
View File
@@ -46,6 +46,7 @@
# 160827-0957 - Added --recording-log-days=X option
# 161212-1659 - Added --cpd-log-purge-days=XX option
# 170209-1213 - Added vicidial_api_urls table rolling and purging to all vicidial_api_log sections
# 170325-1108 - Added vicidial_drop_log table rolling
#
$CALC_TEST=0;
@@ -66,7 +67,7 @@ if (length($ARGV[0])>1)
if ($args =~ /--help/i)
{
print "allowed run time options:\n";
print " [--daily] = only archives call_log, vicidial_log_extended and vicidial_dial_log tables, only last 24 hours kept\n";
print " [--daily] = only archives call_log, vicidial_log_extended, vicidial_dial_log and vicidial_drop_log tables, only last 24 hours kept\n";
print " [--carrier-daily] = will also archive the vicidial_carrier_log table when --daily is run\n";
print " [--vlog-daily] = will also archive the vicidial_log table when --daily is run\n";
print " [--days=XX] = number of days to archive past, default is 732(2 years)\n";
@@ -75,7 +76,7 @@ if (length($ARGV[0])>1)
print " [--queue-log] = archive QM queue_log records\n";
print " [--only-trim-archive-level-one] = will not perform normal archive process, instead this will only delete records\n";
print " that are older than XX months from least important log archive tables:\n";
print " call_log_archive, vicidial_log_extended_archive, vicidial_dial_log_archive\n";
print " call_log_archive, vicidial_log_extended_archive, vicidial_dial_log_archive, vicidial_drop_log\n";
print " [--only-trim-archive-level-two] = same as --only-trim-archive-level-one, except includes tables:\n";
print " vicidial_carrier_log_archive, vicidial_api_log_archive\n";
print " [--only-trim-archive-level-three] = same as --only-trim-archive-level-two, except includes tables:\n";
@@ -338,7 +339,7 @@ if (!$T)
# instead this will only delete records that are older than XX months from
# least important log archive tables. There are three levels:
# LEVEL 1:
# call_log_archive, vicidial_log_extended_archive, vicidial_dial_log_archive
# call_log_archive, vicidial_log_extended_archive, vicidial_dial_log_archive, vicidial_drop_log
# LEVEL 2:
# vicidial_carrier_log_archive, vicidial_api_log_archive
# LEVEL 3:
@@ -406,6 +407,35 @@ if (!$T)
}
##### END vicidial_log_extended_archive trim processing #####
##### BEGIN vicidial_drop_log_archive trim processing #####
$stmtA = "SELECT count(*) from vicidial_drop_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$vicidial_drop_log_archive_count = $aryA[0];
}
$sthA->finish();
if (!$Q) {print "Trimming vicidial_drop_log_archive table... ($vicidial_drop_log_archive_count)\n";}
$rv = $sthA->err();
if (!$rv)
{
$stmtA = "DELETE FROM vicidial_drop_log_archive WHERE drop_date < '$del_time';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
if (!$Q) {print "$sthArows rows deleted from vicidial_drop_log_archive table \n";}
$stmtA = "optimize table vicidial_drop_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
}
##### END vicidial_drop_log_archive trim processing #####
##### BEGIN vicidial_dial_log_archive trim processing #####
$stmtA = "SELECT count(*) from vicidial_dial_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
@@ -726,6 +756,53 @@ if (!$T)
##### END vicidial_log_extended DAILY processing #####
##### BEGIN vicidial_drop_log DAILY processing #####
$stmtA = "SELECT count(*) from vicidial_drop_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$vicidial_drop_log_count = $aryA[0];
}
$sthA->finish();
$stmtA = "SELECT count(*) from vicidial_drop_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$vicidial_drop_log_archive_count = $aryA[0];
}
$sthA->finish();
if (!$Q) {print "\nProcessing vicidial_drop_log table... ($vicidial_drop_log_count|$vicidial_drop_log_archive_count)\n";}
$stmtA = "INSERT IGNORE INTO vicidial_drop_log_archive SELECT * from vicidial_drop_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
if (!$Q) {print "$sthArows rows inserted into vicidial_drop_log_archive table \n";}
$rv = $sthA->err();
if (!$rv)
{
$stmtA = "DELETE FROM vicidial_drop_log WHERE drop_date < '$del_time';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
if (!$Q) {print "$sthArows rows deleted from vicidial_drop_log table \n";}
$stmtA = "optimize table vicidial_drop_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
}
##### END vicidial_drop_log DAILY processing #####
##### BEGIN vicidial_dial_log DAILY processing #####
$stmtA = "SELECT count(*) from vicidial_dial_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
@@ -1277,6 +1354,56 @@ if (!$T)
}
##### vicidial_drop_log
$stmtA = "SELECT count(*) from vicidial_drop_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$vicidial_drop_log_count = $aryA[0];
}
$sthA->finish();
$stmtA = "SELECT count(*) from vicidial_drop_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$vicidial_drop_log_archive_count = $aryA[0];
}
$sthA->finish();
if (!$Q) {print "\nProcessing vicidial_drop_log table... ($vicidial_drop_log_count|$vicidial_drop_log_archive_count)\n";}
$stmtA = "INSERT IGNORE INTO vicidial_drop_log_archive SELECT * from vicidial_drop_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
if (!$Q) {print "$sthArows rows inserted into vicidial_drop_log_archive table \n";}
$rv = $sthA->err();
if (!$rv)
{
$stmtA = "DELETE FROM vicidial_drop_log WHERE drop_date < '$del_time';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
if (!$Q) {print "$sthArows rows deleted from vicidial_drop_log table \n";}
$stmtA = "optimize table vicidial_drop_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$stmtA = "optimize table vicidial_drop_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
}
##### vicidial_dial_log
$stmtA = "SELECT count(*) from vicidial_dial_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
+52 -3
View File
@@ -116,9 +116,10 @@
# 170113-1645 - Added call menu in-group option DYNAMIC_INGROUP_VAR for use with cm_phonesearch.agi
# 170304-2039 - Added automated reports triggering code
# 170320-1338 - Added conf_qualify phones option for IAX
# 170327-0847 - Added drop list triggering code
#
$build = '170320-1338';
$build = '170327-0847';
$DB=0; # Debug flag
$teodDB=0; # flag to log Timeclock End of Day processes to log file
@@ -824,7 +825,7 @@ $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VA
##### Get the settings from system_settings #####
$stmtA = "SELECT sounds_central_control_active,active_voicemail_server,custom_dialplan_entry,default_codecs,generate_cross_server_exten,voicemail_timezones,default_voicemail_timezone,call_menu_qualify_enabled,allow_voicemail_greeting,reload_timestamp,meetme_enter_login_filename,meetme_enter_leave3way_filename,allow_chats,enable_auto_reports FROM system_settings;";
$stmtA = "SELECT sounds_central_control_active,active_voicemail_server,custom_dialplan_entry,default_codecs,generate_cross_server_exten,voicemail_timezones,default_voicemail_timezone,call_menu_qualify_enabled,allow_voicemail_greeting,reload_timestamp,meetme_enter_login_filename,meetme_enter_leave3way_filename,allow_chats,enable_auto_reports,enable_drop_lists FROM system_settings;";
# print "$stmtA\n";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -846,6 +847,7 @@ if ($sthArows > 0)
$meetme_enter_leave3way_filename = $aryA[11];
$SSallow_chats = $aryA[12];
$SSenable_auto_reports = $aryA[13];
$SSenable_drop_lists = $aryA[14];
}
$sthA->finish();
if ($DBXXX > 0) {print "SYSTEM SETTINGS: $sounds_central_control_active|$active_voicemail_server|$SScustom_dialplan_entry|$SSdefault_codecs\n";}
@@ -3952,7 +3954,7 @@ if ($sthBrows > 0)
################################################################################
##### BEGIN automated reports
################################################################################
if ($SSenable_auto_reports > 0)
if ($SSenable_auto_reports > 0)
{
$THISserver_voicemailSQL='';
if ($THISserver_voicemail > 0) {$THISserver_voicemailSQL=",'active_voicemail_server'";}
@@ -3997,6 +3999,53 @@ if ($SSenable_auto_reports > 0)
################################################################################
##### BEGIN drop lists
################################################################################
if ($SSenable_drop_lists > 0)
{
$THISserver_voicemailSQL='';
if ($THISserver_voicemail > 0) {$THISserver_voicemailSQL=",'active_voicemail_server'";}
$stmtA = "SELECT dl_id FROM vicidial_drop_lists where ( (dl_server IN('$server_ip'$THISserver_voicemailSQL) ) and ( ( (active='Y') and (dl_times LIKE \"%$reset_test%\") and ( (dl_weekdays LIKE \"%$wday%\") or (dl_monthdays LIKE \"%$mday%\") ) ) or (run_now_trigger='Y') ) ) order by dl_id limit 1000;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthBrows=$sthA->rows;
if ($DB) {print "Checking for Drop Lists: |$sthBrows|$stmtA|\n";}
$r=0;
while ($sthBrows > $r)
{
@aryA = $sthA->fetchrow_array;
$dl_idARY[$r] = $aryA[0];
$r++;
}
$sthA->finish();
if ($sthBrows > 0)
{
$r=0;
while ($sthBrows > $r)
{
$temp_droplist = $dl_idARY[$r];
$ar_command = "$PATHhome/AST_droplist_process.pl --quiet --log-to-adminlog --dl-id=$temp_droplist ";
if ($DB) {print "starting drop list process in a screen... |AR$temp_droplist|\n";}
`/usr/bin/screen -d -m -S AR$temp_droplist $ar_command `;
$stmtA="UPDATE vicidial_drop_lists SET run_now_trigger='N' where run_now_trigger='Y' and dl_server IN('$server_ip'$THISserver_voicemailSQL) and dl_id='$dl_idARY[$r]';";
$ARaffected_rows = $dbhA->do($stmtA);
if ($DB) {print "FINISHED: $ARaffected_rows|$stmtA|";}
$r++;
}
if ($DB) {print "Drop Lists DONE: $r\n";}
}
}
################################################################################
##### END drop lists
################################################################################
################################################################################
##### BEGIN reset lists
+19 -1
View File
@@ -122,6 +122,7 @@
# 151006-0936 - Changed campaign_cid_areacodes to operate with 2-5 digit areacodes
# 161102-1031 - Fixed QM partition problem
# 170313-1041 - Added CHAT option to inbound_queue_no_dial
# 170325-1106 - Added optional vicidial_drop_log logging
#
### begin parsing run-time options ###
@@ -282,7 +283,7 @@ $event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|';
#############################################
##### START QUEUEMETRICS LOGGING LOOKUP #####
$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,outbound_autodial_active,queuemetrics_loginout,queuemetrics_addmember_enabled,queuemetrics_pause_type FROM system_settings;";
$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,outbound_autodial_active,queuemetrics_loginout,queuemetrics_addmember_enabled,queuemetrics_pause_type,enable_drop_lists FROM system_settings;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@@ -299,6 +300,7 @@ if ($sthArows > 0)
$queuemetrics_loginout = $aryA[7];
$queuemetrics_addmember_enabled = $aryA[8];
$queuemetrics_pause_type = $aryA[9];
$enable_drop_lists = $aryA[10];
}
$sthA->finish();
##### END QUEUEMETRICS LOGGING LOOKUP #####
@@ -1604,6 +1606,14 @@ while($one_day_interval > 0)
$stmtB = "INSERT INTO vicidial_log_extended set uniqueid='$CLuniqueid',server_ip='$server_ip',call_date='$SQLdate',lead_id = '$CLlead_id',caller_code='$KLcallerid[$kill_vac]',custom_call_id='';";
$affected_rowsB = $dbhA->do($stmtB);
if ( ($enable_drop_lists > 1) && ($CLnew_status =~ /DROP/) )
{
$stmtC="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$CLuniqueid',server_ip='$server_ip',drop_date=NOW(),lead_id='$CLlead_id',campaign_id='$CLcampaign_id',status='DROP',phone_code='$CLphone_code',phone_number='$CLphone_number';";
$affected_rowsC = $dbhA->do($stmtC);
$event_string = "-- DROP vicidial_drop_log insert: |$affected_rowsC|$CLuniqueid|$CLlead_id|$CLnew_status|";
&event_logger;
}
$event_string = "| dead NA call added to log $CLuniqueid|$CLlead_id|$CLphone_number|$CLstatus|$CLnew_status|$affected_rows|$affected_rowsB|$insertVLcount";
&event_logger;
}
@@ -2413,6 +2423,14 @@ while($one_day_interval > 0)
$stmtB = "INSERT INTO vicidial_log_extended set uniqueid='$CLuniqueid',server_ip='$server_ip',call_date='$SQLdate',lead_id = '$CLlead_id',caller_code='$CLcallerid',custom_call_id='';";
$affected_rowsB = $dbhA->do($stmtB);
if ($enable_drop_lists > 1)
{
$stmtC="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$CLuniqueid',server_ip='$server_ip',drop_date=NOW(),lead_id='$CLlead_id',campaign_id='$CLcampaign_id',status='DROP',phone_code='$CLphone_code',phone_number='$CLphone_number';";
$affected_rowsC = $dbhA->do($stmtC);
$event_string = "-- DROP vicidial_drop_log insert: |$affected_rowsC|$CLuniqueid|$CLlead_id|";
&event_logger;
}
$event_string = "| dead NA call added to logs $CLuniqueid|$CLlead_id|$CLphone_number|$CLstatus|DROP|$affected_rows|$affected_rowsB|";
&event_logger;
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -496,7 +496,7 @@ if (length($report_id) > 1)
$sthA->finish();
### gather user information for last manager who edited the automated report
$stmtA = "SELECT user from vicidial_admin_log where event_section='AUTOREPORTS' and record_id='$report_id';";
$stmtA = "SELECT user from vicidial_admin_log where event_section='AUTOREPORTS' and record_id='$report_id' and event_type IN('ADD','MODIFY','COPY') order by admin_log_id desc limit 1;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
+31 -1
View File
@@ -25,7 +25,7 @@
# exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
#
#
# Copyright (C) 2016 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2017 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGELOG:
# 61010-1007 - First test build
@@ -75,6 +75,7 @@
# 161214-1717 - Fix for rare multi-server grab from IVR park issue
# 161226-1135 - rolled back previous fix
# 161226-1211 - Fix for previous rolled-back code
# 170325-1105 - Added optional vicidial_drop_log logging
#
# defaults for PreFork
@@ -1311,6 +1312,21 @@ sub process_request
$Euniqueid=$uniqueid;
$Euniqueid =~ s/\.\d+$//gi;
#############################################
##### SYSTEM SETTINGS LOOKUP #####
$stmtA = "SELECT enable_drop_lists FROM system_settings;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$enable_drop_lists = $aryA[0];
}
$sthA->finish();
##### END SYSTEM SETTINGS LOOKUP #####
###########################################
if ($calleridname !~ /^Y\d\d\d\d/)
{
########## FIND AND UPDATE vicidial_log ##########
@@ -1402,6 +1418,13 @@ sub process_request
$stmtA="INSERT IGNORE INTO vicidial_log_extended SET uniqueid='$uniqueid',server_ip='$VARserver_ip',call_date='$VD_call_time',lead_id='$VD_lead_id',caller_code='$VD_callerid',custom_call_id='' ON DUPLICATE KEY UPDATE server_ip='$VARserver_ip',call_date='$VD_call_time',lead_id='$VD_lead_id',caller_code='$VD_callerid';";
$VDLXPDaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- PDROP vicidial_extended_log insert: |$VDLXPDaffected_rows|$uniqueid|$CIDlead_id|$VDL_status|"; &agi_output;}
if ($enable_drop_lists > 1)
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='PDROP',phone_code='$VD_phone_code',phone_number='$VD_phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- PDROP vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$VD_lead_id|$VDL_status|"; &agi_output;}
}
}
### END if call answers but has not reached routing AGI, then log as a PDROP
}
@@ -1513,6 +1536,13 @@ sub process_request
}
}
}
if ( ( ($calleridname =~ /^Y\d\d\d\d/) && ($enable_drop_lists > 0) ) || ( ($calleridname !~ /^Y\d\d\d\d/) && ($enable_drop_lists > 1) ) )
{
$stmtA="INSERT IGNORE INTO vicidial_drop_log SET uniqueid='$uniqueid',server_ip='$VARserver_ip',drop_date=NOW(),lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='DROP',phone_code='$VD_phone_code',phone_number='$VD_phone_number';";
$VDDLaffected_rows = $dbhA->do($stmtA);
if ($AGILOG) {$agi_string = "-- DROP vicidial_drop_log insert: |$VDDLaffected_rows|$uniqueid|$VD_lead_id|$VD_campaign_id|"; &agi_output;}
}
}
##### BEGIN AUTO ALT PHONE DIAL SECTION #####
@@ -1698,7 +1698,8 @@ agent_script VARCHAR(50) default 'vicidial.php',
vdad_debug_logging ENUM('1','0') default '0',
agent_chat_screen_colors VARCHAR(20) default 'default',
enable_auto_reports ENUM('1','0') default '0',
enable_pause_code_limits ENUM('1','0') default '0'
enable_pause_code_limits ENUM('1','0') default '0',
enable_drop_lists ENUM('0','1','2') default '0'
) ENGINE=MyISAM;
CREATE TABLE vicidial_campaigns_list_mix (
@@ -3644,6 +3645,39 @@ index (report_times),
index (run_now_trigger)
) ENGINE=MyISAM;
CREATE TABLE vicidial_drop_lists (
dl_id VARCHAR(30) UNIQUE NOT NULL,
dl_name VARCHAR(100),
last_run DATETIME,
dl_server VARCHAR(30) default 'active_voicemail_server',
dl_times VARCHAR(100) default '',
dl_weekdays VARCHAR(7) default '',
dl_monthdays VARCHAR(100) default '',
drop_statuses VARCHAR(255) default ' DROP -',
list_id BIGINT(14) UNSIGNED,
duplicate_check VARCHAR(50) default 'NONE',
run_now_trigger ENUM('N','Y') default 'N',
active ENUM('N','Y') default 'N',
user_group VARCHAR(20) default '---ALL---',
closer_campaigns TEXT,
index (dl_times),
index (run_now_trigger)
) ENGINE=MyISAM;
CREATE TABLE vicidial_drop_log (
uniqueid VARCHAR(50) NOT NULL,
server_ip VARCHAR(15) NOT NULL,
drop_date DATETIME NOT NULL,
lead_id INT(9) UNSIGNED NOT NULL,
phone_code VARCHAR(10),
phone_number VARCHAR(18),
campaign_id VARCHAR(20) NOT NULL,
status VARCHAR(6) NOT NULL,
drop_processed ENUM('N','Y','U') default 'N',
index(drop_date),
index(drop_processed)
) ENGINE=MyISAM;
ALTER TABLE vicidial_email_list MODIFY message text character set utf8;
@@ -3828,6 +3862,10 @@ CREATE TABLE recording_log_archive LIKE recording_log;
ALTER TABLE recording_log_archive MODIFY recording_id INT(10) UNSIGNED UNIQUE NOT NULL;
ALTER TABLE recording_log_archive DROP PRIMARY KEY;
CREATE TABLE vicidial_drop_log_archive LIKE vicidial_drop_log;
DROP INDEX drop_date on vicidial_drop_log_archive;
CREATE UNIQUE INDEX vicidial_drop_log_archive_key on vicidial_drop_log_archive(drop_date, uniqueid);
GRANT RELOAD ON *.* TO cron@'%';
GRANT RELOAD ON *.* TO cron@localhost;
@@ -3902,4 +3940,4 @@ UPDATE vicidial_configuration set value='1766' where name='qc_database_version';
UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1496',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1497',db_schema_update_date=NOW(),reload_timestamp=NOW();
+41
View File
@@ -129,3 +129,44 @@ ALTER TABLE system_settings ADD enable_pause_code_limits ENUM('1','0') default '
ALTER TABLE vicidial_pause_codes ADD time_limit SMALLINT(5) UNSIGNED default '65000';
UPDATE system_settings SET db_schema_version='1496',db_schema_update_date=NOW() where db_schema_version < 1496;
ALTER TABLE system_settings ADD enable_drop_lists ENUM('0','1','2') default '0';
CREATE TABLE vicidial_drop_lists (
dl_id VARCHAR(30) UNIQUE NOT NULL,
dl_name VARCHAR(100),
last_run DATETIME,
dl_server VARCHAR(30) default 'active_voicemail_server',
dl_times VARCHAR(100) default '',
dl_weekdays VARCHAR(7) default '',
dl_monthdays VARCHAR(100) default '',
drop_statuses VARCHAR(255) default ' DROP -',
list_id BIGINT(14) UNSIGNED,
duplicate_check VARCHAR(50) default 'NONE',
run_now_trigger ENUM('N','Y') default 'N',
active ENUM('N','Y') default 'N',
user_group VARCHAR(20) default '---ALL---',
closer_campaigns TEXT,
index (dl_times),
index (run_now_trigger)
) ENGINE=MyISAM;
CREATE TABLE vicidial_drop_log (
uniqueid VARCHAR(50) NOT NULL,
server_ip VARCHAR(15) NOT NULL,
drop_date DATETIME NOT NULL,
lead_id INT(9) UNSIGNED NOT NULL,
phone_code VARCHAR(10),
phone_number VARCHAR(18),
campaign_id VARCHAR(20) NOT NULL,
status VARCHAR(6) NOT NULL,
drop_processed ENUM('N','Y','U') default 'N',
index(drop_date),
index(drop_processed)
) ENGINE=MyISAM;
CREATE TABLE vicidial_drop_log_archive LIKE vicidial_drop_log;
DROP INDEX drop_date on vicidial_drop_log_archive;
CREATE UNIQUE INDEX vicidial_drop_log_archive_key on vicidial_drop_log_archive(drop_date, uniqueid);
UPDATE system_settings SET db_schema_version='1497',db_schema_update_date=NOW() where db_schema_version < 1497;
File diff suppressed because one or more lines are too long
+17 -3
View File
@@ -72,7 +72,7 @@
# 170304-1354 - Added Automated Reports section to Admin
#
$stmt="SELECT admin_home_url,enable_tts_integration,callcard_enabled,custom_fields_enabled,allow_emails,level_8_disable_add,allow_chats,enable_languages,admin_row_click,admin_screen_colors,user_new_lead_limit,user_territories_active,qc_features_active,agent_soundboards from system_settings;";
$stmt="SELECT admin_home_url,enable_tts_integration,callcard_enabled,custom_fields_enabled,allow_emails,level_8_disable_add,allow_chats,enable_languages,admin_row_click,admin_screen_colors,user_new_lead_limit,user_territories_active,qc_features_active,agent_soundboards,enable_drop_lists from system_settings;";
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$admin_home_url_LU = $row[0];
@@ -89,6 +89,7 @@ $SSuser_new_lead_limit = $row[10];
$SSuser_territories_active = $row[11];
$SSqc_features_active = $row[12];
$SSagent_soundboards = $row[13];
$SSenable_drop_lists = $row[14];
$SSmenu_background='015B91';
$SSframe_background='D9E6FE';
@@ -1569,6 +1570,7 @@ if ($subcamp_font_size < 4) {$subcamp_font_size='11';}
$dnc_sh="CLASS=\"subhead_style\"";
$custom_sh="CLASS=\"subhead_style\"";
$cpcust_sh="CLASS=\"subhead_style\"";
$droplist_sh="CLASS=\"subhead_style\"";
if ($LOGdelete_from_dnc > 0) {$DNClink = _QXZ("Add-Delete DNC Number");}
else {$DNClink = _QXZ("Add DNC Number");}
@@ -1581,6 +1583,7 @@ if ($subcamp_font_size < 4) {$subcamp_font_size='11';}
if ($sh=='dnc') {$dnc_sh="CLASS=\"subhead_style_selected\"";}
if ($sh=='custom') {$custom_sh="CLASS=\"subhead_style_selected\"";}
if ($sh=='cpcust') {$cpcust_sh="CLASS=\"subhead_style_selected\"";}
if ($sh=='droplist') {$droplist_sh="CLASS=\"subhead_style_selected\"";}
?>
<TR <?php echo $list_sh ?><?php if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=100';\"";} ?>><TD ALIGN=LEFT> &nbsp;
@@ -1610,6 +1613,13 @@ if ($subcamp_font_size < 4) {$subcamp_font_size='11';}
<a href="./<?php echo $admin_lists_custom ?>?action=COPY_FIELDS_FORM" STYLE="text-decoration:none;"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Copy Custom Fields"); ?> </a>
<?php
}
if ($SSenable_drop_lists > 0)
{
?>
<TR <?php echo $droplist_sh ?><?php if ($SSadmin_row_click > 0) {echo " onclick=\"window.document.location='$ADMIN?ADD=100';\"";} ?>><TD ALIGN=LEFT> &nbsp;
<a href="<?php echo $ADMIN ?>?ADD=130" STYLE="text-decoration:none;"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Drop Lists"); ?> </a>
<?php
}
?>
</TD></TR>
<?php
@@ -2135,8 +2145,12 @@ if ($SSenable_languages == '1')
?>
<TR BGCOLOR=<?php echo $subcamp_color ?>><TD ALIGN=LEFT COLSPAN=2><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> &nbsp; <a href="<?php echo $ADMIN ?>?ADD=10"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Show Campaigns"); ?> </a> &nbsp; &nbsp; |<?php if ($add_copy_disabled < 1) { ?>
&nbsp; &nbsp; <a href="<?php echo $ADMIN ?>?ADD=11"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Add A New Campaign"); ?> </a> &nbsp; &nbsp; | &nbsp; &nbsp; <a href="<?php echo $ADMIN ?>?ADD=12"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Copy Campaign"); ?> </a> &nbsp; &nbsp; |<?php } ?> &nbsp; &nbsp; <a href="./AST_timeonVDADallSUMMARY.php"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Real-Time Campaigns Summary"); ?> </a></TD></TR>
<?php }
<?php }
if ( (strlen($droplist_sh) > 25) and ($SSenable_drop_lists > 0) ) {
?>
<TR BGCOLOR=<?php echo $subcamp_color ?>><TD ALIGN=LEFT COLSPAN=2><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> &nbsp; <a href="<?php echo $ADMIN ?>?ADD=130"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Show Drop Lists"); ?> </a> &nbsp; &nbsp; |<?php if ($add_copy_disabled < 1) { ?>
&nbsp; &nbsp; <a href="<?php echo $ADMIN ?>?ADD=131"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Add A New Drop List"); ?> </a><?php } ?></TD></TR>
<?php }
if (strlen($times_sh) > 25) {
?>
<TR BGCOLOR=<?php echo $times_color ?>><TD ALIGN=LEFT COLSPAN=2> &nbsp; <a href="<?php echo $ADMIN ?>?ADD=100000000"><FONT STYLE="font-family:HELVETICA;font-size:<?php echo $subcamp_font_size ?>;color:BLACK;"> <?php echo _QXZ("Show Call Times"); ?> </a> &nbsp;|<?php if ($add_copy_disabled < 1) { ?>
+98 -10
View File
@@ -117,6 +117,7 @@
# 170320-1346 - Added phones conf_qualify entry
# 170321-1130 - Added pause code limits entries
# 170322-1720 - Added filter-phone-list entry
# 170326-1135 - Added drop lists entries
#
@@ -2176,6 +2177,88 @@ if ($SSqc_features_active > 0)
<BR><BR><BR><BR>
<B><FONT SIZE=3>Drop Lists Help</FONT></B><BR><BR>
<A NAME="drop_lists">
<BR>
<?php echo _QXZ("The Drop Lists process allows you to take the phone numbers of calls that have been dropped from inbound groups and put them into a specified list at defined scheduled days and times."); ?>
<BR>
<BR>
<A NAME="drop_lists-dl_id">
<BR>
<B><?php echo _QXZ("Drop List ID"); ?> -</B><?php echo _QXZ("This is the ID of the Drop List entry, it must be from 2 to 30 characters in length and contain no spaces."); ?>
<BR>
<A NAME="drop_lists-dl_name">
<BR>
<B><?php echo _QXZ("Drop List Name"); ?> -</B><?php echo _QXZ("This is the name of the Drop List entry, it must be from 2 to 100 characters in length and it used to describe the drop list."); ?>
<BR>
<A NAME="drop_lists-last_run">
<BR>
<B><?php echo _QXZ("Last Run Time"); ?> -</B><?php echo _QXZ("This is the date and time of the last run of this drop list process."); ?>
<BR>
<A NAME="drop_lists-user_group">
<BR>
<B><?php echo _QXZ("Admin User Group"); ?> -</B><?php echo _QXZ("This is the administrative user group for this record, this allows admin viewing of this record restricted by user group. Default is --ALL-- which allows any admin user with Modify Lists permissions to view this record."); ?>
<BR>
<A NAME="drop_lists-dl_server">
<BR>
<B><?php echo _QXZ("Run Server"); ?> -</B><?php echo _QXZ("This is the machine that you want to use to run this drop list process. You must choose a server that runs the keepalive process every minute in the crontab. The default is to use the active voicemail server as defined in System Settings."); ?>
<BR>
<A NAME="drop_lists-dl_times">
<BR>
<B><?php echo _QXZ("Run Times"); ?> -</B><?php echo _QXZ("This is the list of times in HHMM format when you want the drop list process to run. You can specify multiple times by separating them with a dash, like how the List Reset Times feature works. The drop list process will gather all of the matching records since the last time the process was run."); ?>
<BR>
<A NAME="drop_lists-dl_weekdays">
<BR>
<B><?php echo _QXZ("Run Weekdays"); ?> -</B><?php echo _QXZ("This is the list of days of the week when you want the drop list process to run. Either this option or the Month Days field below must be set for the process to run automatically."); ?>
<BR>
<A NAME="drop_lists-dl_monthdays">
<BR>
<B><?php echo _QXZ("Run Month Days"); ?> -</B><?php echo _QXZ("This is the list of days of the month in DD format when you want the drop list process to run. You can specify multiple month days by separating them with a dash. Either this option or the Weekdays field above must be set for the process to run automatically."); ?>
<BR>
<A NAME="drop_lists-duplicate_check">
<BR>
<B><?php echo _QXZ("Duplicate Check"); ?> -</B><?php echo _QXZ("This setting allows you to specify if the drop list process will check for duplicates before adding a new lead that was gathered from the drop list process. You can select LIST which will check for duplicate phone numbers within the leads already within the specified list or LIST_CAMPAIGN_LISTS which will also check for duplicate phone numbers within all of the lists associated with the campaign that the list defined below is assigned to. Default is NONE for no duplicate checking."); ?>
<BR>
<A NAME="drop_lists-list_id">
<BR>
<B><?php echo _QXZ("List ID"); ?> -</B><?php echo _QXZ("This is the list ID of the list that the new leads gathered from the drop list process are to be inserted into."); ?>
<BR>
<A NAME="drop_lists-active">
<BR>
<B><?php echo _QXZ("Active"); ?> -</B><?php echo _QXZ("The drop list process will only run on the set schedule above if active is set to Y. Default is N."); ?>
<BR>
<A NAME="drop_lists-run_now_trigger">
<BR>
<B><?php echo _QXZ("Run Now Trigger"); ?> -</B><?php echo _QXZ("This option offers a way to test this drop list process before setting it to active. It can take up to one minute for the process to start running after submitting this page with this field set to Y. Default is N."); ?>
<BR>
<A NAME="drop_lists-drop_statuses">
<BR>
<B><?php echo _QXZ("Drop Statuses"); ?> -</B><?php echo _QXZ("This is the list of drop statuses that will be used to gather the new leads by the drop list process. Default is DROP."); ?>
<BR>
<A NAME="drop_lists-closer_campaigns">
<BR>
<B><?php echo _QXZ("Inbound Groups"); ?> -</B><?php echo _QXZ("This is the list of Inbound Groups that will be used to gather the new leads by the drop list process."); ?>
<BR><BR><BR><BR>
<B><FONT SIZE=3>Lists Custom Fields Help</FONT></B><BR><BR>
@@ -5116,11 +5199,6 @@ FR_SPAC 00 00 00 00 00 - <?php echo _QXZ("France space separated phone number");
<BR>
<B><?php echo _QXZ("Max FILL Calls per Second"); ?> -</B><?php echo _QXZ("This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40."); ?>
<BR>
<A NAME="settings-user_new_lead_limit">
<BR>
<B><?php echo _QXZ("New Leads Per List Limit"); ?> -</B><?php echo _QXZ("This setting enables the new lead limits per list to be set on the list modify page and the user list new lead limit page. This feature will only work properly if the campaign is set to either the MANUAL or INBOUND_MAN Dial Method and No Hopper dialing is enabled. Default is 0 for disabled."); ?>
<BR>
<A NAME="settings-web_loader_phone_length">
<BR>
@@ -5176,16 +5254,21 @@ FR_SPAC 00 00 00 00 00 - <?php echo _QXZ("France space separated phone number");
<BR>
<B><?php echo _QXZ("Enable CallCard"); ?> -</B><?php echo _QXZ("This setting enables the CallCard features to allow for callers to use pin numbers and card_ids that have a balance of minutes and those balances can have agent talk time on customer calls to in-groups deducted. Default is 0 for disabled."); ?>
<BR>
<A NAME="settings-custom_fields_enabled">
<BR>
<B><?php echo _QXZ("Enable Custom List Fields"); ?> -</B><?php echo _QXZ("This setting enables the custom list fields feature that allows for custom data fields to be defined in the administration web interface on a per-list basis and then have those fields available in a FORM tab to the agent in the agent web interface. Default is 0 for disabled."); ?>
<BR>
<A NAME="settings-test_campaign_calls">
<BR>
<B><?php echo _QXZ("Enable Campaign Test Calls"); ?> -</B><?php echo _QXZ("This setting enables the ability to enter a phone code and phone number into fields at the bottom of the Campaign Detail screen and place a phone call to that number as if it were a lead being auto-dialed in the system. The phone number will be stored as a new lead in the manual dial list ID list. The campaign must be active for this feature to be enabled, and it is recommended that the lists assigned to the campaign all be set to inactive. The dial prefix, dial timeout and all other dialing related features, except for DNC and call time options, will affect the dialing of the test number. The phone call will be placed on the server selected as the voicemail server in the system settings. Default is 0 for disabled."); ?>
<BR>
<A NAME="settings-user_new_lead_limit">
<BR>
<B><?php echo _QXZ("New Leads Per List Limit"); ?> -</B><?php echo _QXZ("This setting enables the new lead limits per list to be set on the list modify page and the user list new lead limit page. This feature will only work properly if the campaign is set to either the MANUAL or INBOUND_MAN Dial Method and No Hopper dialing is enabled. Default is 0 for disabled."); ?>
<BR>
<A NAME="settings-custom_fields_enabled">
<BR>
<B><?php echo _QXZ("Enable Custom List Fields"); ?> -</B><?php echo _QXZ("This setting enables the custom list fields feature that allows for custom data fields to be defined in the administration web interface on a per-list basis and then have those fields available in a FORM tab to the agent in the agent web interface. Default is 0 for disabled."); ?>
<BR>
<A NAME="settings-expanded_list_stats">
<BR>
@@ -5201,6 +5284,11 @@ FR_SPAC 00 00 00 00 00 - <?php echo _QXZ("France space separated phone number");
<BR>
<B><?php echo _QXZ("Enable DID Entry List ID"); ?> -</B><?php echo _QXZ("This setting if enabled will allow a manager to define an entry list id to use on the DID modify screen. Default is 0 for disabled."); ?>
<BR>
<A NAME="settings-enable_drop_lists">
<BR>
<B><?php echo _QXZ("Enable Drop Lists"); ?> -</B><?php echo _QXZ("This setting if enabled will make the Drop Lists feature appear under the LISTS menu. This feature set can take dropped call log records and create new leads in a list from multiple inbound groups. Default is 0 for disabled."); ?>
<BR>
<A NAME="settings-agent_debug_logging">
<BR>