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.

Wednesday, October 12, 2016

Download and save Instagram photos without an app

Download and save Instagram photos without an app

On a Windows 7 desktop using Google Chrome circa version 53:

  1. Find the photo on Instagram
  2. Right click the photo and choose "Inspect"
  3. On the developer tools menu, choose "Application"
  4. In the left pane, scroll down to "Images"
  5. Scroll down through images (displayed in right pane) until you find the one you are looking for.
  6. Right click image in right pane and choose "Save"
  7. Enter an appropriate name and file location and choose "Save"
Stalking my daughter for my wife with Chrome

 On a Windows 7 desktop using Mozilla Firefox (circa version 49):

  1. Find the photo on Instagram
  2. Right click the photo and choose "View Page Info"
  3. In pop-up window, choose Media icon.
  4. In top Address list, scroll down through images (displayed in bottom Media Preview frame) until you find the one you are looking for.
  5. Click "Save As" button.
  6. Enter an appropriate name and file location and choose "Save"

Stalking my daughter for my wife with Firefox

Saturday, September 10, 2016

NetApp cable diagram when adding DS2246 disk shelves

I had a chance to help a cohort add storage to a couple NetApp deployments.  I basically had to cable the devices so he could provision them remotely later. 

They had two FAS2220 systems with double controllers (Multipath HA) in production and I had to attach the new DS2246 disk shelves.

NetApp publishes a quickstart guide that has nice cable drawings in them but none specifically with this (a single external storage shelf) as the end result.  In addition, the new shelves were racked above the original systems so the drawings were evening a bit more difficult to follow  by a NetApp noob.

Below is the production system, the racked external storage above it, and the ultimate path for the SAS and ACP cables.  Worked like a champ.

Hope it helps calm someone's storage nerves.

Monday, August 01, 2016

UCCX CUIC Exported Reports Blank in Excel

After deploying UCCX 11.0 and working on setting thresholds in some live reports in CUIC I found that reports exported to Excel couldn't be opened.  When attempting to open the XLS file, Excel itself would open but not the report.  Excel would sit open, idle, returning no dialog box or even a blank default workbook.  It would simply be an idle instance of Excel displaying no information.

Bug CSCux50551 indicates there is a known issue with exporting the Abandoned Call Detail Activity Report but my issue was the same regardless of what report was exported.

I also found that the exported report could be opened in a text editor and that some data could be gleaned between markup tags.  If I opened the exported report in a browser, it could be viewed in a rather crude format.

Ultimately I discovered a security feature of either my laptop's Windows implementation or my Excel installation was preventing the file from being accessed on my laptop.  Unfortunately there was no dialog box indicating that was the case so it took a bit to decipher.

Right-click your exported report XLS file to view the properties.  Look for a Security reference.  The description on mine was "This file came from another computer and might be blocked to help protect the computer."  Simply hitting the Unblock button and Apply fixed my glitch.

Here's a screen shot of my blank Excel instance and the file property page:

For reference, I'm using Office Professional Plus 2010 on Windows 7 Professional on a domain different that the UCCX servers.