Tuesday, March 29, 2016

Using Cisco UCCX CUIC as a wallboard and CSCun28885 Tomcat inactivity timeouts

A co-worker of mine was involved in a new Cisco UCCX roll-out where the client was looking to use a CUIC report on a large LED flat screen as a wallboard solution.  After creating the report, running it via a permalink and adjusting screen resolution and Internet Explorer zooming to make the report readable, the client found the result to be satisfactory.  They unfortunately realized that because Cisco Tomcat has a maximum inactivity timeout of 14400 seconds, their new wallboard would break overnight if there was no activity in the call center and CUIC would need to be shutdown and restarted every AM.

You can find some background here:
https://bst.cloudapps.cisco.com/bugsearch/bug/CSCun28885
https://supportforums.cisco.com/discussion/12538621/uccx-cuic-dashboard-timeout
https://supportforums.cisco.com/discussion/12934891/uccx-tomcat-session-timeout-values-can-not-be-updated-cscun28885

From some email exchanges it looked like every 4 hours or AM someone would need to:
  1. Kill Internet Explorer
  2. Start Internet Explorer back up.
  3. Navigate to the CUIC dashboard permalink.
  4. Login to the CUIC dashboard.
Being pressed for time he asked for help and here's the solution, as dirty as it may be, I came up with.

Powershell script to stop IE, start IE, navigate to a web page and log in:

#====================
# Script closes instances of IE,
# opens a new visible instance,
# navigates to a URL
# and logs into CUIC
# NOTE: user name and password stored here in clear text
#
# WebMaxtor
# 03/28/2016
#====================

# Edit this $Url to be the URL or IP address of the site to launch
# This could be the CUIC logon page or a dashboard permalink
# This assumes there will be no challenge to accept certificates
# Typical CUIC logon page URL below as example
$Url = 'https://uccx01.demo-domain.com:8444/cuic/Login.htmx'
# Edit this to be the username
$Username='rmaslanka3'
# Edit this to the corresponding password
$Password='12345'

# Close IE to eliminate timed out reports
#
# option 1:
# Get-Process iexplore | Foreach-Object { $_.CloseMainWindow() }
#
# option 2:
#(New-Object -COM "Shell.Application").Windows() |
#  ? { $_.Name -like "*Internet Explorer*" } |
#  % { $_.Quit() }
#
# option 3:
Get-Process iexplore | Stop-Process

# Wait a few seconds to be safe for processes stop if need be
while ($IE.Busy -eq $true)
{
Start-Sleep -Milliseconds 2000;
}

# Start a visible Internet Explorer instance
$IE = New-Object -com internetexplorer.application;
$IE.visible = $true;
$IE.navigate($url);

# Wait a few seconds and then log on
while ($IE.Busy -eq $true)
{
Start-Sleep -Milliseconds 2000;
}

# fill in the form and click submit button
$IE.Document.getElementById('j_username').value = $Username
$IE.Document.getElementByID('j_password').value=$Password
$IE.Document.getElementById('cuesLoginSubmitButton').Click()


Windows Batch file to make running powershell script easier:

@ECHO OFF
PowerShell.exe -NoProfile -Command "& {Start-Process PowerShell.exe -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dpn0.ps1""' -Verb RunAs}"


The beauty of the batch file is if the powershell script and the batch file are named the same except for the file extension (i.e. MyFile.bat and MyFile.ps1) and reside in the same folder, you can just click the BAT file and you are off and running.

There are multiple methods to close IE via powershell and I can't be sure what will work best in your environment so be sure to test the three options or come up with your own.

The final step was then calling the BAT file from Window's Scheduled Tasks on a regular basis to ensure the report was not effected by the Tomcat inactivity timer.


Monday, March 14, 2016

VMware Workstation bridged network ping guest host

For years I've run Cisco UC servers on my laptop via VMware Player or VMware Workstation for testing interesting scenarios outside of production.  My latest laptop sports an Intel i5 with 8 GBs of RAM which is more than enough horsepower to run at least a couple small OVA servers in VMware Workstation 11.

The last time I tried to boot up a CUCM 10.5 server I was surprised to find I couldn't even ping between the host and guest.  The networking was set up pretty simply, used the default bridged VMware adapter and I was certain I used this server before.

The fix was ultimately to disable the DNE LightWeight Filter on the physical adapter on my laptop.  It seems to have been installed recently when I was forced to use Citrix to connect to a clients network remotely.

Below is a screenshot of the ping failures, the DNE Lightweight Filter correctly unchecked.  You hit OK at this point, the adapter resets and you might be in business again.



Good luck. Hope this helps.

Tuesday, February 23, 2016

Cisco Unity Connection and Office 365 Unified Messaging Integration

Helped a cohort out troubleshooting a new Unity Connection 11 and Office 365 Unified Messaging integration today.  A couple quick notes to help you out:
  • It's recommended to use Search for Hosted Exchange Servers.   
  • The Active Directory DNS Domain Name has been outlook .office365.com at the last few sites I've dealt with or deployed.
  • The username to access Exchange must be in the username@domain.com format.
  • As usual, Unity Connection errors can be misleading.  Here we were being returned a "Searching the network Failed to locate a Domain Controller via DNS." error.  Despite looking to be a network access or name resolution problem, it's actually a symptom of a bad password on the Exchange access account. 
