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 cedd8f23..efa54533 100644 --- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql +++ b/agc_2-X/trunk/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','EVERY_NEW_ADMINCALL') default 'STANDARD', +queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW','EVERY_NEW_ADMINCALL','EVERY_NEW_ALLCALL') 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='1601',db_schema_update_date=NOW(),reload_timestamp=NOW(); +UPDATE system_settings SET db_schema_version='1602',db_schema_update_date=NOW(),reload_timestamp=NOW(); diff --git a/agc_2-X/trunk/extras/upgrade_2.14.sql b/agc_2-X/trunk/extras/upgrade_2.14.sql index b2bcd78f..d94785e1 100644 --- a/agc_2-X/trunk/extras/upgrade_2.14.sql +++ b/agc_2-X/trunk/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','EVERY_NEW_ADMINCALL') default 'STANDARD'; +ALTER TABLE system_settings ADD queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW','EVERY_NEW_ADMINCALL','EVERY_NEW_ALLCALL') default 'STANDARD'; UPDATE system_settings SET db_schema_version='1597',db_schema_update_date=NOW() where db_schema_version < 1597; @@ -1272,6 +1272,10 @@ 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'; +ALTER TABLE system_settings MODIFY queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW','EVERY_NEW_ADMINCALL','EVERY_NEW_ALLCALL') default 'STANDARD'; UPDATE system_settings SET db_schema_version='1601',db_schema_update_date=NOW() where db_schema_version < 1601; + +ALTER TABLE system_settings MODIFY queuemetrics_pausereason ENUM('STANDARD','EVERY_NEW','EVERY_NEW_ADMINCALL','EVERY_NEW_ALLCALL') default 'STANDARD'; + +UPDATE system_settings SET db_schema_version='1602',db_schema_update_date=NOW() where db_schema_version < 1602; 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 a8919092..9fb2d4b4 100644 --- a/agc_2-X/trunk/www/agc/vdc_db_query.php +++ b/agc_2-X/trunk/www/agc/vdc_db_query.php @@ -493,10 +493,11 @@ # 200609-2357 - Added NONE_ options for the campaign manual_dial_filter # 200621-1027 - Added queuemetrics_pausereason options # 200712-2034 - Fix for use_custom_cid variable issue +# 200719-1645 - Added EVERY_NEW_ALLCALL queuemetrics_pausereason option # -$version = '2.14-386'; -$build = '200712-2034'; +$version = '2.14-387'; +$build = '200719-1645'; $php_script = 'vdc_db_query.php'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=839; @@ -15920,55 +15921,86 @@ if ($ACTION == 'PauseCodeSubmit') $affected_rows = mysqli_affected_rows($linkB); } - if ( (preg_match("/ADMINCALL/",$queuemetrics_pausereason)) and (preg_match("/^ADMIN$|^220208$/",$status)) ) + if ( ( (preg_match("/ADMINCALL/",$queuemetrics_pausereason)) and (preg_match("/^ADMIN$|^220208$/",$status)) ) or (preg_match("/ALLCALL/",$queuemetrics_pausereason)) ) { - ##### 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"; + ### BEGIN Check for any calls connecting(CONNECT) to this agent since the last AGENTLOGIN event ### + $recentCONNECT=0; + $lastAGENTLOGIN = $secX; + $checkAGENTLOGIN = ($secX - 86400); - $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";} + $stmt="SELECT time_id from queue_log where agent='Agent/$user' and verb='AGENTLOGIN' and time_id <= \"$secX\" and time_id > \"$checkAGENTLOGIN\" order by time_id desc limit 1;"; $rslt=mysql_to_mysqli($stmt, $linkB); - 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); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $QM_AL_ct = mysqli_num_rows($rslt); + if ($QM_AL_ct > 0) + { + $row=mysqli_fetch_row($rslt); + $lastAGENTLOGIN = $row[0]; + } - $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";} + $stmt="SELECT count(*) from queue_log where agent='Agent/$user' and verb='CONNECT' and time_id <= \"$secX\" and time_id > \"$lastAGENTLOGIN\";"; $rslt=mysql_to_mysqli($stmt, $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); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $QM_RC_ct = mysqli_num_rows($rslt); + if ($QM_RC_ct > 0) + { + $row=mysqli_fetch_row($rslt); + $recentCONNECT = $row[0]; + } + ### END Check for any calls connecting(CONNECT) to this agent since the last AGENTLOGIN event ### - $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); + if ($recentCONNECT < 1) + { + ##### 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='$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='$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,'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='$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='$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,'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='$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 + $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 { diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index bce59d1c..a4b28c85 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -4695,12 +4695,13 @@ else # 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 +# 200719-1645 - Added EVERY_NEW_ALLCALL 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-762a'; -$build = '200711-1822'; +$admin_version = '2.14-763a'; +$build = '200719-1645'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -39102,7 +39103,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";