Tuesday, September 27, 2011

CET Tool for UCCX

Back in the age of Windows-based CallManager (4.x and before), UCCX (a.k.a CRS) stores its configuration in CallManager DC Directory.

When CallManager moves to Linux based (CUCM 5.0 and above), it removes the concept of DC directory.  Thus UCCX has to store its configuration on UCCX server in XML files.

Cisco provides a tool called CET (Configuration Editing Tool?) to edit those configurations.  The tool is supposed to be used by Cisco TAC only.

For Windows-based UCCX (7.x and before), you may find the CET tool on UCCX server C:\program files\wfavvid\cet.bat.  Just the the cet.bat file.

For Linux-based UCCX (8.0 and above), you may find the CET installer on the UCCX installation DVD (\Installer\CetTool\CetTool.exe).  Or download from an already-installed UCCX server (case-sensitive).  You'll have to install it on a Windows workstation.

You may use CET tool to modify the configuration of UCCX, such as removing license file or reset the system back to before-initialization state (for password recovery purpose).  Please note that on Linux-based UCCX, you'll need a root credential to use CET tool.  Either get it from Cisco TAC or follow instructions here.

You may also modify the configuration without CET tool.  But it requires some reserve engineering.

For example, you want to set the UCCX 8.5 back to FRESH INSTALL state.  You may edit the XML file in /opt/cisco/uccx/ClusterData/default/com.cisco.crs.cluster.config.AppAdminSetupConfig.  Look at the blobValue.  It's encoded in ASCII.

Translate that with the ASCII table:

You'll get:

46 = F
52 = R
45 = E
53 = S
48 = H
5F = _
49 = I
4E = N
53 = S
54 = T
41 = A
4C = L
4C = L

If you want to set the value to a specific string, you'll translate the string into ASCII code and put it in blobValue.


  1. Great site wish you would continue updating it on a regular basis. Also not sure why you care what some trolls say about your motives for writing your book.

  2. Thanks for pointing out how the reset to fresh install can be achieved directly in the file system. I had a fully prepared UCCX 8.5.1 VM I couldn't log into any more after I rebuilt the CUCM cluster from a newer DRF export (all part of upgrading 6.1.2 to 8.6.2). After some hours of hopeless frelling around, I found this blog article, booted the damn thing using the latest GRML, modified the blobValue back from DONE to FRESH-INSTALL - and still couldn't log in. It took another "utils reset_application_ui_administrator_name/password" explicitly choosing a different user name than the one specified during install, though. But then, finally reached the first setup wizard, ran through it, added the intended admin users again and all is well. BTW, using this path one should be aware the byte directly before the ASCII string encodes the length of that string. So 04 is there in the DONE case, 0D is correct for FRESH-INSTALL, for other values it has to be adapted.

    BTW, do you know *why* UCCX tends to run into this auth problem so often? The end user on CUCM was there unchanged and for sure had the correct password set. Is UCCX storing that in some ephemeral way instead of verbatim?

    Thanks again, and keep up the great work!