Added more logging of dial alerts, force PauseCode MDSKIP when skipping previewed lead in vicidial.php

Added pause_max_url campaign feature
Updated CALL_URL_FEATURES.txt doc

git-svn-id: svn://192.168.202.10@3561 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2022-02-13 14:24:13 +00:00
parent 493833aefb
commit 01a3360302
9 changed files with 232 additions and 38 deletions
+2
View File
@@ -708,6 +708,8 @@ OTHER CHANGES:
197. Added 'update_alt_url' Non-Agent API function 197. Added 'update_alt_url' Non-Agent API function
198. Added "Pause Max URL" Campaign feature
+31 -1
View File
@@ -1,4 +1,4 @@
Call URL features(start call url, dispo call url, etc...) Call URL features(start call url, dispo call url, etc...) Updated: 2022-02-12
@@ -123,6 +123,31 @@ populated just like the web form address, with the VAR in the front and using
--A--user_custom_one--B-- to define variables. --A--user_custom_one--B-- to define variables.
################################################################################
# DEAD CALL TRIGGER URL
################################################################################
Dead Call Trigger URL - Similar to the Start Call URL feature, this is sent if
the Dead Call Seconds Trigger is met while an agent is on a call and the
customer hangs up the phone. You can use the agc/dispo_call_url.php script with
this feature to send an email upon its triggering. (example at bottom of page)
################################################################################
# PAUSE MAX URL
################################################################################
Pause Max URL - This feature is different because no call details are available
because the agent is on pause at the time of the trigger. Because of this, only
the user_custom... variables and other user variables are available to this
function: --A--user--B--, --A--campaign--B--, --A--fullname--B--,
--A--user_custom_one--B--, --A--user_custom_two--B--,
--A--user_custom_three--B--, --A--user_custom_four--B--,
--A--user_custom_five--B--, --A--user_group--B--, --A--agent_email--B--
You can use the agc/dispo_call_url.php script with this feature to send an email
upon its triggering. (example at bottom of page)
################################################################################ ################################################################################
@@ -174,3 +199,8 @@ VARhttp://192.168.192.3/agc/vdc_call_url_test.php?leadID=--A--lead_id--B--&listI
VARhttp://www.server.org/env.php?one=--A--user_custom_one--B--&two=--A--user_custom_two--B-- VARhttp://www.server.org/env.php?one=--A--user_custom_one--B--&two=--A--user_custom_two--B--
(http://www.server.org/env.php?one=asmith&two=hS87yt2) (http://www.server.org/env.php?one=asmith&two=hS87yt2)
https://www.server.org/agc/dispo_send_email.php?container_id=TEST_DEAD_EMAIL&lead_id=--A--lead_id--B--&call_id=--A--call_id--B--&dispo=DEAD&user=NOAGENTURL--A--user--B--&pass=--A--call_id--B--&sale_status=ALL-STATUSES&called_count=--A--called_count--B--&log_to_file=1
https://www.server.org/agc/dispo_send_email.php?container_id=TEST_PAUSE_MAX_EMAIL&lead_id=PAUSEMAX&call_id=PAUSEMAX&user=NOAGENTURL--A--user--B--&pass=--A--user--B--&sale_status=ALL-STATUSES&log_to_file=1
@@ -1084,7 +1084,8 @@ call_limit_24hour TINYINT(3) UNSIGNED default '0',
call_limit_24hour_override VARCHAR(40) default 'DISABLED', call_limit_24hour_override VARCHAR(40) default 'DISABLED',
cid_group_id_two VARCHAR(20) default '---DISABLED---', cid_group_id_two VARCHAR(20) default '---DISABLED---',
incall_tally_threshold_seconds SMALLINT(5) UNSIGNED default '0', incall_tally_threshold_seconds SMALLINT(5) UNSIGNED default '0',
auto_alt_threshold TINYINT(3) UNSIGNED default '0' auto_alt_threshold TINYINT(3) UNSIGNED default '0',
pause_max_url TEXT
) ENGINE=MyISAM; ) ENGINE=MyISAM;
CREATE TABLE vicidial_lists ( CREATE TABLE vicidial_lists (
@@ -5046,4 +5047,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
UPDATE system_settings set vdc_agent_api_active='1'; UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1652',db_schema_update_date=NOW(),reload_timestamp=NOW(); UPDATE system_settings SET db_schema_version='1653',db_schema_update_date=NOW(),reload_timestamp=NOW();
+4
View File
@@ -1866,3 +1866,7 @@ UPDATE system_settings SET db_schema_version='1651',db_schema_update_date=NOW()
ALTER TABLE vicidial_users ADD download_invalid_files ENUM('0','1') default '0'; ALTER TABLE vicidial_users ADD download_invalid_files ENUM('0','1') default '0';
UPDATE system_settings SET db_schema_version='1652',db_schema_update_date=NOW() where db_schema_version < 1652; UPDATE system_settings SET db_schema_version='1652',db_schema_update_date=NOW() where db_schema_version < 1652;
ALTER TABLE vicidial_campaigns ADD pause_max_url TEXT;
UPDATE system_settings SET db_schema_version='1653',db_schema_update_date=NOW() where db_schema_version < 1653;
+31 -9
View File
@@ -46,6 +46,7 @@
# 210823-1623 - Fix for security issue, removed absolute path attachments, now must be in "agc/attachments" directory # 210823-1623 - Fix for security issue, removed absolute path attachments, now must be in "agc/attachments" directory
# 210823-1947 - Fix to allow for legacy attachment file locations in "agc" directory # 210823-1947 - Fix to allow for legacy attachment file locations in "agc" directory
# 220127-0942 - Added email_header_attach and allow_sendmail_bypass options.php settings # 220127-0942 - Added email_header_attach and allow_sendmail_bypass options.php settings
# 220213-0849 - Added code for Pause Max Email functionality
# #
$api_script = 'send_email'; $api_script = 'send_email';
@@ -201,7 +202,7 @@ if ($qm_conf_ct > 0)
########################################### ###########################################
$call_id = preg_replace('/[^-_0-9a-zA-Z]/', '', $call_id); $call_id = preg_replace('/[^-_0-9a-zA-Z]/', '', $call_id);
$lead_id = preg_replace('/[^_0-9]/', '', $lead_id); $lead_id = preg_replace('/[^_0-9a-zA-Z]/', '', $lead_id);
$call_notes=preg_replace("/\\\\/","",$call_notes); $call_notes=preg_replace("/\\\\/","",$call_notes);
$stage = preg_replace('/[^-_0-9a-zA-Z]/', '', $stage); $stage = preg_replace('/[^-_0-9a-zA-Z]/', '', $stage);
$additional_notes=preg_replace("/\\\\/","",$additional_notes); $additional_notes=preg_replace("/\\\\/","",$additional_notes);
@@ -286,27 +287,48 @@ if ($match_found > 0)
{ {
if (strlen($user) > 11) {$user = preg_replace("/NOAGENTURL/",'',$user);} if (strlen($user) > 11) {$user = preg_replace("/NOAGENTURL/",'',$user);}
$PADlead_id = sprintf("%010s", $lead_id); $PADlead_id = sprintf("%010s", $lead_id);
if ( (strlen($pass) > 15) and (preg_match("/$PADlead_id$/",$pass)) )
{
$four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y")));
$stmt="SELECT count(*) from vicidial_log_extended where caller_code='$pass' and call_date > \"$four_hours_ago\";"; if ( (preg_match("/PAUSEMAX/",$lead_id)) and (preg_match("/$user$/",$pass)) )
{
$one_minute_ago = date("Y-m-d H:i:s", mktime(date("H"),date("i")-1,date("s"),date("m"),date("d"),date("Y")));
$stmt="SELECT count(*) from vicidial_user_log where user='$user' and event_date > \"$one_minute_ago\" and event='TIMEOUTLOGOUT';";
if ($DB) {echo "|$stmt|\n";} if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'60003',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'60XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$row=mysqli_fetch_row($rslt); $row=mysqli_fetch_row($rslt);
$authlive=$row[0]; $authlive=$row[0];
$auth=$row[0]; $auth=$row[0];
if ($authlive < 1) if ($authlive < 1)
{ {
echo _QXZ("Call Not Found:")." 2|$user|$pass|$authlive|\n"; echo _QXZ("User Not Found:")." 3|$user|$authlive|\n";
exit; exit;
} }
} }
else else
{ {
echo _QXZ("Invalid Call ID:")." 1|$user|$pass|$PADlead_id|\n"; if ( (strlen($pass) > 15) and (preg_match("/$PADlead_id$/",$pass)) )
exit; {
$four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y")));
$stmt="SELECT count(*) from vicidial_log_extended where caller_code='$pass' and call_date > \"$four_hours_ago\";";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'60003',$user,$server_ip,$session_name,$one_mysql_log);}
$row=mysqli_fetch_row($rslt);
$authlive=$row[0];
$auth=$row[0];
if ($authlive < 1)
{
echo _QXZ("Call Not Found:")." 2|$user|$pass|$authlive|\n";
exit;
}
}
else
{
echo _QXZ("Invalid Call ID:")." 1|$user|$pass|$PADlead_id|\n";
exit;
}
} }
} }
else else
+116 -2
View File
@@ -521,10 +521,11 @@
# 210827-0749 - Added PJSIP compatibility # 210827-0749 - Added PJSIP compatibility
# 211117-2033 - Added ALT Dispo Call URL url_call_length setting # 211117-2033 - Added ALT Dispo Call URL url_call_length setting
# 220119-1014 - Added auto_alt_threshold feature # 220119-1014 - Added auto_alt_threshold feature
# 220212-0919 - Added pause_max_url_trigger input
# #
$version = '2.14-414'; $version = '2.14-415';
$build = '220119-1014'; $build = '220212-0919';
$php_script = 'vdc_db_query.php'; $php_script = 'vdc_db_query.php';
$mel=1; # Mysql Error Log enabled = 1 $mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=876; $mysql_log_count=876;
@@ -839,6 +840,8 @@ if (isset($_GET["calls_waiting_vl_oneLABEL"])) {$calls_waiting_vl_oneLABEL=$_G
elseif (isset($_POST["calls_waiting_vl_oneLABEL"])) {$calls_waiting_vl_oneLABEL=$_POST["calls_waiting_vl_oneLABEL"];} elseif (isset($_POST["calls_waiting_vl_oneLABEL"])) {$calls_waiting_vl_oneLABEL=$_POST["calls_waiting_vl_oneLABEL"];}
if (isset($_GET["calls_waiting_vl_twoLABEL"])) {$calls_waiting_vl_twoLABEL=$_GET["calls_waiting_vl_twoLABEL"];} if (isset($_GET["calls_waiting_vl_twoLABEL"])) {$calls_waiting_vl_twoLABEL=$_GET["calls_waiting_vl_twoLABEL"];}
elseif (isset($_POST["calls_waiting_vl_twoLABEL"])) {$calls_waiting_vl_twoLABEL=$_POST["calls_waiting_vl_twoLABEL"];} elseif (isset($_POST["calls_waiting_vl_twoLABEL"])) {$calls_waiting_vl_twoLABEL=$_POST["calls_waiting_vl_twoLABEL"];}
if (isset($_GET["pause_max_url_trigger"])) {$pause_max_url_trigger=$_GET["pause_max_url_trigger"];}
elseif (isset($_POST["pause_max_url_trigger"])) {$pause_max_url_trigger=$_POST["pause_max_url_trigger"];}
# if options file exists, use the override values for the above variables # if options file exists, use the override values for the above variables
# see the options-example.php file for more information # see the options-example.php file for more information
@@ -1158,6 +1161,7 @@ $customer_sec = preg_replace('/[^-_0-9]/','',$customer_sec);
$leave_3way_start_recording_trigger = preg_replace('/[^0-9]/','',$leave_3way_start_recording_trigger); $leave_3way_start_recording_trigger = preg_replace('/[^0-9]/','',$leave_3way_start_recording_trigger);
$leave_3way_start_recording_filename = preg_replace('/[^-_0-9a-zA-Z]/','',$leave_3way_start_recording_filename); $leave_3way_start_recording_filename = preg_replace('/[^-_0-9a-zA-Z]/','',$leave_3way_start_recording_filename);
$channelrec = preg_replace("/\'|\"|\\\\|;/","",$channelrec); $channelrec = preg_replace("/\'|\"|\\\\|;/","",$channelrec);
$pause_max_url_trigger = preg_replace('/[^0-9]/','',$pause_max_url_trigger);
if ($non_latin < 1) if ($non_latin < 1)
{ {
@@ -16352,6 +16356,116 @@ if ($ACTION == 'userLOGout')
} }
} }
##### send URL request if Pause Max URL is set and triggered
if ($pause_max_url_trigger > 0)
{
$stmt="SELECT pause_max_url FROM vicidial_campaigns where campaign_id='$campaign';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$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 ($rslt)
{
$row=mysqli_fetch_row($rslt);
$pause_max_url = "$row[0]";
if ($format=='debug') {echo "\n<!-- $row[0] -->";}
if (strlen($pause_max_url) > 5)
{
if ( (preg_match('/--A--user_custom_/i',$pause_max_url)) or (preg_match('/--A--fullname/i',$pause_max_url)) or (preg_match('/--A--user_group/i',$pause_max_url)) or (preg_match('/--A--agent_email--B--/i',$pause_max_url)) )
{
$stmt = "SELECT custom_one,custom_two,custom_three,custom_four,custom_five,full_name,user_group,email from vicidial_users where user='$user';";
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);}
$VUC_ct = mysqli_num_rows($rslt);
if ($VUC_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$user_custom_one = urlencode(trim($row[0]));
$user_custom_two = urlencode(trim($row[1]));
$user_custom_three = urlencode(trim($row[2]));
$user_custom_four = urlencode(trim($row[3]));
$user_custom_five = urlencode(trim($row[4]));
$fullname = urlencode(trim($row[5]));
$user_group = urlencode(trim($row[6]));
$agent_email = urlencode(trim($row[7]));
}
}
$pause_max_url = preg_replace('/^VAR/','',$pause_max_url);
$pause_max_url = preg_replace('/--A--user--B--/i',"$user",$pause_max_url);
$pause_max_url = preg_replace('/--A--pass--B--/i',"$orig_pass",$pause_max_url);
$pause_max_url = preg_replace('/--A--campaign--B--/i',"$campaign",$pause_max_url);
$pause_max_url = preg_replace('/--A--phone_login--B--/i',"$phone_login",$pause_max_url);
$pause_max_url = preg_replace('/--A--original_phone_login--B--/i',"$original_phone_login",$pause_max_url);
$pause_max_url = preg_replace('/--A--phone_pass--B--/i',"$phone_pass",$pause_max_url);
$pause_max_url = preg_replace('/--A--SQLdate--B--/i',urlencode(trim($SQLdate)),$pause_max_url);
$pause_max_url = preg_replace('/--A--epoch--B--/i',"$epoch",$pause_max_url);
$pause_max_url = preg_replace('/--A--server_ip--B--/i',"$server_ip",$pause_max_url);
$pause_max_url = preg_replace('/--A--SIPexten--B--/i',urlencode(trim($exten)),$pause_max_url);
$pause_max_url = preg_replace('/--A--session_id--B--/i',"$conf_exten",$pause_max_url);
$pause_max_url = preg_replace('/--A--fullname--B--/i',"$fullname",$pause_max_url);
$pause_max_url = preg_replace('/--A--user_custom_one--B--/i',"$user_custom_one",$pause_max_url);
$pause_max_url = preg_replace('/--A--user_custom_two--B--/i',"$user_custom_two",$pause_max_url);
$pause_max_url = preg_replace('/--A--user_custom_three--B--/i',"$user_custom_three",$pause_max_url);
$pause_max_url = preg_replace('/--A--user_custom_four--B--/i',"$user_custom_four",$pause_max_url);
$pause_max_url = preg_replace('/--A--user_custom_five--B--/i',"$user_custom_five",$pause_max_url);
$pause_max_url = preg_replace('/--A--agent_log_id--B--/i',"$CALL_agent_log_id",$pause_max_url);
$pause_max_url = preg_replace('/--A--user_group--B--/i',urlencode(trim($user_group)),$pause_max_url);
$pause_max_url = preg_replace('/--A--agent_email--B--/i',urlencode(trim($agent_email)),$pause_max_url);
### insert a new url log entry
$SQL_log = "$pause_max_url";
$SQL_log = preg_replace('/;/','',$SQL_log);
$SQL_log = addslashes($SQL_log);
$stmt = "INSERT INTO vicidial_url_log SET uniqueid='$uniqueid',url_date='$NOW_TIME',url_type='pause_max',url='$SQL_log',url_response='';";
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);}
$affected_rows = mysqli_affected_rows($link);
$url_id = mysqli_insert_id($link);
$URLstart_sec = date("U");
### grab the call_start_url ###
if ($DB > 0) {echo "$pause_max_url<BR>\n";}
$SCUfile = file("$pause_max_url");
if ( !($SCUfile) )
{
$error_array = error_get_last();
$error_type = $error_array["type"];
$error_message = $error_array["message"];
$error_line = $error_array["line"];
$error_file = $error_array["file"];
}
if ($DB > 0) {echo "$SCUfile[0]<BR>\n";}
### update url log entry
$URLend_sec = date("U");
$URLdiff_sec = ($URLend_sec - $URLstart_sec);
if ($SCUfile)
{
$SCUfile_contents = implode("", $SCUfile);
$SCUfile_contents = preg_replace('/;/','',$SCUfile_contents);
$SCUfile_contents = addslashes($SCUfile_contents);
}
else
{
$SCUfile_contents = "PHP ERROR: Type=$error_type - Message=$error_message - Line=$error_line - File=$error_file";
}
$stmt = "UPDATE vicidial_url_log SET response_sec='$URLdiff_sec',url_response='$SCUfile_contents' where url_log_id='$url_id';";
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);}
$affected_rows = mysqli_affected_rows($link);
$stage .= "|SCU|$URLdiff_sec";
}
}
}
echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n";
} }
$stage .= " $version $build"; $stage .= " $version $build";
+25 -15
View File
@@ -1,7 +1,7 @@
<?php <?php
# vicidial.php - the web-based version of the astVICIDIAL client application # vicidial.php - the web-based version of the astVICIDIAL client application
# #
# Copyright (C) 2021 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # Copyright (C) 2022 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# #
# Other scripts that this application depends on: # Other scripts that this application depends on:
# - vdc_db_query.php: Updates information in the database # - vdc_db_query.php: Updates information in the database
@@ -683,10 +683,12 @@
# 210913-0831 - Fix for alternate number auto-dial logging issues # 210913-0831 - Fix for alternate number auto-dial logging issues
# 211223-0824 - Fix for API hangup post-call survey issue #1338 # 211223-0824 - Fix for API hangup post-call survey issue #1338
# 211223-0906 - Fix for API transfer if AGENTDIRECT selected, issue #1330 # 211223-0906 - Fix for API transfer if AGENTDIRECT selected, issue #1330
# 220128-0030 - Added more logging of dial alerts, force PauseCode MDSKIP when skipping previewed lead
# 220212-0813 - Added pause_max_url triggering
# #
$version = '2.14-651c'; $version = '2.14-653c';
$build = '211223-0906'; $build = '220212-0813';
$php_script = 'vicidial.php'; $php_script = 'vicidial.php';
$mel=1; # Mysql Error Log enabled = 1 $mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=98; $mysql_log_count=98;
@@ -2281,7 +2283,7 @@ else
$HKstatusnames = substr("$HKstatusnames", 0, -1); $HKstatusnames = substr("$HKstatusnames", 0, -1);
##### grab the campaign settings ##### grab the campaign settings
$stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,use_custom_cid,scheduled_callbacks_alert,scheduled_callbacks_count,manual_dial_override,blind_monitor_warning,blind_monitor_message,blind_monitor_filename,timer_action_destination,enable_xfer_presets,hide_xfer_number_to_dial,manual_dial_prefix,customer_3way_hangup_logging,customer_3way_hangup_seconds,customer_3way_hangup_action,ivr_park_call,manual_preview_dial,api_manual_dial,manual_dial_call_time_check,my_callback_option,per_call_notes,agent_lead_search,agent_lead_search_method,queuemetrics_phone_environment,auto_pause_precall,auto_pause_precall_code,auto_resume_precall,manual_dial_cid,custom_3way_button_transfer,callback_days_limit,disable_dispo_screen,disable_dispo_status,screen_labels,status_display_fields,pllb_grouping,pllb_grouping_limit,in_group_dial,in_group_dial_select,pause_after_next_call,owner_populate,manual_dial_lead_id,dead_max,dispo_max,pause_max,dead_max_dispo,dispo_max_dispo,max_inbound_calls,manual_dial_search_checkbox,hide_call_log_info,timer_alt_seconds,wrapup_bypass,wrapup_after_hotkey,callback_active_limit,callback_active_limit_override,comments_all_tabs,comments_dispo_screen,comments_callback_screen,qc_comment_history,show_previous_callback,clear_script,manual_dial_search_filter,web_form_address_three,manual_dial_override_field,status_display_ingroup,customer_gone_seconds,agent_display_fields,manual_dial_timeout,manual_auto_next,manual_auto_show,allow_required_fields,dead_to_dispo,agent_xfer_validation,ready_max_logout,callback_display_days,three_way_record_stop,hangup_xfer_record_start,max_inbound_calls_outcome,manual_auto_next_options,agent_screen_time_display,pause_max_dispo,script_top_dispo,routing_initiated_recordings,dead_trigger_seconds,dead_trigger_action,dead_trigger_repeat,dead_trigger_filename,scheduled_callbacks_force_dial,callback_hours_block,callback_display_days,scheduled_callbacks_timezones_container,three_way_volume_buttons,manual_dial_validation,mute_recordings,leave_vm_no_dispo,leave_vm_message_group_id,campaign_script_two,browser_alert_sound,browser_alert_volume,three_way_record_stop_exception,pause_max_exceptions,transfer_button_launch,leave_3way_start_recording,leave_3way_start_recording_exception,calls_waiting_vl_one,calls_waiting_vl_two,in_man_dial_next_ready_seconds,in_man_dial_next_ready_seconds_override,transfer_no_dispo,local_call_time FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,use_custom_cid,scheduled_callbacks_alert,scheduled_callbacks_count,manual_dial_override,blind_monitor_warning,blind_monitor_message,blind_monitor_filename,timer_action_destination,enable_xfer_presets,hide_xfer_number_to_dial,manual_dial_prefix,customer_3way_hangup_logging,customer_3way_hangup_seconds,customer_3way_hangup_action,ivr_park_call,manual_preview_dial,api_manual_dial,manual_dial_call_time_check,my_callback_option,per_call_notes,agent_lead_search,agent_lead_search_method,queuemetrics_phone_environment,auto_pause_precall,auto_pause_precall_code,auto_resume_precall,manual_dial_cid,custom_3way_button_transfer,callback_days_limit,disable_dispo_screen,disable_dispo_status,screen_labels,status_display_fields,pllb_grouping,pllb_grouping_limit,in_group_dial,in_group_dial_select,pause_after_next_call,owner_populate,manual_dial_lead_id,dead_max,dispo_max,pause_max,dead_max_dispo,dispo_max_dispo,max_inbound_calls,manual_dial_search_checkbox,hide_call_log_info,timer_alt_seconds,wrapup_bypass,wrapup_after_hotkey,callback_active_limit,callback_active_limit_override,comments_all_tabs,comments_dispo_screen,comments_callback_screen,qc_comment_history,show_previous_callback,clear_script,manual_dial_search_filter,web_form_address_three,manual_dial_override_field,status_display_ingroup,customer_gone_seconds,agent_display_fields,manual_dial_timeout,manual_auto_next,manual_auto_show,allow_required_fields,dead_to_dispo,agent_xfer_validation,ready_max_logout,callback_display_days,three_way_record_stop,hangup_xfer_record_start,max_inbound_calls_outcome,manual_auto_next_options,agent_screen_time_display,pause_max_dispo,script_top_dispo,routing_initiated_recordings,dead_trigger_seconds,dead_trigger_action,dead_trigger_repeat,dead_trigger_filename,scheduled_callbacks_force_dial,callback_hours_block,callback_display_days,scheduled_callbacks_timezones_container,three_way_volume_buttons,manual_dial_validation,mute_recordings,leave_vm_no_dispo,leave_vm_message_group_id,campaign_script_two,browser_alert_sound,browser_alert_volume,three_way_record_stop_exception,pause_max_exceptions,transfer_button_launch,leave_3way_start_recording,leave_3way_start_recording_exception,calls_waiting_vl_one,calls_waiting_vl_two,in_man_dial_next_ready_seconds,in_man_dial_next_ready_seconds_override,transfer_no_dispo,local_call_time,pause_max_url FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
@@ -2460,6 +2462,7 @@ else
$in_man_dial_next_ready_seconds_override = $row[171]; $in_man_dial_next_ready_seconds_override = $row[171];
$transfer_no_dispo = $row[172]; $transfer_no_dispo = $row[172];
$local_call_time = $row[173]; $local_call_time = $row[173];
$pause_max_url = $row[174];
if ( (strlen($VU_manual_dial_filter) > 0) and ($VU_manual_dial_filter != 'DISABLED') ) if ( (strlen($VU_manual_dial_filter) > 0) and ($VU_manual_dial_filter != 'DISABLED') )
{ {
@@ -2588,6 +2591,9 @@ else
echo "<!-- PAUSE MAX EXEPTION CODES: |$pause_max_exceptions($PMEcontainer_entry)| -->\n"; echo "<!-- PAUSE MAX EXEPTION CODES: |$pause_max_exceptions($PMEcontainer_entry)| -->\n";
} }
} }
$pause_max_url_trigger=0;
if ( (strlen($pause_max_url) > 5) and ($pause_max > 10) ) {$pause_max_url_trigger=1;}
if ( ($queuemetrics_pe_phone_append > 0) and (strlen($qm_phone_environment)>0) ) if ( ($queuemetrics_pe_phone_append > 0) and (strlen($qm_phone_environment)>0) )
{$qm_phone_environment .= "-$qm_extension";} {$qm_phone_environment .= "-$qm_extension";}
@@ -5597,6 +5603,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var user_pass_webform = '<?php echo $user_pass_webform ?>'; var user_pass_webform = '<?php echo $user_pass_webform ?>';
var phone_login_webform = '<?php echo $phone_login_webform ?>'; var phone_login_webform = '<?php echo $phone_login_webform ?>';
var recording_active=0; var recording_active=0;
var pause_max_url_trigger = '<?php echo $pause_max_url_trigger ?>';
var DiaLControl_auto_HTML = "<a href=\"#\" onclick=\"AutoDial_ReSume_PauSe('VDADready','','','','','','','YES');\"><img src=\"./images/<?php echo _QXZ("vdc_LB_paused.gif") ?>\" border=\"0\" alt=\"You are paused\" /></a>"; var DiaLControl_auto_HTML = "<a href=\"#\" onclick=\"AutoDial_ReSume_PauSe('VDADready','','','','','','','YES');\"><img src=\"./images/<?php echo _QXZ("vdc_LB_paused.gif") ?>\" border=\"0\" alt=\"You are paused\" /></a>";
var DiaLControl_auto_HTML_ready = "<a href=\"#\" onclick=\"AutoDial_ReSume_PauSe('VDADpause','','','','','','','YES');\"><img src=\"./images/<?php echo _QXZ("vdc_LB_active.gif") ?>\" border=\"0\" alt=\"You are active\" /></a>"; var DiaLControl_auto_HTML_ready = "<a href=\"#\" onclick=\"AutoDial_ReSume_PauSe('VDADpause','','','','','','','YES');\"><img src=\"./images/<?php echo _QXZ("vdc_LB_active.gif") ?>\" border=\"0\" alt=\"You are active\" /></a>";
var DiaLControl_auto_HTML_OFF = "<img src=\"./images/<?php echo _QXZ("vdc_LB_blank_OFF.gif") ?>\" border=\"0\" alt=\"pause button disabled\" />"; var DiaLControl_auto_HTML_OFF = "<img src=\"./images/<?php echo _QXZ("vdc_LB_blank_OFF.gif") ?>\" border=\"0\" alt=\"pause button disabled\" />";
@@ -6851,7 +6858,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
api_logout_flag=1; api_logout_flag=1;
button_click_log = button_click_log + "" + SQLdate + "-----api_logout---" + AGLogiN + " " + api_logout_flag + "|"; button_click_log = button_click_log + "" + SQLdate + "-----api_logout---" + AGLogiN + " " + api_logout_flag + "|";
if ( (MD_channel_look < 1) && (VD_live_customer_call < 1) && (alt_dial_status_display < 1) ) if ( (MD_channel_look < 1) && (VD_live_customer_call < 1) && (alt_dial_status_display < 1) )
{LogouT('API','');} {LogouT('API','','');}
} }
} }
var VLAStatuS_array = check_time_array[4].split("Status: "); var VLAStatuS_array = check_time_array[4].split("Status: ");
@@ -9864,6 +9871,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
var XDerrorDescSIP = MDlookResponse_array[4]; var XDerrorDescSIP = MDlookResponse_array[4];
var DiaLAlerTMessagE = "<?php echo _QXZ("Call Rejected:"); ?> " + XDchannel + "\n" + XDerrorDesc + "\n" + XDerrorDescSIP; var DiaLAlerTMessagE = "<?php echo _QXZ("Call Rejected:"); ?> " + XDchannel + "\n" + XDerrorDesc + "\n" + XDerrorDescSIP;
TimerActionRun("DiaLAlerT",DiaLAlerTMessagE,0); TimerActionRun("DiaLAlerT",DiaLAlerTMessagE,0);
button_click_log = button_click_log + "" + SQLdate + "-----DiaLAlerT---Call-Rejected" + XDerrorDesc + "|";
agent_events('agent_alert', "Call Rejected: " + XDerrorDesc + ' ' + XDerrorDescSIP, aec); aec++; agent_events('agent_alert', "Call Rejected: " + XDerrorDesc + ' ' + XDerrorDescSIP, aec); aec++;
} }
if ( (XDchannel.match(regMDL)) && (asterisk_version != '1.0.8') && (asterisk_version != '1.0.9') && (MD_ring_secondS < 10) ) if ( (XDchannel.match(regMDL)) && (asterisk_version != '1.0.8') && (asterisk_version != '1.0.9') && (MD_ring_secondS < 10) )
@@ -9924,6 +9932,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
var MDerrorDescSIP = MDlookResponse_array[4]; var MDerrorDescSIP = MDlookResponse_array[4];
var DiaLAlerTMessagE = "<?php echo _QXZ("Call Rejected:"); ?> " + MDchannel + "\n" + MDerrorDesc + "\n" + MDerrorDescSIP; var DiaLAlerTMessagE = "<?php echo _QXZ("Call Rejected:"); ?> " + MDchannel + "\n" + MDerrorDesc + "\n" + MDerrorDescSIP;
TimerActionRun("DiaLAlerT",DiaLAlerTMessagE,0); TimerActionRun("DiaLAlerT",DiaLAlerTMessagE,0);
button_click_log = button_click_log + "" + SQLdate + "-----DiaLAlerT---Call-Rejected" + MDerrorDesc + "|";
agent_events('agent_alert', "Call Rejected: " + MDerrorDesc + ' ' + MDerrorDescSIP, aec); aec++; agent_events('agent_alert', "Call Rejected: " + MDerrorDesc + ' ' + MDerrorDescSIP, aec); aec++;
} }
if ( (MDchannel.match(regMDL)) && (asterisk_version != '1.0.8') && (asterisk_version != '1.0.9') ) if ( (MDchannel.match(regMDL)) && (asterisk_version != '1.0.8') && (asterisk_version != '1.0.9') )
@@ -11496,6 +11505,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
hideDiv("DiaLLeaDPrevieW"); hideDiv("DiaLLeaDPrevieW");
} }
// document.getElementById('vcFormIFrame').src='./vdc_form_display.php?lead_id=&list_id=&stage=WELCOME'; // document.getElementById('vcFormIFrame').src='./vdc_form_display.php?lead_id=&list_id=&stage=WELCOME';
PauseCodeSelect_submit('MDSKIP');
} }
} }
} }
@@ -15903,7 +15913,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
showDiv('LogouTBox'); showDiv('LogouTBox');
} }
else else
{LogouT('API','');} {LogouT('API','','');}
} }
if (focus_blur_enabled==1) if (focus_blur_enabled==1)
{ {
@@ -16951,7 +16961,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
{ {
AutoDial_ReSume_PauSe("VDADpause",'','','',"LOGOUT"); AutoDial_ReSume_PauSe("VDADpause",'','','',"LOGOUT");
} }
LogouT('CLOSE',''); LogouT('CLOSE','','');
// removing alert because onbeforeunload function invalidates it // removing alert because onbeforeunload function invalidates it
// alert("<?php echo _QXZ("PLEASE CLICK THE LOGOUT LINK TO LOG OUT NEXT TIME."); ?>\n"); // alert("<?php echo _QXZ("PLEASE CLICK THE LOGOUT LINK TO LOG OUT NEXT TIME."); ?>\n");
} }
@@ -16971,16 +16981,16 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
pausetrigger='PAUSE'; pausetrigger='PAUSE';
// AutoDial_ReSume_PauSe("VDADpause",'','','',"LOGOUT"); // AutoDial_ReSume_PauSe("VDADpause",'','','',"LOGOUT");
} }
LogouT('NORMAL',pausetrigger); LogouT('NORMAL',pausetrigger,'');
} }
} }
// ################################################################################ // ################################################################################
// Log the user out of the system, if active call or active dial is occuring, don't let them. // Log the user out of the system, if active call or active dial is occuring, don't let them.
function LogouT(tempreason,temppause) function LogouT(tempreason,temppause,temp_pause_max_url_trigger)
{ {
button_click_log = button_click_log + "" + SQLdate + "-----LogouT---" + tempreason + " " + temppause + "|"; button_click_log = button_click_log + "" + SQLdate + "-----LogouT---" + tempreason + " " + temppause + " " + temp_pause_max_url_trigger + "|";
if (isVisible) if (isVisible)
{ {
onHidden('1'); onHidden('1');
@@ -17034,7 +17044,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
} }
if (xmlhttp) if (xmlhttp)
{ {
VDlogout_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=userLOGout&format=text&user=" + user + "&pass=" + pass + "&campaign=" + campaign + "&conf_exten=" + session_id + "&extension=" + extension + "&protocol=" + protocol + "&agent_log_id=" + agent_log_id + "&no_delete_sessions=" + no_delete_sessions + "&phone_ip=" + phone_ip + "&enable_sipsak_messages=" + enable_sipsak_messages + "&LogouTKicKAlL=" + LogouTKicKAlL + "&ext_context=" + ext_context + "&qm_extension=" + qm_extension + "&stage=" + tempreason + "&pause_trigger=" + temppause + "&dial_method=" + dial_method; VDlogout_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=userLOGout&format=text&user=" + user + "&pass=" + pass + "&campaign=" + campaign + "&conf_exten=" + session_id + "&extension=" + extension + "&protocol=" + protocol + "&agent_log_id=" + agent_log_id + "&no_delete_sessions=" + no_delete_sessions + "&phone_ip=" + phone_ip + "&enable_sipsak_messages=" + enable_sipsak_messages + "&LogouTKicKAlL=" + LogouTKicKAlL + "&ext_context=" + ext_context + "&qm_extension=" + qm_extension + "&stage=" + tempreason + "&pause_trigger=" + temppause + "&dial_method=" + dial_method + "&pause_max_url_trigger=" + temp_pause_max_url_trigger;
xmlhttp.open('POST', 'vdc_db_query.php'); xmlhttp.open('POST', 'vdc_db_query.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(VDlogout_query); xmlhttp.send(VDlogout_query);
@@ -20442,7 +20452,7 @@ function phone_number_format(formatphone) {
{trigger_shift_logout =(trigger_shift_logout - 1);} {trigger_shift_logout =(trigger_shift_logout - 1);}
else else
{ {
LogouT('SHIFT',''); LogouT('SHIFT','','');
trigger_shift_logout=0; trigger_shift_logout=0;
} }
} }
@@ -20694,14 +20704,14 @@ function phone_number_format(formatphone) {
if ( (ready_max_logout > 0) && (VDRP_stage_seconds > ready_max_logout) ) if ( (ready_max_logout > 0) && (VDRP_stage_seconds > ready_max_logout) )
{ {
LogouT('READY_TIMEOUT',''); LogouT('READY_TIMEOUT','','');
} }
} }
if (pause_max_finish > 0) if (pause_max_finish > 0)
{ {
if (pause_max_finish < 2) if (pause_max_finish < 2)
{ {
LogouT('TIMEOUT',''); LogouT('TIMEOUT','',pause_max_url_trigger);
} }
pause_max_finish--; pause_max_finish--;
} }
@@ -22345,7 +22355,7 @@ if ($agent_display_dialable_leads > 0)
</span> </span>
<span style="position:absolute;left:0px;top:0px;z-index:<?php $zi++; echo $zi ?>;" id="AgenTDisablEBoX"> <span style="position:absolute;left:0px;top:0px;z-index:<?php $zi++; echo $zi ?>;" id="AgenTDisablEBoX">
<table border="0" bgcolor="#FFFFFF" width="<?php echo $CAwidth ?>px" height="<?php echo $WRheight ?>px"><tr><td align="center"><font class="sd_text"><?php echo _QXZ("Your session has been disabled"); ?><br /><a href="#" onclick="LogouT('DISABLED','');return false;"><?php echo _QXZ("CLICK HERE TO RESET YOUR SESSION"); ?></a></font><br /><br /><!--<a href="#" onclick="hideDiv('AgenTDisablEBoX');return false;">Go Back</a>--> <table border="0" bgcolor="#FFFFFF" width="<?php echo $CAwidth ?>px" height="<?php echo $WRheight ?>px"><tr><td align="center"><font class="sd_text"><?php echo _QXZ("Your session has been disabled"); ?><br /><a href="#" onclick="LogouT('DISABLED','','');return false;"><?php echo _QXZ("CLICK HERE TO RESET YOUR SESSION"); ?></a></font><br /><br /><!--<a href="#" onclick="hideDiv('AgenTDisablEBoX');return false;">Go Back</a>-->
</td></tr></table> </td></tr></table>
</span> </span>
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
# version: 20220120090501 # version: 20220212080401
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-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. Only letters and numbers are allowed in user passwords. 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-pass Password <QXZ>This field is where you put the users password. Must be at least 2 characters in length. Only letters and numbers are allowed in user passwords. 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 or the agent screen. Default is N.</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 or the agent screen. Default is N.</QXZ>
@@ -330,6 +330,7 @@ campaigns-dispo_max_dispo Dispo Call Max Status <QXZ>If Dispo Call Max Seconds i
campaigns-pause_max Agent Pause Max Seconds <QXZ>If this is set to greater than 0, and the agent has not gone out of PAUSED status in this number of seconds, the agent will automatically be logged out of the agent screen. Default is 0 for disabled.</QXZ> campaigns-pause_max Agent Pause Max Seconds <QXZ>If this is set to greater than 0, and the agent has not gone out of PAUSED status in this number of seconds, the agent will automatically be logged out of the agent screen. Default is 0 for disabled.</QXZ>
campaigns-pause_max_dispo Agent Pause Max Status <QXZ>If Agent Pause Max Seconds is enabled, this is the status set for the call when the agent has not selected a status past the number of seconds set above. This situation can happen when manual alt dial is enabled and the agent has not finished the lead they are on. Default is PAUSMX.</QXZ> campaigns-pause_max_dispo Agent Pause Max Status <QXZ>If Agent Pause Max Seconds is enabled, this is the status set for the call when the agent has not selected a status past the number of seconds set above. This situation can happen when manual alt dial is enabled and the agent has not finished the lead they are on. Default is PAUSMX.</QXZ>
campaigns-pause_max_exceptions Agent Pause Max Exceptions <QXZ>This setting will allow you to define a set of Pause Codes that do not trigger the Agent Pause Max Seconds feature if it is active if the agent has selected one of them as their current pause code. These pause codes must be defined within a Settings Container of the PAUSE_CODES_LIST type with one pause code per line. Default is blank for disabled.</QXZ> campaigns-pause_max_exceptions Agent Pause Max Exceptions <QXZ>This setting will allow you to define a set of Pause Codes that do not trigger the Agent Pause Max Seconds feature if it is active if the agent has selected one of them as their current pause code. These pause codes must be defined within a Settings Container of the PAUSE_CODES_LIST type with one pause code per line. Default is blank for disabled.</QXZ>
campaigns-pause_max_url Pause Max URL <QXZ>If Agent Pause Max Seconds is enabled and triggered in the agent screen, then this URL will be requested from the back-end of the webserver. Default is blank for inactive.</QXZ>
campaigns-ready_max_logout Agent Ready Max Seconds Logout <QXZ>If this is set to greater than 0, and the agent has not gone out of READY or CLOSER status in this number of seconds, the agent will automatically be logged out of the agent screen. Default is 0 for disabled.</QXZ> campaigns-ready_max_logout Agent Ready Max Seconds Logout <QXZ>If this is set to greater than 0, and the agent has not gone out of READY or CLOSER status in this number of seconds, the agent will automatically be logged out of the agent screen. Default is 0 for disabled.</QXZ>
campaigns-in_man_dial_next_ready_seconds Inbound Manual Dial Agent Forced Ready Seconds <QXZ>If the Dial Method is set to INBOUND_MAN, and this setting is set to a number greater than 0, this will be the number of seconds the agent has to be in the READY state, able to take an inbound call, before the DIAL NEXT NUMBER agent screen button can be clicked each time. Default is 0, for disabled.</QXZ> campaigns-in_man_dial_next_ready_seconds Inbound Manual Dial Agent Forced Ready Seconds <QXZ>If the Dial Method is set to INBOUND_MAN, and this setting is set to a number greater than 0, this will be the number of seconds the agent has to be in the READY state, able to take an inbound call, before the DIAL NEXT NUMBER agent screen button can be clicked each time. Default is 0, for disabled.</QXZ>
campaigns-in_man_dial_next_ready_seconds_override InMan Agent Forced Ready Override Container <QXZ>If the Inbound Manual Dial Agent Forced Ready Seconds setting above is active, this setting will allow you to override that setting based upon the day-of-the-week and the time-of-day. In a WEEKDAY_TIMERANGE_SECONDS Settings Container you can set multiple lines of overrides, one per line, for this Campaign using the following format with each field separated by commas,<br>day-of-week,start-time,end-time,inman-force-ready-seconds-override<br>The <U>day-of-week</U> can be a single day, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY or it can be set to ALLDAYS for all 7 days a week.<br>The <U>start-time</U> and <U>end-time</U> both need to each be set to a four-digit time, based on 24-hour time, such as 1700 for 5:00pm server time.<br>The <U>inman-force-ready-seconds-override</U> needs to be a number of seconds.<br>For example, if you have a line like the following,<br>MONDAY,0900,0930,30<br>Then on Mondays only from 9:00am to 9:30am, the Agent Forced Ready Seconds will be 30 seconds instead of what it is set to in the Campaign Agent Forced Ready Seconds setting.<br>NOTE, if there is more than one entry that will match the day and time, the last one in the settings container will be the one that is used.<br>Here is an example WEEKDAY_TIMERANGE_SECONDS Settings Container entry,<br><br>;day-of-week,start-time,end-time,inman-force-ready-seconds-override<br>ALLDAYS,1200,1300,30<br>MONDAY,0900,0930,20<br>FRIDAY,1515,1700,60<br>FRIDAY,1725,1730,5</QXZ> campaigns-in_man_dial_next_ready_seconds_override InMan Agent Forced Ready Override Container <QXZ>If the Inbound Manual Dial Agent Forced Ready Seconds setting above is active, this setting will allow you to override that setting based upon the day-of-the-week and the time-of-day. In a WEEKDAY_TIMERANGE_SECONDS Settings Container you can set multiple lines of overrides, one per line, for this Campaign using the following format with each field separated by commas,<br>day-of-week,start-time,end-time,inman-force-ready-seconds-override<br>The <U>day-of-week</U> can be a single day, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY or it can be set to ALLDAYS for all 7 days a week.<br>The <U>start-time</U> and <U>end-time</U> both need to each be set to a four-digit time, based on 24-hour time, such as 1700 for 5:00pm server time.<br>The <U>inman-force-ready-seconds-override</U> needs to be a number of seconds.<br>For example, if you have a line like the following,<br>MONDAY,0900,0930,30<br>Then on Mondays only from 9:00am to 9:30am, the Agent Forced Ready Seconds will be 30 seconds instead of what it is set to in the Campaign Agent Forced Ready Seconds setting.<br>NOTE, if there is more than one entry that will match the day and time, the last one in the settings container will be the one that is used.<br>Here is an example WEEKDAY_TIMERANGE_SECONDS Settings Container entry,<br><br>;day-of-week,start-time,end-time,inman-force-ready-seconds-override<br>ALLDAYS,1200,1300,30<br>MONDAY,0900,0930,20<br>FRIDAY,1515,1700,60<br>FRIDAY,1725,1730,5</QXZ>