cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
4439
Views
0
Helpful
4
Replies

Original and transferred calls

fabien.damien
Level 1
Level 1

Hi All,

In TCD what is the common field between an original inbound call and a transferred one by the agent.

Agent ID is not displayed in transferred call field.

Regards,

1 Accepted Solution

Accepted Solutions

Goran Selthofer
Level 1
Level 1

Hello my friend

I will extend your question to cradle to grave call tracking including CVP and CUCM CDR as well with the following answer (copyrighted by David Reich), but you can choose what is suitable for you...

Mapping CDR to TCD

The UCManager CDR does have a mapping to ICM Termination Call Detail record, but you need to do some conversion.

The CDR globalCallID_CallManagerID and globalCallID_CallId is combined to create the TCD PeripheralCallKey.

The globalCallID_CallManagerID is moved into the high order byte.  To shift it over the properly, multiply it by the hexadecimal value 1000000 and add it to the globalCallID_CallId.

So:

(globalCallID_CallId * 0x1000000) + globalCallID_CallId = PeripheralCallKey

These IDs are not unique because the same PeripheralCallKey and CallID are re-used in redirect, transfer and conference scenarios. 

Also, this only works with in a single cluster. So in a multiple cluster environment, you need to map Cluster CDRs to a specific PeripheralID.

Cradle to Grave Call Tracking in ICM

The RouterCallKeyDay, RouterCallKey, and RouterCallKeySequenceNumber will track a call from its first route until its final call leg.

The RouterCallKeyDay and RouterCallKey combine to provide common attribute across the calls.

The RouterCallKeySequenceNumber gives you some sense of order of when calls were created. (gselthof: so note, 'some sense' is not guaranteed order!!!)

In a multi-peripheral environment, this requires routing between peripherals. This means calls to the IVR need to be translation routed, and calls to other agent clusters need to be routed as well.

Identifying Routed Agent TCDs

You will want to filter out the TCDs created for the CVP call legs, and calls are generated for agents for internal agent to agent calls.

Use the AgentSkillTargetID to identify agent, SkillGroupSkillTagetID to identify SkillGroup, and CallTypeID to identify Call Type / program.

If all three of these values are filled in, you know you got a call that was routed to an agent. 

Sometimes more than one TCD will meet these three criteria for the same PeripheralCallKey In those cases, the one with the lowest RouterCallKeySequenceNumber will identify the first call answered by the agent.

CallDisposition

The CallDispositionFlag is the best indicator to find out if a call was handled or not. There are a bunch of CallDispositions. The CallDispositionFlag distills the results down to 7 categories.

You can find details on what the CallDispositionFlags are in the schema help or schema guide.

Cheers and Happy New Year!

Goran

TAC

View solution in original post

4 Replies 4

Goran Selthofer
Level 1
Level 1

Hello my friend

I will extend your question to cradle to grave call tracking including CVP and CUCM CDR as well with the following answer (copyrighted by David Reich), but you can choose what is suitable for you...

Mapping CDR to TCD

The UCManager CDR does have a mapping to ICM Termination Call Detail record, but you need to do some conversion.

The CDR globalCallID_CallManagerID and globalCallID_CallId is combined to create the TCD PeripheralCallKey.

The globalCallID_CallManagerID is moved into the high order byte.  To shift it over the properly, multiply it by the hexadecimal value 1000000 and add it to the globalCallID_CallId.

So:

(globalCallID_CallId * 0x1000000) + globalCallID_CallId = PeripheralCallKey

These IDs are not unique because the same PeripheralCallKey and CallID are re-used in redirect, transfer and conference scenarios. 

Also, this only works with in a single cluster. So in a multiple cluster environment, you need to map Cluster CDRs to a specific PeripheralID.

Cradle to Grave Call Tracking in ICM

The RouterCallKeyDay, RouterCallKey, and RouterCallKeySequenceNumber will track a call from its first route until its final call leg.

The RouterCallKeyDay and RouterCallKey combine to provide common attribute across the calls.

The RouterCallKeySequenceNumber gives you some sense of order of when calls were created. (gselthof: so note, 'some sense' is not guaranteed order!!!)

In a multi-peripheral environment, this requires routing between peripherals. This means calls to the IVR need to be translation routed, and calls to other agent clusters need to be routed as well.

Identifying Routed Agent TCDs

You will want to filter out the TCDs created for the CVP call legs, and calls are generated for agents for internal agent to agent calls.

Use the AgentSkillTargetID to identify agent, SkillGroupSkillTagetID to identify SkillGroup, and CallTypeID to identify Call Type / program.

If all three of these values are filled in, you know you got a call that was routed to an agent. 

Sometimes more than one TCD will meet these three criteria for the same PeripheralCallKey In those cases, the one with the lowest RouterCallKeySequenceNumber will identify the first call answered by the agent.

CallDisposition

The CallDispositionFlag is the best indicator to find out if a call was handled or not. There are a bunch of CallDispositions. The CallDispositionFlag distills the results down to 7 categories.

You can find details on what the CallDispositionFlags are in the schema help or schema guide.

Cheers and Happy New Year!

Goran

TAC

Hello My friend,

Thanks for the detailed explanation, more than enough!

Cheers!!

Hi Friend,

Is there any way you could correlate reports from ICM and IPIVR? i need to check which calls are abandoned in both.

Thanks in advance

Goran; this is great information. Can you help me understand this portion?

CallDisposition

The CallDispositionFlag is the best indicator to find out if a call was handled or not.

There are a bunch of CallDispositions. The CallDispositionFlag distills the results down to 7 categories.

You can find details on what the CallDispositionFlags are in the schema help or schema guide

If the CallDispositionFlag = 1,  this is an indication of a handled call; what if on that same call the AgentSkillTargetID is null. Is that just an indication that the call was handled but not by and agent?