I am going to pre-apologize because I come from a Nortel background, so a lot of my expectations are slightly skewed for the Cisco environment.
I am trying to gather some skillset and agent data from the CRS database in a UCCX environment. For skill group data, I am looking at the ContactQueueDetail table in the CRS database. This table is event based, each event that happens in your skill group results in a row, so I go about accumulating all the events that occur over a period (half hour). So, for example, I will find in one of the busier skill groups that 8 calls were accepted into the skill group, 6 were answered, 2 abandoned, 5 were accepted within the Service Level, etc... (A fairly small Skill Group) All this matches with my expectations.
After collecting the skill group information, I take a look at the Agent information by querying the ContactCallDetail table (I also query the Agent State Detail table, but that collects timer data, not call data, and I think the Agent timers are proper). Using a bit of psuedo SQL, I am effectively querying:
SELECT * FROM ContactCallDetail WHERE destinationType = 1 AND endDateTime > NOW-30Minutes AND endDateTime < NOW
(That's not legitimate SQL, but I think it conveys what information I am going for.)
I expected this query to give me roughly the same information as we got for skill groups in the ContactQueueDetail, roughly 6 answered calls to various agents (or more, the 6 calls were only for 1 skill group above, and you run a few more). However, this query usually only nets me 1 or sometimes 0 calls. If I remove the destinationType = 1 qualifier in the query, then I get a more reasonable number of rows, however, my reading of the documentation is such that calls with destinationType= 2 (which the additional rows are) are calls handled by CTI ports, not calls delivered to agents. These rows with destinationType = 2 don't have an agent ID stored in the destinationID, it's blank or a zero value.
When reading about the ContactCallDetail table, it states: "The Cisco CRS system creates a new record in the ContactCallDetail table for each call or call leg processed by the system. A new call leg starts each time that a call is transferred or redirected, except when a call is transferred from a Cisco CTI port to an agent."
If anyone has an insight into this issue, I'd be glad to hear it.
Thanks so much!