Data is aggregated according to the settings of the parameters:
Parameter | Default Value | Purpose |
Portal.ACD.Statistics.JTELStats2.Compress.StatisticsServiceNumbers.SecondsToWait | 7200 | The minimum time after the end of a time interval before statistics are aggregated. |
Portal.ACD.Statistics.JTELStats2.Compress.StatisticsServiceNumbers.NextTimeSlice | - | The date / time of the next time slice to be calculated. This parameter can be reset to an earlier date / time in which case the system will recalculate all intervals from the given date and time again. |
Two tables are provided, compressed according to the following query:
SELECT (Various Aggregations) FROM JTELStats.StatisticsPartA a LEFT JOIN JTELStats.AcdStatisticsPartB acdb ON a.ID = acdb.StatisticsPartAID LEFT JOIN JTELStats.StatisticsPartB b ON acdb.ID = b.AcdStatisticsPartBID WHERE ( a.ClientsID = _ClientsID ) AND ( a.dtCallStart BETWEEN _Timeslice_Begin AND TIMESTAMPADD( MINUTE, 15, _Timeslice_Begin ) ) AND ( a.bOutbound = 0 ) GROUP BY a.ID; |
When the data is aggregated, it is divided into several consistent partitions, according to the following logic. The resulting aggregations then either count a call, if a condition is met, or determine the time between two timestamps.
Partitions all records only using fields from StatisticsPartA.
dtCallConnect | bCallerHangup | CauseCodesID | Field |
NULL | <> 0 |
| Abandoned |
NULL | 0 | 17 | Busy |
NULL | 0 | <> 17 | Reject |
NOT NULL |
|
| Offhook |
Partitions records only for which an AcdStatisticsPartB record exists, and for which it is not a group transfer or group overflow.
The condition used is:
( AcdStatisticsPartB.ID IS NOT NULL ) AND ( AcdStatisticsPartB.AcdOriginGroupsID IS NULL ) |
Further partitions records which have entered the ACD, only calls which enter the queue.
The additional condition used is:
( AcdStatisticsPartB.dtQueueStart IS NOT NULL ) |
Further partition on calls which entered the queue, only calls answered by an agent are considered. The condition used is:
The additional condition used is:
( StatisticsPartA.dtCallConnect IS NOT NULL ) AND ( AcdStatisticsPartB.dtAgentConnect IS NOT NULL ) |
Further partition on calls which entered the queue, only calls not answered by an agent are considered. The condition used is:
( StatisticsPartA.dtCallConnect IS NOT NULL ) AND ( AcdStatisticsPartB.dtAgentConnect IS NULL ) |
Only records for which:
StatisticsPartB.ID IS NOT NULL
are considered, i.e. where an agent or destination call was made.
If the following condition is met:
StatisticsPartB.StatisticsPartBOrigin IS NULL
then an outcall to an agent was made. Otherwise it was a call transfer (see the further sections below).
Further partitioning is according to the CONNRES field.
CONNRES | Result |
1 | OK |
2 | NoAnswer |
3 | Busy |
4 | CallerHangup |
6 | Rejected |
0, 5, > 6 | Failure |
If StatisticsPartB.StatisticsPartBOrigin IS NOT NULL and StatisticsPartB.AcdGroupsID <> AcdStatisticsPartB.AcdGroupsID then a group transfer was made. Otherwise partitioning as AgentCalls_* fields.
If StatisticsPartB.StatisticsPartBOrigin IS NOT NULL and StatisticsPartB.AcdGroupsID = AcdStatisticsPartB.AcdGroupsID AND StatisticsPartB.bTransferAgent <> 0 then an agent to agent transfer was made. Otherwise partitioning as AgentCalls_* fields.
If StatisticsPartB.StatisticsPartBOrigin IS NOT NULL and StatisticsPartB.AcdGroupsID = AcdStatisticsPartB.AcdGroupsID AND StatisticsPartB.bTransferExternalNumber <> 0 then an agent to number transfer was made. Otherwise partitioning as AgentCalls_* fields.
The field definitions are essentially the same, in both tables, only the aggregation intervals are different.
This table contains compressed statistics for 15 minute intervals.
This table contains compressed statistics for day intervals.