git-svn-id: svn://192.168.202.10@2116 3d104415-ff17-0410-8863-d5cf3c621b8a

This commit is contained in:
mattf
2014-05-10 05:51:39 +00:00
parent 51496ee59b
commit 5834630833
8 changed files with 143 additions and 23 deletions
+3
View File
@@ -217,6 +217,9 @@ OTHER CHANGES:
43. Added logging of pause type(ADMIN, AGENT, SYSTEM, API,...)
44. Added frozen call clearing system setting, used in admin.php(Reports page)
and optional AST_timecheck.pl script
+64 -7
View File
@@ -1,15 +1,16 @@
#!/usr/bin/perl
#
# AST_timecheck.pl version: 2.6
# AST_timecheck.pl version: 2.8
#
# This script is designed to send an email when an asterisk server is out of sync
#
# /usr/share/astguiclient/AST_VDsales_export.pl --campaign=GOODB-GROUP1-GROUP3-GROUP4-SPECIALS-DNC_BEDS --output-format=fixed-as400 --sale-statuses=SALE --debug --filename=BEDSsaleMMDD.txt --date=yesterday --email-list=test@gmail.com --email-sender=test@test.com
# /usr/share/astguiclient/AST_timecheck.pl --quiet --seconds=5 --email-list=test@gmail.com --email-sender=test@test.com
#
# Copyright (C) 2013 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2014 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGES
# 130503-1515 - First version
# 140509-2214 - Added frozen_server_call_clear system setting
#
$txt = '.txt';
@@ -193,26 +194,82 @@ use DBI;
$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass")
or die "Couldn't connect to database: " . DBI->errstr;
$stmtA = "SELECT su.server_ip,last_update,UNIX_TIMESTAMP(last_update),server_description FROM server_updater su,servers s where s.server_ip=su.server_ip;";
$SSfrozen_server_call_clear=0;
### Grab system settings values from the database
$stmtA = "SELECT frozen_server_call_clear FROM system_settings;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
if ($sthArows > 0)
{
@aryA = $sthA->fetchrow_array;
$SSfrozen_server_call_clear = $aryA[0];
}
$sthA->finish();
$stmtA = "SELECT su.server_ip,last_update,UNIX_TIMESTAMP(last_update),server_description,UNIX_TIMESTAMP(db_time),server_id FROM server_updater su,servers s where s.server_ip=su.server_ip;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArowsSERVERS=$sthA->rows;
if ($DBX) {print " $sthArows|$stmtA|\n";}
$i=0;
while ($sthArows > $i)
while ($sthArowsSERVERS > $i)
{
@aryA = $sthA->fetchrow_array;
$server_ip = $aryA[0];
$s_time = $aryA[1];
$u_time = ($aryA[2] + $seconds);
$reset_time = ($aryA[2] + 90);
$server_name = $aryA[3];
if ($DBX) {print "Server time: $server_ip($server_name) Last time: $s_time($u_time|$aryA[2])\n";}
$Sdb_time = ($aryA[4] + 10);
$server_id = $aryA[5];
if ($DBX) {print "Server time: $i - $server_ip($server_id - $server_name) Last time: $s_time($u_time|$aryA[2])\n";}
if ($web_u_time > $u_time)
{
if ($DBX) {print "Time sync issue - SERVER: $server_ip($server_name)\n LAST TIME: $s_time($u_time)\n TIME NOW: $timestamp($web_u_time)\n\n";}
if ($DBX) {print "Time sync issue - SERVER: $server_ip($server_name)\n LAST TIME: $s_time($u_time)\n TIME NOW: $timestamp($web_u_time)\n";}
$Ealert .= "SERVER: $server_ip($server_name)\n LAST TIME: $s_time($u_time)\n TIME NOW: $timestamp($web_u_time)\n\n";
$servers++;
if ($DBX) {print " DEBUG: ($web_u_time > $reset_time)|($web_u_time > $Sdb_time)| |$SSfrozen_server_call_clear|\n";}
if ( ($web_u_time > $reset_time) && ($web_u_time > $Sdb_time) && ($SSfrozen_server_call_clear > 0) )
{
$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass")
or die "Couldn't connect to database: " . DBI->errstr;
$servercalls_count=0;
### Grab number of calls on frozen server
$stmtB = "SELECT count(*) from vicidial_auto_calls where server_ip='$server_ip';";
$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr;
$sthB->execute or die "executing: $stmtB ", $dbhB->errstr;
$sthBrows=$sthB->rows;
if ($sthBrows > 0)
{
@aryB = $sthB->fetchrow_array;
$servercalls_count = $aryB[0];
}
$sthB->finish();
if ($DBX) {print " ServerCalls: $servercalls_count\n";}
if ($servercalls_count > 0)
{
$stmt="DELETE FROM vicidial_auto_calls where server_ip='$server_ip';";
$FCaffected_rows = $dbhB->do($stmt);
if($DB){print STDERR "\n$FCaffected_rows|$stmt|\n";}
### LOG INSERTION Admin Log Table ###
$SQL_log = "$stmt|";
$SQL_log =~ s/;|\\|\'|\"//gi;
$stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='VDAD', ip_address='$server_ip', event_section='SERVERS', event_type='CLEAR', record_id='$server_id', event_code='FROZEN SERVER CALL CLEAR', event_sql=\"$SQL_log\", event_notes='$servercalls_count|$FCaffected_rows|$s_time($u_time|$aryA[2])';";
$BLaffected_rows = $dbhB->do($stmt);
if($DB){print STDERR "\n$BLaffected_rows|$stmt|\n";}
$Ealert .= " FROZEN CALLS CLEARED: $servercalls_count|$FCaffected_rows\n\n";
}
}
}
$i++;
}
+10 -6
View File
@@ -27,7 +27,7 @@
#
# It is recommended that you run this program on each local Asterisk machine
#
# Copyright (C) 2013 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2014 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# version changes:
# 41228-1659 - modified to compensate for manager output response hiccups
@@ -60,9 +60,10 @@
# 130108-1710 - Changes for Asterisk 1.8 compatibility
# 130413-2125 - Fix for issue #664, formatting fixes and added --quiet flag
# 131122-1317 - Small formatting fixes
# 140510-0119 - Small formatting and asterisk version changes
#
$build = '131122-1317';
$build = '140510-0119';
# constants
$SYSPERF=0; # system performance logging to MySQL server_performance table every 5 seconds
@@ -302,6 +303,9 @@ if ($AST_ver =~ /^1\.0/i) {$show_channels_format = 0;}
if ($AST_ver =~ /^1\.4/i) {$show_channels_format = 2;}
if ($AST_ver =~ /^1\.6/i) {$show_channels_format = 3;}
if ($AST_ver =~ /^1\.8/i) {$show_channels_format = 4;}
if ($AST_ver =~ /^10\./i) {$show_channels_format = 4;}
if ($AST_ver =~ /^11\./i) {$show_channels_format = 4;}
if ($AST_ver =~ /^12\./i) {$show_channels_format = 4;}
if ($Q < 1)
{print STDERR "SHOW CHANNELS format: $show_channels_format\n";}
@@ -320,8 +324,8 @@ if ($SUrec < 1)
{
&get_time_now;
$stmtU = "INSERT INTO $server_updater set server_ip='$server_ip', last_update='$now_date';";
if($DB){print STDERR "\n|$stmtU|\n";}
$stmtU = "INSERT INTO $server_updater set server_ip='$server_ip', last_update='$now_date';";
if($DB){print STDERR "\n|$stmtU|\n";}
$affected_rows = $dbhA->do($stmtU);
}
@@ -1200,9 +1204,9 @@ sub validate_parked_channels
{
if (@ARparked_time_UNIX[$AR] > $PQparked_time_UNIX)
{
if($DBX){print "Duplicate parked channel delete: |$PQchannel|$PQparked_time|\n";}
if ($DBX) {print "Duplicate parked channel delete: |$PQchannel|$PQparked_time|\n";}
$stmtPQ = "DELETE FROM $parked_channels where server_ip='$server_ip' and channel='$PQchannel' and extension='$PQextension' and parked_time='$PQparked_time' limit 1";
if($DB){print STDERR "\n|$stmtPQ|$$DEL_chan_park_counter|$DEL_chan_park_counter|\n\n";}
if ($DB) {print STDERR "\n|$stmtPQ|$$DEL_chan_park_counter|$DEL_chan_park_counter|\n\n";}
$affected_rows = $dbhC->do($stmtPQ);
$DEL_chan_park_counter = "DEL$PQchannel$PQextension";
@@ -1554,7 +1554,8 @@ disable_auto_dial ENUM('0','1') default '0',
queuemetrics_record_hold ENUM('0','1') default '0',
country_code_list_stats ENUM('0','1') default '0',
reload_timestamp DATETIME,
queuemetrics_pause_type ENUM('0','1') default '0'
queuemetrics_pause_type ENUM('0','1') default '0',
frozen_server_call_clear ENUM('0','1') default '0'
) ENGINE=MyISAM;
CREATE TABLE vicidial_campaigns_list_mix (
@@ -3266,4 +3267,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='1376',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1377',db_schema_update_date=NOW(),reload_timestamp=NOW();
+4
View File
@@ -252,3 +252,7 @@ ALTER TABLE vicidial_agent_log_archive ADD pause_type ENUM('UNDEFINED','SYSTEM',
ALTER TABLE system_settings ADD queuemetrics_pause_type ENUM('0','1') default '0';
UPDATE system_settings SET db_schema_version='1376',db_schema_update_date=NOW() where db_schema_version < 1376;
ALTER TABLE system_settings ADD frozen_server_call_clear ENUM('0','1') default '0';
UPDATE system_settings SET db_schema_version='1377',db_schema_update_date=NOW() where db_schema_version < 1377;
@@ -284,6 +284,8 @@ Modify Custom Dialplans||
This option if set to 1 allows the user to view and modify custom dialplan entries that are available in the Call Menu, System Settings and Servers modification screens||
QueueMetrics Pause Type Logging||
If enabled, this option will log the type of pause in the queue_log table data5 field. You must make sure that you have a data5 field or enabling this feature will break QM compatibility. Default is 0 for disabled||
Clear Frozen Calls||
This option can enable the ability for the general Reports page and the optional AST_timecheck.pl script to clear out the auto_calls entries for a frozen server so they do not affect call routing. Default is 0 for disabled||
########################## CHANGES TO EXISTING PHRASES IN ADMIN TRANSLATION
+51 -8
View File
@@ -1840,6 +1840,8 @@ if (isset($_GET["modify_custom_dialplans"])) {$modify_custom_dialplans=$_GET["
elseif (isset($_POST["modify_custom_dialplans"])) {$modify_custom_dialplans=$_POST["modify_custom_dialplans"];}
if (isset($_GET["queuemetrics_pause_type"])) {$queuemetrics_pause_type=$_GET["queuemetrics_pause_type"];}
elseif (isset($_POST["queuemetrics_pause_type"])) {$queuemetrics_pause_type=$_POST["queuemetrics_pause_type"];}
if (isset($_GET["frozen_server_call_clear"])) {$frozen_server_call_clear=$_GET["frozen_server_call_clear"];}
elseif (isset($_POST["frozen_server_call_clear"])) {$frozen_server_call_clear=$_POST["frozen_server_call_clear"];}
if (isset($script_id)) {$script_id= strtoupper($script_id);}
@@ -1854,7 +1856,7 @@ if (strlen($dial_status) > 0)
#############################################
##### START SYSTEM_SETTINGS LOOKUP #####
$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,allow_emails,level_8_disable_add,pass_key,pass_hash_enabled,disable_auto_dial,country_code_list_stats FROM system_settings;";
$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,allow_emails,level_8_disable_add,pass_key,pass_hash_enabled,disable_auto_dial,country_code_list_stats,frozen_server_call_clear FROM system_settings;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {echo "$stmt\n";}
$qm_conf_ct = mysqli_num_rows($rslt);
@@ -1902,6 +1904,7 @@ if ($qm_conf_ct > 0)
$SSpass_hash_enabled = $row[38];
$SSdisable_auto_dial = $row[39];
$SScountry_code_list_stats = $row[40];
$SSfrozen_server_call_clear = $row[41];
}
##### END SETTINGS LOOKUP #####
###########################################
@@ -2171,6 +2174,7 @@ if ($non_latin < 1)
$max_inbound_calls = preg_replace('/[^0-9]/','',$max_inbound_calls);
$modify_custom_dialplans = preg_replace('/[^0-9]/','',$modify_custom_dialplans);
$queuemetrics_pause_type = preg_replace('/[^0-9]/','',$queuemetrics_pause_type);
$frozen_server_call_clear = preg_replace('/[^0-9]/','',$frozen_server_call_clear);
$drop_call_seconds = preg_replace('/[^-0-9]/','',$drop_call_seconds);
@@ -3309,12 +3313,13 @@ else
# 140423-1636 - Added campaign settings for manual_dial_search_checkbox and hide_call_log_info
# 140425-0906 - Added user permission for editing custom dialplan entries
# 140425-1257 - Added queuemetrics_pause_type system settings option, and added pause_type to agent logout
# 140509-2201 - Added frozen_server_call_clear system setting, used in admin.php and AST_timecheck.pl
#
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time
$admin_version = '2.8-437a';
$build = '140425-1257';
$admin_version = '2.8-438a';
$build = '140509-2201';
$STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s");
@@ -14390,7 +14395,7 @@ if ($ADD==411111111111111)
$custom_dialplanSQL='';
if ($LOGmodify_custom_dialplans > 0)
{$custom_dialplanSQL = ",custom_dialplan_entry='$custom_dialplan_entry'";}
$stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform',default_webphone='$default_webphone',default_external_server_ip='$default_external_server_ip',webphone_url='" . mysqli_real_escape_string($link, $webphone_url) . "',enable_agc_dispo_log='$enable_agc_dispo_log',queuemetrics_loginout='$queuemetrics_loginout',callcard_enabled='$callcard_enabled',queuemetrics_callstatus='$queuemetrics_callstatus',default_codecs='$default_codecs',admin_web_directory='$admin_web_directory',label_title='$label_title',label_first_name='$label_first_name',label_middle_initial='$label_middle_initial',label_last_name='$label_last_name',label_address1='$label_address1',label_address2='$label_address2',label_address3='$label_address3',label_city='$label_city',label_state='$label_state',label_province='$label_province',label_postal_code='$label_postal_code',label_vendor_lead_code='$label_vendor_lead_code',label_gender='$label_gender',label_phone_number='$label_phone_number',label_phone_code='$label_phone_code',label_alt_phone='$label_alt_phone',label_security_phrase='$label_security_phrase',label_email='$label_email',label_comments='$label_comments',custom_fields_enabled='$custom_fields_enabled',slave_db_server='$slave_db_server',reports_use_slave_db='$reports_use_slave_db',webphone_systemkey='$webphone_systemkey',first_login_trigger='$first_login_trigger',default_phone_registration_password='$default_phone_registration_password',default_phone_login_password='$default_phone_login_password',default_server_password='$default_server_password',admin_modify_refresh='$admin_modify_refresh',nocache_admin='$nocache_admin',generate_cross_server_exten='$generate_cross_server_exten',queuemetrics_addmember_enabled='$queuemetrics_addmember_enabled',queuemetrics_dispo_pause='$queuemetrics_dispo_pause',label_hide_field_logs='$label_hide_field_logs',queuemetrics_pe_phone_append='$queuemetrics_pe_phone_append',test_campaign_calls='$test_campaign_calls',agents_calls_reset='$agents_calls_reset',default_voicemail_timezone='$default_voicemail_timezone',default_local_gmt='$default_local_gmt',noanswer_log='$noanswer_log',alt_log_server_ip='$alt_log_server_ip',alt_log_dbname='$alt_log_dbname',alt_log_login='$alt_log_login',alt_log_pass='$alt_log_pass',tables_use_alt_log_db='$tables_use_alt_log_db',did_agent_log='$did_agent_log',campaign_cid_areacodes_enabled='$campaign_cid_areacodes_enabled',pllb_grouping_limit='$pllb_grouping_limit',did_ra_extensions_enabled='$did_ra_extensions_enabled',expanded_list_stats='$expanded_list_stats',contacts_enabled='$contacts_enabled',call_menu_qualify_enabled='$call_menu_qualify_enabled',admin_list_counts='$admin_list_counts',allow_voicemail_greeting='$allow_voicemail_greeting',queuemetrics_socket='$queuemetrics_socket',queuemetrics_socket_url='$queuemetrics_socket_url',enhanced_disconnect_logging='$enhanced_disconnect_logging',allow_emails='$allow_emails',level_8_disable_add='$level_8_disable_add',queuemetrics_record_hold='$queuemetrics_record_hold',country_code_list_stats='$country_code_list_stats',queuemetrics_pause_type='$queuemetrics_pause_type'$custom_dialplanSQL;";
$stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform',default_webphone='$default_webphone',default_external_server_ip='$default_external_server_ip',webphone_url='" . mysqli_real_escape_string($link, $webphone_url) . "',enable_agc_dispo_log='$enable_agc_dispo_log',queuemetrics_loginout='$queuemetrics_loginout',callcard_enabled='$callcard_enabled',queuemetrics_callstatus='$queuemetrics_callstatus',default_codecs='$default_codecs',admin_web_directory='$admin_web_directory',label_title='$label_title',label_first_name='$label_first_name',label_middle_initial='$label_middle_initial',label_last_name='$label_last_name',label_address1='$label_address1',label_address2='$label_address2',label_address3='$label_address3',label_city='$label_city',label_state='$label_state',label_province='$label_province',label_postal_code='$label_postal_code',label_vendor_lead_code='$label_vendor_lead_code',label_gender='$label_gender',label_phone_number='$label_phone_number',label_phone_code='$label_phone_code',label_alt_phone='$label_alt_phone',label_security_phrase='$label_security_phrase',label_email='$label_email',label_comments='$label_comments',custom_fields_enabled='$custom_fields_enabled',slave_db_server='$slave_db_server',reports_use_slave_db='$reports_use_slave_db',webphone_systemkey='$webphone_systemkey',first_login_trigger='$first_login_trigger',default_phone_registration_password='$default_phone_registration_password',default_phone_login_password='$default_phone_login_password',default_server_password='$default_server_password',admin_modify_refresh='$admin_modify_refresh',nocache_admin='$nocache_admin',generate_cross_server_exten='$generate_cross_server_exten',queuemetrics_addmember_enabled='$queuemetrics_addmember_enabled',queuemetrics_dispo_pause='$queuemetrics_dispo_pause',label_hide_field_logs='$label_hide_field_logs',queuemetrics_pe_phone_append='$queuemetrics_pe_phone_append',test_campaign_calls='$test_campaign_calls',agents_calls_reset='$agents_calls_reset',default_voicemail_timezone='$default_voicemail_timezone',default_local_gmt='$default_local_gmt',noanswer_log='$noanswer_log',alt_log_server_ip='$alt_log_server_ip',alt_log_dbname='$alt_log_dbname',alt_log_login='$alt_log_login',alt_log_pass='$alt_log_pass',tables_use_alt_log_db='$tables_use_alt_log_db',did_agent_log='$did_agent_log',campaign_cid_areacodes_enabled='$campaign_cid_areacodes_enabled',pllb_grouping_limit='$pllb_grouping_limit',did_ra_extensions_enabled='$did_ra_extensions_enabled',expanded_list_stats='$expanded_list_stats',contacts_enabled='$contacts_enabled',call_menu_qualify_enabled='$call_menu_qualify_enabled',admin_list_counts='$admin_list_counts',allow_voicemail_greeting='$allow_voicemail_greeting',queuemetrics_socket='$queuemetrics_socket',queuemetrics_socket_url='$queuemetrics_socket_url',enhanced_disconnect_logging='$enhanced_disconnect_logging',allow_emails='$allow_emails',level_8_disable_add='$level_8_disable_add',queuemetrics_record_hold='$queuemetrics_record_hold',country_code_list_stats='$country_code_list_stats',queuemetrics_pause_type='$queuemetrics_pause_type',frozen_server_call_clear='$frozen_server_call_clear'$custom_dialplanSQL;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($reload_dialplan_on_servers > 0)
@@ -28340,7 +28345,7 @@ if ($ADD==311111111111111)
$ALLagent_count = $rowx[2];
}
$stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform,default_webphone,default_external_server_ip,webphone_url,enable_agc_dispo_log,custom_dialplan_entry,queuemetrics_loginout,callcard_enabled,queuemetrics_callstatus,default_codecs,admin_web_directory,label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments,custom_fields_enabled,slave_db_server,reports_use_slave_db,webphone_systemkey,first_login_trigger,default_phone_registration_password,default_phone_login_password,default_server_password,admin_modify_refresh,nocache_admin,generate_cross_server_exten,queuemetrics_addmember_enabled,queuemetrics_dispo_pause,label_hide_field_logs,queuemetrics_pe_phone_append,test_campaign_calls,agents_calls_reset,default_voicemail_timezone,default_local_gmt,noanswer_log,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,did_agent_log,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,queuemetrics_socket,queuemetrics_socket_url,enhanced_disconnect_logging,allow_emails,level_8_disable_add,pass_hash_enabled,pass_key,pass_cost,disable_auto_dial,queuemetrics_record_hold,country_code_list_stats,reload_timestamp,queuemetrics_pause_type from system_settings;";
$stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform,default_webphone,default_external_server_ip,webphone_url,enable_agc_dispo_log,custom_dialplan_entry,queuemetrics_loginout,callcard_enabled,queuemetrics_callstatus,default_codecs,admin_web_directory,label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments,custom_fields_enabled,slave_db_server,reports_use_slave_db,webphone_systemkey,first_login_trigger,default_phone_registration_password,default_phone_login_password,default_server_password,admin_modify_refresh,nocache_admin,generate_cross_server_exten,queuemetrics_addmember_enabled,queuemetrics_dispo_pause,label_hide_field_logs,queuemetrics_pe_phone_append,test_campaign_calls,agents_calls_reset,default_voicemail_timezone,default_local_gmt,noanswer_log,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,did_agent_log,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,queuemetrics_socket,queuemetrics_socket_url,enhanced_disconnect_logging,allow_emails,level_8_disable_add,pass_hash_enabled,pass_key,pass_cost,disable_auto_dial,queuemetrics_record_hold,country_code_list_stats,reload_timestamp,queuemetrics_pause_type,frozen_server_call_clear from system_settings;";
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$version = $row[0];
@@ -28465,6 +28470,7 @@ if ($ADD==311111111111111)
$country_code_list_stats = $row[119];
$reload_timestamp = $row[120];
$queuemetrics_pause_type = $row[121];
$frozen_server_call_clear = $row[122];
if ($pass_hash_enabled > 0) {$pass_hash_enabled = 'ENABLED';}
else {$pass_hash_enabled = 'DISABLED';}
@@ -28497,6 +28503,7 @@ if ($ADD==311111111111111)
echo "<option value=\"ALL\">ALL</option>\n";
echo "<option selected value=\"$vicidial_agent_disable\">$vicidial_agent_disable</option>\n";
echo "</select>$NWB#settings-agent_disable$NWE</td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>Clear Frozen Calls: </td><td align=left><select size=1 name=frozen_server_call_clear><option>1</option><option>0</option><option selected>$frozen_server_call_clear</option></select>$NWB#settings-frozen_server_call_clear$NWE</td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>Allow SIPSAK Messages: </td><td align=left><select size=1 name=allow_sipsak_messages><option>1</option><option>0</option><option selected>$allow_sipsak_messages</option></select>$NWB#settings-allow_sipsak_messages$NWE</td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>Admin Home URL: </td><td align=left><input type=text name=admin_home_url size=50 maxlength=255 value=\"$admin_home_url\">$NWB#settings-admin_home_url$NWE</td></tr>\n";
echo "<tr bgcolor=#B6D3FC><td align=right>Admin Modify Auto-Refresh: </td><td align=left><input type=text name=admin_modify_refresh size=6 maxlength=5 value=\"$admin_modify_refresh\">$NWB#settings-admin_modify_refresh$NWE</td></tr>\n";
@@ -31715,19 +31722,54 @@ if ($ADD==999999)
$s_time='&nbsp;';
$s_ver='&nbsp;';
$u_time=$web_u_time;
$stmt="SELECT last_update,UNIX_TIMESTAMP(last_update) from server_updater where server_ip='$server_ip[$o]';";
$reset_time=$web_u_time;
$Sdb_time=$web_u_time;
$stmt="SELECT last_update,UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip[$o]';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {echo "$stmt\n";}
$servertime_to_print = mysqli_num_rows($rslt);
if ($servertime_to_print)
{
$row=mysqli_fetch_row($rslt);
$s_time = $row[0];
$u_time = ($row[1] + 10);
$s_time = $row[0];
$u_time = ($row[1] + 10);
$reset_time = ($row[1] + 90);
$Sdb_time = ($row[2] + 10);
}
$server_bgcolor='';
$FROZEN_output='';
if ($web_u_time > $u_time)
{$server_bgcolor=' bgcolor=red';}
if ( ($web_u_time > $reset_time) and ($web_u_time > $Sdb_time) and ($SSfrozen_server_call_clear > 0) )
{
#### if server is more than 90 seconds out of sync and no longer updating, check for live calls and agents and delete them
$servercalls_count=0;
$stmt="SELECT count(*) from vicidial_auto_calls where server_ip='$server_ip[$o]';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {echo "$stmt\n";}
$servercalls_to_print = mysqli_num_rows($rslt);
if ($servercalls_to_print)
{
$row=mysqli_fetch_row($rslt);
$servercalls_count = $row[0];
}
if ($servercalls_count > 0)
{
$stmt="DELETE FROM vicidial_auto_calls where server_ip='$server_ip[$o]';";
$rslt=mysql_to_mysqli($stmt, $link);
$FCaffected_rows = mysqli_affected_rows($link);
### LOG INSERTION Admin Log Table ###
$SQL_log = "$stmt|";
$SQL_log = preg_replace('/;/', '', $SQL_log);
$SQL_log = addslashes($SQL_log);
$stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$server_ip[$o]', event_section='SERVERS', event_type='CLEAR', record_id='$server_id[$o]', event_code='FROZEN SERVER CALL CLEAR ADMIN', event_sql=\"$SQL_log\", event_notes='$servercalls_count|$FCaffected_rows|$s_time($web_u_time|$Sdb_time)';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$FROZEN_output = "<TR$server_bgcolor><TD> &nbsp; </TD><TD COLSPAN=8>FROZEN CALLS CLEARED: $servercalls_count|$FCaffected_rows</TD></TR>\n";
}
}
echo "<TR$server_bgcolor>\n";
echo "<TD><a href=\"$PHP_SELF?ADD=311111111111&server_id=$server_id[$o]\">$server_id[$o]</a></TD>\n";
echo "<TD>$server_description[$o]</TD>\n";
@@ -31763,6 +31805,7 @@ if ($ADD==999999)
}
}
echo "</TR>\n";
echo "$FROZEN_output";
$o++;
}
+6
View File
@@ -15,6 +15,7 @@
# 140423-1637 - Added manual_dial_search_checkbox and hide_call_log_info
# 140425-0912 - Added modify_custom_dialplans
# 140425-1306 - Added queuemetrics_pause_type
# 140509-2211 - Added frozen_server_call_clear
#
@@ -4148,6 +4149,11 @@ if ($SSoutbound_autodial_active > 0)
<BR>
<B>Agent Disable Display -</B> This field is used to select when to show an agent notices when their session has been disabled by the system, a manager action or by an external measure. The NOT_ACTIVE setting will disable the message on the agents screen. The LIVE_AGENT setting will only display the disabled message when the agents auto_calls record has been removed, such as during a force logout or emergency logout. Default is ALL.
<BR>
<A NAME="settings-frozen_server_call_clear">
<BR>
<B>Clear Frozen Calls -</B> This option can enable the ability for the general Reports page and the optional AST_timecheck.pl script to clear out the auto_calls entries for a frozen server so they do not affect call routing. Default is 0 for disabled.
<BR>
<A NAME="settings-allow_sipsak_messages">
<BR>