Thursday, April 20, 2017

Cisco Unity Connection InitMMAppletInstance failed to get instance Failed to record name Unable to save recording due to SSL Certificate error

Using the Java based Media Master control in Unity Connection to record or upload greetings has historically been a disaster.  To complicate the issue, browser vendors are now dropping support for the Java plugin entirely.  What this means is if you are still supporting an older version of Unity Connection, what used to be a completely unreliable method to manage greetings is now impossible from an up to date PC / browser.

As a work around,  you can still get your hands on old versions of Firefox that will support old versions of the Java plugin.

I would suggest using an Extended Support Release rather than experimenting with older, possibly buggy, possibly insecure versions.  The Mozilla Firefox 52 32-bit ESR / Extended Support Release as of today April 20, 2017 continues to support NPAPI based plugins (i.e. Java). You can download that version here:

Remove any version of Firefox you have and install this version.

The Exception Site List feature of the Java plugin was introduced in Java 7 Update 51. You'll need that feature to get the Media Master to work but you need to stay away from updated Java plugins.

You can download the Windows x86 Offline Java installer for Java 7 Update 51 here:  (you'll need to create an account).  If you don't trust me to access the EXE directly, the official Java archive page is here:  You can start there and find it yourself. 

- - Un-install all your other versions of Java and install this one.
- - Go to Control Panel | Java 32-bit | Security and set your security level to medium.
- - Go to Control Panel | Java 32-bit | Security | Exception Site List and add you Unity Connection Publisher and Subscriber.  Use the format https://:8443 and https://:443

You should now be able to run the Unity Connection Media Master (at least back to version 8.6) in Firefox, play, upload and save greetings.  You may still be prompted a handful of times to allow Java to run, and possibly have to save the greeting multiple times in Unity Connection after SSL pop-ups, but it works.

Trust me.  I did it yesterday. 

Don't forget to delete this version of Java and Firefox before your IT security team freaks out.

Wednesday, April 19, 2017

Bill O'Reilly hits a bug upgrading UCCX and needs to adjust his implementation plan

Thursday, March 09, 2017

Cisco UCCX upgrade - An error has occured but no messages are available. This can happen when another administrator is working on the system at the same time and triggers an error.

While recently working on upgrading a client from CUCM, IMP, CUC and UCCX version 9 to 11.5.X (and we'll throw Expressway in there too) I ran into a snag while upgrading UCCX.

I was diligent with preparation and found their / SU1 version did not support a direct upgrade to 11.5.1.  My plan was then to get them to / SU3 first and then to 11.5.1, a supported upgrade path.

To get to  SU3 I had Prime Collaboration Deployment install it's own ciscocm.ucmap_platformconfig.cop file during discovery, install the ciscouccx.refresh_upgrade_v1.11.cop to get it out of the way, and then turned it loose on upgrading to SU3.  That went fine although the jury is till out on what efficiency gains I made using PCD.

Shortly after triggering the upgrade to 11.5.1 I was greeted with a "Task paused due to task action failures." email from PCD.   Downloading and digging through the install logs returned nothing very obvious.  

I showed the current version to confirm I had some SU3 success and all looked good.

admin:show version active
Active Master Version:
Active Version Installed Software Options:

A manual upgrade attempt made a symptom perfectly clear though.

admin:utils system upgrade initiate

Warning: Do not close this window without first canceling the upgrade.

An error has occured but no messages are available.  This can happen when another administrator is working on the system at the same time and triggers an error.

There was no other administrator with access to the system.  In the event PCD was being considered an administrator I cancelled and deleted the associated task there.  Another manual run attempt resulted in the same An error has occured but no messages are available. message though.

Google matches consistently referred to a missing refressh cop file.  All documentation indicated my ciscouccx.refresh_upgrade_v1.11.cop was appropriate, PCD indicated it completed the task for me and I could see it in the active partition myself.

Ultimately the fix was to manually install the ciscouccx.refresh_upgrade_v1.11.cop again.

Possible problem scenarios are:
  1. the cop file first install used a fragged version or blew up the version of the cop file on the PCD server
  2. PCD shouldn't have been used to simply install the cop file
  3. the fact the cop file was installed before the upgrade to 9.0.2 SU3 rather than 11.5 invalidated its usefulness
  4. stuff happen  
It seems the consensus is correct that the error points to some missing refresh upgrade preparation, but thought my "Trust me... just try it again" theory might help someone shave an hour or two off you upgrade weekend.

Good luck.

Saturday, February 04, 2017

UCCX Finesse and Spark Team Announcement gadget as a CAD CSD team messages and chat replacement

While upgrading clients to UCCX 11 and 11.5, and away from CAD and CSD to Finesse, one feature often found lacking is the old team messaging and chat features available via CAD.

After experimenting with Cisco's Spark Care Assistant bot at I thought it might be a good option to use as a replacement.  My plan was to possibly incorporate this bot or one similar into Finesse as a gadget to replace the missing CAD/CSD feature and allow broadcast messages from supervisors to agents.  It would also give me the opportunity to dig a little into Spark's and Finesse's feature set and the related javascript and css design that would hold it together.

Then I found I would be reinventing the wheel, as Cisco already published a Spark Team Announcements Gadget here some time ago:  That took some fun out of the project for me but at least Cisco seems to be addressing Finesse native shortcomings in some fashion.

Get the gadget:

You can get the Spark Team Announcements Sample Gadget code here: Make note that the gadgets are version specific.  I've used a few of Cisco's gadgets on UCCX version 10.6 before they were moved to github and getting new gadgets to work on older versions had some challenges for awhile.  I suppose they will be another thing that needs to be considered carefully during upgrade processes.  There is a nice post regarding version differences here that may be helpful at least for awhile.

Install the gadget:

Even if you are using UCCX with Finesse running co-resident you still have the ability to install gadgets directly on your UCCX server to be referenced by Finesse.  There is a 3rdpartygadget account in UCCX / Finesse that can be used to upload gadgets.

You'll need to reset the account password to something you know by SSH'ing to the UCCX CLI and running utils reset_3rdpartygadget_password.

Once you have that, you can transfer files to and from UCCX's / Finesse's gadget folder http:///3rdpartygadget/files/ via SFTP.  To make life easy, I might suggest using WinSCP here or a similar tool to provide a graphical interface during the process. Here what that looks like if you haven't used it:

Implement notes:

The gadget code from github includes a great PDF describing the implementation steps.  I did get tripped up a couple time though.

You'll need to go to and create a new integration.

My first hurdle was simply having an icon available to visually identify my new "App".  It seems you are required to host a 512x512 pixel icon somewhere publicly to be used visually and you cannot proceed through the integration creation without it.  If you don't have a public web server somewhere, you might investigate a free version like  I had mixed results using links from file sharing sites and while the URL is rather convoluted, the image sitting on my Google sites page seems to work well for some reason.  Ultimately I came up with this one one:
FQDN vs IP ?:

When setting up the integration, I would suggest using the FQDN of your UCCX / Finesse server. I had issues attempting to use the IP address of the server for some reason.  Your results may vary. 

My working Redirect URI looks like:

This did not work for me for some reason:

This needs to be accessible by your Finesse users, not just Finesse via a relative link you may have used elsewhere. You can verify you have the URL correct by just accessing it trough your browser and should expect to be returned this:

Editing your integration:

If you need to change your integration's Redirect URI at note the OAuth Authorization URL will be changed as well.  Changing this:

changes this as well:

So...  when you change your Redirect URI on Cisco's site, you will need to update your oauth.html with the new Redirect URI, AND ALSO your SparkTeamAnnouncements.js with the new OAuth Authorization URL.

User experience:

When it is all done and working a Finesse user should expect a new page or tab to pop after entering their normal Finesse credentials.  This will prompt them to log into Spark.  Note, you CAN log into Spark with an account different than your Finesse domain.  You'll also be challenged to allow the new integration access to some Spark features.

Oh look... my icon is missing
If that is successful, the new tab will close and you'll have access to Spark wherever you placed it in Finesse.


Sunday, October 30, 2016

UCCX CUIC Not Ready Custom Reason Codes

While migrating a client to UCCX 11.5 found them needing to use and report on custom reason codes.  UCCX and CUIC do not have this capability available by default, but with some customization it can be done.

Here's an official bug CSCue26150 indicating Cisco is only considering this a documentation defect as they seem to think this functionality is acceptable by design.
UCCX: Not Ready Reason Code Report Does Not Display Custom Reason Codes

Here's a decent write up by a Cisco representative who apparently fields daily calls on why this is so painful but isn't 11.5 specific and lacks some detail for the newbies. 

Here's my version / what I suggest:

Create a custom version of your report
  • Click the ellipses to the right of the report name and choose Save As
  • Choose a new descriptive report name and location.  For example I have "Agent Not Ready Reason Code Summary Report 1" in a "Custom" folder.

Run the new copy of the report while filtering by your custom reason codes.
  • Here I know a custom code 108 equates to "Admin Duties" and 111 equates to "Done for the Day". We'll filter on those.  You can have a maximum of 8 codes displayed separately but the sum of the ninth through whatever will be displayed in a single column.  You may have to run multiple reports to display your data.
  • I will also select the "Save the chosen filter as default" check box to make filtering easier easier in the future.
  • Then run the report.

Verify the data column order
  • The columns will not have headers that reflect the descriptions of your custom ready codes.  The headers will still be the default names displayed if you did not filter at all (i.e. RC 32,751 or RC 32,752, etc.).
  • Use the SQL output or "View Filter Information" to verify what order your codes were retrieved in.   Here we see we retrieved 108 first and 111 second.  This should correspond to the order you entered them in your filter list.

Rename your column headers to make report readable
  • Choose "Edit View" from drop down.
  • Scroll to the column from the Selected list that you want to rename and click the edit pencil icon.
  • Change the Display Name to something meaningful.  Here I will use 108 Admin Duties and 111 Done for the Day.  Click Done.
  • To further tailor your report, you can remove unused columns from this same Selected List by selecting them and using the left button.