cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
7387
Views
75
Helpful
18
Replies

Cisco UCCX 12.0.1 Caller ID

shacharalon7
Beginner
Beginner

Hi Guys,

 

I have 2 questions regarding UCCX 12.0.1:

 

1. Is there a way to display the Original Calling Number (ANI) on the IP Phone/Jabber, without using the annoying utils uccx icd      clid enable in version UCCX 12.0.1

 

2. Is there a way to display the Caller ID (Name) of the caller if they call from the CUCM cluster (Internally) on the IP Phone/Jabber ?

 

Thanks,

 

Shachar

2 Accepted Solutions

Accepted Solutions

James Hawkins
Collaborator
Collaborator

1. You can use the Get Call Contact step to read the Original Called Number and map it through to Finesse using the Set Enterprise Call Variable step.

 

2. You could use the Make REST Call step to query UDS for the user details using Calling Number and map the resulting name through as a Enterprise variable to Finesse.

 

https://developer.cisco.com/docs/user-data-services-api-reference/#!user-data-services-uds-developer-guide

View solution in original post

I have been using the below java code in my uccx script to capture the calling party name. This captures internal and external names, as long as telco is passing them). So whatever CNAME would show on the phone is set as an variable.

set CallingPartyDisplay = { java.lang.reflect.Field ciscoCallField = contact.getClass().getDeclaredField("ciscoCall"); ciscoCallField.setAccessible(true); com.cisco.jtapi.extensions.CiscoCall ciscoCall = (com.cisco.jtapi.extensions.CiscoCall)ciscoCallField.get(contact); return ciscoCall.getCurrentCallingPartyDisplayName(); }

View solution in original post

18 Replies 18

James Hawkins
Collaborator
Collaborator

1. You can use the Get Call Contact step to read the Original Called Number and map it through to Finesse using the Set Enterprise Call Variable step.

 

2. You could use the Make REST Call step to query UDS for the user details using Calling Number and map the resulting name through as a Enterprise variable to Finesse.

 

https://developer.cisco.com/docs/user-data-services-api-reference/#!user-data-services-uds-developer-guide

I have been using the below java code in my uccx script to capture the calling party name. This captures internal and external names, as long as telco is passing them). So whatever CNAME would show on the phone is set as an variable.

set CallingPartyDisplay = { java.lang.reflect.Field ciscoCallField = contact.getClass().getDeclaredField("ciscoCall"); ciscoCallField.setAccessible(true); com.cisco.jtapi.extensions.CiscoCall ciscoCall = (com.cisco.jtapi.extensions.CiscoCall)ciscoCallField.get(contact); return ciscoCall.getCurrentCallingPartyDisplayName(); }

Mike, that looks really useful but I cannot get your java code to work.

It fails with a message not a static method: getClass; nested exception is: java.lang.NullPointerException

Do I need any variables defined in the script other than a string for the result data?

The CCX editor would not save the Set step until I created a variable called contact - I have set the variable type for this to String and Contact but get an error in both cases.

 

 

Capture.PNG

It looks like you'll need a variable named contact of Type Contact which stores the Triggering Contact in it before you execute this code.

Yep, missed that.  contact.getClass()  in the java is a uccx variable, and would need to be declared after Accept step.

 

contact = Get Trigger Info (Contact)

The attached script uses Mike's code to read the CNAME into a string variable.

How do i use this script in a production script to display the caller ID in an agent's cisco finesse page. 

 

When i apply this script to an application and dial the trigger over PSTN i hear the number from which i called and if i use the main line number of my company i hear the company name. 

 

How to bring the caller ID to Cisco Finesse page ?

This looks pretty cool! Thanks for sharing this info. Now I'm going to have to spend the rest of the day playing around with this.

What about if the original caller was first answered by one agent, and that agent then transferred the caller to another trigger? Would the Get Call Contact Info show the calling number as the agent who is transferring the call and dialed the trigger, or would it show the original calling party's number who is the actual customer?

In my experience, it depends on the timing of when the Get Contact Info step is pulled and when the data is updated via call control. You may have a race condition on your hands, and delaying a little post Accept step could help this.

Always glad to see my handiwork out in the wild :)

Dude, this was you? Thank you! Can you please show us some other tips with this? So cool!

Yeah, if I remember correctly, someone asked about getting this information at a UCCX Tech Summit so I whipped that up real quick. Beyond this, probably the most interesting thing I’ve written using it was a script for automatically logging in agents via extension mobility (whole call center hot desked, so each device when logged out would PLAR to my app, agent enters numerical ID and PIN, device is logged in; call again to log out). I’ve also done automatic call answering (answer the agent device) for specific calls, I think someone on the list got that one. Your imagination and willingness to break things are the limit :)

Fantastic!

 

This seems to be just what I need. But since we're running CCX Standard, I'm faced with this error:

"Java extensions are not licensed to support expression blocks (line: 1, col: 1); nested exception is:

com.cisco.expression.ExpressionLicenseViolationException: Java extensions are not licensed to support expression blocks (line: 1, col: 1)"

2020-10-13 15_00_06-Remote Desktop Manager [ITTS].png

Are there any ways to circumvent this, or alter/rewrite the code snippet to support CCX Standard?

 

Thanks in advance!

Morten Gade Sørensen

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: