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 1e29355f..e2e93259 100644 --- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql +++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql @@ -438,6 +438,7 @@ modify_remoteagents ENUM('0','1') default '0', modify_servers ENUM('0','1') default '0', view_reports ENUM('0','1') default '0', vicidial_recording_override ENUM('DISABLED','NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'DISABLED', +alter_custdata_override ENUM('NOT_ACTIVE','ALLOW_ALTER') default 'NOT_ACTIVE', index (user) ); @@ -520,7 +521,8 @@ campaign_description VARCHAR(255), campaign_changedate DATETIME, campaign_stats_refresh ENUM('Y','N') default 'N', campaign_logindate DATETIME, -dial_statuses VARCHAR(255) default ' NEW -' +dial_statuses VARCHAR(255) default ' NEW -', +disable_alter_custdata ENUM('Y','N') default 'N' ); CREATE TABLE vicidial_lists ( @@ -875,7 +877,8 @@ queuemetrics_login VARCHAR(50), queuemetrics_pass VARCHAR(50), queuemetrics_url VARCHAR(255), queuemetrics_log_id VARCHAR(10) default 'VIC', -queuemetrics_eq_prepend VARCHAR(255) default 'NONE' +queuemetrics_eq_prepend VARCHAR(255) default 'NONE', +vicidial_agent_disable ENUM('NOT_ACTIVE','LIVE_AGENT','EXTERNAL','ALL') default 'NOT_ACTIVE' ); INSERT INTO system_settings (version,install_date) values('2.0.X', CURDATE()); diff --git a/agc_2-X/trunk/extras/upgrade_2.0.3.sql b/agc_2-X/trunk/extras/upgrade_2.0.3.sql index 1ed1ba22..cbeff171 100644 --- a/agc_2-X/trunk/extras/upgrade_2.0.3.sql +++ b/agc_2-X/trunk/extras/upgrade_2.0.3.sql @@ -106,4 +106,8 @@ update vicidial_campaigns SET dial_statuses=concat_ws(""," ",`dial_status_a`," " ALTER TABLE system_settings ADD queuemetrics_eq_prepend VARCHAR(255) default 'NONE'; +ALTER TABLE system_settings ADD vicidial_agent_disable ENUM('NOT_ACTIVE','LIVE_AGENT','EXTERNAL','ALL') default 'NOT_ACTIVE'; +ALTER TABLE vicidial_campaigns ADD disable_alter_custdata ENUM('Y','N') default 'N'; + +ALTER TABLE vicidial_users ADD alter_custdata_override ENUM('NOT_ACTIVE','ALLOW_ALTER') default 'NOT_ACTIVE'; diff --git a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.3.txt b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.3.txt index 3a7d15f0..9c8b6fb1 100644 --- a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.3.txt +++ b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.3.txt @@ -148,6 +148,12 @@ Dial Status || no dial statuses selected for this campaign|| QueueMetrics EnterQueue Prepend -<\/B> This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything|| QueueMetrics EnterQueue Prepend: || +VICIDIAL Agent Disable Display -<\/B> This field is used to select when to show an agent 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 vicidial_auto_calls record has been removed, such as during a force logout or emergency logout|| +VICIDIAL Agent Disable Display: || +Disable Alter Customer Data -<\/B> If set to Y, does not change any of the customer data record when an agent dispositions the call. Default is N|| +Disable Alter Customer Data: || +Agent Alter Customer Data Override -<\/B> This option will override whatever the option is in the campaign for altering of customer data. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer data, no matter what the campaign setting is. Default is NOT_ACTIVE|| +Agent Alter Customer Data Override: || ############################################################ CLIENT @@ -157,6 +163,7 @@ YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|| SELECT A PAUSE CODE :|| ENTER A PAUSE CODE|| YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|| +Your session has been disabled|| ############################################################ MANAGER Manual diff --git a/agc_2-X/trunk/www/agc/conf_exten_check.php b/agc_2-X/trunk/www/agc/conf_exten_check.php index 2852b52e..ea527e43 100644 --- a/agc_2-X/trunk/www/agc/conf_exten_check.php +++ b/agc_2-X/trunk/www/agc/conf_exten_check.php @@ -33,6 +33,7 @@ # 60421-1405 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60619-1201 - Added variable filters to close security holes for login form # 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function # require("dbconnect.php"); @@ -69,8 +70,8 @@ if (!isset($format)) {$format="text";} if (!isset($ACTION)) {$ACTION="refresh";} if (!isset($client)) {$client="agc";} -$version = '0.0.10'; -$build = '61128-2255'; +$version = '0.0.11'; +$build = '70319-1542'; $StarTtime = date("U"); $NOW_DATE = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -144,6 +145,23 @@ echo "
if ($client == 'vdc') { + $Acount=0; + $AexternalDEAD=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + if ($auto_dial_level > 0) { ### update the vicidial_live_agents every second with a new random number so it is shown to be alive @@ -186,6 +204,9 @@ echo " } + if ($Acount < 1) {$Astatus='DEAD_VLA';} + if ($AexternalDEAD > 0) {$Astatus='DEAD_EXTERNAL';} + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Status: ' . $Astatus . '|CampCalls: ' . $RingCalls . "|\n"; } diff --git a/agc_2-X/trunk/www/agc/vdc_db_query.php b/agc_2-X/trunk/www/agc/vdc_db_query.php index d8de86b9..d5416bf7 100644 --- a/agc_2-X/trunk/www/agc/vdc_db_query.php +++ b/agc_2-X/trunk/www/agc/vdc_db_query.php @@ -126,10 +126,11 @@ # 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL # 70309-1034 - Allow amphersands and questions marks in comments to pass through # 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function # -$version = '2.0.53'; -$build = '70313-1052'; +$version = '2.0.54'; +$build = '70319-1544'; require("dbconnect.php"); @@ -1917,6 +1918,8 @@ if ($ACTION == 'updateLEAD') { $MT[0]=''; $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) { echo "phone_number $phone_number or lead_id $lead_id is not valid\n"; @@ -1924,15 +1927,54 @@ if ($ACTION == 'updateLEAD') } else { - $comments = eregi_replace("\r",'',$comments); - $comments = eregi_replace("\n",'!N',$comments); - $comments = eregi_replace("--AMP--",'&',$comments); - $comments = eregi_replace("--QUES--",'?',$comments); - $comments = eregi_replace("--POUND--",'#',$comments); - $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' where lead_id='$lead_id';"; - if ($format=='debug') {echo "\n";} + $stmt = "SELECT disable_alter_custdata FROM vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $i++; + } + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + $stmt = "SELECT alter_custdata_override FROM vicidial_users where user='$user'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $stmt="UPDATE vicidial_list set vendor_lead_code='" . mysql_real_escape_string($vendor_lead_code) . "', title='" . mysql_real_escape_string($title) . "', first_name='" . mysql_real_escape_string($first_name) . "', middle_initial='" . mysql_real_escape_string($middle_initial) . "', last_name='" . mysql_real_escape_string($last_name) . "', address1='" . mysql_real_escape_string($address1) . "', address2='" . mysql_real_escape_string($address2) . "', address3='" . mysql_real_escape_string($address3) . "', city='" . mysql_real_escape_string($city) . "', state='" . mysql_real_escape_string($state) . "', province='" . mysql_real_escape_string($province) . "', postal_code='" . mysql_real_escape_string($postal_code) . "', country_code='" . mysql_real_escape_string($country_code) . "', gender='" . mysql_real_escape_string($gender) . "', date_of_birth='" . mysql_real_escape_string($date_of_birth) . "', alt_phone='" . mysql_real_escape_string($alt_phone) . "', email='" . mysql_real_escape_string($email) . "', security_phrase='" . mysql_real_escape_string($security_phrase) . "', comments='" . mysql_real_escape_string($comments) . "' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + } $random = (rand(1000000, 9999999) + 10000000); $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; @@ -1940,7 +1982,7 @@ if ($ACTION == 'updateLEAD') $rslt=mysql_query($stmt, $link); } - echo "Lead $lead_id information has been updated\n"; + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; } diff --git a/agc_2-X/trunk/www/agc/vicidial.php b/agc_2-X/trunk/www/agc/vicidial.php index 79479173..ba8e14f8 100644 --- a/agc_2-X/trunk/www/agc/vicidial.php +++ b/agc_2-X/trunk/www/agc/vicidial.php @@ -154,10 +154,11 @@ # 70309-1035 - Allow amphersands and questions marks in comments to pass through # 70313-1052 - Allow pound signs(hash) in comments to pass through # 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions # -$version = '2.0.125'; -$build = '70316-1406'; +$version = '2.0.126'; +$build = '70319-1446'; require("dbconnect.php"); @@ -1027,8 +1028,8 @@ else print "\n"; ############################################# - ##### START QUEUEMETRICS LOGGING LOOKUP ##### - $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable FROM system_settings;"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} @@ -1043,6 +1044,7 @@ else $queuemetrics_login = $row[3]; $queuemetrics_pass = $row[4]; $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; $i++; } ##### END QUEUEMETRICS LOGGING LOOKUP ##### @@ -1576,6 +1578,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} var no_delete_sessions = ' echo $no_delete_sessions ?>'; var webform_session = ' echo $webform_sessionname ?>'; var local_consult_xfers = ' echo $local_consult_xfers ?>'; + var vicidial_agent_disable = ' echo $vicidial_agent_disable ?>'; var CBentry_time = ''; var CBcallback_time = ''; var CBuser = ''; @@ -2034,7 +2037,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} UnixTime = parseInt(UnixTime); UnixTimeMS = (UnixTime * 1000); t.setTime(UnixTimeMS); - if (agentcallsstatus == '1') + if ( (agentcallsstatus == '1') || (vicidial_agent_disable != 'NOT_ACTIVE') ) { var Astatus_array = check_time_array[2].split("Status: "); var AGStatuS = Astatus_array[1]; @@ -2048,6 +2051,14 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} { document.getElementById("AgentStatusCalls").innerHTML = CamPCalLs; } + if ( (AGStatuS == 'DEAD_VLA') && ( (vicidial_agent_disable == 'LIVE_AGENT') || (vicidial_agent_disable == 'ALL') ) ) + { + showDiv('AgenTDisablEBoX'); + } + if ( (AGStatuS == 'DEAD_EXTERNAL') && ( (vicidial_agent_disable == 'EXTERNAL') || (vicidial_agent_disable == 'ALL') ) ) + { + showDiv('AgenTDisablEBoX'); + } } var check_conf_array=check_ALL_array[1].split("|"); var live_conf_calls = check_conf_array[0]; @@ -4301,7 +4312,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} } if (xmlhttp) { - VLupdate_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=updateLEAD&format=text&user=" + user + "&pass=" + pass + + VLupdate_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&campaign=" + campaign + "&ACTION=updateLEAD&format=text&user=" + user + "&pass=" + pass + "&lead_id=" + document.vicidial_form.lead_id.value + "&vendor_lead_code=" + document.vicidial_form.vendor_lead_code.value + "&phone_number=" + document.vicidial_form.phone_number.value + @@ -5311,6 +5322,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} hideDiv('ScriptPanel'); hideDiv('DispoSelectBox'); hideDiv('LogouTBox'); + hideDiv('AgenTDisablEBoX'); hideDiv('CustomerGoneBox'); hideDiv('NoneInSessionBox'); hideDiv('WrapupBox'); @@ -5905,7 +5917,7 @@ echo "\n";| CALLBACKS FOR AGENT echo $VD_login ?>: Click on a callback below to call the customer back now. If you click on a record below to call it, it will be removed from the list. @@ -5916,7 +5928,7 @@ echo "\n"; |