From 46216e408f2244850ac38bfb8e17fc32e6b3c188 Mon Sep 17 00:00:00 2001 From: mattf Date: Mon, 10 Nov 2008 17:57:42 +0000 Subject: [PATCH] reworking of vicidial_agent_log to allow for different pause code sessions without taking a call in between. fixed error when vicidial_auto_calls record is deleted while in a transfer to an agent(caused by hangup) git-svn-id: svn://192.168.202.10@1002 3d104415-ff17-0410-8863-d5cf3c621b8a --- www/agc/vdc_db_query.php | 172 ++++++++++++------ www/agc/vicidial.php | 38 ++-- www/vicidial/AST_agent_performance_detail.php | 7 +- 3 files changed, 144 insertions(+), 73 deletions(-) diff --git a/www/agc/vdc_db_query.php b/www/agc/vdc_db_query.php index 680fa636..8ec29caa 100644 --- a/www/agc/vdc_db_query.php +++ b/www/agc/vdc_db_query.php @@ -171,12 +171,13 @@ # 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries # 81106-0410 - Added force_timeclock_login option to LoginCampaigns function # 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause # -$version = '2.0.5-89'; -$build = '81107-0424'; +$version = '2.0.5-90'; +$build = '81110-0058'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=180; +$mysql_log_count=182; $one_mysql_log=0; require("dbconnect.php"); @@ -2418,16 +2419,16 @@ if ($ACTION == 'VDADcheckINCOMING') ### update the log status to INCALL $user_group=''; - $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} - if ($DB) {echo "$stmt\n";} - $ug_record_ct = mysql_num_rows($rslt); - if ($ug_record_ct > 0) - { - $row=mysql_fetch_row($rslt); - $user_group = trim("$row[0]"); - } + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; @@ -2445,10 +2446,31 @@ if ($ACTION == 'VDADcheckINCOMING') } else { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "select campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } if ($WeBRooTWritablE > 0) { $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|\n"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|\n"); fclose($fp); } } @@ -2460,7 +2482,7 @@ if ($ACTION == 'VDADcheckINCOMING') $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number from vicidial_campaigns where campaign_id='$campaign';"; + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group from vicidial_campaigns where campaign_id='$campaign';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} @@ -2474,8 +2496,10 @@ if ($ACTION == 'VDADcheckINCOMING') $VDCL_xferconf_a_number = $row[3]; $VDCL_xferconf_b_dtmf = $row[4]; $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number||||\n|\n"; + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|\n|\n"; $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; if ($DB) {echo "$stmt\n";} @@ -2488,6 +2512,11 @@ if ($ACTION == 'VDADcheckINCOMING') $dialed_number =$row[0]; $dialed_label =$row[1]; } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + } if (ereg('X',$dialed_label)) { if (ereg('LAST',$dialed_label)) @@ -3031,12 +3060,12 @@ if ($ACTION == 'updateDISPO') $user_group = trim("$row[0]"); } - $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} - $affected_rows = mysql_affected_rows($link); - $agent_log_id = mysql_insert_id($link); +# $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; +# if ($DB) {echo "$stmt\n";} +# $rslt=mysql_query($stmt, $link); +# if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} +# $affected_rows = mysql_affected_rows($link); +# $agent_log_id = mysql_insert_id($link); ### CALLBACK ENTRY if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) @@ -3298,6 +3327,18 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); mysql_select_db("$queuemetrics_dbname", $linkB); + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $linkB); @@ -3308,47 +3349,66 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) } } - if ($agent_log == 'NO') - {$donothing=1;} - else + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) { - $pause_sec=0; - $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; - if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} - $VDpr_ct = mysql_num_rows($rslt); - if ($VDpr_ct > 0) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($ACTION == 'VDADpause') + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + + $agent_log = 'NEW_ID'; + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) { $row=mysql_fetch_row($rslt); - $wait_sec=0; - if ($row[2] > 0) - { - $wait_sec = (($StarTtime - $row[2]) + $row[3]); - } - if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) - {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} - else - {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + $user_group = trim("$row[0]"); + } - } - if ($ACTION == 'VDADready') - { - $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} - } - if ($ACTION == 'VDADpause') - { - $stmt="UPDATE vicidial_agent_log set pause_epoch='$StarTtime',wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} - } + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); } } - echo 'Agent ' . $user . ' is now in status ' . $stage . "\n"; + echo 'Agent ' . $user . ' is now in status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; } diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index 8fadb03b..439b5ecc 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -205,10 +205,11 @@ # 81104-0140 - Added mysql error logging capability # 81104-1618 - Changed MySQL queries logging # 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause # -$version = '2.0.5-184'; -$build = '81106-0411'; +$version = '2.0.5-185'; +$build = '81110-0057'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=51; $one_mysql_log=0; @@ -4322,7 +4323,14 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { - // alert(xmlhttp.responseText); + var check_dispo = null; + check_dispo = xmlhttp.responseText; + var check_DS_array=check_dispo.split("\n"); + // alert(xmlhttp.responseText + "\n|" + check_DS_array[1] + "\n|" + check_DS_array[2] + "|"); + if (check_DS_array[1] == 'Next agent_log_id:') + { + agent_log_id = check_DS_array[2]; + } } } delete xmlhttp; @@ -5530,14 +5538,14 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { - var check_dispo = null; - check_dispo = xmlhttp.responseText; - var check_DS_array=check_dispo.split("\n"); + // var check_dispo = null; + // check_dispo = xmlhttp.responseText; + // var check_DS_array=check_dispo.split("\n"); // alert(xmlhttp.responseText + "\n|" + check_DS_array[1] + "\n|" + check_DS_array[2] + "|"); - if (check_DS_array[1] == 'Next agent_log_id:') - { - agent_log_id = check_DS_array[2]; - } + // if (check_DS_array[1] == 'Next agent_log_id:') + // { + // agent_log_id = check_DS_array[2]; + // } } } delete xmlhttp; @@ -5603,7 +5611,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if (auto_dial_level != '0') { AutoDialWaiting = 0; - AutoDial_ReSume_PauSe("VDADpause","NO"); + AutoDial_ReSume_PauSe("VDADpause"); // document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML; } VICIDiaL_pause_calling = 1; @@ -5617,7 +5625,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if (auto_dial_level != '0') { AutoDialWaiting = 1; - AutoDial_ReSume_PauSe("VDADready","NO"); + AutoDial_ReSume_PauSe("VDADready","NEW_ID"); // document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_ready; } else @@ -5805,7 +5813,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} } if (auto_dial_level > 0) { - AutoDial_ReSume_PauSe("VDADpause","NO"); + AutoDial_ReSume_PauSe("VDADpause"); } } @@ -6846,7 +6854,7 @@ else if (auto_dial_level != '0') { AutoDialWaiting = 0; - AutoDial_ReSume_PauSe("VDADpause","NO"); + AutoDial_ReSume_PauSe("VDADpause"); // document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML; } VICIDiaL_pause_calling = 1; @@ -6860,7 +6868,7 @@ else if (auto_dial_level != '0') { AutoDialWaiting = 1; - AutoDial_ReSume_PauSe("VDADready","NO"); + AutoDial_ReSume_PauSe("VDADready"); // document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_ready; } } diff --git a/www/vicidial/AST_agent_performance_detail.php b/www/vicidial/AST_agent_performance_detail.php index d329d3ca..2c779496 100644 --- a/www/vicidial/AST_agent_performance_detail.php +++ b/www/vicidial/AST_agent_performance_detail.php @@ -14,6 +14,7 @@ # 81030-0346 - Added pause code stats # 81030-1924 - Added total non-pause and total logged-in time to pause code section # 81108-0716 - fixed user same-name bug +# 81110-0056 - fixed pause code display bug # require("dbconnect.php"); @@ -614,6 +615,8 @@ while ($i < $subs_to_print) $PCpause_sec[$i] = $row[2]; $sub_status[$i] = $row[3]; $PCnon_pause_sec[$i] = $row[4]; + +# echo "$sub_status[$i]|$PCpause_sec[$i]\n"; # if ( (!eregi("-$sub_status[$i]-", $sub_statuses)) and (strlen($sub_status[$i])>0) ) if (!eregi("-$sub_status[$i]-", $sub_statuses)) { @@ -671,7 +674,7 @@ while ($m < $k) $SstatusTXT=''; ### BEGIN loop through each stat line ### $i=0; $status_found=0; - while ($i < $rows_to_print) + while ($i < $subs_to_print) { if ( ($Suser=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) { @@ -773,7 +776,7 @@ while ($n < $j) $SUMstatusTXT=''; ### BEGIN loop through each stat line ### $i=0; $status_found=0; - while ($i < $rows_to_print) + while ($i < $subs_to_print) { if ($Sstatus=="$sub_status[$i]") {