Cisco Support Community

UCCX 9.0(2) with Nuance TTS - Realspeak

Use Case: We have an outbound agent less IVR campaign, upon positive voice detection, IVR need to play a combination of recorded prompt and a dynamic content like name of the customer using Nuance TTS - RealSpeak.

At present, when TTS Server becomes unavailable, we are handling the exception and playing a technical difficulty message to the caller. But from the caller perspective, this is little awkward as they starts to listen the half of the recorded prompt and then directly plays the technical difficulty message. Can we play back the entire concatenated prompt *if and only if* TTS server and service is available?

Is this possible to achieve?




UCCX 9.0(2) with Nuance TTS - Realspeak


I am thinking of sort of defining what TTS server availability means. Is the server IP accessible? We certainly must check that. Is the MRCP server available? Yes, certainly, we must check that. What else do you have on your mind, can you please describe this in your own words?


UCCX 9.0(2) with Nuance TTS - Realspeak

TTS Server availability - The TTS Server couldn't be accesible - There can be various reasons like network going down between UCCX and TTS, TTS Service got stopped manually or automatically, TTS Service in UCCX going down or stopped

UCCX 9.0(2) with Nuance TTS - Realspeak

I'm curious about the Message you currently Play which you call Awkward. What Exception is being Thrown when this Message gets Played. I briefly attempted to see what Exception would be thrown when the TTS Server was inaccessible in order to define how I would Catch it and do certain things (I didn't have much success).  I can try to explore "all" the Exceptions that could get Thrown, but actually being able to test something like All TTS Licensed Ports in Use Exception (if that is one) and catching these could become expensive to maintain code? Since this is your question, Can you Provide some of the Exceptions you've Experienced from your MIVR Logs?

Community Member

UCCX 9.0(2) with Nuance TTS - Realspeak

In Outbound IVR-Once received the positive voice response, IVR announce “Hello  < Customer Name>”. Here Customer Name is announced using TTS.

In case of TTS Server down/Service stopped, IVR catches ”UnsupportedTTSPromptException” exception thrown by UCCX and IVR plays Technical Difficulty message to caller followed by Agent Transfer. The caller experience would be (incase of TTS Exception) hearing "Hello....". This behaviour would be little Awkward. Is there is any way to check “TTS Supported” before playing the phrase.

UCCX 9.0(2) with Nuance TTS - Realspeak

You can use the On Exception Steps in the General Folder of the Palette Pane. Scroll down until you see: and in theory if the Script encounters an error you can use this Step to go to the Alternative Play Prompt Step...

I've not been able to simulate Catching Exceptions on TTS..which is kind of frustrating me to no end..What I mean by this..when I "turn off" TTS for any reason I'm still unable to catch the appropriate Exception and the latest "Exception" I've encountered (which isn't in fact an Exception? is the pasted image below).


Re: UCCX 9.0(2) with Nuance TTS - Realspeak

Exceptions with TTS suck because they don't work the way I I think my approach to the problem might have been wrong.

Disclaimer for the Solution I'm offerring: I don't know how to check for the Service on the CCX Server explanation to this would be..if you have an issue with the service on CCX..then you probably have bigger issues at hand..because that TTS is part of the CCX Engine.

Let's get to the solution; What we're going to use here is a SOCKET connection. I'll break down the code..and then leave a very small script you could possibly "paste" into your current application:

Set bServAvail = {

     //IP Address or Hostname of the MRCP/TTS Server

     String server = "";

     //Port Used to Establish The Connection

     //In this Case the RTSP Used to Communicate with the MRCP Server

     //This port can be different so you'll want to Find Your Own

     int port = 4900;

     //Timeout in miliseconds

     int timeout = 3000;

     //Create InetSocketAddress Obj. with the Specified Host/IP and Port Used sockAdrs = new, port);

     //Create a Socket Obj. we'll use to try to Connect to the Server sock = new;

     //Exception Handling for the first method being Called

     //The connect(stuff,more stuff) method Throws the Exceptions In the Catch Blocks


          //Try to Connect To the Server


          //If we connected to the Server

          //It is good practice to close the Connection


          return true;


     }catch( ste){

          return false;

     }catch( ce){

          return false;



If the port you are using isn't 4900 your debug will let you know by setting the boolean to False (if you remove the TRY/CATCH you'll actually see the Exception..something like Connection Refused/ConnectException) if you don't know what port you are using, go to C:\Program Files(x86?)\Nuance\Speech Server\Server\config , open the NSServer.cfg file with Notepad and search for server.mrcp1.transport.port

Hope this posts may not cover every possible if you "over subscribe" TTS Ports and you have a License violation..but it does a basic check for the Connection and the MRCP Service (or RTSP Port)...

CreatePlease to create content