diff --git a/UPGRADE b/UPGRADE index 6618a134..f786ff1d 100644 --- a/UPGRADE +++ b/UPGRADE @@ -233,6 +233,11 @@ OTHER CHANGES: 59. Added available_agents and status_link button options as well as validation of active in-group to the chat_customer screen. +60. Added campaign setting Manual Dial Hopper Check that will check for a lead + in the hopper with the same phone number as any manual call being + placed from the agent screen, and if one exists it will be deleted + before the manual dial call is placed. + diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql index 3b04b4b9..954ee035 100644 --- a/extras/MySQL_AST_CREATE_tables.sql +++ b/extras/MySQL_AST_CREATE_tables.sql @@ -947,7 +947,8 @@ customer_gone_seconds SMALLINT(5) UNSIGNED default '30', agent_display_fields VARCHAR(50) default '', am_message_wildcards ENUM('Y','N') default 'N', manual_dial_timeout VARCHAR(3) default '', -routing_initiated_recordings ENUM('Y','N') default 'N' +routing_initiated_recordings ENUM('Y','N') default 'N', +manual_dial_hopper_check ENUM('Y','N') default 'N' ) ENGINE=MyISAM; CREATE TABLE vicidial_lists ( @@ -3257,7 +3258,11 @@ message_date DATETIME DEFAULT NULL, message_viewed_date DATETIME DEFAULT NULL, message_posted_by VARCHAR(20) COLLATE utf8_unicode_ci DEFAULT NULL, audio_alerted ENUM('Y','N') COLLATE utf8_unicode_ci DEFAULT 'N', -PRIMARY KEY (manager_chat_message_id) +PRIMARY KEY (manager_chat_message_id), +KEY manager_chat_id_key (manager_chat_id), +KEY manager_chat_subid_key (manager_chat_subid), +KEY manager_chat_manager_key (manager), +KEY manager_chat_user_key (user) ) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE vicidial_manager_chat_log_archive ( @@ -3271,7 +3276,9 @@ message_date DATETIME DEFAULT NULL, message_viewed_date DATETIME DEFAULT NULL, message_posted_by VARCHAR(20) COLLATE utf8_unicode_ci DEFAULT NULL, audio_alerted ENUM('Y','N') COLLATE utf8_unicode_ci DEFAULT 'N', -PRIMARY KEY (manager_chat_message_id) +PRIMARY KEY (manager_chat_message_id), +KEY manager_chat_id_archive_key (manager_chat_id), +KEY manager_chat_subid_archive_key (manager_chat_subid) ) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE vicidial_manager_chats ( @@ -3690,4 +3697,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='1449',db_schema_update_date=NOW(),reload_timestamp=NOW(); +UPDATE system_settings SET db_schema_version='1450',db_schema_update_date=NOW(),reload_timestamp=NOW(); diff --git a/extras/upgrade_2.12.sql b/extras/upgrade_2.12.sql index 9ed0781c..f04690e0 100644 --- a/extras/upgrade_2.12.sql +++ b/extras/upgrade_2.12.sql @@ -477,3 +477,15 @@ UPDATE system_settings SET db_schema_version='1448',db_schema_update_date=NOW() ALTER TABLE vicidial_inbound_groups ADD on_hook_cid_number VARCHAR(18) default ''; UPDATE system_settings SET db_schema_version='1449',db_schema_update_date=NOW() where db_schema_version < 1449; + +ALTER TABLE vicidial_campaigns ADD manual_dial_hopper_check ENUM('Y','N') default 'N'; + +CREATE INDEX manager_chat_id_key on vicidial_manager_chat_log (manager_chat_id); +CREATE INDEX manager_chat_subid_key on vicidial_manager_chat_log (manager_chat_subid); +CREATE INDEX manager_chat_manager_key on vicidial_manager_chat_log (manager); +CREATE INDEX manager_chat_user_key on vicidial_manager_chat_log (user); + +CREATE INDEX manager_chat_id_archive_key on vicidial_manager_chat_log_archive (manager_chat_id); +CREATE INDEX manager_chat_subid_archive_key on vicidial_manager_chat_log_archive (manager_chat_subid); + +UPDATE system_settings SET db_schema_version='1450',db_schema_update_date=NOW() where db_schema_version < 1450; diff --git a/www/agc/agc_agent_manager_chat_interface.php b/www/agc/agc_agent_manager_chat_interface.php index 312257d5..e2c2b126 100644 --- a/www/agc/agc_agent_manager_chat_interface.php +++ b/www/agc/agc_agent_manager_chat_interface.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2016 Joe Johnson, Matt Florell LICENSE: AGPLv2 # # This page is for agents to chat with managers via the agent interface. # @@ -10,10 +10,11 @@ # 151213-1108 - Added variable filtering # 151218-1141 - Added missing translation code and user auth, merged js code into file # 151231-0842 - Added agent_allowed_chat_groups setting +# 160108-2300 - Changed some mysqli_query to mysql_to_mysqli for consistency # -$admin_version = '2.12-4'; -$build = '151231-0842'; +$admin_version = '2.12-5'; +$build = '160108-2300'; $sh="managerchats"; @@ -100,7 +101,7 @@ if ($SSallow_chats < 1) # Get a count on unread messages where the user is involved but not the chat manager/initiator in order to create the ChatReloadIDNumber variable $chat_reload_id_number_array=array(); $unread_stmt="select manager_chat_id, manager_chat_subid, sum(if(message_viewed_date is not null, 0, 1)) as unread_count from vicidial_manager_chat_log where vicidial_manager_chat_log.user='$user' group by manager_chat_id, manager_chat_subid order by manager_chat_id, manager_chat_subid"; -$unread_rslt=mysqli_query($link, $unread_stmt); +$unread_rslt=mysql_to_mysqli($unread_stmt, $link); while ($unread_row=mysqli_fetch_array($unread_rslt)) { $IDNumber=$unread_row["manager_chat_id"]."-".$unread_row["manager_chat_subid"]."-".$unread_row["unread_count"]; array_push($chat_reload_id_number_array, "$IDNumber"); @@ -108,7 +109,7 @@ while ($unread_row=mysqli_fetch_array($unread_rslt)) { # Pull the most recently posted-to chat that has not been viewed, then the most recent period, and display that as the default window $stmt="select distinct vicidial_manager_chat_log.manager_chat_id, vicidial_manager_chat_log.manager_chat_subid, vicidial_users.full_name, vicidial_manager_chats.chat_start_date, sum(if(vicidial_manager_chat_log.message_viewed_date is null, 1, 0)),vicidial_manager_chat_log.user from vicidial_manager_chat_log, vicidial_manager_chats, vicidial_users where vicidial_manager_chat_log.user='$user' and vicidial_manager_chat_log.manager_chat_id=vicidial_manager_chats.manager_chat_id and vicidial_manager_chats.manager=vicidial_users.user group by manager_chat_id, manager_chat_subid order by message_viewed_date asc, message_date desc"; -$rslt=mysqli_query($link, $stmt); +$rslt=mysql_to_mysqli($stmt, $link); $active_chats_array=array(); $chat_subid_array=array(); @@ -134,7 +135,7 @@ while ($row=mysqli_fetch_row($rslt)) { # Get a count on unread messages where the user is the chat manager/initiator in order to create the ChatReloadIDNumber variable $unread_stmt="select manager_chat_id, manager_chat_subid, sum(if(message_viewed_date is not null, 0, 1)) as unread_count from vicidial_manager_chat_log where vicidial_manager_chat_log.manager='$user' group by manager_chat_id, manager_chat_subid order by manager_chat_id, manager_chat_subid"; - $unread_rslt=mysqli_query($link, $unread_stmt); + $unread_rslt=mysql_to_mysqli($unread_stmt, $link); while ($unread_row=mysqli_fetch_array($unread_rslt)) { $IDNumber=$unread_row["manager_chat_id"]."-".$unread_row["manager_chat_subid"]."-".$unread_row["unread_count"]; array_push($chat_reload_id_number_array, "$IDNumber"); @@ -145,7 +146,7 @@ while ($row=mysqli_fetch_row($rslt)) { ### which will now happen because agents can now start their own chats. Added vicidial_manager_chat_log.user to this query on 2/4/15 for ### manager override $stmt="select distinct vicidial_manager_chat_log.manager_chat_id, vicidial_manager_chat_log.manager_chat_subid, vicidial_users.full_name, vicidial_manager_chats.chat_start_date, sum(if(vicidial_manager_chat_log.message_viewed_date is null, 1, 0)),vicidial_manager_chat_log.user from vicidial_manager_chat_log, vicidial_manager_chats, vicidial_users where vicidial_manager_chat_log.manager='$user' and vicidial_manager_chat_log.manager_chat_id=vicidial_manager_chats.manager_chat_id and vicidial_manager_chat_log.user=vicidial_users.user group by manager_chat_id, manager_chat_subid order by message_viewed_date asc, message_date desc"; - $rslt=mysqli_query($link, $stmt); + $rslt=mysql_to_mysqli($stmt, $link); while ($row=mysqli_fetch_row($rslt)) { if ($row[0]!="") { if (!$priority_chat) {$priority_chat=$row[0];} # The priority_chat is the most recent chat that has not been viewed. diff --git a/www/agc/chat_db_query.php b/www/agc/chat_db_query.php index e2b3ac28..20f3b521 100644 --- a/www/agc/chat_db_query.php +++ b/www/agc/chat_db_query.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2016 Joe Johnson, Matt Florell LICENSE: AGPLv2 # # Called by vdc_chat_display.php and vicidial_chat_agent.js. This contains all actions taken by the # agent's interface when chatting with customers, other agents, and managers, through @@ -13,6 +13,8 @@ # 150901-2348 - First build # 151218-1052 - Added missing translation code and user auth # 151231-0841 - Added agent_allowed_chat_groups setting +# 160107-2318 - Bug fix for agent ending chat with manager +# 160108-2300 - Changed some mysqli_query to mysql_to_mysqli for consistency # require("dbconnect_mysqli.php"); @@ -136,7 +138,7 @@ if ($action=="CreateAgentToAgentChat" && $agent_manager && $agent_user && $manag # Check that you aren't already chatting with the agent - also checks for chats where the other agent is the manager and you are the requested chat recipient $dupe_chat_stmt="select * from vicidial_manager_chats where (manager='$agent_manager' and selected_agents like '%|$agent_user|%') or (manager='$agent_user' and selected_agents like '%|$agent_manager|%')"; - $dupe_chat_rslt=mysqli_query($link, $dupe_chat_stmt); + $dupe_chat_rslt=mysql_to_mysqli($dupe_chat_stmt, $link); if (mysqli_num_rows($dupe_chat_rslt)>0) { echo _QXZ("Error: You already have an open chat with this agent"); } else { @@ -144,7 +146,7 @@ if ($action=="CreateAgentToAgentChat" && $agent_manager && $agent_user && $manag # This is slightly different from the manager-to-agent chat because it's only one agent you're chatting to so for reporting all that agent's specific information is grabbed and used to make the vicidial_manager_chats entry. Since the query should only return one result there's no while loop to insert subid chat info. $stmt="select vicidial_live_agents.user, vicidial_users.full_name, vicidial_users.user_group, vicidial_live_agents.campaign_id from vicidial_live_agents, vicidial_users where vicidial_live_agents.user=vicidial_users.user and vicidial_live_agents.user='$agent_user' and vicidial_users.user!='$agent_manager' order by vicidial_users.full_name asc"; - $rslt=mysqli_query($link, $stmt); + $rslt=mysql_to_mysqli($stmt, $link); if (mysqli_num_rows($rslt)>0) { $row=mysqli_fetch_row($rslt); $user = $row[0]; @@ -152,7 +154,7 @@ if ($action=="CreateAgentToAgentChat" && $agent_manager && $agent_user && $manag $campaign_id = $row[3]; $ins_stmt="insert into vicidial_manager_chats(chat_start_date, manager, selected_agents, selected_user_groups, selected_campaigns, allow_replies) VALUES(now(), '$agent_manager', '|$agent_user|', '|$user_group|', '|$campaign_id|', 'Y')"; - $ins_rslt=mysqli_query($link, $ins_stmt); + $ins_rslt=mysql_to_mysqli($ins_stmt, $link); $manager_chat_id=mysqli_insert_id($link); $subid=1; @@ -163,7 +165,7 @@ if ($action=="CreateAgentToAgentChat" && $agent_manager && $agent_user && $manag # $manager_message=addslashes(trim("$manager_message")); $ins_chat_stmt="insert into vicidial_manager_chat_log(manager_chat_id, manager_chat_subid, manager, user, message, message_date, message_posted_by) VALUES('$manager_chat_id', '$subid', '$agent_manager', '$agent_user', '".mysqli_real_escape_string($link, $manager_message)."', now(), '$agent_manager')"; - $ins_chat_rslt=mysqli_query($link, $ins_chat_stmt); + $ins_chat_rslt=mysql_to_mysqli($ins_chat_stmt, $link); echo "$manager_chat_id|$subid"; } } @@ -221,20 +223,31 @@ if ($action=="DisplayMgrAgentChat" && $manager_chat_id && $manager_chat_subid && } } -if ($action=="EndAgentToAgentChat" && $manager_chat_id) { - $archive_stmt="insert ignore into vicidial_manager_chat_log_archive select * from vicidial_manager_chat_log where manager_chat_id='$manager_chat_id'"; - $archive_rslt=mysqli_query($link, $archive_stmt); - - $archive_stmt="insert ignore into vicidial_manager_chats_archive select * from vicidial_manager_chats where manager_chat_id='$manager_chat_id'"; - $archive_rslt=mysqli_query($link, $archive_stmt); - - $delete_stmt="delete from vicidial_manager_chat_log where manager_chat_id='$manager_chat_id'"; - $delete_rslt=mysqli_query($link, $delete_stmt); - - if (mysqli_affected_rows($link)>0) { - $archive_stmt="delete from vicidial_manager_chats where manager_chat_id='$manager_chat_id'"; - $archive_rslt=mysqli_query($link, $archive_stmt); +if ($action=="EndAgentToAgentChat" && $manager_chat_id && $user) { + $subid_lookup="select distinct manager_chat_subid from vicidial_manager_chat_log where manager_chat_id='$manager_chat_id' and user='$user'"; + $subid_rslt=mysql_to_mysqli($subid_lookup, $link); + # should only be one, but making array just in case + $manager_chat_subid_array=array(); + while ($subid_row=mysqli_fetch_row($subid_rslt)) { + $manager_chat_subid=$subid_row[0]; + array_push($manager_chat_subid_array, "$subid_row[0]"); } + + + $archive_stmt="insert ignore into vicidial_manager_chat_log_archive select * from vicidial_manager_chat_log where manager_chat_id='$manager_chat_id' and manager_chat_subid in ('".implode("','",$manager_chat_subid_array)."')"; + $archive_rslt=mysql_to_mysqli($archive_stmt, $link); + + # JCJ 1/7/16 - do not do this, as it will end the chat for all agents. + # $archive_stmt="insert ignore into vicidial_manager_chats_archive select * from vicidial_manager_chats where manager_chat_id='$manager_chat_id'"; + # $archive_rslt=mysqli_query($link, $archive_stmt); + + $delete_stmt="delete from vicidial_manager_chat_log where manager_chat_id='$manager_chat_id' and manager_chat_subid in ('".implode("','",$manager_chat_subid_array)."')"; + $delete_rslt=mysql_to_mysqli($delete_stmt, $link); + + #if (mysqli_affected_rows($link)>0) { + # $archive_stmt="delete from vicidial_manager_chats where manager_chat_id='$manager_chat_id'"; + # $archive_rslt=mysqli_query($link, $archive_stmt); + #} echo mysqli_affected_rows($link); } @@ -242,7 +255,7 @@ if ($action=="RefreshActiveChatView" && $user) { # Get a count on unread messages where the user is involved but not the chat manager/initiator in order to create the ChatReloadIDNumber variable $chat_reload_id_number_array=array(); $unread_stmt="select manager_chat_id, manager_chat_subid, sum(if(message_viewed_date is not null, 0, 1)) as unread_count from vicidial_manager_chat_log where vicidial_manager_chat_log.user='$user' group by manager_chat_id, manager_chat_subid order by manager_chat_id, manager_chat_subid"; - $unread_rslt=mysqli_query($link, $unread_stmt); + $unread_rslt=mysql_to_mysqli($unread_stmt, $link); while ($unread_row=mysqli_fetch_array($unread_rslt)) { $IDNumber=$unread_row["manager_chat_id"]."-".$unread_row["manager_chat_subid"]."-".$unread_row["unread_count"]; array_push($chat_reload_id_number_array, "$IDNumber"); @@ -250,7 +263,7 @@ if ($action=="RefreshActiveChatView" && $user) { # Pull the most recently posted-to chat that has not been viewed, then the most recent period, and display that as the default window $stmt="select distinct vicidial_manager_chat_log.manager_chat_id, vicidial_manager_chat_log.manager_chat_subid, vicidial_users.full_name, vicidial_manager_chats.chat_start_date, sum(if(vicidial_manager_chat_log.message_viewed_date is null, 1, 0)) from vicidial_manager_chat_log, vicidial_manager_chats, vicidial_users where vicidial_manager_chat_log.user='$user' and vicidial_manager_chat_log.manager_chat_id=vicidial_manager_chats.manager_chat_id and vicidial_manager_chats.manager=vicidial_users.user group by manager_chat_id, manager_chat_subid order by message_viewed_date asc, message_date desc"; - $rslt=mysqli_query($link, $stmt); + $rslt=mysql_to_mysqli($stmt, $link); $active_chats_array=array(); $chat_subid_array=array(); @@ -270,7 +283,7 @@ if ($action=="RefreshActiveChatView" && $user) { # Get a count on unread messages where the user is the chat manager/initiator in order to create the ChatReloadIDNumber variable $unread_stmt="select manager_chat_id, manager_chat_subid, sum(if(message_viewed_date is not null, 0, 1)) as unread_count from vicidial_manager_chat_log where vicidial_manager_chat_log.manager='$user' group by manager_chat_id, manager_chat_subid order by manager_chat_id, manager_chat_subid"; - $unread_rslt=mysqli_query($link, $unread_stmt); + $unread_rslt=mysql_to_mysqli($unread_stmt, $link); while ($unread_row=mysqli_fetch_array($unread_rslt)) { $IDNumber=$unread_row["manager_chat_id"]."-".$unread_row["manager_chat_subid"]."-".$unread_row["unread_count"]; array_push($chat_reload_id_number_array, "$IDNumber"); @@ -280,7 +293,7 @@ if ($action=="RefreshActiveChatView" && $user) { ### which will now happen because agents can now start their own chats. Added vicidial_manager_chat_log.user to this query on 2/4/15 for ### manager override $stmt="select distinct vicidial_manager_chat_log.manager_chat_id, vicidial_manager_chat_log.manager_chat_subid, vicidial_users.full_name, vicidial_manager_chats.chat_start_date, sum(if(vicidial_manager_chat_log.message_viewed_date is null, 1, 0)),vicidial_manager_chat_log.user from vicidial_manager_chat_log, vicidial_manager_chats, vicidial_users where vicidial_manager_chat_log.manager='$user' and vicidial_manager_chat_log.manager_chat_id=vicidial_manager_chats.manager_chat_id and vicidial_manager_chat_log.user=vicidial_users.user group by manager_chat_id, manager_chat_subid order by message_viewed_date asc, message_date desc"; - $rslt=mysqli_query($link, $stmt); + $rslt=mysql_to_mysqli($stmt, $link); while ($row=mysqli_fetch_row($rslt)) { if ($row[0]!="") { array_push($active_chats_array, "$row[0]"); @@ -396,7 +409,7 @@ if ($action=="SendMgrChatMessage" && $manager_chat_id && $manager_chat_subid) { $chat_message = preg_replace("/\n/i",' ',$chat_message); $mgr_stmt="select manager from vicidial_manager_chats where manager_chat_id='$manager_chat_id'"; - $mgr_rslt=mysqli_query($link, $mgr_stmt); + $mgr_rslt=mysql_to_mysqli($mgr_stmt, $link); $mgr_row=mysqli_fetch_row($mgr_rslt); $manager=$mgr_row[0]; @@ -405,7 +418,7 @@ if ($action=="SendMgrChatMessage" && $manager_chat_id && $manager_chat_subid) { if ($manager) { $ins_chat_stmt="insert into vicidial_manager_chat_log(manager_chat_id, manager_chat_subid, manager, user, message, message_date, message_posted_by) VALUES('$manager_chat_id', '$manager_chat_subid', '$manager', '$user', '".mysqli_real_escape_string($link, $chat_message)."', now(), '$message_posted_by')"; - $ins_chat_rslt=mysqli_query($link, $ins_chat_stmt); + $ins_chat_rslt=mysql_to_mysqli($ins_chat_stmt, $link); if (mysqli_insert_id($link)>0) { $reload_chat_span=1; } else { diff --git a/www/agc/vdc_db_query.php b/www/agc/vdc_db_query.php index d55e392c..3df6c9ef 100644 --- a/www/agc/vdc_db_query.php +++ b/www/agc/vdc_db_query.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2016 Matt Florell LICENSE: AGPLv2 # # This script is designed to exchange information between vicidial.php and the database server for various actions # @@ -397,13 +397,15 @@ # 151212-0916 - Added chat-related functions for the agent interface # 151220-1109 - Improved logging of chats, emails, inbound calls # 151229-2316 - Added manual_dial_timeout campaign setting +# 160108-2300 - Changed some mysqli_query to mysql_to_mysqli for consistency +# 160109-0747 - Added manual_dial_hopper_check campaign setting # -$version = '2.12-292'; -$build = '151229-2316'; +$version = '2.12-293'; +$build = '160109-0747'; $php_script = 'vdc_db_query.php'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=649; +$mysql_log_count=654; $one_mysql_log=0; $DB=0; $SSagent_debug_logging=0; @@ -3688,8 +3690,7 @@ if ($ACTION == 'manDiaLnextCaLL') $local_AMP = '@'; $Local_out_prefix = '9'; $Local_dial_timeout = '60'; - # $Local_persist = '/n'; - $Local_persist = ''; + $Local_persist = ''; # $Local_persist = '/n'; if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} $Local_dial_timeout = ($Local_dial_timeout * 1000); if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} @@ -3697,7 +3698,7 @@ if ($ACTION == 'manDiaLnextCaLL') if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} ### check for custom cid use $use_custom_cid=0; - $stmt = "SELECT use_custom_cid FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt = "SELECT use_custom_cid,manual_dial_hopper_check FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_to_mysqli($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00313',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -3705,7 +3706,8 @@ if ($ACTION == 'manDiaLnextCaLL') if ($uccid_ct > 0) { $row=mysqli_fetch_row($rslt); - $use_custom_cid = $row[0]; + $use_custom_cid = $row[0]; + $manual_dial_hopper_check = $row[1]; if ( ($use_custom_cid == 'AREACODE') and ($cid_lock < 1) ) { $temp_vcca=''; @@ -3748,6 +3750,32 @@ if ($ACTION == 'manDiaLnextCaLL') $PADlead_id = sprintf("%010s", $lead_id); while (strlen($PADlead_id) > 10) {$PADlead_id = substr("$PADlead_id", 1);} + #### BEGIN run manual_dial_hopper_check process if enabled + if ($manual_dial_hopper_check == 'Y') + { + $mdhc_lead_ids_SQL=''; + $stmt = "SELECT lead_id FROM vicidial_list where phone_number='$agent_dialed_number';"; + $rslt=mysql_to_mysqli($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00650',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mdhc_ct = mysqli_num_rows($rslt); + $d=0; + while ($mdhc_ct > $d) + { + $row=mysqli_fetch_row($rslt); + $mdhc_lead_ids_SQL .= "'$row[0]',"; + $d++; + } + if ($mdhc_ct > 0) + { + $stmt = "DELETE FROM vicidial_hopper where lead_id IN($mdhc_lead_ids_SQL'');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00651',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + #### END run manual_dial_hopper_check process if enabled + ### check for extension append in campaign $use_eac=0; $stmt = "SELECT count(*) FROM vicidial_campaigns where extension_appended_cidname='Y' and campaign_id='$campaign';"; @@ -4598,10 +4626,12 @@ if ($ACTION == 'manDiaLonly') } } } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + ### check for custom cid use $use_custom_cid=0; - $stmt = "SELECT use_custom_cid FROM vicidial_campaigns where campaign_id='$campaign';"; + $stmt = "SELECT use_custom_cid,manual_dial_hopper_check FROM vicidial_campaigns where campaign_id='$campaign';"; $rslt=mysql_to_mysqli($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00314',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -4609,7 +4639,8 @@ if ($ACTION == 'manDiaLonly') if ($uccid_ct > 0) { $row=mysqli_fetch_row($rslt); - $use_custom_cid = $row[0]; + $use_custom_cid = $row[0]; + $manual_dial_hopper_check = $row[1]; if ( ($use_custom_cid == 'AREACODE') and ($cid_lock < 1) ) { $temp_vcca=''; @@ -4645,6 +4676,32 @@ if ($ACTION == 'manDiaLonly') {$temp_CID = preg_replace("/\D/",'',$security_phrase);} if (strlen($temp_CID) > 6) {$CCID = "$temp_CID"; $CCID_on++;} + + #### BEGIN run manual_dial_hopper_check process if enabled + if ($manual_dial_hopper_check == 'Y') + { + $mdhc_lead_ids_SQL=''; + $stmt = "SELECT lead_id FROM vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_to_mysqli($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00652',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mdhc_ct = mysqli_num_rows($rslt); + $d=0; + while ($mdhc_ct > $d) + { + $row=mysqli_fetch_row($rslt); + $mdhc_lead_ids_SQL .= "'$row[0]',"; + $d++; + } + if ($mdhc_ct > 0) + { + $stmt = "DELETE FROM vicidial_hopper where lead_id IN($mdhc_lead_ids_SQL'');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00653',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + #### END run manual_dial_hopper_check process if enabled } $PADlead_id = sprintf("%010s", $lead_id); @@ -12063,26 +12120,26 @@ if ($ACTION == 'userLOGout') ##### End any still-active chats initiated by the agent if ($allow_chats==1) { $stmt="SELECT manager_chat_id from vicidial_manager_chats where manager='$user';"; - $rslt=mysqli_query($link, $stmt); + $rslt=mysql_to_mysqli($stmt, $link); while ($row=mysqli_fetch_row($rslt)) { $manager_chat_id=$row[0]; $archive_stmt="INSERT IGNORE INTO vicidial_manager_chat_log_archive SELECT manager_chat_message_id,manager_chat_id,manager_chat_subid,manager,user,message,message_date,message_viewed_date,message_posted_by,audio_alerted from vicidial_manager_chat_log where manager_chat_id='$manager_chat_id';"; - $archive_rslt=mysqli_query($link, $archive_stmt); + $archive_rslt=mysql_to_mysqli($archive_stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$archive_stmt,'00646',$user,$server_ip,$session_name,$one_mysql_log);} $archive_stmt="INSERT IGNORE INTO vicidial_manager_chats_archive SELECT manager_chat_id,chat_start_date,manager,selected_agents,selected_user_groups,selected_campaigns,allow_replies from vicidial_manager_chats where manager_chat_id='$manager_chat_id';"; - $archive_rslt=mysqli_query($link, $archive_stmt); + $archive_rslt=mysql_to_mysqli($archive_stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$archive_stmt,'00647',$user,$server_ip,$session_name,$one_mysql_log);} $delete_stmt="DELETE from vicidial_manager_chat_log where manager_chat_id='$manager_chat_id';"; - $delete_rslt=mysqli_query($link, $delete_stmt); + $delete_rslt=mysql_to_mysqli($delete_stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$delete_stmt,'00648',$user,$server_ip,$session_name,$one_mysql_log);} if (mysqli_affected_rows($link)>0) { $archive_stmt="DELETE from vicidial_manager_chats where manager_chat_id='$manager_chat_id';"; - $archive_rslt=mysqli_query($link, $archive_stmt); + $archive_rslt=mysql_to_mysqli($archive_stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$archive_stmt,'00649',$user,$server_ip,$session_name,$one_mysql_log);} } } @@ -14702,7 +14759,7 @@ function status_group_gather($status_group_id,$record_type) $stmt = "SELECT status,status_name,scheduled_callback,min_sec,max_sec from vicidial_campaign_statuses where campaign_id='$status_group_id' and selectable='Y';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00654',$user,$server_ip,$session_name,$one_mysql_log);} if ($rslt) {$cs_ct = mysqli_num_rows($rslt);} $i=0; while ($cs_ct > $i) diff --git a/www/vicidial/AST_chat_log_report.php b/www/vicidial/AST_chat_log_report.php index 7de504df..c688a807 100644 --- a/www/vicidial/AST_chat_log_report.php +++ b/www/vicidial/AST_chat_log_report.php @@ -1,7 +1,7 @@ , Joe Johnson LICENSE: AGPLv2 +# Copyright (C) 2016 Matt Florell , Joe Johnson LICENSE: AGPLv2 # # This is the report page where you can view report information of any of the dialer's chats. The web page will # display the information about the chat, including the start time and participants, and will also provide links @@ -10,6 +10,7 @@ # CHANGES # # 150608-0647 First build +# 160108-2300 - Changed some mysqli_query to mysql_to_mysqli for consistency # $startMS = microtime(); @@ -480,7 +481,7 @@ if ($text_search) { $text_stmt="select distinct chat_id from vicidial_chat_log_archive where message like '%".mysqli_real_escape_string($link, $text_search)."%'"; } if ($DB) {echo "$text_stmt
\n";} - $text_rslt=mysqli_query($link, $text_stmt); + $text_rslt=mysql_to_mysqli($text_stmt, $link); while ($text_row=mysqli_fetch_row($text_rslt)) { array_push($matching_text_chats, $text_row[0]); } @@ -747,7 +748,7 @@ else $sub_stmt="select manager_chat_subid, v.user, vu.full_name, count(*) from vicidial_manager_chat_log_archive v, vicidial_users vu where manager_chat_id='".$row["manager_chat_id"]."' and v.user=vu.user $matching_text_subid_SQL group by manager_chat_subid, user, full_name order by manager_chat_subid asc"; if ($DB) {echo "$sub_stmt
\n";} - $sub_rslt=mysqli_query($link, $sub_stmt); + $sub_rslt=mysql_to_mysqli($sub_stmt, $link); $ASCII_text.="