From 70bdb38c78b5724bbf841870c9ade2a9bc5071f4 Mon Sep 17 00:00:00 2001 From: mattf Date: Sun, 12 Jul 2020 14:18:24 +0000 Subject: [PATCH] Added EVERY_NEW_ADMINCALL option for QM PAUSEREASON system setting git-svn-id: svn://192.168.202.10@3266 3d104415-ff17-0410-8863-d5cf3c621b8a --- extras/MySQL_AST_CREATE_tables.sql | 4 +- extras/upgrade_2.14.sql | 5 +- www/agc/vdc_db_query.php | 85 ++++++++++++++++++++++++------ www/vicidial/admin.php | 7 +-- 4 files changed, 79 insertions(+), 22 deletions(-) diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql index d79fc62b..cedd8f23 100644 --- a/extras/MySQL_AST_CREATE_tables.sql +++ b/extras/MySQL_AST_CREATE_tables.sql @@ -1863,7 +1863,7 @@ user_account_emails ENUM('DISABLED','SEND_NO_PASS','SEND_WITH_PASS') DEFAULT 'DI outbound_cid_any ENUM('DISABLED','API_ONLY') DEFAULT 'DISABLED', entries_per_page SMALLINT(5) UNSIGNED DEFAULT '0', browser_call_alerts ENUM('0','1','2') DEFAULT '0', -queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW') default 'STANDARD', +queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW','EVERY_NEW_ADMINCALL') default 'STANDARD', inbound_answer_config ENUM('0','1','2','3','4','5') DEFAULT '0' ) ENGINE=MyISAM; @@ -4646,4 +4646,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_ UPDATE system_settings set vdc_agent_api_active='1'; -UPDATE system_settings SET db_schema_version='1600',db_schema_update_date=NOW(),reload_timestamp=NOW(); +UPDATE system_settings SET db_schema_version='1601',db_schema_update_date=NOW(),reload_timestamp=NOW(); diff --git a/extras/upgrade_2.14.sql b/extras/upgrade_2.14.sql index c5d984b1..b2bcd78f 100644 --- a/extras/upgrade_2.14.sql +++ b/extras/upgrade_2.14.sql @@ -1247,7 +1247,7 @@ ALTER TABLE vicidial_campaigns ADD three_way_record_stop_exception VARCHAR(40) d UPDATE system_settings SET db_schema_version='1596',db_schema_update_date=NOW() where db_schema_version < 1596; -ALTER TABLE system_settings ADD queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW') default 'STANDARD'; +ALTER TABLE system_settings ADD queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW','EVERY_NEW_ADMINCALL') default 'STANDARD'; UPDATE system_settings SET db_schema_version='1597',db_schema_update_date=NOW() where db_schema_version < 1597; @@ -1272,3 +1272,6 @@ ALTER TABLE vicidial_lists ADD inbound_after_hours_voicemail VARCHAR(20); UPDATE system_settings SET db_schema_version='1600',db_schema_update_date=NOW() where db_schema_version < 1600; +ALTER TABLE system_settings MODIFY queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW','EVERY_NEW_ADMINCALL') default 'STANDARD'; + +UPDATE system_settings SET db_schema_version='1601',db_schema_update_date=NOW() where db_schema_version < 1601; diff --git a/www/agc/vdc_db_query.php b/www/agc/vdc_db_query.php index 6830b1be..0268fb03 100644 --- a/www/agc/vdc_db_query.php +++ b/www/agc/vdc_db_query.php @@ -498,7 +498,7 @@ $version = '2.14-385'; $build = '200621-1027'; $php_script = 'vdc_db_query.php'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=824; +$mysql_log_count=839; $one_mysql_log=0; $DB=0; $VD_login=0; @@ -4248,7 +4248,7 @@ if ($ACTION == 'manDiaLnextCaLL') # Gather details on Dial Timeout Lead settings container $stmt = "SELECT container_entry FROM vicidial_settings_containers where container_id='$dial_timeout_lead_container';"; $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,'00825',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $SCinfo_ct = mysqli_num_rows($rslt); if ($SCinfo_ct > 0) @@ -4430,7 +4430,7 @@ if ($ACTION == 'manDiaLnextCaLL') $stmt="UPDATE vicidial_cid_groups SET cid_auto_rotate_calls=(cid_auto_rotate_calls + 1) where cid_group_id='$cid_group_id';"; if ($format=='debug') {echo "\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,'00826',$user,$server_ip,$session_name,$one_mysql_log);} } } } @@ -4618,7 +4618,7 @@ if ($ACTION == 'manDiaLnextCaLL') $PHONEoutbound_cid=''; $stmt = "SELECT outbound_cid FROM phones where login='$phone_login' limit 1;"; $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,'00827',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $pocid_ct = mysqli_num_rows($rslt); if ($pocid_ct > 0) @@ -5794,7 +5794,7 @@ if ($ACTION == 'manDiaLonly') # Gather details on Dial Timeout Lead settings container $stmt = "SELECT container_entry FROM vicidial_settings_containers where container_id='$dial_timeout_lead_container';"; $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,'00828',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $SCinfo_ct = mysqli_num_rows($rslt); if ($SCinfo_ct > 0) @@ -5809,7 +5809,7 @@ if ($ACTION == 'manDiaLonly') ### BEGIN load lead information to be used by Dial Timeout Lead Override ### $stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner,entry_list_id FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; $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,'00829',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $list_lead_ct = mysqli_num_rows($rslt); if ($list_lead_ct > 0) @@ -6058,7 +6058,7 @@ if ($ACTION == 'manDiaLonly') $stmt="UPDATE vicidial_cid_groups SET cid_auto_rotate_calls=(cid_auto_rotate_calls + 1) where cid_group_id='$cid_group_id';"; if ($format=='debug') {echo "\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,'00830',$user,$server_ip,$session_name,$one_mysql_log);} } } } @@ -6108,7 +6108,7 @@ if ($ACTION == 'manDiaLonly') $PHONEoutbound_cid=''; $stmt = "SELECT outbound_cid FROM phones where login='$phone_login' limit 1;"; $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,'00831',$user,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} $pocid_ct = mysqli_num_rows($rslt); if ($pocid_ct > 0) @@ -15919,26 +15919,79 @@ if ($ACTION == 'PauseCodeSubmit') $affected_rows = mysqli_affected_rows($linkB); } - if ($queuemetrics_pausereason == 'EVERY_NEW') + if ( (preg_match("/ADMINCALL/",$queuemetrics_pausereason)) and (preg_match("/^ADMIN$|^220208$/",$status)) ) { - ##### BEGIN insert new pause session, back-dated before the PAUSEREASON - $unpauseall_time = ($secX - 2); + ##### BEGIN insert new 1-second fake phone call, back-dated before the PAUSEREASON + $unpauseall_time = ($secX - 3); + $calloutbound_time = ($secX - 3); + $connect_time = ($secX - 3); + $completecaller_time = ($secX - 2); + $callstatus_time = ($secX - 1); $pauseall_time = ($secX - 1); + $fake_call_id = $secX; + while (strlen($fake_call_id) > 9) {$fake_call_id = substr("$fake_call_id", 1);} + $fake_call_id = "F".$fake_call_id."0000000001"; - $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$unpauseall_time',call_id='$pause_call_id',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$unpauseall_time',call_id='',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00832',$user,$server_ip,$session_name,$one_mysql_log);} $UPAaffected_rows = mysqli_affected_rows($linkB); - $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$pauseall_time',call_id='$pause_call_id',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$calloutbound_time',call_id='$fake_call_id',queue='$campaign',agent='Agent/$user',verb='CALLOUTBOUND',data2='9998881112',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_to_mysqli($stmt, $linkB); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} - $PAaffected_rows = mysqli_affected_rows($linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00833',$user,$server_ip,$session_name,$one_mysql_log);} + $UPAaffected_rows = mysqli_affected_rows($linkB); + $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$connect_time',call_id='$fake_call_id',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00834',$user,$server_ip,$session_name,$one_mysql_log);} + $UPAaffected_rows = mysqli_affected_rows($linkB); + + $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$completecaller_time',call_id='$fake_call_id',queue='$campaign',agent='Agent/$user',verb='COMPLETECALLER',data1='0',data2='1',data3='1',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00835',$user,$server_ip,$session_name,$one_mysql_log);} + $UPAaffected_rows = mysqli_affected_rows($linkB); + + $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$callstatus_time',call_id='$fake_call_id',queue='$campaign',agent='Agent/$user',verb='CALLSTATUS',data1='NOCALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00836',$user,$server_ip,$session_name,$one_mysql_log);} + $UPAaffected_rows = mysqli_affected_rows($linkB); + + $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$pauseall_time',call_id='',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00837',$user,$server_ip,$session_name,$one_mysql_log);} + $PAaffected_rows = mysqli_affected_rows($linkB); ##### END insert new pause session, back-dated before the PAUSEREASON } + else + { + if (preg_match("/EVERY_NEW/",$queuemetrics_pausereason)) + { + ##### BEGIN insert new pause session, back-dated before the PAUSEREASON + $unpauseall_time = ($secX - 2); + $pauseall_time = ($secX - 1); + + $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$unpauseall_time',call_id='$pause_call_id',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00838',$user,$server_ip,$session_name,$one_mysql_log);} + $UPAaffected_rows = mysqli_affected_rows($linkB); + + $stmt = "INSERT INTO queue_log SET `partition`='P01',time_id='$pauseall_time',call_id='$pause_call_id',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00839',$user,$server_ip,$session_name,$one_mysql_log);} + $PAaffected_rows = mysqli_affected_rows($linkB); + + ##### END insert new pause session, back-dated before the PAUSEREASON + } + } mysqli_close($linkB); } diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php index bd345957..bce59d1c 100644 --- a/www/vicidial/admin.php +++ b/www/vicidial/admin.php @@ -4694,12 +4694,13 @@ else # 200624-1939 - Added Callbacks Export report # 200701-1525 - Added more concurrent_transfers options # 200708-1033 - Added List overrides for some inbound settings +# 200711-1822 - Added EVERY_NEW_ADMINCALL option for QM PAUSEREASON system setting # # 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.14-761a'; -$build = '200708-1033'; +$admin_version = '2.14-762a'; +$build = '200711-1822'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -39101,7 +39102,7 @@ if ($ADD==311111111111111) echo ""._QXZ("QueueMetrics Addmember Enabled").": $NWB#settings-queuemetrics_addmember_enabled$NWE\n"; echo ""._QXZ("QueueMetrics Dispo Pause Code").": $NWB#settings-queuemetrics_dispo_pause$NWE\n"; echo ""._QXZ("QueueMetrics Pause Type Logging").": $NWB#settings-queuemetrics_pause_type$NWE\n"; - echo ""._QXZ("QueueMetrics PAUSEREASON Logging").": $NWB#settings-queuemetrics_pausereason$NWE\n"; + echo ""._QXZ("QueueMetrics PAUSEREASON Logging").": $NWB#settings-queuemetrics_pausereason$NWE\n"; echo ""._QXZ("QueueMetrics Phone Environment Phone Append").": $NWB#settings-queuemetrics_pe_phone_append$NWE\n"; echo ""._QXZ("QueueMetrics Hold Call Log").": $NWB#settings-queuemetrics_record_hold$NWE\n"; echo ""._QXZ("QueueMetrics Socket Send").": $NWB#settings-queuemetrics_socket$NWE\n";