Integrating Cisco UCCX 10 with Open Source MRCP for TTS and ASR

August 25th, 2014

So what is MRCP and why do we care?

MRCP is the protocol that UCCX uses to interface with TTS and ASR engines. Typically, this is a IBM Websphere Voice, Nuance Vocalizer, or Scansoft Realspeak server. However, the MRCP protocol is an open standard. It is possible to integrate UCCX with other MRCP compliant servers. UCCX supports both version 1 and version 2 or MRCP.



So why all of this? Well.. simple… For one, I have always wanted a TTS/ASR  setup in my lab to work on some more advanced UCCX scripting techniques. But… more importantly…  I really just wanted  a way to quickly insert and edit prompts without having to manually record each one as I made changes to my script logic. Also, recording prompts to do testing with really breaks my thought workflow while I’m focusing on writing and debugging script call flows. A time limited demo of one of the commercial products really doesn’t appeal to me either so I started looking at other unlimited/open-source options. After a little bit of digging I discovered UNIMRCP and was able to cobble together a basic TTS and ASR server that works well with UCCX. Read the rest of this entry »

Speeding Up VMWare vSphere Web Client

August 5th, 2014

Found a simple little hack that speeds up vSphere Web Client. This involves adjusting the maximum allowed local storage that flash can use. By default this is a measly 100kb. YMMV.

  • Open the browser you access the web client from
  • Go here (…)
  • Click either global storage settings (for all sites) or website storage settings (for specific site)  and change from 100k to 10MB or unlimited
  • Open/reopen/refresh the vSphere Web Client page


Cisco Live 2014, DevOps, and evolving the UC Engineer…

June 8th, 2014

Cisco Live 2014 came and went. This year marked the 25th anniversary for the Cisco sponsored conference. I was fortunate enough to be able to attend again this year. As always, I left highly motivated and invigorated for another great year of working for a Cisco partner. That alone was worth the ticket price in my opinion… but there was so much more too. There was the social networking, the amazing sessions, the Cisco sponsored appreciation events. Highlights this year was Lenny Kravitz and Imagine Dragons which gave us all a private show at the Giants Stadium (AT&T Park). All that… plus beanbag chairs everywhere… and of course all the new technology to see and play with. Thank you Cisco!

Cisco Customer Appreciation Event Lenny Kravitz and Imagine Dragons The traveling band...

Box seat view for VIPs ;)  Cisco Bean bag chairs for lounging... White DX650

One of the biggest highlights for me this year was the focus on DevOps. This is becoming a very big buzz word. It really doesn’t describe anything new (basicly development combined operations), but I like that the industry has coined something for this. It really shows an awesome movement toward development skills being applicable for more than just purely dedicated programmers. Anyone in the industry knows that this is not completely new… Sys and Network Admins have been using custom programming to build their own automation and management utilities for a very long time. The difference is that many hardware/software manufacturers are API enabling their products for an easier method of integrating custom applications into these platforms. Cisco is no different and is one of the leaders in this movement (and I’m Cisco biased so I am going to focus on them). Cisco’s Unified Computing platform and Datacenter technologies have been at the center of this in most of what is published out there. However, there are also many other initiatives that Cisco is participating in heavily. Things such as SDN and OpenStack. These are all technologies designed to provide greater flexibility and give the enterprise more control and integration possibilities.

A very neat demo Cisco had in the DevNet zone was this little model train setup that would interact with your phone and was very easy to program using a handful of sensors and actuators. This all ran atop a Cisco platform to show the flexibility of what they can provide.

DevOps demo... DevOps demo...

So how does all this fit into the world a UC focused engineer such as myself?

Good question.. I’m glad you asked… Read the rest of this entry »

Unrestricted to Restricted Migration

October 19th, 2013

Just had the “pleasure” of doing a migration of a CUCM and CuC cluster from the unrestricted version (no encryption) to the restricted (encryption enable and restricted for export) version this weekend. It was a very manual and tedious process. A few tips if doing this yourself. This was done with CUCM and CUC 8.6.

Read the rest of this entry »

Creating Bootable Cisco ISO Images

December 26th, 2012

Thanks to this writeup for a cool method of getting Cisco full install bootable ISOs from non-bootable updates. I’ve used this many a time to get servers up in my LAB when I haven’t had access to bootable ISOs yet. Below are the boot files extracted from various bootable versions of CUCM disks. It seems that only 2-4 bytes at 0xC are different. The rest of the file is identical between versions.  While putting all of this together, the hacker in me wanted to dive into what those specific bytes refer to so I got distracted for about 4 hrs while I read the ISO 9660 and El Torito specs. (No, I didn’t get far enough to figure it out… maybe another time when the ADD kicks in again. But anyway…) Here are some the bootfiles for disks I had laying around.

**This would  not be supported by TAC. Use only in LAB environments.

UPDATE 12/28/2012:

I played around a little more with this today. The bootfile extracted by UltraISO in the steps above is actually part of syslinux (specifically isolinux). This is the standard tool used to make a Linux bootable cd/dvds. The extracted file above is simply the isolinux.bin file that is used by isolinux when creating a bootable disk (inserted at sector 17). It follows the El Torito specs (part of iso9660) that isolinux uses for a non-emulated boot of a cd/dvd.

Here’s the cool thing… every Cisco ISO has a copy of the bootfile that was used to generate the El Torito boot image for the bootable version of the disk … Simply mount the non bootable ISO, grab the isolinux/isolinux.bin file and then continue to use the steps for UltraISO to add the file to make the image bootable.


This way you don’t even need to find a working bootable ISO to steal the bootfile from or someone to post bootfiles from different versions. I went through 4 different major CUCM iso releases and compared the extracted bootfile with the isolinux/isolinux.bin file. Minus some padding at the end of the file, isolinux.bin on the disk is identical to the extracted bootfile from a bootable version.

On a side note… I’m working on a perl script to do everything UltraISO does but in mac. I hate being dependent on windows apps.

Further Reading: