UCCX 8.x RmCm Subsystem stuck in INITIALIZING

One of our customers had some problems with their UCCX 8.0 Subscriber node.
After restarting some services and eventually the entire server, RmCm subsystem would not start, it was stuck in INITIALIZING.

I looked at a couple of troubleshooting tips with no luck.


My colleague then opened a TAC case and eventually they fixed the problem.
It turned out to be some sort of replication issue.

Login to the UCCX Publisher

1. Cisco Unified CCX Serviceability – > DataStore Control Center -> Replication Servers
2. Click Disable CDS and HDS
3. Click Reset replication
4. Enable CDS and HDS



SIP traces from CUCM in TranslatorX

I was troubleshooting a Cisco TelePresence integration the other day and had to check the traces on the SIP trunk to the VCS.

Since there’s no SBC in between to debug SIP on, I had to make due with RTMT.
In RTMT there’s a function called Session Trace which is pretty good. You can also view or download the Callmanager SDI/SDL log files. However reading the logs with the built in viewer or external text editor can be tedious at best.

Fortunately Cisco has a semi-official tool called TranslatorX. I say semi because it’s not on the CCO download page and it’s not supported by TAC.
This tool can parse the SDI/SDL traces from CUCM and present them in a Wireshark trace style.


Start by setting your CUCM trace level to Detailed.

1. Serviceability -> Trace -> Configuration

2. Select CM Services and then Cisco Callmanager


3. Set Debug Trace Level to Detailed


Start RTMT as Administrator and connect to the CUCM Pub and download the log files.

4. Trace & Log Central -> Collect Files -> Select Cisco Callmanager (all servers)


Click next without selecting any System Services/Applications.


I selected Relative Range to get log files for the last 5 minutes.


5. Open TranslatorX, drag and drop the folder containing the log files from the Download Directory above.


RTMT Session Trace

Downloading the log files and running them through TranslatorX can take some time. If you want to quickly look at a SIP trace I recommend Session Trace in RTMT.

1. Callmanager -> Call Process -> Session Trace


Click on the search result to see ladder diagram.


Enable Calendar Presence per user from CLI on CUPS 8.6(4)

After the main integration between CUPS and Exchange is done, each end user must enable Calendar Presence.
In CUPC this can be done from the client, but in Jabber for Windows the user must logon to the CUPS end user page to activate it.

There is no way for an Admin to active it from the GUI, however it can be done from the CLI.

This command works for CUPS 8.6(4):

run sql execute procedure spSetUserCalendaring((select pkid from enduser where userid=’roger’),’t’,’t’)

I’ve seen this command floating around on the Internet:

run sql update enduser set enablecalendarpresence=’t’

But according to Cisco this does not work in 8.6(4) and in earlier versions it does not enable it fully.

Jabber version 9.3 will supposedly have the enable Calendar Presence function in the client.


New features in Cisco Unified Communications Manager 9.0

CUCM 9.0 is out, sporting some nice new features, here’s my top 5 list:

Number 5!
New End User Interface/Pause in Speed Dial.

Number 4!
Native Call Queueing on Hunt Groups.

Number 3!
Local and LDAP synchronized users supported simultaneously.

Number 2!
Service Parameter controls Call Forward behaviour when using Local Route Group.

And the number 1 new feature is…
When you log out from a Hunt Group calls are no longer sent to Remote Destination!!!




UCCX Holiday Script

When you create a UCCX script you have functions for time of day and day of week, but there is no function for holidays.
However you can use an XML file with dates to perform a check against current date to determine if it’s a holiday or not.

It works by first checking current date, then comparing that to the dates in the XML file. If there is no match you can just call your normal script for regular days.

If there is a match, it will check the “tag” to the right of the date, for example Holiday or Halfday. Depending on the match you can trigger another script or play a prompt or whatever you want to do.

My sample script triggers a main script if no matches found. If a match is found with tag “Halfday” it performs a time of day and then triggers the main script to route to agents.

If a match if found but it’s not the tag “Halfday” I assume it’s a holiday and just play a prompt.

Modify the dates according to your needs and save it as Holidays.xml and then upload it as a document to the UCCX.

Note that the date format is day/month/year, you can change it in both the script and the XML document.

<?xml version=”1.0″ encoding=”ISO-8859-1″?>
  <Holiday Date=”1/1/2012″>Holiday</Holiday>
  <Holiday Date=”3/1/2012″>Halfday</Holiday>
  <Holiday Date=”6/1/2012″>Holiday</Holiday>
  <Holiday Date=”5/4/2012″>Halfday</Holiday>
  <Holiday Date=”6/4/2012″>Holiday</Holiday>
  <Holiday Date=”8/4/2012″>Holiday</Holiday>
  <Holiday Date=”9/4/2012″>Holiday</Holiday>
  <Holiday Date=”30/4/2012″>Halfday</Holiday>
  <Holiday Date=”1/5/2012″>Holiday</Holiday>
  <Holiday Date=”17/5/2012″>Holiday</Holiday>
  <Holiday Date=”27/5/2012″>Holiday</Holiday>
  <Holiday Date=”6/6/2012″>Holiday</Holiday>
  <Holiday Date=”23/6/2012″>Holiday</Holiday>
  <Holiday Date=”6/4/2012″>Holiday</Holiday>
  <Holiday Date=”3/11/2012″>Halfday</Holiday>
  <Holiday Date=”25/12/2012″>Holiday</Holiday>
  <Holiday Date=”26/12/2012″>Holiday</Holiday>

Rename the file to Holiday_Check.aef