Added new campaign feature to automatically reschedule ANYONE callbacks when they are dispositioned as a non-Human-Answered status flag status.

git-svn-id: svn://192.168.202.10@3018 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2018-08-19 04:01:41 +00:00
parent 0fa43a8acf
commit d473bfb466
10 changed files with 1041 additions and 262 deletions
+6
View File
@@ -337,6 +337,12 @@ OTHER CHANGES:
92. Added "Agent Screen Logout Link Credentials" System Setting to change the
agent screen logout page login link to not include user credentials.
93. Added new campaign feature to force agents to call back their triggered
USERONLY Scheduled Callbacks.
94. Added new campaign feature to automatically reschedule ANYONE callbacks when
they are dispositioned as a non-Human-Answered status flag status.
+46 -1
View File
@@ -129,9 +129,10 @@
# 180204-0931 - Added rolling of vicidial_inbound_callback_queue records
# 180301-1257 - Added more teodDB logging
# 180512-2214 - Added reset of hopper_calls_today
# 180818-2229 - Added rolling of vicidial_recent_ascb_calls records
#
$build = '180512-2214';
$build = '180818-2229';
$DB=0; # Debug flag
$teodDB=0; # flag to log Timeclock End of Day processes to log file
@@ -1409,6 +1410,32 @@ if ($timeclock_end_of_day_NOW > 0)
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
}
# roll of SENT/EXPIRED vicidial_recent_ascb_calls records
if (!$Q) {print "\nProcessing vicidial_recent_ascb_calls table...\n";}
$stmtA = "INSERT IGNORE INTO vicidial_recent_ascb_calls_archive SELECT * from vicidial_recent_ascb_calls where call_date < \"$TDSQLdate\";";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
$event_string = "$sthArows rows inserted into vicidial_recent_ascb_calls_archive table";
if (!$Q) {print "$event_string \n";}
if ($teodDB) {&teod_logger;}
$rv = $sthA->err();
if (!$rv)
{
$stmtA = "DELETE FROM vicidial_recent_ascb_calls WHERE call_date < \"$TDSQLdate\";";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
$event_string = "$sthArows rows deleted from vicidial_recent_ascb_calls table";
if (!$Q) {print "$event_string \n";}
if ($teodDB) {&teod_logger;}
$stmtA = "optimize table vicidial_recent_ascb_calls;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
}
# reset in-group closing_time_now_trigger trigger flag
$stmtA = "UPDATE vicidial_inbound_groups SET closing_time_now_trigger='N' WHERE closing_time_now_trigger='Y';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
@@ -1629,6 +1656,24 @@ if ($timeclock_end_of_day_NOW > 0)
##### END vicidial_vdad_log end of day process removing records older than 7 days #####
##### BEGIN vicidial_recent_ascb_calls_archive end of day process removing records older than 7 days #####
$stmtA = "DELETE from vicidial_recent_ascb_calls_archive where call_date < \"$SDSQLdate\";";
if($DBX){print STDERR "\n|$stmtA|\n";}
$affected_rows = $dbhA->do($stmtA);
if($DB){print STDERR "\n|$affected_rows vicidial_recent_ascb_calls_archive records older than 7 days purged|\n";}
if ($teodDB) {$event_string = "vicidial_recent_ascb_calls_archive records older than 7 days purged: |$stmtA|$affected_rows|"; &teod_logger;}
$stmtA = "optimize table vicidial_recent_ascb_calls_archive;";
if($DBX){print STDERR "\n|$stmtA|\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@aryA = $sthA->fetchrow_array;
if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";}
$sthA->finish();
##### END vicidial_recent_ascb_calls_archive end of day process removing records older than 7 days #####
##### BEGIN usacan_phone_dialcode_fix funciton #####
if ($usacan_phone_dialcode_fix > 0)
{
File diff suppressed because it is too large Load Diff
+35 -7
View File
@@ -41,6 +41,7 @@
# 170915-1915 - Added support for per server routing prefix needed for Asterisk 13+
# 171205-2022 - Fix for double-dialing issue on high-volume systems
# 180214-1558 - Added CID Group functionality
# 180812-1025 - Added code for scheduled_callbacks_auto_reschedule campaign feature
#
### begin parsing run-time options ###
@@ -341,7 +342,7 @@ while($one_day_interval > 0)
### grab the dial_level and multiply by active agents to get your goalcalls
$DBIPadlevel[$camp_CIPct]=0;
$stmtA = "SELECT dial_timeout,dial_prefix,campaign_cid,active,campaign_vdad_exten,omit_phone_code,auto_alt_dial,queue_priority,use_custom_cid,cid_group_id FROM vicidial_campaigns where campaign_id='$DBfill_campaign[$camp_CIPct]';";
$stmtA = "SELECT dial_timeout,dial_prefix,campaign_cid,active,campaign_vdad_exten,omit_phone_code,auto_alt_dial,queue_priority,use_custom_cid,cid_group_id,scheduled_callbacks_auto_reschedule FROM vicidial_campaigns where campaign_id='$DBfill_campaign[$camp_CIPct]';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@@ -360,6 +361,7 @@ while($one_day_interval > 0)
$DBIPqueue_priority[$camp_CIPct] = $aryA[7];
$DBIPuse_custom_cid[$camp_CIPct] = $aryA[8];
$DBIPcid_group_id[$camp_CIPct] = $aryA[9];
$DBIPscheduled_callbacks_auto_reschedule[$camp_CIPct] = $aryA[10];
if ($omit_phone_code =~ /Y/) {$DBIPomitcode[$camp_CIPct] = 1;}
else {$DBIPomitcode[$camp_CIPct] = 0;}
@@ -607,7 +609,7 @@ while($one_day_interval > 0)
$lead_id=''; $phone_code=''; $phone_number=''; $called_count='';
while ($call_CMPIPct < $UDaffected_rows)
{
$stmtA = "SELECT lead_id,alt_dial FROM vicidial_hopper where campaign_id='$DBfill_campaign[$camp_CIPct]' and status='QUEUE' and user='VDFC_$DB_camp_server_server_ip[$server_CIPct]' order by priority desc,hopper_id LIMIT 1;";
$stmtA = "SELECT lead_id,alt_dial,source FROM vicidial_hopper where campaign_id='$DBfill_campaign[$camp_CIPct]' and status='QUEUE' and user='VDFC_$DB_camp_server_server_ip[$server_CIPct]' order by priority desc,hopper_id LIMIT 1;";
print "|$stmtA|\n";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -616,8 +618,9 @@ while($one_day_interval > 0)
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$lead_id = $aryA[0];
$alt_dial = $aryA[1];
$lead_id = $aryA[0];
$alt_dial = $aryA[1];
$hopper_source = $aryA[2];
}
$sthA->finish();
@@ -755,6 +758,34 @@ while($one_day_interval > 0)
$vl_updates[$staggered_ct] = $stmtA;
}
$PADlead_id = sprintf("%010s", $lead_id); while (length($PADlead_id) > 10) {chop($PADlead_id);}
# VmddhhmmssLLLLLLLLLL Set the callerIDname to a unique call_id string
$VqueryCID = "V$CIDdate$PADlead_id";
if ( ( ($DBIPscheduled_callbacks_auto_reschedule[$camp_CIPct] !~ /DISABLED/) && (length($DBIPscheduled_callbacks_auto_reschedule[$camp_CIPct]) > 0) ) || ($hopper_source eq 'C') )
{
### gather vicidial_callbacks information for this lead, if any
$stmtA = "SELECT callback_id,callback_time,lead_status,list_id FROM vicidial_callbacks where lead_id='$lead_id' and status='LIVE' and recipient='ANYONE' order by callback_id limit 1;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArowsPSCB=$sthA->rows;
if ($sthArowsPSCB > 0)
{
@aryA = $sthA->fetchrow_array;
$PSCBcallback_id = $aryA[0];
$PSCBcallback_time = $aryA[1];
$PSCBlead_status = $aryA[2];
$PSCBlist_id = $aryA[3];
}
$sthA->finish();
### insert record in recent callbacks table
if ($sthArowsPSCB > 0)
{
$stmtA = "INSERT INTO vicidial_recent_ascb_calls SET call_date=NOW(),callback_date='$PSCBcallback_time',callback_id='$PSCBcallback_id',caller_code='$VqueryCID',lead_id='$lead_id',server_ip='$DB_camp_server_server_ip[$server_CIPct]',orig_status='$PSCBlead_status',reschedule='$DBIPscheduled_callbacks_auto_reschedule[$camp_CIPct]',list_id='$PSCBlist_id',rescheduled='U';";
$affected_rows = $dbhA->do($stmtA);
}
}
$stmtA = "DELETE FROM vicidial_hopper where lead_id='$lead_id';";
$affected_rows = $dbhA->do($stmtA);
@@ -876,7 +907,6 @@ while($one_day_interval > 0)
if ( (length($RECprefix)>0) && ($called_count < $RECcount) )
{$Local_out_prefix .= "$RECprefix";}
}
$PADlead_id = sprintf("%010s", $lead_id); while (length($PADlead_id) > 10) {chop($PADlead_id);}
if ($lists_update !~ /'$list_id'/) {$lists_update .= "'$list_id',"; $LUcount++;}
@@ -892,8 +922,6 @@ while($one_day_interval > 0)
if (length($ext_context) < 1) {$ext_context='default';}
### use manager middleware-app to connect the next call to the meetme room
# VmmddhhmmssLLLLLLLLL
$VqueryCID = "V$CIDdate$PADlead_id";
if ($CCID_on) {$CIDstring = "\"$VqueryCID\" <$CCID>";}
else {$CIDstring = "$VqueryCID";}
+1 -1
View File
@@ -67,7 +67,7 @@ cd ../../
wget http://download.vicidial.com/beta-apps/asterisk-13.21.0-vici.tar.gz
tar xvfz asterisk-13.21.0-vici.tar.gz
cd asterisk-13.21.0-vici/
./configure --with-dahdi=/usr/src/asterisk/dahdi-linux-complete-2.11.1+2.11.1/ --with-gsm=internal --with-opus=/usr/lib64/ --with-speex=/usr/lib64/ --with-srtp=/usr/lib64/ --with-ogg=/usr/lib64/ --with-ssl --enable-asteriskssl --with-pjproject-bundled
./configure --with-dahdi=/usr/src/asterisk/dahdi-linux-complete-2.11.1+2.11.1/ --with-gsm=internal --with-opus=/usr/lib64/ --with-speex=/usr/lib64/ --with-srtp=/usr/lib64/ --with-ogg=/usr/lib64/ --with-ssl --enable-asteriskssl --with-pjproject-bundled --with-sqlite3=/usr/lib64/
make menuselect <MAKE SURE APP_MEETME IS SELECTED IN APPLICATIONS!!!!!!!!!!!!!!!!!!!!!!!!!!>
make
make install
@@ -1008,7 +1008,8 @@ dead_trigger_action ENUM('DISABLED','AUDIO','URL','AUDIO_AND_URL') default 'DISA
dead_trigger_repeat ENUM('NO','REPEAT_ALL','REPEAT_AUDIO','REPEAT_URL') default 'NO',
dead_trigger_filename TEXT,
dead_trigger_url TEXT,
scheduled_callbacks_force_dial ENUM('N','Y') default 'N'
scheduled_callbacks_force_dial ENUM('N','Y') default 'N',
scheduled_callbacks_auto_reschedule VARCHAR(10) default 'DISABLED'
) ENGINE=MyISAM;
CREATE TABLE vicidial_lists (
@@ -3977,6 +3978,22 @@ index (local_call_id),
index (lead_id)
) ENGINE=MyISAM;
CREATE TABLE vicidial_recent_ascb_calls (
call_date DATETIME,
callback_date DATETIME,
callback_id INT(9) UNSIGNED default '0',
caller_code VARCHAR(30) default '',
lead_id INT(9) UNSIGNED,
server_ip VARCHAR(60) NOT NULL,
orig_status VARCHAR(6) default 'CALLBK',
reschedule VARCHAR(10) default '',
list_id BIGINT(14) UNSIGNED,
rescheduled ENUM('U','P','Y','N') default 'U',
unique index (caller_code),
index (call_date),
index (lead_id)
) ENGINE=MyISAM;
ALTER TABLE vicidial_email_list MODIFY message text character set utf8;
@@ -4191,6 +4208,8 @@ ALTER TABLE vicidial_agent_function_log_archive MODIFY agent_function_log_id INT
CREATE TABLE vicidial_did_log_archive LIKE vicidial_did_log;
CREATE UNIQUE INDEX vdidla_key on vicidial_did_log_archive(uniqueid, call_date, server_ip);
CREATE TABLE vicidial_recent_ascb_calls_archive LIKE vicidial_recent_ascb_calls;
GRANT RELOAD ON *.* TO cron@'%';
GRANT RELOAD ON *.* TO cron@localhost;
@@ -4267,4 +4286,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1552',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1553',db_schema_update_date=NOW(),reload_timestamp=NOW();
+22
View File
@@ -703,3 +703,25 @@ UPDATE system_settings SET db_schema_version='1551',db_schema_update_date=NOW()
ALTER TABLE vicidial_campaigns ADD scheduled_callbacks_force_dial ENUM('N','Y') default 'N';
UPDATE system_settings SET db_schema_version='1552',db_schema_update_date=NOW() where db_schema_version < 1552;
ALTER TABLE vicidial_campaigns ADD scheduled_callbacks_auto_reschedule VARCHAR(10) default 'DISABLED';
CREATE TABLE vicidial_recent_ascb_calls (
call_date DATETIME,
callback_date DATETIME,
callback_id INT(9) UNSIGNED default '0',
caller_code VARCHAR(30) default '',
lead_id INT(9) UNSIGNED,
server_ip VARCHAR(60) NOT NULL,
orig_status VARCHAR(6) default 'CALLBK',
reschedule VARCHAR(10) default '',
list_id BIGINT(14) UNSIGNED,
rescheduled ENUM('U','P','Y','N') default 'U',
unique index (caller_code),
index (call_date),
index (lead_id)
) ENGINE=MyISAM;
CREATE TABLE vicidial_recent_ascb_calls_archive LIKE vicidial_recent_ascb_calls;
UPDATE system_settings SET db_schema_version='1553',db_schema_update_date=NOW() where db_schema_version < 1553;
+77 -21
View File
@@ -458,13 +458,14 @@
# 180520-1031 - Added use of screen labels in search results, Issue #1104
# 180522-1920 - Added Routing Initiated Recording ability for manual dial calls
# 180610-2308 - Added code for Dead Call Trigger features
# 180818-2147 - Added code for scheduled_callbacks_auto_reschedule
#
$version = '2.14-352';
$build = '180610-2308';
$version = '2.14-353';
$build = '180818-2147';
$php_script = 'vdc_db_query.php';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=756;
$mysql_log_count=762;
$one_mysql_log=0;
$DB=0;
$VD_login=0;
@@ -4253,7 +4254,7 @@ if ($ACTION == 'manDiaLnextCaLL')
if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;}
### check for custom cid use
$use_custom_cid=0;
$stmt = "SELECT use_custom_cid,manual_dial_hopper_check,start_call_url,manual_dial_filter,use_internal_dnc,use_campaign_dnc,use_other_campaign_dnc,cid_group_id FROM vicidial_campaigns where campaign_id='$campaign';";
$stmt = "SELECT use_custom_cid,manual_dial_hopper_check,start_call_url,manual_dial_filter,use_internal_dnc,use_campaign_dnc,use_other_campaign_dnc,cid_group_id,scheduled_callbacks_auto_reschedule FROM vicidial_campaigns where campaign_id='$campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00313',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
@@ -4261,14 +4262,15 @@ if ($ACTION == 'manDiaLnextCaLL')
if ($uccid_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$use_custom_cid = $row[0];
$manual_dial_hopper_check = $row[1];
$OUT_start_call_url = $row[2];
$manual_dial_filter = $row[3];
$use_internal_dnc = $row[4];
$use_campaign_dnc = $row[5];
$use_other_campaign_dnc = $row[6];
$cid_group_id = $row[7];
$use_custom_cid = $row[0];
$manual_dial_hopper_check = $row[1];
$OUT_start_call_url = $row[2];
$manual_dial_filter = $row[3];
$use_internal_dnc = $row[4];
$use_campaign_dnc = $row[5];
$use_other_campaign_dnc = $row[6];
$cid_group_id = $row[7];
$scheduled_callbacks_auto_reschedule = $row[8];
}
if ($no_hopper_dialing_used > 0)
@@ -4585,6 +4587,33 @@ if ($ACTION == 'manDiaLnextCaLL')
$Ndialstring = "$loop_ingroup_dial_prefix$dial_wait_seconds$dial_ingroup_dialstring";
}
if ( ($scheduled_callbacks_auto_reschedule != 'DISABLED') and (strlen($scheduled_callbacks_auto_reschedule) > 0) )
{
### gather vicidial_callbacks information for this lead, if any
$stmt = "SELECT callback_id,callback_time,lead_status,list_id FROM vicidial_callbacks where lead_id='$lead_id' and status='LIVE' and recipient='ANYONE' order by callback_id limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00757',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$vcb_ct = mysqli_num_rows($rslt);
if ($vcb_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$PSCBcallback_id = $row[0];
$PSCBcallback_time = $row[1];
$PSCBlead_status = $row[2];
$PSCBlist_id = $row[3];
}
### insert record in recent callbacks table
if ($vcb_ct > 0)
{
$stmt = "INSERT INTO vicidial_recent_ascb_calls SET call_date=NOW(),callback_date='$PSCBcallback_time',callback_id='$PSCBcallback_id',caller_code='$MqueryCID',lead_id='$lead_id',server_ip='$server_ip',orig_status='$PSCBlead_status',reschedule='$scheduled_callbacks_auto_reschedule',list_id='$PSCBlist_id',rescheduled='U';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00758',$user,$server_ip,$session_name,$one_mysql_log);}
}
}
if ($CCID_on) {$CIDstring = "\"$MqueryCID$EAC\" <$CCID>";}
else {$CIDstring = "$MqueryCID$EAC";}
@@ -5577,7 +5606,7 @@ if ($ACTION == 'manDiaLonly')
### check for manual dial filter and extension append settings in campaign
$use_eac=0;
$use_custom_cid=0;
$stmt = "SELECT manual_dial_filter,use_internal_dnc,use_campaign_dnc,use_other_campaign_dnc,extension_appended_cidname,start_call_url FROM vicidial_campaigns where campaign_id='$campaign';";
$stmt = "SELECT manual_dial_filter,use_internal_dnc,use_campaign_dnc,use_other_campaign_dnc,extension_appended_cidname,start_call_url,scheduled_callbacks_auto_reschedule FROM vicidial_campaigns where campaign_id='$campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00325',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
@@ -5585,12 +5614,13 @@ if ($ACTION == 'manDiaLonly')
if ($vcstgs_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$manual_dial_filter = $row[0];
$use_internal_dnc = $row[1];
$use_campaign_dnc = $row[2];
$use_other_campaign_dnc = $row[3];
$extension_appended_cidname = $row[4];
$start_call_url = $row[5];
$manual_dial_filter = $row[0];
$use_internal_dnc = $row[1];
$use_campaign_dnc = $row[2];
$use_other_campaign_dnc = $row[3];
$extension_appended_cidname = $row[4];
$start_call_url = $row[5];
$scheduled_callbacks_auto_reschedule = $row[6];
if ($extension_appended_cidname == 'Y')
{$use_eac++;}
}
@@ -5944,6 +5974,32 @@ if ($ACTION == 'manDiaLonly')
else
{$account=''; $variable='';}
if ( ($scheduled_callbacks_auto_reschedule != 'DISABLED') and (strlen($scheduled_callbacks_auto_reschedule) > 0) )
{
### gather vicidial_callbacks information for this lead, if any
$stmt = "SELECT callback_id,callback_time,lead_status,list_id FROM vicidial_callbacks where lead_id='$lead_id' and status='LIVE' and recipient='ANYONE' order by callback_id limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00759',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$vcb_ct = mysqli_num_rows($rslt);
if ($vcb_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$PSCBcallback_id = $row[0];
$PSCBcallback_time = $row[1];
$PSCBlead_status = $row[2];
$PSCBlist_id = $row[3];
}
### insert record in recent callbacks table
if ($vcb_ct > 0)
{
$stmt = "INSERT INTO vicidial_recent_ascb_calls SET call_date=NOW(),callback_date='$PSCBcallback_time',callback_id='$PSCBcallback_id',caller_code='$MqueryCID',lead_id='$lead_id',server_ip='$server_ip',orig_status='$PSCBlead_status',reschedule='$scheduled_callbacks_auto_reschedule',list_id='$PSCBlist_id',rescheduled='U';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00760',$user,$server_ip,$session_name,$one_mysql_log);}
}
}
### whether to omit phone_code or not
if (preg_match('/Y/i',$omit_phone_code))
{$Ndialstring = "$Local_out_prefix$phone_number";}
@@ -16402,7 +16458,7 @@ if ($ACTION == 'LEADINFOview')
$campaignCBdisplaydaysSQL = '';
$stmt = "SELECT callback_hours_block,callback_list_calltime,local_call_time,callback_display_days from vicidial_campaigns where campaign_id='$campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00761',$user,$server_ip,$session_name,$one_mysql_log);}
if ($rslt) {$camp_count = mysqli_num_rows($rslt);}
if ($camp_count > 0)
{
@@ -16429,7 +16485,7 @@ if ($ACTION == 'LEADINFOview')
$stmt = "SELECT callback_id,lead_id from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql $campaignCBhoursSQL $campaignCBdisplaydaysSQL and status IN('LIVE') order by callback_time limit 1;";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00762',$user,$server_ip,$session_name,$one_mysql_log);}
if ($rslt) {$callbacks_count = mysqli_num_rows($rslt);}
if ($callbacks_count > 0)
{
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
# version: 201808091644
# version: 201808120907
users-user User ID <QXZ>This field is where you put the users ID number, can be up to 8 digits in length, Must be at least 2 characters in length.</QXZ>
users-pass Password <QXZ>This field is where you put the users password. Must be at least 2 characters in length. A medium strength user password will be at least 10 characters in length, and a strong user password will be at least 20 characters in length and have letters as well as at least one number. It is recommended that you use a longer password if possible, stringing together several unrelated words with no spaces, and a number somewhere in the string. The maximum size of a password is 100 characters.</QXZ>
users-force_change_password Force Change Password <QXZ>If this option is set to Y then the user will be prompted to change their password the next time they log in to the administration webpage. Default is N.</QXZ>
@@ -260,6 +260,7 @@ campaigns-show_previous_callback Show Previous Callback <QXZ>This option if enab
campaigns-callback_useronly_move_minutes Scheduled Callbacks Useronly Move Minutes <QXZ>This option if set to a number greater than 0, will change all USERONLY Scheduled Callbacks that are X minutes after their callback time to ANYONE callbacks. This process runs every minute. Default is 0 for disabled.</QXZ>
campaigns-next_dial_my_callbacks Next-Dial My Callbacks <QXZ>This option only works for MANUAL and INBOUND_MAN dial methods, and also only if No Hopper Dialing is enabled. This feature will look for Scheduled Callbacks that have triggered for the agent and dial them next when the agent clicks on the Dial Next Number button on their agent screen. Default is DISABLED.</QXZ>
campaigns-scheduled_callbacks_force_dial Scheduled Callbacks Force Dial <QXZ>This feature will force an agent to a paused state and block out their screen with the next triggered USERONLY scheduled callback to be called. The agent's only option will be to dial this callback, although they are able to look at lead info before they do that. If there are multiple triggered scheduled callbacks for the agent, they all must be called before the agent can move on to handling other items. This feature will not pay attention to the Call Time that is set for the campaign, so these calls may be dialed outside of the set call time. The agent must be able to place manual dial calls for this feature to work. Default is N for disabled.</QXZ>
campaigns-scheduled_callbacks_auto_reschedule Scheduled Callbacks Auto Reschedule <QXZ>This feature only affects ANYONE scheduled callbacks. If DAY_1 is used, it will automatically reschedule lead lead to be called back on the next calling day at thee same time they were called if the resulting disposition of the call was not a Human Answer -Y- status. The next calling day is determined by the Call Time that is set for the campaign. In the case of DAY_1, if tomorrow is not an allowed calling day, the system will look at the next day and then the next day until it finds the next allowable calling day to set the ANYONE scheduled callback for. There are up to 6 DAY options, then there are up to 3 WEEK options, then there are up to 6 MONTH options. Default is DISABLED.</QXZ>
campaigns-wrapup_seconds Wrap Up Seconds <QXZ>The number of seconds to force an agent to wait before allowing them to receive or dial another call. The timer begins as soon as an agent hangs up on their customer - or in the case of alternate number dialing when the agent finishes the lead - Default is 0 seconds. If the timer runs out before the agent has dispositioned the call, the agent still will NOT move on to the next call until they select a disposition.</QXZ>
campaigns-wrapup_message Wrap Up Message <QXZ>This is a campaign-specific message to be displayed on the wrap up screen if wrap up seconds is set. You can use a Script in the system if you use the script id with WUSCRIPT in front of it, so if you wanted to use a script called agent_script, then you would put WUSCRIPTagent_script in this field.</QXZ>
campaigns-wrapup_bypass Wrap Up Bypass <QXZ>If set to ENABLED then the agent will be able to click a link to stop the Wrap Up timer before the time is completed. Default is ENABLED.</QXZ>