Added --carrier-daily flag, only active if --daily flag is also used in archive log tables script

Added campaign features for Answering Machine Message Wildcards

git-svn-id: svn://192.168.202.10@2408 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2015-11-10 22:35:41 +00:00
parent 77657e9910
commit 25b6863484
7 changed files with 433 additions and 21 deletions
+4
View File
@@ -185,6 +185,10 @@ OTHER CHANGES:
buffer version of the Listen process. Requires newer Net::Telnet perl
module version.
45. Added Answering Machine Message Wildcards features for campaigns. Allows for
calls sent to a message to play a different message depending on whether
a wildcard text string is present in a selected lead data field.
+291 -6
View File
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
# VD_amd.agi version 2.10
# VD_amd.agi version 2.12
#
# runs after a call goes through AMD in extensions.conf to send the call on to
# it's proper destination, or when agent sends to VM message
@@ -48,6 +48,7 @@
# 140312-2110 - Added CALLID as recording filename variable
# 141211-1634 - Added cpd_unknown_action campaign option
# 150223-1443 - Added DYN filename prefix for non-TTS dynamic files to be used for am message
# 151109-1708 - Added new campaign feature allowing for different messages based on answering machine message wildcards
#
$script = 'VD_amd.agi';
@@ -381,9 +382,9 @@ else
if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid|"; &agi_output;}
}
$IN_campaign_id='';
$selected_campaign='';
### Grab vmail forward message values from the database
$stmtA = "SELECT am_message_exten,amd_send_to_vmx,waitforsilence_options,survey_recording,campaign_rec_filename,cpd_amd_action,amd_inbound_group,amd_callmenu,cpd_unknown_action FROM vicidial_campaigns where campaign_id = '$VD_campaign_id' limit 1;";
$stmtA = "SELECT am_message_exten,amd_send_to_vmx,waitforsilence_options,survey_recording,campaign_rec_filename,cpd_amd_action,amd_inbound_group,amd_callmenu,cpd_unknown_action,campaign_id,am_message_wildcards FROM vicidial_campaigns where campaign_id = '$VD_campaign_id' limit 1;";
if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -400,13 +401,15 @@ else
$amd_inbound_group = $aryA[6];
$amd_callmenu = $aryA[7];
$cpd_unknown_action = $aryA[8];
$selected_campaign = $aryA[9];
$am_message_wildcards = $aryA[10];
$sthA->finish();
}
else
{
$sthA->finish();
### Grab vmail forward message values from the database
$stmtA = "SELECT am_message_exten,amd_send_to_vmx,waitforsilence_options,survey_recording,campaign_rec_filename,cpd_amd_action,amd_inbound_group,amd_callmenu,cpd_unknown_action,campaign_id FROM vicidial_campaigns where closer_campaigns LIKE \"% $VD_campaign_id %\" order by campaign_id limit 1;";
$stmtA = "SELECT am_message_exten,amd_send_to_vmx,waitforsilence_options,survey_recording,campaign_rec_filename,cpd_amd_action,amd_inbound_group,amd_callmenu,cpd_unknown_action,campaign_id,am_message_wildcards FROM vicidial_campaigns where closer_campaigns LIKE \"% $VD_campaign_id %\" order by campaign_id limit 1;";
if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -423,9 +426,10 @@ else
$amd_inbound_group = $aryA[6];
$amd_callmenu = $aryA[7];
$cpd_unknown_action = $aryA[8];
$IN_campaign_id = $aryA[9];
$selected_campaign = $aryA[9];
$am_message_wildcards = $aryA[10];
$sthA->finish();
if ($AGILOG) {$agi_string = "-- Inbound call, settings gathered from: |$IN_campaign_id|$DB_am_message_exten|$DB_amd_send_to_vmx|$waitforsilence_options"; &agi_output;}
if ($AGILOG) {$agi_string = "-- Inbound call, settings gathered from: |$selected_campaign|$DB_am_message_exten|$DB_amd_send_to_vmx|$waitforsilence_options"; &agi_output;}
}
else
{$sthA->finish();}
@@ -764,6 +768,287 @@ else
##### END Check if prompt uses TTS, if so, create TTS and set the filename to the generated prompt #####
### BEGIN am message wildcards ###
if ($am_message_wildcards =~ /Y/)
{
$stmtA = "SELECT count(*) FROM vicidial_amm_multi where campaign_id='$selected_campaign' and active='Y';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArowsW=$sthA->rows;
$sthA->finish();
if ($sthArowsW > 0)
{
$stmtA = "SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$VD_lead_id';";
$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;
$AMM_lead_id = $aryA[0];
$AMM_entry_date = $aryA[1];
$AMM_modify_date = $aryA[2];
$AMM_status = $aryA[3];
$AMM_user = $aryA[4];
$AMM_vendor_lead_code = $aryA[5];
$AMM_source_id = $aryA[6];
$AMM_list_id = $aryA[7];
$AMM_phone_number = $aryA[8];
$AMM_title = $aryA[9];
$AMM_first_name = $aryA[10];
$AMM_middle_initial = $aryA[11];
$AMM_last_name = $aryA[12];
$AMM_address1 = $aryA[13];
$AMM_address2 = $aryA[14];
$AMM_address3 = $aryA[15];
$AMM_city = $aryA[16];
$AMM_state = $aryA[17];
$AMM_province = $aryA[18];
$AMM_postal_code = $aryA[19];
$AMM_country_code = $aryA[20];
$AMM_gender = $aryA[21];
$AMM_date_of_birth = $aryA[22];
$AMM_alt_phone = $aryA[23];
$AMM_email = $aryA[24];
$AMM_security_phrase = $aryA[25];
$AMM_comments = $aryA[26];
$AMM_called_count = $aryA[27];
$AMM_last_local_call_time = $aryA[28];
$AMM_rank = $aryA[29];
$AMM_owner = $aryA[30];
}
$sthA->finish();
$stmtA = "SELECT amm_field,amm_rank,amm_wildcard,amm_filename FROM vicidial_amm_multi where campaign_id='$selected_campaign' and active='Y' order by amm_rank,amm_field;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArowsA=$sthA->rows;
$w=0;
$amm_filename_match='';
while ( ($sthArowsA > $w) && (length($amm_filename_match) < 1) )
{
@aryA = $sthA->fetchrow_array;
$amm_field = $aryA[0];
$amm_rank = $aryA[1];
$amm_wildcard = $aryA[2];
$amm_filename = $aryA[3];
if ( (length($amm_wildcard)>0) && (length($amm_wildcard)>0) && (length($amm_filename)>0) )
{
if ($amm_field =~ /vendor_lead_code/)
{
if ($AMM_vendor_lead_code =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM vendor_lead_code Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_vendor_lead_code)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /source_id/)
{
if ($AMM_source_id =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM source_id Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_source_id)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /list_id/)
{
if ($AMM_list_id =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM list_id Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_list_id)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /phone_number/)
{
if ($AMM_phone_number =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM phone_number Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_phone_number)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /title/)
{
if ($AMM_title =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM title Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_title)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /first_name/)
{
if ($AMM_first_name =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM first_name Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_first_name)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /middle_initial/)
{
if ($AMM_middle_initial =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM middle_initial Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_middle_initial)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /last_name/)
{
if ($AMM_last_name =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM last_name Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_last_name)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /address1/)
{
if ($AMM_address1 =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM address1 Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_address1)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /address2/)
{
if ($AMM_address2 =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM address2 Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_address2)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /address3/)
{
if ($AMM_address3 =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM address3 Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_address3)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /city/)
{
if ($AMM_city =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM city Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_city)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /state/)
{
if ($AMM_state =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM state Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_state)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /province/)
{
if ($AMM_province =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM province Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_province)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /postal_code/)
{
if ($AMM_postal_code =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM postal_code Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_postal_code)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /country_code/)
{
if ($AMM_country_code =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM country_code Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_country_code)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /gender/)
{
if ($AMM_gender =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM gender Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_gender)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /date_of_birth/)
{
if ($AMM_date_of_birth =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM date_of_birth Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_date_of_birth)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /alt_phone/)
{
if ($AMM_alt_phone =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM alt_phone Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_alt_phone)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /email/)
{
if ($AMM_email =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM email Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_email)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /security_phrase/)
{
if ($AMM_security_phrase =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM security_phrase Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_security_phrase)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /comments/)
{
if ($AMM_comments =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM comments Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_comments)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /rank/)
{
if ($AMM_rank =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM rank Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_rank)|$amm_filename|"; &agi_output;}
}
}
if ($amm_field =~ /owner/)
{
if ($AMM_owner =~ /$amm_wildcard/i)
{
$amm_filename_match = $amm_filename;
if ($AGILOG) {$agi_string = "AMM owner Match Found: |$amm_field|$amm_rank|$amm_wildcard($AMM_owner)|$amm_filename|"; &agi_output;}
}
}
if (length($amm_filename_match) > 0)
{$DB_am_message_exten = $amm_filename_match;}
else
{
if ($AGILOG) {$agi_string = "no AMM match: |$amm_field|$amm_rank|$amm_wildcard|$amm_filename|"; &agi_output;}
}
}
else
{
if ($AGILOG) {$agi_string = "AMM entry invalid: |$amm_field|$amm_rank|$amm_wildcard|$amm_filename|"; &agi_output;}
}
$w++;
}
$sthA->finish();
}
}
### END am message wildcards ###
### run waitforsilence if enabled
if ($AMDCAUSE !~ /^Unknown|\?\?\?/i)
{
@@ -40,6 +40,7 @@
# 140305-0955 - Changed to use --days (--months is approximation[bug fix]), changed default from 2 months to 2 years
# 150107-2308 - Added vicidial_api_log to daily process
# 150712-2208 - Added vicidial_dtmf_log
# 151109-1646 - Added --carrier-daily flag, only active if --daily flag is also used
#
$CALC_TEST=0;
@@ -59,6 +60,7 @@ if (length($ARGV[0])>1)
{
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 " [--carrier-daily] = will also archive the vicidial_carrier_log table when --daily is run\n";
print " [--days=XX] = number of days to archive past, default is 732(2 years)\n";
print " [--months=XX] = number of months to archive past, default is 24(2 years) If 'days' used then 'months' ignored\n";
print " [--closer-log] = archive vicidial_closer_log records\n";
@@ -89,6 +91,12 @@ if (length($ARGV[0])>1)
$daily=1;
if ($Q < 1)
{print "\n----- DAILY ONLY -----\n\n";}
if ($args =~ /--carrier-daily/i)
{
$carrier_daily=1;
if ($Q < 1)
{print "\n----- CARRIER DAILY OPTION -----\n\n";}
}
}
if ($args =~ /--months=/i)
{
@@ -430,6 +438,59 @@ if (!$T)
##### END vicidial_api_log DAILY processing #####
if ($carrier_daily)
{
##### BEGIN vicidial_carrier_log DAILY processing #####
$stmtA = "SELECT count(*) from vicidial_carrier_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_carrier_log_count = $aryA[0];
}
$sthA->finish();
$stmtA = "SELECT count(*) from vicidial_carrier_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_carrier_log_archive_count = $aryA[0];
}
$sthA->finish();
if (!$Q) {print "\nProcessing vicidial_carrier_log table... ($vicidial_carrier_log_count|$vicidial_carrier_log_archive_count)\n";}
$stmtA = "INSERT IGNORE INTO vicidial_carrier_log_archive SELECT * from vicidial_carrier_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_carrier_log_archive table \n";}
$rv = $sthA->err();
if (!$rv)
{
$stmtA = "DELETE FROM vicidial_carrier_log WHERE call_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_carrier_log table \n";}
$stmtA = "optimize table vicidial_carrier_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$stmtA = "optimize table vicidial_carrier_log_archive;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
}
##### END vicidial_carrier_log DAILY processing #####
}
### calculate time to run script ###
$secY = time();
$secZ = ($secY - $secX);
@@ -934,7 +934,8 @@ web_form_address_three TEXT,
manual_dial_override_field ENUM('ENABLED','DISABLED') default 'ENABLED',
status_display_ingroup ENUM('ENABLED','DISABLED') default 'ENABLED',
customer_gone_seconds SMALLINT(5) UNSIGNED default '30',
agent_display_fields VARCHAR(50) default ''
agent_display_fields VARCHAR(50) default '',
am_message_wildcards ENUM('Y','N') default 'N'
) ENGINE=MyISAM;
CREATE TABLE vicidial_lists (
@@ -3355,6 +3356,20 @@ PRIMARY KEY (custom_report_id),
UNIQUE KEY custom_report_name_key (report_name)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE vicidial_amm_multi (
amm_id INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
campaign_id VARCHAR(20) NOT NULL,
entry_type ENUM('campaign','ingroup','list','') default '',
active ENUM('Y','N') default 'N',
amm_field VARCHAR(30) default 'vendor_lead_code',
amm_rank SMALLINT(5) default '1',
amm_wildcard VARCHAR(100) default '',
amm_filename VARCHAR(255) default '',
amm_description VARCHAR(255) default '',
PRIMARY KEY (amm_id),
KEY vicidial_AMM_multi_campaign_id_key (campaign_id)
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE vicidial_email_list MODIFY message text character set utf8;
@@ -3604,4 +3619,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='1434',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1435',db_schema_update_date=NOW(),reload_timestamp=NOW();
+18
View File
@@ -344,3 +344,21 @@ UPDATE system_settings SET db_schema_version='1433',db_schema_update_date=NOW()
ALTER TABLE system_settings ADD usacan_phone_dialcode_fix ENUM('0','1') default '0';
UPDATE system_settings SET db_schema_version='1434',db_schema_update_date=NOW() where db_schema_version < 1434;
CREATE TABLE vicidial_amm_multi (
amm_id INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
campaign_id VARCHAR(20) NOT NULL,
entry_type ENUM('campaign','ingroup','list','') default '',
active ENUM('Y','N') default 'N',
amm_field VARCHAR(30) default 'vendor_lead_code',
amm_rank SMALLINT(5) default '1',
amm_wildcard VARCHAR(100) default '',
amm_filename VARCHAR(255) default '',
amm_description VARCHAR(255) default '',
PRIMARY KEY (amm_id),
KEY vicidial_AMM_multi_campaign_id_key (campaign_id)
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE vicidial_campaigns ADD am_message_wildcards ENUM('Y','N') default 'N';
UPDATE system_settings SET db_schema_version='1435',db_schema_update_date=NOW() where db_schema_version < 1435;
File diff suppressed because one or more lines are too long
+13
View File
@@ -65,6 +65,7 @@
# 151006-0935 - Updated campaign_cid_areacodes entry
# 151020-0704 - Added Status Groups and Custom Reports entries
# 151030-0639 - Added usacan_phone_dialcode_fix entry
# 151104-1541 - Added am_message_wildcards entry
#
@@ -1021,6 +1022,11 @@ if ($SSoutbound_autodial_active > 0)
<BR>
<B><?php echo _QXZ("WaitForSilence Options"); ?> -</B><?php echo _QXZ("If Wait For Silence is desired on calls that are detected as Answering Machines then this field has those options. There are two settings separated by a comma, the first option is how long to detect silence in milliseconds and the second option is for how many times to detect that before playing the message. Default is EMPTY for disabled. A standard value for this would be wait for 2 seconds of silence twice: 2000,2"); ?>
<BR>
<A NAME="campaigns-am_message_wildcards">
<BR>
<B><?php echo _QXZ("AM Message Wildcards"); ?> -</B><?php echo _QXZ("This option, if enabled, allows you to go to the AM Message Wildcard administration page where you can define wildcards that can match data in a default lead field and can play a different message based upon the data in a specific lead. Default is N for disabled."); ?>
<BR>
<A NAME="campaigns-amd_send_to_vmx">
<BR>
@@ -5596,6 +5602,13 @@ if ($SSqc_features_active > 0)
<?php echo _QXZ("This page allows you to define Alternate URLs with conditions in place of the simple URL option for Dispo, Start, Add Lead or No Agent URLs. The RANK field will define the order in which the URLs are requested, this is important because if you have a URL that may take a few seconds to run ranked as 1, that will mean that any URLs ranked after it will have to wait to be run until that first URL request receives a response. The ACTIVE field will determine whether the specific URL is run. The STATUSES field only works for the Dispo URLs and will determine which disposition statuses will trigger the URL being run, if you want to run the entry for all statuses just fill in ---ALL--- in this field. The URL field works the same as it would in the URL option in campaigns, in-groups and lists, and it is also limited to 2000 characters in length. If you want to delete a URL, it must first be set to not active, then you can click on the DELETE link below the SUBMIT button for that URL entry."); ?>
<BR><BR><BR><BR>
<A NAME="amm_multi">
<B><FONT SIZE=3><?php echo _QXZ("AM Message Wildcards"); ?></FONT></B><BR><BR>
<?php echo _QXZ("This page allows you to define Am Message Wildcards that will check lead data from the defined lead fields for matches in the defined order specified on this page. For example, if you add a wildcard with the word -vacation- tied to the vendor_lead_code field, and the lead being played a message has -vacation- in that field, then it will hear the message defined in that AM Message Wildcard record. If you want to delete a wildcard, it must first be set to not active, then you can click on the DELETE link below the SUBMIT button for that wildcard entry."); ?>
<BR><BR><BR><BR>
<A NAME="custom_reports_admin">