diff --git a/UPGRADE b/UPGRADE index 5ac4eef3..6d1f09b2 100644 --- a/UPGRADE +++ b/UPGRADE @@ -97,7 +97,7 @@ OTHER CHANGES: 16. Added the ability to define multiple Dispo Call URLs as well as define specific statuses that they will be triggered for. -17. Added compatability in the Vicidial code for Asterisk 11. +17. Added compatibility in the Vicidial code for Asterisk 11. 18. Added database and logfile logging of DTMF events. Works with Asterisk versions 1.8 and higher. If upgrading, you will need to add "dtmf" to diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql index 82756555..ee12ec60 100644 --- a/extras/MySQL_AST_CREATE_tables.sql +++ b/extras/MySQL_AST_CREATE_tables.sql @@ -1601,7 +1601,8 @@ enable_did_entry_list_id ENUM('0','1') default '0', enable_third_webform ENUM('0','1') default '0', chat_url VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL, chat_timeout INT(3) unsigned DEFAULT NULL, -agent_debug_logging VARCHAR(20) default '0' +agent_debug_logging VARCHAR(20) default '0', +default_language VARCHAR(100) default 'default English' ) ENGINE=MyISAM; CREATE TABLE vicidial_campaigns_list_mix ( @@ -3545,4 +3546,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='1422',db_schema_update_date=NOW(),reload_timestamp=NOW(); +UPDATE system_settings SET db_schema_version='1423',db_schema_update_date=NOW(),reload_timestamp=NOW(); diff --git a/extras/upgrade_2.12.sql b/extras/upgrade_2.12.sql index 1fde0421..4f3b6748 100644 --- a/extras/upgrade_2.12.sql +++ b/extras/upgrade_2.12.sql @@ -239,3 +239,7 @@ UPDATE system_settings SET db_schema_version='1421',db_schema_update_date=NOW() ALTER TABLE vicidial_campaigns ADD agent_display_fields VARCHAR(50) default ''; UPDATE system_settings SET db_schema_version='1422',db_schema_update_date=NOW() where db_schema_version < 1422; + +ALTER TABLE system_settings ADD default_language VARCHAR(100) default 'default English'; + +UPDATE system_settings SET db_schema_version='1423',db_schema_update_date=NOW() where db_schema_version < 1423; diff --git a/www/agc/astguiclient.php b/www/agc/astguiclient.php index 6373e591..d104ef6f 100644 --- a/www/agc/astguiclient.php +++ b/www/agc/astguiclient.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2015 Matt Florell LICENSE: AGPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also you need to have the login @@ -67,10 +67,11 @@ # 141125-0947 - Using pass hashes in AJAX # 141216-2115 - Added language settings lookups and user/pass variable standardization # 150218-1110 - Fixes for QXZ enclosed in single-quotes +# 150727-0915 - Added default_language # $version = '2.2.6-1'; -$build = '150218-1110'; +$build = '150727-0915'; require_once("dbconnect_mysqli.php"); require_once("functions.php"); @@ -124,7 +125,7 @@ if ($sl_ct > 0) $VUselected_language = $row[0]; } -$stmt = "SELECT use_non_latin,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_languages,language_method,default_language FROM system_settings;"; $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 ($DB) {echo "$stmt\n";} @@ -135,7 +136,11 @@ if ($qm_conf_ct > 0) $non_latin = $row[0]; $SSenable_languages = $row[1]; $SSlanguage_method = $row[2]; + $SSdefault_language = $row[3]; } + +if (strlen($VUselected_language) < 1) + {$VUselected_language = $SSdefault_language;} ##### END SETTINGS LOOKUP ##### ########################################### @@ -205,7 +210,7 @@ if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) echo " "._QXZ("Login")." "; echo "\n"; echo "   \n"; - echo ""._QXZ("User Login:")." "; + echo ""._QXZ("User Login").": "; echo "\n"; echo ""._QXZ("User Password:")." "; echo "\n"; diff --git a/www/agc/timeclock.php b/www/agc/timeclock.php index 68a22e8c..5db0fd4f 100644 --- a/www/agc/timeclock.php +++ b/www/agc/timeclock.php @@ -20,10 +20,11 @@ # 141216-2122 - Added language settings lookups and user/pass variable standardization # 150210-1307 - Fixed QXZ tags and formatting(issue #827) # 150212-0033 - Added case-sensitive user validation(issue #682) +# 150727-0912 - Added default_language # -$version = '2.10-15'; -$build = '150212-0033'; +$version = '2.12-16'; +$build = '150727-0912'; $StarTtimE = date("U"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -113,7 +114,7 @@ if ($sl_ct > 0) $VUselected_language = $row[1]; } -$stmt = "SELECT use_non_latin,admin_home_url,admin_web_directory,enable_languages,language_method FROM system_settings;"; +$stmt = "SELECT use_non_latin,admin_home_url,admin_web_directory,enable_languages,language_method,default_language FROM system_settings;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -126,7 +127,11 @@ if ($qm_conf_ct > 0) $admin_web_directory = $row[2]; $SSenable_languages = $row[3]; $SSlanguage_method = $row[4]; + $SSdefault_language = $row[5]; } + +if (strlen($VUselected_language) < 1) + {$VUselected_language = $SSdefault_language;} ##### END SETTINGS LOOKUP ##### ########################################### @@ -186,7 +191,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) echo " "._QXZ("Timeclock")." "; echo "\n"; echo "   \n"; - echo ""._QXZ("User Login:")." "; + echo ""._QXZ("User Login").": "; echo "\n"; echo ""._QXZ("User Password:")." "; echo "\n"; @@ -291,7 +296,7 @@ if ( ($stage == 'login') or ($stage == 'logout') ) echo " "._QXZ("Timeclock")." "; echo "\n"; echo "   \n"; - echo ""._QXZ("User Login:")." "; + echo ""._QXZ("User Login").": "; echo "\n"; echo ""._QXZ("User Password:")." "; echo "\n"; @@ -484,7 +489,7 @@ else echo " "._QXZ("Timeclock")." "; echo "\n"; echo "   \n"; - echo ""._QXZ("User Login:")." "; + echo ""._QXZ("User Login").": "; echo "\n"; echo ""._QXZ("User Password:")." "; echo "\n"; diff --git a/www/agc/vdc_db_query.php b/www/agc/vdc_db_query.php index d05042b2..980ebbb5 100644 --- a/www/agc/vdc_db_query.php +++ b/www/agc/vdc_db_query.php @@ -385,10 +385,11 @@ # 150711-0815 - Changed to allow for multiple Dispo Call URLs # 150723-1705 - Added ajax logging # 150725-1613 - Added entry_date as a variable +# 150727-0910 - Added default_language # -$version = '2.12-280'; -$build = '150725-1613'; +$version = '2.12-281'; +$build = '150727-0910'; $php_script = 'vdc_db_query.php'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=616; @@ -819,7 +820,7 @@ $sip_hangup_cause_dictionary = array( ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,qc_features_active,allow_emails,callback_time_24hour,enable_languages,language_method,agent_debug_logging FROM system_settings;"; +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,qc_features_active,allow_emails,callback_time_24hour,enable_languages,language_method,agent_debug_logging,default_language FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -841,6 +842,7 @@ if ($qm_conf_ct > 0) $SSenable_languages = $row[11]; $SSlanguage_method = $row[12]; $SSagent_debug_logging = $row[13]; + $SSdefault_language = $row[14]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -879,7 +881,7 @@ if (strlen($SSagent_debug_logging) > 1) {$SSagent_debug_logging=0;} } -$VUselected_language = ''; +$VUselected_language = $SSdefault_language; $stmt="SELECT selected_language from vicidial_users where user='$user';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index 0acfcfe1..07eeced9 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -495,10 +495,11 @@ # 150712-2045 - Changed dispo call url to operate through a separate AJAX process # 150723-1741 - Created method for logging agent button/link clicks # 150725-1744 - Added Agent Display Fields campaign option +# 150727-0908 - Added default_language # -$version = '2.12-467c'; -$build = '150725-1744'; +$version = '2.12-468c'; +$build = '150727-0908'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=85; $one_mysql_log=0; @@ -595,7 +596,7 @@ if ($sl_ct > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active,static_agent_url,custom_fields_enabled,pllb_grouping_limit,qc_features_active,allow_emails,callback_time_24hour,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,enable_third_webform FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active,static_agent_url,custom_fields_enabled,pllb_grouping_limit,qc_features_active,allow_emails,callback_time_24hour,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,enable_third_webform,default_language FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -625,6 +626,7 @@ if ($qm_conf_ct > 0) $meetme_enter_login_filename = $row[19]; $meetme_enter_leave3way_filename = $row[20]; $enable_third_webform = $row[21]; + $default_language = $row[22]; } else { @@ -727,7 +729,8 @@ $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; $agcDIR = preg_replace('/vicidial\.php/i','',$agcPAGE); if (strlen($static_agent_url) > 5) {$agcPAGE = $static_agent_url;} - +if (strlen($VUselected_language) < 1) + {$VUselected_language = $default_language;} header ("Content-type: text/html; charset=utf-8"); header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 diff --git a/www/vicidial/AST_agent_debug_log_report.php b/www/vicidial/AST_agent_debug_log_report.php index 5bbca7c4..6c243683 100644 --- a/www/vicidial/AST_agent_debug_log_report.php +++ b/www/vicidial/AST_agent_debug_log_report.php @@ -5,6 +5,7 @@ # # CHANGES # 150724-0740 - First build +# 150727-2111 - Added different colors for higher run times, added user variable, code cleanup # $startMS = microtime(); @@ -23,8 +24,8 @@ if (isset($_GET["query_date_D"])) {$query_date_D=$_GET["query_date_D"];} elseif (isset($_POST["query_date_D"])) {$query_date_D=$_POST["query_date_D"];} if (isset($_GET["query_date_T"])) {$query_date_T=$_GET["query_date_T"];} elseif (isset($_POST["query_date_T"])) {$query_date_T=$_POST["query_date_T"];} -if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} - elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} if (isset($_GET["lower_limit"])) {$lower_limit=$_GET["lower_limit"];} @@ -63,11 +64,13 @@ if ($non_latin < 1) { $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_USER); $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/', '', $PHP_AUTH_PW); + $agent_user = preg_replace('/[^-_0-9a-zA-Z]/', '', $agent_user); } else { $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); + $agent_user = preg_replace("/'|\"|\\\\|;/","",$agent_user); } $stmt="SELECT selected_language from vicidial_users where user='$PHP_AUTH_USER';"; @@ -268,6 +271,8 @@ $MAIN.="\n"; echo "\n"; echo "\n"; + + if ($SSenable_languages > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; echo "
"; $MAIN.="
\n"; $MAIN.="
\n"; $MAIN.="\n"; +$MAIN.=_QXZ("User").":\n"; +$MAIN.="   "; $MAIN.=_QXZ("Date").":\n"; $MAIN.=""; $MAIN.="\n"; -$MAIN.="

"; +$MAIN.="         "; -$MAIN.="
"._QXZ("to")."
"; +$MAIN.=" "._QXZ("to")."   "; /* $MAIN.="
"._QXZ("Server IP").":
\n"; @@ -304,7 +309,7 @@ while ($servers_to_print > $o) $MAIN.="
\n"; */ -$MAIN.="

\n"; +$MAIN.="
\n"; $MAIN.="
\n"; @@ -356,8 +361,10 @@ if ($SUBMIT) { $MAIN.="
\n";
-
-		$rpt_stmt="select user,start_time,db_time,run_time,php_script,action,lead_id,stage from vicidial_ajax_log where db_time >= '$query_date $query_date_D' and db_time <= '$query_date $query_date_T' order by db_time desc;";
+		$agent_userSQL='';
+		if (strlen($agent_user) > 1)
+			{$agent_userSQL = "and user='$agent_user'";}
+		$rpt_stmt="select user,start_time,db_time,run_time,php_script,action,lead_id,stage from vicidial_ajax_log where db_time >= '$query_date $query_date_D' and db_time <= '$query_date $query_date_T' $agent_userSQL order by db_time desc;";
 		$rpt_rslt=mysql_to_mysqli($rpt_stmt, $link);
 		if ($DB) {$MAIN.=$rpt_stmt."\n";}
 		if (mysqli_num_rows($rpt_rslt)>0) {
@@ -365,43 +372,49 @@ if ($SUBMIT) {
 		if (!$lower_limit) {$lower_limit=1;}
 		if ($lower_limit+999>=mysqli_num_rows($rpt_rslt)) {$upper_limit=($lower_limit+mysqli_num_rows($rpt_rslt)%1000)-1;} else {$upper_limit=$lower_limit+999;}
 		
-		$MAIN.="--- "._QXZ("AGENT SCREEN DEBUG LOG RECORDS FOR")." $query_date, $query_date_D "._QXZ("TO")." $query_date_T $server_rpt_string, "._QXZ("RECORDS")." #$lower_limit-$upper_limit               ["._QXZ("DOWNLOAD")."]\n";
+		$MAIN.="--- "._QXZ("AGENT SCREEN DEBUG LOG RECORDS FOR")." $query_date, $query_date_D "._QXZ("TO")." $query_date_T $server_rpt_string, "._QXZ("RECORDS")." #$lower_limit-$upper_limit               ["._QXZ("DOWNLOAD")."]\n";
 		$agntdb_rpt.="+----------------------+---------------------+---------------------+------------+----------------------+------------------------------------------+------------+------------------------------------------+\n";
 		$agntdb_rpt.="| "._QXZ("USER",20)." | "._QXZ("SCREEN DATE",19)." | "._QXZ("DB DATE",19)." | "._QXZ("RUN TIME",10)." | "._QXZ("SCRIPT",20)." | "._QXZ("ACTION",40)." | "._QXZ("LEAD_ID",10)." | "._QXZ("STAGE",40)." |\n";
 		$agntdb_rpt.="+----------------------+---------------------+---------------------+------------+----------------------+------------------------------------------+------------+------------------------------------------+\n";
 		$CSV_text="\""._QXZ("USER")."\",\""._QXZ("SCREEN DATE")."\",\""._QXZ("DB DATE")."\",\""._QXZ("RUN TIME")."\",\""._QXZ("SCRIPT")."\",\""._QXZ("ACTION")."\",\""._QXZ("LEAD_ID")."\",\""._QXZ("STAGE")."\"\n";
 
-		for ($i=1; $i<=mysqli_num_rows($rpt_rslt); $i++) {
+		for ($i=1; $i<=mysqli_num_rows($rpt_rslt); $i++) 
+			{
 			$row=mysqli_fetch_array($rpt_rslt);
 
-			$CSV_text.="\"$row[user]\",\"$row[call_date]\",\"$row[server_ip]\",\"$row[lead_id]\",\"$row[hangup_cause]\",\"$row[dialstatus]\",\"$row[channel]\",\"$row[dial_time]\",\"$row[answered_time]\",\"$row[sip_hangup_cause]\",\"$row[sip_hangup_reason]\",\"$phone_number\"\n";
-			if ($i>=$lower_limit && $i<=$upper_limit) {
+			$CSV_text.="\"$row[user]\",\"$row[start_time]\",\"$row[db_time]\",\"$row[run_time]\",\"$row[php_script]\",\"$row[action]\",\"$row[lead_id]\",\"$row[stage]\"\n";
+			if ($i>=$lower_limit && $i<=$upper_limit) 
+				{
 				$agntdb_rpt.="| ".sprintf("%-20s", $row["user"]); 
 				$agntdb_rpt.=" | ".sprintf("%-19s", $row["start_time"]); 
 				$agntdb_rpt.=" | ".sprintf("%-19s", $row["db_time"]); 
 				if (strlen($row["run_time"])>10) {$row["run_time"]=substr($row["run_time"],0,10)."";}
-				$agntdb_rpt.=" | ".sprintf("%-10s", $row["run_time"]); 
+				$run_color='color=black';
+				if ($row["run_time"] > 1) {$run_color='color=blue';} 
+				if ($row["run_time"] > 2) {$run_color='color=purple';} 
+				if ($row["run_time"] > 3) {$run_color='color=red';} 
+				$agntdb_rpt.=" | ".sprintf("%-10s", $row["run_time"]).""; 
 				$agntdb_rpt.=" | ".sprintf("%-20s", $row["php_script"]); 
 				if (strlen($row["action"])>37) {$row["action"]=substr($row["action"],0,37)."...";}
 				$agntdb_rpt.=" | ".sprintf("%-40s", $row["action"]); 
 				$agntdb_rpt.=" | ".sprintf("%-10s", $row["lead_id"]); 
 				if (strlen($row["stage"])>37) {$row["stage"]=substr($row["stage"],0,37)."...";}
 				$agntdb_rpt.=" | ".sprintf("%-40s", $row["stage"])." |\n"; 
+				}
 			}
-		}
 		$agntdb_rpt.="+----------------------+---------------------+---------------------+------------+----------------------+------------------------------------------+------------+------------------------------------------+\n";
 
 		$agntdb_rpt_hf="";
 		$ll=$lower_limit-1000;
 		if ($ll>=1) {
-			$agntdb_rpt_hf.="[<<< "._QXZ("PREV")." 1000 "._QXZ("records")."]";
+			$agntdb_rpt_hf.="[<<< "._QXZ("PREV")." 1000 "._QXZ("records")."]";
 		} else {
 			$agntdb_rpt_hf.=sprintf("%-23s", " ");
 		}
 		$agntdb_rpt_hf.=sprintf("%-145s", " ");
 		if (($lower_limit+1000)=mysqli_num_rows($rpt_rslt)) {$max_limit=mysqli_num_rows($rpt_rslt)-$upper_limit;} else {$max_limit=1000;}
-			$agntdb_rpt_hf.="["._QXZ("NEXT")." $max_limit "._QXZ("records")." >>>]";
+			$agntdb_rpt_hf.="["._QXZ("NEXT")." $max_limit "._QXZ("records")." >>>]";
 		} else {
 			$agntdb_rpt_hf.=sprintf("%23s", " ");
 		}
diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php
index c730a565..a39c6962 100644
--- a/www/vicidial/admin.php
+++ b/www/vicidial/admin.php
@@ -1948,6 +1948,8 @@ if (isset($_GET["agent_debug_logging"]))			{$agent_debug_logging=$_GET["agent_de
 	elseif (isset($_POST["agent_debug_logging"]))	{$agent_debug_logging=$_POST["agent_debug_logging"];}
 if (isset($_GET["agent_display_fields"]))			{$agent_display_fields=$_GET["agent_display_fields"];}
 	elseif (isset($_POST["agent_display_fields"]))	{$agent_display_fields=$_POST["agent_display_fields"];}
+if (isset($_GET["default_language"]))			{$default_language=$_GET["default_language"];}
+	elseif (isset($_POST["default_language"]))	{$default_language=$_POST["default_language"];}
 
 
 if (isset($script_id)) {$script_id= strtoupper($script_id);}
@@ -1962,7 +1964,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,frozen_server_call_clear,active_modules,allow_chats,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,enable_did_entry_list_id,enable_third_webform 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,active_modules,allow_chats,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,enable_did_entry_list_id,enable_third_webform,default_language FROM system_settings;";
 $rslt=mysql_to_mysqli($stmt, $link);
 if ($DB) {echo "$stmt\n";}
 $qm_conf_ct = mysqli_num_rows($rslt);
@@ -2019,6 +2021,7 @@ if ($qm_conf_ct > 0)
 	$SSmeetme_enter_leave3way_filename =	$row[47];
 	$SSenable_did_entry_list_id =			$row[48];
 	$SSenable_third_webform =				$row[49];
+	$SSdefault_language =					$row[50];
 	}
 ##### END SETTINGS LOOKUP #####
 ###########################################
@@ -2795,6 +2798,7 @@ if ($non_latin < 1)
 	### ALPHA-NUMERIC and spaces and dashes and underscores
 	$preset_name = preg_replace('/[^- \_0-9a-zA-Z]/','',$preset_name);
 	$selected_language = preg_replace('/[^- \_0-9a-zA-Z]/','',$selected_language);
+	$default_language = preg_replace('/[^- \_0-9a-zA-Z]/','',$default_language);
 
 	### ALPHA-NUMERIC and hash
 	$group_color = preg_replace('/[^\#0-9a-zA-Z]/','',$group_color);
@@ -3536,12 +3540,13 @@ else
 # 150717-1333 - Optimization for dialable lead count SQL
 # 150724-0822 - Added agent_debug_logging SS option and report
 # 150725-1341 - Added agent_display_fields campaign options
+# 150727-0903 - Added default_language System Setting option
 #
 
 # make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time
 
-$admin_version = '2.12-499a';
-$build = '150725-1341';
+$admin_version = '2.12-500a';
+$build = '150727-0903';
 
 $STARTtime = date("U");
 $SQLdate = date("Y-m-d H:i:s");
@@ -15029,7 +15034,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',frozen_server_call_clear='$frozen_server_call_clear',callback_time_24hour='$callback_time_24hour',enable_languages='$enable_languages',language_method='$language_method',meetme_enter_login_filename='$meetme_enter_login_filename',meetme_enter_leave3way_filename='$meetme_enter_leave3way_filename',enable_did_entry_list_id='$enable_did_entry_list_id',enable_third_webform='$enable_third_webform',allow_chats='$allow_chats',chat_url='$chat_url',chat_timeout='$chat_timeout',agent_debug_logging='$agent_debug_logging'$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',callback_time_24hour='$callback_time_24hour',enable_languages='$enable_languages',language_method='$language_method',meetme_enter_login_filename='$meetme_enter_login_filename',meetme_enter_leave3way_filename='$meetme_enter_leave3way_filename',enable_did_entry_list_id='$enable_did_entry_list_id',enable_third_webform='$enable_third_webform',allow_chats='$allow_chats',chat_url='$chat_url',chat_timeout='$chat_timeout',agent_debug_logging='$agent_debug_logging',default_language='$default_language'$custom_dialplanSQL;";
 		$rslt=mysql_to_mysqli($stmt, $link);
 
 		if ( ($meetme_enter_login_filename != $SSmeetme_enter_login_filename) or ($meetme_enter_leave3way_filename != $SSmeetme_enter_leave3way_filename) )
@@ -30234,7 +30239,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,frozen_server_call_clear,callback_time_24hour,allow_chats,chat_url,chat_timeout,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,enable_did_entry_list_id,enable_third_webform,agent_debug_logging 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,callback_time_24hour,allow_chats,chat_url,chat_timeout,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,enable_did_entry_list_id,enable_third_webform,agent_debug_logging,default_language from system_settings;";
 		$rslt=mysql_to_mysqli($stmt, $link);
 		$row=mysqli_fetch_row($rslt);
 		$version =						$row[0];
@@ -30371,6 +30376,7 @@ if ($ADD==311111111111111)
 		$enable_did_entry_list_id =		$row[131];
 		$enable_third_webform =			$row[132];
 		$agent_debug_logging =			$row[133];
+		$default_language =				$row[134];
 
 		if ($pass_hash_enabled > 0) {$pass_hash_enabled = 'ENABLED';}
 		else {$pass_hash_enabled = 'DISABLED';}
@@ -30404,6 +30410,29 @@ if ($ADD==311111111111111)
 		echo "
"._QXZ("Use Non-Latin").": $NWB#settings-use_non_latin$NWE
"._QXZ("Enable Languages").": $NWB#settings-enable_languages$NWE
"._QXZ("Language Method").": $NWB#settings-language_method$NWE
"._QXZ("Default Language").": $NWB#settings-default_language$NWE
"._QXZ("Webroot Writable").": $NWB#settings-webroot_writable$NWE
"._QXZ("Agent Disable Display").":