diff --git a/www/vicidial/AST_IVRstats.php b/www/vicidial/AST_IVRstats.php index 7d1f04f6..e4eece31 100644 --- a/www/vicidial/AST_IVRstats.php +++ b/www/vicidial/AST_IVRstats.php @@ -10,6 +10,7 @@ # 81108-0922 - Added no-callerID and unique caller counts # 90310-2056 - Admin header # 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list # require("dbconnect.php"); @@ -61,7 +62,7 @@ $row=mysql_fetch_row($rslt); $auth=$row[0]; - if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) { Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); Header("HTTP/1.0 401 Unauthorized"); @@ -76,20 +77,23 @@ if (!isset($group)) {$group = '';} if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} -$stmt="select group_id from vicidial_inbound_groups;"; +$stmt="select group_id,group_name from vicidial_inbound_groups;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $groups_to_print = mysql_num_rows($rslt); $i=0; $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; $i++; $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; $i++; $groups_to_print++; while ($i < $groups_to_print) { $row=mysql_fetch_row($rslt); - $LISTgroups[$i] =$row[0]; + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; $i++; } @@ -205,14 +209,14 @@ echo "
\n\n";
if ($groups_to_print < 1)
-{
-echo "\n\n";
-echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
-}
+ {
+ echo "\n\n";
+ echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+ }
else
-{
-
-
-echo "IVR Stats Report: $group_string $NOW_TIME\n";
-
-
-
-
-
-
-$TOTALcalls=0;
-$NOCALLERIDcalls=0;
-$UNIQUEcallers=0;
-$totFLOWivr_time=0;
-$totFLOWtotal_time=0;
-
-##### Grab all records for the IVR for the specified time period
-$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
-$rslt=mysql_query($stmt, $link);
-if ($DB) {echo "$stmt\n";}
-$logs_to_print = mysql_num_rows($rslt);
-$p=0;
-while ($p < $logs_to_print)
{
- $row=mysql_fetch_row($rslt);
- $uniqueid[$p] = $row[0];
- $extension[$p] = $row[1];
- $start_time[$p] = $row[2];
- $comment_a[$p] = $row[3];
- $comment_b[$p] = $row[4];
- $comment_d[$p] = $row[5];
- $epoch[$p] = $row[6];
- $phone_ext[$p] = $row[7];
- $p++;
- }
-
-### create the call flow of all calls by uniqueid
-$last_uniqueid='';
-$first_epoch='';
-$last_epoch='';
-$p=0;
-$r=-1;
-while ($p < $logs_to_print)
- {
- if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
- if ($last_uniqueid === "$uniqueid[$p]")
- {
- $unique_calls[$r] .= "----------$comment_b[$p]";
- if ($DB > 0) {echo " $r|$unique_calls[$r]\n";}
- $last_epoch[$r]=$epoch[$p];
- }
- else
- {
- $r++;
- $caller_id[$r]=$phone_ext[$p];
- if (strlen($phone_ext[$p])<2)
- {$NOCALLERIDcalls++;}
- else
- {
- if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
- {
- $unique_callerIDs .= "_$phone_ext[$p]_";
- $UNIQUEcallers++;
- }
- }
- $first_epoch[$r]=$epoch[$p];
- $last_epoch[$r]=$epoch[$p];
- $unique_calls[$r] = $comment_b[$p];
- $FLOWuniqueid[$r] = "$uniqueid[$p]";
- $last_uniqueid = "$uniqueid[$p]";
- if ($DB > 0) {echo " $r|$unique_calls[$r]\n";}
- }
- $p++;
- }
-
-### sort call flows for counting
-$RAWunique_calls = $unique_calls;
-if ($logs_to_print > 0)
- {sort($unique_calls);}
-
-
-### count each unique call flow
-$last_Suniqueid='';
-$p=-1;
-$s=0;
-while ($s <= $r)
- {
- if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
- if ($last_Suniqueid === "$unique_calls[$s]")
- {
- $STunique_calls_count[$p]++;
- }
- else
- {
- $p++;
- $STunique_calls[$p] = $unique_calls[$s];
- $last_Suniqueid = "$unique_calls[$s]";
- $STunique_calls_count[$p]=1;
- }
- $s++;
- }
-
-
-### put call flows and counts together for sorting again
-$TOTALcalls=0;
-$s=0;
-while ($s <= $p)
- {
- $TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
- $STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
- $FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
- $s++;
- }
-
-#### PRINT TOTAL CALLS INTO THIS IVR
-echo "\n";
-echo "Calls taken into this IVR: $TOTALcalls\n";
-echo "Calls with no CallerID: $NOCALLERIDcalls\n";
-echo "Unique Callers: $UNIQUEcallers\n";
-echo "\n";
-
-### sort call flows for counting
-if ($p > 0)
- {rsort($FLOWunique_calls);}
-
-
-### put call flows and counts together for sorting again
-$RUC_ct = count($RAWunique_calls);
-$s=0;
-while ($s <= $p)
- {
- $FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
- $FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
- $t=0;
- while ($t < $RUC_ct)
- {
- if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
- {
- $FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
- if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
- else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
- $FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
- }
- $t++;
- }
-
- $s++;
- }
-
-
-### put call flows and counts together for sorting again
-$s=0;
-
-echo "+--------+--------+--------+--------+------+------+\n";
-echo "| | | QUEUE | QUEUE | IVR | TOTAL|\n";
-echo "| IVR | QUEUE | DROP | DROP | AVG | AVG |\n";
-echo "| CALLS | CALLS | CALLS | PERCENT| TIME | TIME | CALL PATH\n";
-echo "+--------+--------+--------+--------+------+------+------------\n";
-
-while ($s <= $p)
- {
- $vcl_statuses = $MT;
- $FLOWdrop[$s]=0;
- $FLOWtotal[$s]=0;
- $FLOWdropPCT[$s]=0;
- $FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
- $FLOWsummary[0] = ($FLOWsummary[0] + 0);
-
- $FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+ echo "IVR Stats Report: $group_string $NOW_TIME\n";
+ $TOTALcalls=0;
+ $NOCALLERIDcalls=0;
+ $UNIQUEcallers=0;
+ $totFLOWivr_time=0;
+ $totFLOWtotal_time=0;
##### Grab all records for the IVR for the specified time period
- $stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+ $stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
- $vcl_statuses_to_print = mysql_num_rows($rslt);
- $w=0;
- while ($w < $vcl_statuses_to_print)
+ $logs_to_print = mysql_num_rows($rslt);
+ $p=0;
+ while ($p < $logs_to_print)
{
$row=mysql_fetch_row($rslt);
- $vcl_statuses[$w] = $row[0];
- if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
- {$FLOWdrop[$s]++;}
- $FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
- $FLOWtotal[$s]++;
- $w++;
+ $uniqueid[$p] = $row[0];
+ $extension[$p] = $row[1];
+ $start_time[$p] = $row[2];
+ $comment_a[$p] = $row[3];
+ $comment_b[$p] = $row[4];
+ $comment_d[$p] = $row[5];
+ $epoch[$p] = $row[6];
+ $phone_ext[$p] = $row[7];
+ $p++;
}
- if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+
+ ### create the call flow of all calls by uniqueid
+ $last_uniqueid='';
+ $first_epoch='';
+ $last_epoch='';
+ $p=0;
+ $r=-1;
+ while ($p < $logs_to_print)
{
- $FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
- $FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
- }
- $FLOWsummary[0] = sprintf("%6s", $FLOWsummary[0]);
- $FLOWtotal[$s] = sprintf("%6s", $FLOWtotal[$s]);
- $FLOWdrop[$s] = sprintf("%6s", $FLOWdrop[$s]);
- $FLOWdropPCT[$s] = sprintf("%6s", $FLOWdropPCT[$s]);
- $FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
- $FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
-
- $avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
- $avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
- $avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
- $avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
- $avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
- $avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
-
- $totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
- $totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
- $totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
- $totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
-
- echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
-
- $s++;
- }
-$TOTALcalls = sprintf("%6s", $TOTALcalls);
-$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
-$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
-if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
- {$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
-$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
-$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
-if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
- {$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
-$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
-$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
-if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
- {$totFLOWdropPCT = '0';}
-else
- {
- $totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
- $totFLOWdropPCT = round($totFLOWdropPCT, 0);
- }
-$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
-
-echo "+--------+--------+--------+--------+------+------+------------\n";
-echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
-echo "+--------+--------+--------+--------+------+------+\n";
-
-
-
-
-
-
-
-
-
-
-
-
-
-##############################
-######### TIME STATS
-
-echo "\n";
-echo "---------- TIME STATS\n";
-
-echo "\n";
-
-$hi_hour_count=0;
-$last_full_record=0;
-$i=0;
-$h=0;
-while ($i <= 96)
- {
- $stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
- $rslt=mysql_query($stmt, $link);
- if ($DB) {echo "$stmt\n";}
- $row=mysql_fetch_row($rslt);
- $hour_count[$i] = $row[0];
- if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
- if ($hour_count[$i] > 0) {$last_full_record = $i;}
- $i++;
-
-
- $stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
- $rslt=mysql_query($stmt, $link);
- if ($DB) {echo "$stmt\n";}
- $row=mysql_fetch_row($rslt);
- $hour_count[$i] = $row[0];
- if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
- if ($hour_count[$i] > 0) {$last_full_record = $i;}
- $i++;
-
- $stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
- $rslt=mysql_query($stmt, $link);
- if ($DB) {echo "$stmt\n";}
- $row=mysql_fetch_row($rslt);
- $hour_count[$i] = $row[0];
- if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
- if ($hour_count[$i] > 0) {$last_full_record = $i;}
- $i++;
-
- $stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
- $rslt=mysql_query($stmt, $link);
- if ($DB) {echo "$stmt\n";}
- $row=mysql_fetch_row($rslt);
- $hour_count[$i] = $row[0];
- if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
- if ($hour_count[$i] > 0) {$last_full_record = $i;}
- $i++;
- $h++;
- }
-
-if ($hi_hour_count < 1)
- {$hour_multiplier = 0;}
-else
- {
- $hour_multiplier = (100 / $hi_hour_count);
- #$hour_multiplier = round($hour_multiplier, 0);
- }
-
-echo "\n";
-echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IVR\n";
-
-$k=1;
-$Mk=0;
-$call_scale = '0';
-while ($k <= 102)
- {
- if ($Mk >= 5)
- {
- $Mk=0;
- if ( ($k < 1) or ($hour_multiplier <= 0) )
- {$scale_num = 100;}
+ if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+ if ($last_uniqueid === "$uniqueid[$p]")
+ {
+ $unique_calls[$r] .= "----------$comment_b[$p]";
+ if ($DB > 0) {echo " $r|$unique_calls[$r]\n";}
+ $last_epoch[$r]=$epoch[$p];
+ }
else
{
- $scale_num=($k / $hour_multiplier);
- $scale_num = round($scale_num, 0);
+ $r++;
+ $caller_id[$r]=$phone_ext[$p];
+ if (strlen($phone_ext[$p])<2)
+ {$NOCALLERIDcalls++;}
+ else
+ {
+ if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+ {
+ $unique_callerIDs .= "_$phone_ext[$p]_";
+ $UNIQUEcallers++;
+ }
+ }
+ $first_epoch[$r]=$epoch[$p];
+ $last_epoch[$r]=$epoch[$p];
+ $unique_calls[$r] = $comment_b[$p];
+ $FLOWuniqueid[$r] = "$uniqueid[$p]";
+ $last_uniqueid = "$uniqueid[$p]";
+ if ($DB > 0) {echo " $r|$unique_calls[$r]\n";}
}
- $LENscale_num = (strlen($scale_num));
- $k = ($k + $LENscale_num);
- $call_scale .= "$scale_num";
+ $p++;
}
+
+ ### sort call flows for counting
+ $RAWunique_calls = $unique_calls;
+ if ($logs_to_print > 0)
+ {sort($unique_calls);}
+
+
+ ### count each unique call flow
+ $last_Suniqueid='';
+ $p=-1;
+ $s=0;
+ while ($s <= $r)
+ {
+ if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+ if ($last_Suniqueid === "$unique_calls[$s]")
+ {
+ $STunique_calls_count[$p]++;
+ }
+ else
+ {
+ $p++;
+ $STunique_calls[$p] = $unique_calls[$s];
+ $last_Suniqueid = "$unique_calls[$s]";
+ $STunique_calls_count[$p]=1;
+ }
+ $s++;
+ }
+
+
+ ### put call flows and counts together for sorting again
+ $TOTALcalls=0;
+ $s=0;
+ while ($s <= $p)
+ {
+ $TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+ $STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+ $FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+ $s++;
+ }
+
+ #### PRINT TOTAL CALLS INTO THIS IVR
+ echo "\n";
+ echo "Calls taken into this IVR: $TOTALcalls\n";
+ echo "Calls with no CallerID: $NOCALLERIDcalls\n";
+ echo "Unique Callers: $UNIQUEcallers\n";
+ echo "\n";
+
+ ### sort call flows for counting
+ if ($p > 0)
+ {rsort($FLOWunique_calls);}
+
+
+ ### put call flows and counts together for sorting again
+ $RUC_ct = count($RAWunique_calls);
+ $s=0;
+ while ($s <= $p)
+ {
+ $FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+ $FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+ $t=0;
+ while ($t < $RUC_ct)
+ {
+ if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+ {
+ $FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+ if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+ else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+ $FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+ }
+ $t++;
+ }
+
+ $s++;
+ }
+
+
+ ### put call flows and counts together for sorting again
+ $s=0;
+
+ echo "+--------+--------+--------+--------+------+------+\n";
+ echo "| | | QUEUE | QUEUE | IVR | TOTAL|\n";
+ echo "| IVR | QUEUE | DROP | DROP | AVG | AVG |\n";
+ echo "| CALLS | CALLS | CALLS | PERCENT| TIME | TIME | CALL PATH\n";
+ echo "+--------+--------+--------+--------+------+------+------------\n";
+
+ while ($s <= $p)
+ {
+ $vcl_statuses = $MT;
+ $FLOWdrop[$s]=0;
+ $FLOWtotal[$s]=0;
+ $FLOWdropPCT[$s]=0;
+ $FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+ $FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+ $FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+ ##### Grab all records for the IVR for the specified time period
+ $stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+ $rslt=mysql_query($stmt, $link);
+ if ($DB) {echo "$stmt\n";}
+ $vcl_statuses_to_print = mysql_num_rows($rslt);
+ $w=0;
+ while ($w < $vcl_statuses_to_print)
+ {
+ $row=mysql_fetch_row($rslt);
+ $vcl_statuses[$w] = $row[0];
+ if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+ {$FLOWdrop[$s]++;}
+ $FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+ $FLOWtotal[$s]++;
+ $w++;
+ }
+ if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+ {
+ $FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+ $FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+ }
+ $FLOWsummary[0] = sprintf("%6s", $FLOWsummary[0]);
+ $FLOWtotal[$s] = sprintf("%6s", $FLOWtotal[$s]);
+ $FLOWdrop[$s] = sprintf("%6s", $FLOWdrop[$s]);
+ $FLOWdropPCT[$s] = sprintf("%6s", $FLOWdropPCT[$s]);
+ $FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+ $FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+ $avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+ $avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+ $avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+ $avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+ $avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+ $avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+ $totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+ $totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+ $totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+ $totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+ echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+ $s++;
+ }
+ $TOTALcalls = sprintf("%6s", $TOTALcalls);
+ $totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+ $totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+ if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+ {$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+ $TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+ $TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+ if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+ {$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+ $TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+ $TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+ if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+ {$totFLOWdropPCT = '0';}
else
{
- $call_scale .= " ";
- $k++; $Mk++;
+ $totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+ $totFLOWdropPCT = round($totFLOWdropPCT, 0);
}
- }
+ $totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+ echo "+--------+--------+--------+--------+------+------+------------\n";
+ echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+ echo "+--------+--------+--------+--------+------+------+\n";
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
-#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | TOTAL |\n";
-echo "| HOUR |$call_scale| TOTAL |\n";
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
-$ZZ = '00';
-$i=0;
-$h=4;
-$hour= -1;
-$no_lines_yet=1;
-while ($i <= 96)
- {
- $char_counter=0;
- $time = ' ';
- if ($h >= 4)
+
+
+
+
+
+
+
+
+
+ ##############################
+ ######### TIME STATS
+
+ echo "\n";
+ echo "---------- TIME STATS\n";
+
+ echo "\n";
+
+ $hi_hour_count=0;
+ $last_full_record=0;
+ $i=0;
+ $h=0;
+ while ($i <= 96)
{
- $hour++;
- $h=0;
- if ($hour < 10) {$hour = "0$hour";}
- $time = "+$hour$ZZ+";
+ $stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+ $rslt=mysql_query($stmt, $link);
+ if ($DB) {echo "$stmt\n";}
+ $row=mysql_fetch_row($rslt);
+ $hour_count[$i] = $row[0];
+ if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+ if ($hour_count[$i] > 0) {$last_full_record = $i;}
+ $i++;
+
+
+ $stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+ $rslt=mysql_query($stmt, $link);
+ if ($DB) {echo "$stmt\n";}
+ $row=mysql_fetch_row($rslt);
+ $hour_count[$i] = $row[0];
+ if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+ if ($hour_count[$i] > 0) {$last_full_record = $i;}
+ $i++;
+
+ $stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+ $rslt=mysql_query($stmt, $link);
+ if ($DB) {echo "$stmt\n";}
+ $row=mysql_fetch_row($rslt);
+ $hour_count[$i] = $row[0];
+ if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+ if ($hour_count[$i] > 0) {$last_full_record = $i;}
+ $i++;
+
+ $stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+ $rslt=mysql_query($stmt, $link);
+ if ($DB) {echo "$stmt\n";}
+ $row=mysql_fetch_row($rslt);
+ $hour_count[$i] = $row[0];
+ if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+ if ($hour_count[$i] > 0) {$last_full_record = $i;}
+ $i++;
+ $h++;
}
- if ($h == 1) {$time = " 15 ";}
- if ($h == 2) {$time = " 30 ";}
- if ($h == 3) {$time = " 45 ";}
- $Ghour_count = $hour_count[$i];
- if ($Ghour_count < 1)
+
+ if ($hi_hour_count < 1)
+ {$hour_multiplier = 0;}
+ else
{
- if ( ($no_lines_yet) or ($i > $last_full_record) )
+ $hour_multiplier = (100 / $hi_hour_count);
+ #$hour_multiplier = round($hour_multiplier, 0);
+ }
+
+ echo "\n";
+ echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IVR\n";
+
+ $k=1;
+ $Mk=0;
+ $call_scale = '0';
+ while ($k <= 102)
+ {
+ if ($Mk >= 5)
{
- $do_nothing=1;
+ $Mk=0;
+ if ( ($k < 1) or ($hour_multiplier <= 0) )
+ {$scale_num = 100;}
+ else
+ {
+ $scale_num=($k / $hour_multiplier);
+ $scale_num = round($scale_num, 0);
+ }
+ $LENscale_num = (strlen($scale_num));
+ $k = ($k + $LENscale_num);
+ $call_scale .= "$scale_num";
}
else
{
+ $call_scale .= " ";
+ $k++; $Mk++;
+ }
+ }
+
+
+ echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+ #echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | TOTAL |\n";
+ echo "| HOUR |$call_scale| TOTAL |\n";
+ echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+ $ZZ = '00';
+ $i=0;
+ $h=4;
+ $hour= -1;
+ $no_lines_yet=1;
+
+ while ($i <= 96)
+ {
+ $char_counter=0;
+ $time = ' ';
+ if ($h >= 4)
+ {
+ $hour++;
+ $h=0;
+ if ($hour < 10) {$hour = "0$hour";}
+ $time = "+$hour$ZZ+";
+ }
+ if ($h == 1) {$time = " 15 ";}
+ if ($h == 2) {$time = " 30 ";}
+ if ($h == 3) {$time = " 45 ";}
+ $Ghour_count = $hour_count[$i];
+ if ($Ghour_count < 1)
+ {
+ if ( ($no_lines_yet) or ($i > $last_full_record) )
+ {
+ $do_nothing=1;
+ }
+ else
+ {
+ $hour_count[$i] = sprintf("%-5s", $hour_count[$i]);
+ echo "|$time|";
+ $k=0; while ($k <= 102) {echo " "; $k++;}
+ echo "| $hour_count[$i] |\n";
+ }
+ }
+ else
+ {
+ $no_lines_yet=0;
+ $Xhour_count = ($Ghour_count * $hour_multiplier);
+ $Yhour_count = (99 - $Xhour_count);
+
$hour_count[$i] = sprintf("%-5s", $hour_count[$i]);
- echo "|$time|";
- $k=0; while ($k <= 102) {echo " "; $k++;}
+
+ echo "|$time|";
+ $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;}
+ echo "*X"; $char_counter++;
+ $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;}
+ while ($char_counter <= 101) {echo " "; $char_counter++;}
echo "| $hour_count[$i] |\n";
}
+
+
+ $i++;
+ $h++;
}
- else
- {
- $no_lines_yet=0;
- $Xhour_count = ($Ghour_count * $hour_multiplier);
- $Yhour_count = (99 - $Xhour_count);
- $hour_count[$i] = sprintf("%-5s", $hour_count[$i]);
- echo "|$time|";
- $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;}
- echo "*X"; $char_counter++;
- $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;}
- while ($char_counter <= 101) {echo " "; $char_counter++;}
- echo "| $hour_count[$i] |\n";
- }
-
-
- $i++;
- $h++;
+ echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+ $ENDtime = date("U");
+ $RUNtime = ($ENDtime - $STARTtime);
+ echo "\nRun Time: $RUNtime seconds\n";
}
-echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
-
-
-
-
-
-
-
-
-
-
-$ENDtime = date("U");
-$RUNtime = ($ENDtime - $STARTtime);
-echo "\nRun Time: $RUNtime seconds\n";
-}
-
-
?>