diff --git a/agc_2-X/trunk/bin/ADMIN_keepalive_ALL.pl b/agc_2-X/trunk/bin/ADMIN_keepalive_ALL.pl
index 45d0b691..6fd85b66 100644
--- a/agc_2-X/trunk/bin/ADMIN_keepalive_ALL.pl
+++ b/agc_2-X/trunk/bin/ADMIN_keepalive_ALL.pl
@@ -166,9 +166,10 @@
# 230511-0825 - Added log_latency_gaps trigger, demographic_quotas trigger
# 230524-2144 - Added weekday_resets
# 230609-1137 - Added VIDPROMPTSPECIAL call menu In-Group dialplan entries
+# 230909-0846 - Added purging of vicidial_khomp_log records older than 7 days
#
-$build = '230609-1137';
+$build = '230909-0846';
$DB=0; # Debug flag
$teodDB=0; # flag to log Timeclock End of Day processes to log file
@@ -2111,6 +2112,24 @@ if ($timeclock_end_of_day_NOW > 0)
##### END vicidial_tiltx_shaken_log end of day process removing records older than 7 days #####
+ ##### BEGIN vicidial_khomp_log end of day process removing records older than 7 days #####
+ $stmtA = "DELETE from vicidial_khomp_log where start_date < \"$SDSQLdate\";";
+ if($DBX){print STDERR "\n|$stmtA|\n";}
+ $affected_rows = $dbhA->do($stmtA);
+ if($DB){print STDERR "\n|$affected_rows vicidial_khomp_log records older than 7 days purged|\n";}
+ if ($teodDB) {$event_string = "vicidial_khomp_log records older than 7 days purged: |$stmtA|$affected_rows|"; &teod_logger;}
+
+ $stmtA = "optimize table vicidial_khomp_log;";
+ 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_khomp_log end of day process removing records older than 7 days #####
+
+
##### BEGIN vicidial_two_factor_auth end of day process removing expired and older records #####
$stmtA = "DELETE from vicidial_two_factor_auth where (auth_exp_date < NOW()) or ( (auth_code_exp_date < NOW()) and (auth_stage != '1') );";
if($DBX){print STDERR "\n|$stmtA|\n";}
diff --git a/agc_2-X/trunk/docs/2FA_TWO_FACTOR_AUTHENTICATION.txt b/agc_2-X/trunk/docs/2FA_TWO_FACTOR_AUTHENTICATION.txt
index 815354a0..7cdbdd69 100644
--- a/agc_2-X/trunk/docs/2FA_TWO_FACTOR_AUTHENTICATION.txt
+++ b/agc_2-X/trunk/docs/2FA_TWO_FACTOR_AUTHENTICATION.txt
@@ -1,4 +1,4 @@
-2FA - TWO FACTOR AUTHENTICATION Updated: 2023-06-10
+2FA - TWO FACTOR AUTHENTICATION Updated: 2023-09-14
This document covers the 2FA(Two-Factor-Authentication) features in VICIdial as
of admin.php build 210312-1239(svn/trunk revision 3373).
@@ -66,7 +66,7 @@ Notes:
Upon activating 2FA in the System Settings, if you get the following message, it means that your user account does not have an Email address and Mobile Phone number filled in:
"Your User account is not configured for Two-Factor-Authentication. Please contact your system administrator"
-
+If you are using email as an option, the "email_from" email address should use a domain name that is registered to your webserver, or you may have issues with email filtering
diff --git a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql
index 522d63a3..166d14a7 100644
--- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql
+++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql
@@ -754,7 +754,7 @@ agent_xfer_blind_transfer ENUM('Y','N') default 'Y',
agent_xfer_dial_with_customer ENUM('Y','N') default 'Y',
agent_xfer_park_customer_dial ENUM('Y','N') default 'Y',
agent_fullscreen ENUM('Y','N') default 'N',
-allowed_reports VARCHAR(2000) default 'ALL REPORTS',
+allowed_reports VARCHAR(4000) default 'ALL REPORTS',
webphone_url_override VARCHAR(255) default '',
webphone_systemkey_override VARCHAR(100) default '',
webphone_dialpad_override ENUM('DISABLED','Y','N','TOGGLE','TOGGLE_OFF') default 'DISABLED',
@@ -1855,7 +1855,7 @@ label_security_phrase VARCHAR(60) default '',
label_email VARCHAR(60) default '',
label_comments VARCHAR(60) default '',
slave_db_server VARCHAR(50) default '',
-reports_use_slave_db VARCHAR(2000) default '',
+reports_use_slave_db VARCHAR(4000) default '',
webphone_systemkey VARCHAR(100) default '',
first_login_trigger ENUM('Y','N') default 'N',
hosted_settings VARCHAR(100) default '',
@@ -5437,4 +5437,4 @@ INSERT INTO `wallboard_reports` VALUES ('AGENTS_AND_QUEUES','Agents and Queues',
UPDATE system_settings set vdc_agent_api_active='1';
-UPDATE system_settings SET db_schema_version='1694',db_schema_update_date=NOW(),reload_timestamp=NOW();
+UPDATE system_settings SET db_schema_version='1695',db_schema_update_date=NOW(),reload_timestamp=NOW();
diff --git a/agc_2-X/trunk/extras/upgrade_2.14.sql b/agc_2-X/trunk/extras/upgrade_2.14.sql
index 10110ff3..9fe72d5b 100644
--- a/agc_2-X/trunk/extras/upgrade_2.14.sql
+++ b/agc_2-X/trunk/extras/upgrade_2.14.sql
@@ -2409,3 +2409,9 @@ UPDATE system_settings SET db_schema_version='1693',db_schema_update_date=NOW()
CREATE TABLE vicidial_daily_rt_monitoring_log LIKE vicidial_rt_monitor_log;
UPDATE system_settings SET db_schema_version='1694',db_schema_update_date=NOW() where db_schema_version < 1694;
+
+ALTER TABLE vicidial_user_groups MODIFY allowed_reports VARCHAR(4000) default 'ALL REPORTS';
+
+ALTER TABLE system_settings MODIFY reports_use_slave_db VARCHAR(4000) default '';
+
+UPDATE system_settings SET db_schema_version='1695',db_schema_update_date=NOW() where db_schema_version < 1695;
diff --git a/agc_2-X/trunk/www/agc/vicidial.php b/agc_2-X/trunk/www/agc/vicidial.php
index ea2b2349..f4ca64e7 100644
--- a/agc_2-X/trunk/www/agc/vicidial.php
+++ b/agc_2-X/trunk/www/agc/vicidial.php
@@ -6066,6 +6066,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var camp_custom_five='';
var dead_stop_recording='';
var dead_count=0;
+ var APIskip=0;
var DiaLControl_auto_HTML = "
\" border=\"0\" alt=\"You are paused\" />";
var DiaLControl_auto_HTML_ready = "
\" border=\"0\" alt=\"You are active\" />";
var DiaLControl_auto_HTML_OFF = "
\" border=\"0\" alt=\"pause button disabled\" />";
@@ -7810,6 +7811,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
{
if ( (in_lead_preview_state==1) && (APIDiaL == 'SKIP') )
{
+ APIskip=1;
ManualDialSkip();
}
if (APIDiaL == 'DIALONLY')
@@ -11970,7 +11972,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
{
if (MDSclick=='YES')
{button_click_log = button_click_log + "" + SQLdate + "-----ManualDialSkip---|";}
- if (manual_dial_in_progress==1)
+ if ( (manual_dial_in_progress==1) && (APIskip < 1) )
{
alert_box("");
button_click_log = button_click_log + "" + SQLdate + "-----DialSkipFailed---" + manual_dial_in_progress + " " + "|";
@@ -12157,6 +12159,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
transfer_no_dispoTEMP=0;
leave_3way_start_recording_filename='';
three_way_call_cid = orig_three_way_call_cid;
+ APIskip=0;
if (manual_dial_preview < 1)
{
document.vicidial_form.LeadPreview.checked=false;
@@ -16166,6 +16169,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
customer_3way_hangup_counter_trigger=0;
waiting_on_dispo=1;
recording_active=0;
+ APIskip=0;
var VDDCU_recording_id=document.getElementById("RecorDID").innerHTML;
var VDDCU_recording_filename=last_recording_filename;
var dispo_urls='';
@@ -16532,6 +16536,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
transfer_no_dispoTEMP=0;
leave_3way_start_recording_filename='';
three_way_call_cid = orig_three_way_call_cid;
+ APIskip=0;
if (manual_auto_next > 0)
{manual_auto_next_trigger=1; manual_auto_next_count=manual_auto_next;}
if (agent_display_fields.match(adfREGentry_date))
diff --git a/agc_2-X/trunk/www/vicidial/help_documentation.txt b/agc_2-X/trunk/www/vicidial/help_documentation.txt
index e7cd48d5..0a56dcd2 100644
--- a/agc_2-X/trunk/www/vicidial/help_documentation.txt
+++ b/agc_2-X/trunk/www/vicidial/help_documentation.txt
@@ -1,6 +1,6 @@
-# version: 20230830105701
+# version: 20230912105201
users-user User ID This field is where you put the users ID number, can be up to 20 digits in length, Must be at least 2 characters in length. We strongly recommend not reusing user accounts for different users, for reporting accuracy. To disable a user account, set the Active option to -N-.
-users-pass Password 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.
+users-pass Password This field is where you put the users password. Must be at least 2 characters in length, unless the User Password Minimum Length system setting is enabled, which will require a longer password. 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.
users-force_change_password Force Change Password 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.
users-last_login_date Last Login Info This shows the last login attempt date and time, and if there has been a recent failed login attempt. If this modify user form is submitted, then the failed login attempt counter will be reset and the agent can immediately attempt to log in again. If an agent has 10 failed login attempts in a row then they cannot attempt to log in again for at least 15 minutes unless their account is manually reset.
users-full_name Full Name This field is where you put the users full name. Must be at least 2 characters in length.