UCCE 11.5 Call Ender Query

Unanswered Question
Feb 16th, 2017
User Badges:

I'm interested to design a query to know who ended the call with the customer service agent. Was it the agent or the caller (I mean who closed the line to release the call).

I'm looking for a query that would return one record for every call containing caller ANI, agent info, call time, and last but not least, "Call Ender" (this should display "agent" or "caller" to indicate which of them released the call.

Any ideas would be much appreciated.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)

I have had to build CUIC reports for this before. Not an easy query to write because you have to deal with the Termination_Call_Detail table. And you must be aware of the rules regarding querying this table - see page 525 of the Schema Guide.

"This table can become very large. Running custom reporting queries against it while it is on the HDS can degrade performance. To optimize performance, extract the data from the HDS into your own custom database"

There are multiple rows for each RouterCallKey with a different RouterCallKeySequenceNumber, so you have to find the correct row that represents the leg to the agent. But it's possible. When you have it, then CallDisposition is what you need to check. Look at the Schema Guide on page 630.

A CallDisposition value of 52 = Called Party Disconnected. With CVP as the Routing Client, 52 means the agent dropped.


Albert.Georgy7 Tue, 02/21/2017 - 01:35
User Badges:

Thank you Geoff for your reply

Yes I understand that i should not run queries directly on Termination_Call_Detail from HDS database. I will create a scheduled job to copy its records to an external database over which i will run the query.

I have created five test calls to call center and ended the call as below:

1. Once I was directed to the queue

2. While waiting on queue

3. While agent phone is ringing

4. While talking to agent

5. While talking to agent I asked him to release the call from his side.

I have attached for the corresponding records from Termination_Call_Details to the above test.

Here is my observations over which I will build my query please review them and correct me if I'm wrong:

1. The record that represent the leg to the agent has PeripheralCallType 42. Which according to the schema handbook (42 = Switch Leg for VRU Peripheral call.)

2. After filtering for PeripheralCallType 42, all records that were closed from my side (customer) has Call Disposition value 13.

3. After filtering for PeripheralCallType 42, all records that were abandoned before talking to the agent has DelayTime = TimeToAband

Therefore, my query should filter for both 'PeripheralCallType = 42' and 'DelayTime != TimeToAband'. Then from the result , those records that have "Call Disposition = 52' are closed at the Agent side and the other records that have 'Call Disposition = 13' are closed at caller side.



This Discussion