Good job, Cisco.


Friday, January 29, 2016

Cisco CUCME CLI commands

I don't run into Cisco CUCME systems much anymore and to complicate things the newer model SIP phones aren't accessible through the usual admin GUI.  Notes to self...

To show registered phones:
For SCCP phones use: show ephone registered
For SIP phones use: show voice register statistics

To show the status of phones:
For SCCP phones use: show ephone
For SIP phones use: show voice register all

To create phone config files:
For SCCP phones use: telephony-service | create cnf-files
For SIP phones use:  voice register global | create profile

To show created config files:
For SCCP phones use: show telephony-service tftp-bindings
For SIP phones use: show voice register tftp-bind

Saturday, December 19, 2015

UCCX 10.6 Notes

Miscellaneous UCCX v10.6 notes: 

==========

Calling Search Space for Redirect on your triggers by default is set to Default.  This means that UCCX will route calls through the application and script called by the trigger with the caller's CSS, not the trigger's CSS.  If your caller is not capable of reaching the agents or other destinations defined in the application and script directly your call will be rejected.  This is typically not an issue but where you might have PLARs set up with very restricted CSSs, sending the PLAR to a UCCX trigger may fail.  This can be modified per trigger on at least UCCX 8.5 and beyond.  See bug CSCso91760 at  https://bst.cloudapps.cisco.com/bugsearch/bug/ 20CSCso91760 for more redirect information.  See http://webmaxtor.blogspot.com/2011/05/cucm-ring-down-phone.html regarding basic SCCP PLAR setup.

==========

Finesse log in usernames are still case sensitive at this time. If MS AD says your username is jAnE123, you need to log into Finesse as jAnE123.


==========

To enable support for the Finesse browser based client:
at CLI, run utils uccx finesse activate 
This needs to be run on both master and secondary HA nodes and both servers need to be rebooted

==========

To verify Finesse master node and health:
https://<IP of Master node>:8445/finesse/api/SystemInfo 

==========

To access Finesse client:
https://<IP of Master node>:8445/desktop/ 

==========

The default Finesse agent client on UCCX 10.6 includes an Agent CSQ Statistics Report and an Agent Team Summary Report.  If an agent is assigned to a team (could even be the default team) and there is no CSQ associated with the team, the user will see "Error processing report. Refresh page or contact administrator."  Add CSQs to your teams.  Here's a before and after screenshot:

Broken link to Agent CSQ Statistics Report:
Default Finesse agent page with working Agent CSQ Statistics Report
==========

The default Finesse agent client on UCCX 10.6 includes an Agent CSQ Statistics Report. Your resources / agents must on a team that is assigned a CSQ to see the CSQ statistics. An agent may have a skill that allows them to take a call for a CSQ but they may still not be able to see the CSQ statistics in the Agent CSQ Statistics Report. If an agent has a skill that allows them to take a call for a CSQ, but they are on a team that is not assigned that skill, the user will see "Error processing report.. Refresh page or contact administrator." Again, add CSQs to your teams.

==========
VOIP Monitor Subsystem in PARTIAL SERVICE
A search of Cisco documentation will point you here: http://docwiki.cisco.com/wiki/VOIP_Monitor_Subsystem_is_in_partial_service_or_OOS but the issue in my case was a bit more devious.  After removing a HA UCCX server from the cluster (long story...) the second server remained an option as a VoIP Monitor Service and Recording and Playback Service.

From UCCX Desktop Administrator you can choose "Remove VoIP/Recording and Playback" link, select the associated server and hit Remove.  I found at that point I still needed to restart the UCCX Engine to return it to FULL SERVICE.

==========

Cisco Tomcat has a maximum inactivity timeout ouf 14400 seconds.  If you are intending on using CUIC as a wallboard, note you will be required to restart the CUIC instance if there is no activity in your call center for 4 hours (i.e. overnight, closed hours, etc.).

You can find some background here:
https://bst.cloudapps.cisco.com/bugsearch/bug/CSCun28885
https://supportforums.cisco.com/discussion/12538621/uccx-cuic-dashboard-timeout
https://supportforums.cisco.com/discussion/12934891/uccx-tomcat-session-timeout-values-can-not-be-updated-cscun28885

You can find my dirty workaround here:
http://webmaxtor.blogspot.com/2016/03/using-cisco-uccx-cuic-as-wallboard-and.html

==========
If you are creating custom desktop layouts for teams in Finesse and your administrator account is also assigned to that team, that account will be locked out of the Finesse administrator.  Make sure you have an administrator account that is not assigned to a team before customizing Finesse layouts.

See bug CSCur71176.

It looks like this when you hit it:

Creepy!

==========

Finesse sample gadgets for older versions can be found at https://developer.cisco.com/site/finesse/archive/.  There are changes in both the XML and javascript unique to each version.  A nice write up on the same can be found here: https://communities.cisco.com/community/developer/finesse/blog/2016/03/16/how-to-convert-your-existing-1051-custom-gadget-to-work-with-1061-or-1101

==========

The initial Finesse gadget heights can be set using
==========

The tab name in the WorkFlowScreenPop sample gadget is defined by the Window Name in the Workflow action found in Finesse administration.  You won't find it as-is in the gadget code.

 ==========