This one stumped me for a bit and I was blaming it on there being no logs or something else. However, this is a DNS issue (what isn’t?). If you’re able to connect to RTMT via IP and after you select the logs you want get this error just add the target devices to your Windows hosts file and you should be good to go.
Category / Cisco
Cisco related posts. Routing, switching, unified communications, etc.

Troubleshoot RTP issues with WireShark when using Jabber or IP Communicator
This was an interesting one that I wanted to document. We have our agents and supervisors on either VDI Jabber or Windows Jabber or CIPC and we could not get silent monitoring to work. When the supervisor activated it everything looks correct, but there was no audio for the supervisor while the agent and caller had no issues. Supervisor could then barge in to the call and audio would work just fine. Here are the steps we took to troubleshoot this.
- Get the IP addresses of the agent and supervisor device. Then get a packet capture of both end points while performing silent monitoring.
- Using this filter get all the packets coming from the other device to your computer: ip.addr == {other parties IP}. You should see a good bit of UDP packets. At this point if you don’t see any packets coming from the other endpoint you know that more than likely the network or far end device configuration is at fault as your device didn’t send or receive any RTP.

Wireshark Packet Capture
3. Click click on any of the packets Decode As… Set Current to RTP.

WireShark Decode Packets
4. All your previous UDP packets should now be RTP packets.

WireShark Decoded Packets as RTP
5. Go to Telephony > RTP Streams and Analyze the stream that is detected. You will then be able to Play Streams to confirm you get the expected audio.

WireShark RTP Stream Analysis
6. Confirm audio stream is correct.

WireShark RTP Player
At this point we’ve confirmed our device is getting RTP, but our soft phone isn’t playing it. So a likely culprit could be the Windows firewall. Using your favorite text editor go to c:\Windows\System32\LogFiles\Firewall and open domainfw.log and publicfw.log. What you want to look for is the IP of the other device and see if you see any drops.
2020-01-01 12:03:48 DROP UDP {RemoteIP} {LocalIP} 17488 24576 200 – – – – – – – RECEIVE
If you look at the port this was received on you’ll notice that it is the RTP range Cisco recommends to have open. So at this point you can disable the firewall, which I don’t recommend, or create a new firewall rule and add UDP ports 16384-32767 as allowed.
~david

Windows ODBC Connection to CVP Reporting Database
This one took me a good bit of hours and googling with very little results. I wanted to post this for posterity and for anyone else out there trying to do the same thing. The end goal is to create a Windows ODBC Data Source connection to your Cisco CVP Reporting database.
First, a bit of a recap. Cisco’s CVP Reporting server utilizes IBM’s Informix database. It’s been like that for many years and to be honest it’s both great and terrible. It’s great because you don’t have to pay (directly) for a license to run the database. And horrible because it feels like Informix is just one step above using an sqlite database. Informix is used in Cisco CommunicationsManager (UCM), Contact Center Express (UCCX), Unity Connections (UCxN), and of course CVP Reporting.
On to the main course.
- You must obtain a free IBM account and go to this link. You must choose the SDK option and download the Informix Client SDK Developer Edition.
- If you want to do this with ODBC x64 then download clientsdk.4.10.FC14.windows64.zip
- For the x32 version download clientsdk.4.10.TC14.zip.
- Install either download, you can install them both too. They both work independently or side by side. Then reboot your computer.
- From there you must go to your CVP Reporting server and find your onconfig file. It should be in c:\db\Informix\etc. Open the file and find the following two lines. Make note of the values you see.
- DBSERVERNAME
- NETTYPE
- Open ODBC Data Source Administrator on your local machine. Go to System DSN > Add…
- Choose IBM Informix ODBC Driver > Finish.
- General > Data Source Name > Give it any name
- Connection > Server Name > The value of DBSERVERNAME in the onconfig file.
- Host Name: IP, FQDN, or hostname of server
- Service: 1526
- Protocol: The value of NETTYPE in the onconfig file.
- Database Name: cvp_data
- User Id: Generally cvp_dbuser but you an connect with any valid user.
- Password: Your password.
- Environment > Client Locale > EN_US.UTF8
- Database Locale: EN_US.UTF8 If you can’t set this value, hit apply to close the ODBC properties and then set this property.
- Go back to the Connection tab and Apply & Test Connection and give it a minute or two and you should see:

Windows ODBC Data Source Success
Hope this helps.
~david

It’s nice to be recognized
I got a nice surprise in my inbox today. An email from Cisco letting me know that I was the first ever winner of the English Community Developer of the Month. Per Cisco the Community Spotlight Awards:
… recognizes members whose significant contributions designate leadership and commitment to their peers within their respective communities, including the Cisco Learning Network (CLN) and Cisco Community. Spotlight Awards Program is designed to recognize and thank individuals who help make our communities the premier online destination for Cisco enthusiasts.
I get a cool badge to show off too.

2020 Cisco Forums Profile
You can find current and past winners here or try to spot me in the picture below.

Current Spotlight Winners
Looking back through my blog posts in 2008 I talked about getting my first star due to my contributions in the Cisco NetPro forums and how happy I was about it. In that blog I have a picture of my profile showing a total of 103 posts made with 8 questions resolved. That number, 12 years later, has ballooned to 3030 posts and 208 solutions.
I encourage anyone starting out or a seasoned veteran to contribute in the various Cisco Communities it’s a great way to network with your Cisco peers and try to tackle some very interesting technical problems while you procrastinate from your not as interesting technical problems.
~david
Correlate Nuance Call Logs and CVP Logs
During development, when you’re making a handful of calls for testing, it’s always easy to see your call traverse various systems. You can look at router logs for ICM troubleshooting, VXML debugs for the gateway, activity logs for CVP, and call logs for Nuance. However, once you go into production trying to correlate your activity logs with Nuance call logs becomes very painful. You can narrow your call logs pretty close based on the time of the call and then you have to look at the content and match up what CVP received from Nuance to find the exact log you need. Thankfully there’s a better way.
On the first audio element your call encounters add a Local Hotlink. Below you’ll see the details. The most important part is the External URI:
http://IPofMediaServer/en-us/grammar/paramGram.xml?SWI.appsessionid={CallData.UniqueCallID};SWI.appstepid=1

CVP Studio Audio Element Configuration
We have a parameter grammar with the only purpose of attaching the CVP call ID to the logs. The parameter grammar is pretty generic and it really doesn’t matter what you see in the values.
<?xml version=”1.0″ encoding=”ISO-8859-1′?>
<SWIparameter version=”1.0″ id=”my_parameter_grammar” precedence=”1″ ignore_unknown_parameters=”1″>
<parameter name=”swirec_application_name”>
<value>MyApp</value>
</parameter>
</SWIparameter>
The logs will then go from this:
23-NUAN-30-15-NUANCE01-813C33A-AC5D11EA-82A0A22E-A1298902@172.1.1.18-LOG
To this:
23-NUAN-30-15-NUANCE01-813C33A-AC5D11EA-82A0A22E-A1298902@172.1.1.18-722BA95BB43D11EAA713A22EA1298902-LOG
Additionally, utterances will also include the call ID making it super easy to find the logs you’re looking for. Finally, the call logs will include the call ID inside the log itself in this format:
SESN=722BA95BB43D11EAA713A22EA1298902
I want to thank the totally awesome Janine Graves for this awesome tip. If you’re looking for any CVP training she is the go to person in the world.
~david
Tip to search multiple Cisco CVP activity log errors quickly
We’ve been chasing a Nuance issue and as part of the process I’m monitoring the activity logs for certain errors to see if they are related to the issue we’re chasing or something else. I have multiple applications across over a dozen CVP servers and going one by one using Notepad++ is time consuming. Since the Cisco life is a Windows world here’s a quick way to do this and save you a ton of time.
There are tools out there like PowerGREP which do something similar, but my personal choice is to use Sublime Text. From there you go to Find > Find in Files.
- In Where add the locations you want to search and separate them by a comma:
\\server1\c$\cisco\cvp\VXMLServer\applications\YourApp\logs\ActivityLog,\\server1\c$\cisco\cvp\VXMLServer\applications\YourOtherApp\logs\ActivityLog,\\server2\c$\cisco\cvp\VXMLServer\applications\YourApp\logs\ActivityLog,\\server2\c$\cisco\cvp\VXMLServer\applications\YourOtherApp\logs\ActivityLog
2. In Find, make sure to select Regular expression and enter:
(?=.*06\/11\/2020.*error\.noresource$)|(?=.*06\/11\/2020.*Hotevent_Error_NoResource$)\w+
3. Click Find and watch all matches appear.
The expression above is looking for two different types of errors. error.noresource and Hotevent_Error_NoResource. It’s looking for this information only for the date of 06/11/2020, to ensure we only get the most recent logs. Finally, since we know this error is always at the end of the line we use the $ to anchor that string at the end of the line.
I hope this helps someone else do their work faster.
~david
CVP and Nuance Input Troubleshooting
Recently we encountered an issue where if you had to enter a long input and it took you longer than 10 seconds you would get a nomatch error as the result for your form. This happened even if you were in the middle of entering DTMF. Here’s the process we used to troubleshoot the issue. Which by the way has not yet been solved, but I will post an updated once it does.
First, let’s see the parameters for the VXML form:

Cisco CVP Voice Element Settings
Next, let’s look at a snipped of the VXML browser logs. For debugs I used:
#debug voip ccapi inout
#debug ccsip message
#debug voip rtp session named
#debug voip application vxml def
#debug voip application vxml dump
#debug mrcp all
Notice the lines in bold. These are the parameters I want to highlight from the Nuance point of view.
<vxml xmlns=”http://www.w3.org/2001/vxml” version=”2.1″ application=”/CVP/Server?audium_root=true&calling_into=S031_MerchantIVR”>
<property name=”termchar” value=”#” />
<property name=”interdigittimeout” value=”4s” />
<property name=”maxnbest” value=”1″ />
<property name=”maxspeechtimeout” value=”30s” />
<property name=”confidencelevel” value=”0.40″ />
<property name=”timeout” value=”5s” />
<form id=”audium_start_form”>
<block>
<assign name=”audium_vxmlLog” expr=””” />
<assign name=”audium_element_start_time_millisecs” expr=”new Date().getTime()” />
<goto next=”#start” />
</block>
</form>
To see all the communication between the voice browser and Nuance use the “mrcpv2” filter.

Wireshark MRCPV2 Capture
If you want to narrow down to packets which define the grammar properties to Nuance use the following filter “mrcpv2.Event-Line contains “DEFINE-GRAMMAR”” From there we find the packet which matches the above debugs and CVP Studio screenshot:

Wireshark MRCPV2 Packet Grammar Definition
In the above picture you’ll see that interdigittimeout corresponds to Dtmf-Interdigit-Timeout. Timeout corresponds to No-Input-Timeout and finally maxspeechtimeout corresponds to recognition-timeout which is NOT present in the MRCP packet. What happens here is that Nuance then uses it’s default timeout which is set to 10s. You can change this in your NSSserver.cfg by setting the following (in this case 22s):
server.mrcp2.osrspeechrecog.mrcpdefaults.recognition-timeout VXIInteger 22000
~david

Cisco CVP Standalone Lab Installation
For this we’re using VMWare Fusion to install the OS, you should also have the CVP OVA and ISO to make your life easier.
File > Import. Choose OVA
Continue
Accept
There are 3 options at this point for the VM configuration:
Cisco Unified CVP Call Server-VXML Server
Guest OS: Microsoft Windows Server 2012 (64-bit)
CPU: 4 vCPU
Memory: 10 GB vRAM
Disk: 1 – 250 GB vHDD
Network: 1 vNIC VmxNet3
Cisco Unified CVP Operations Console
Guest OS: Microsoft Windows Server 2012 (64-bit)
CPU: 2 vCPU
Memory: 4 GB vRAM
Disk: 1 – 80 GB vHDD
Network: 1 vNIC VmxNet3
Cisco Unified CVP Reporting Server
Guest OS: Microsoft Windows Server 2012 (64-bit)
CPU: 4 vCPU
Memory: 6 GB vRAM
Disk: 1 – 80 GB vHDD
Disk: 2 – 438 GB vHDD
Network: 1 vNIC VmxNet3
Since this is a lab, but I still want things to look as close to production as possible I will be using the Reporting Server deployment option.
- Install Windows 2012. Ensure you have two drives and make sure the machine is on the network.
- Install IIS
- Give it an IP on the network.
- Disable IPv6
- Run Windows Update
- Disable Windows Update to run automatically
- Mount the CVP ISO, open a command prompt and run CVP\Installer_Windows\setup.exe labonly
Fill out the X.509 Certificate information.
Choose your favorite secure password.
Finish and restart.
This is only one half of the equation, you’ll need need the voice piece in order to be able to get CVP to do anything.
~david
ASR TTS DNS error with Cisco CVP and VXML Gateway
I was struggling with setting up Nuance for one of my customers and while everything looked good on the Nuance side the connection between the gateway and Nuance failed right in the beginning. The very first thing is to setup some debugs on the gateway:
CCSIP SPI: SIP Call Message tracing is enabled (filter is OFF)
HTTP Client:
HTTP Client Main Process debugging is on
HTTP Client Sockets debugging is on
HTTP Client API Process debugging is on
HTTP Client Cache Module debugging is on
HTTP Client Messages debugging is on
HTTP Client Error debugging is on
HTTP Client Background Messages debugging is on
HTTP Client Cookie/Session debugging is on
MRCP:
MRCP client detail debugging is on
Next go follow the SIP trace and figure out where things start going wrong. We start with the initial invite for ASR.
3405261: Apr 14 23:51:30.451: //370879/B1BCCB67BB48/SIP/Msg/ccsipDisplayMsg:
Sent:
INVITE sip:asr@192.168.1.251:5060 SIP/2.0
Via: SIP/2.0/TCP 104.0.36.145:5060;branch=z9hG4bK8B21B80From: <sip:+11235551234@us-east-va.sip.flowroute.com>;tag=47F96D40-1629
To: sip:asr@192.168.1.251
We get an OK, but notice the Contact address.
3405262: Apr 14 23:51:30.599: //370879/B1BCCB67BB48/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 200 OK
Via: SIP/2.0/TCP 104.0.36.145:5060;branch=z9hG4bK8B21B80
Contact: <sip:mrcpserver@NUANCE10:5060;transport=TCP>
To: <sip:asr@192.168.1.251>;tag=75547221From: <sip:+11235551234@us-east-va.sip.flowroute.com>;tag=47F96D40-1629
And then we get a failure.
3405264: Apr 14 23:51:30.639: %VOICE_IEC-3-GW: SIP: Internal Error (100, dns qry fail): IEC=1.1.128.7.51.0 on callID 370879 GUID=B1BCCB677DE111EABB48AD04394A93D1
Now after a bit of googling and reading Avaya documentation. The issue is that the Nuance Speech Server by default will use the hostname in its SIP header information and because DNS wasn’t working correctly the address mrcpserver@NUANCE10 doesn’t resolve. To fix fix DNS or open up your NSSserver.cfg and set the following:
server.mrcp2.sip.contact.useHostIPAddress VXIInteger 1
From this point forward Nuance will use the IP address for all SIP headers and you avoid DNS all together.
Remember, it’s always DNS. :)
~david
Individual Component Installation of Nuance on Windows 2012 R2
I have done more Nuance installs in the last few weeks than I’ve done in my whole life. Recently I had to revisit installing Nuance without using the Nuance Portal and since it had been a few years since I had gotten around to it I figured I would document the process as a few things were murky in my mind. We’re going to be installing:
License Manger 11.7
Nuance Recognizer 10.2.8
Nuance Vocalizer (Enterprise) 6.0.7
Nuance Speech Server 6.2.9
This installation will work with UCCE/CVP 11.6 using VVB which means mrcp2 and the configuration is specific to mrcp2.
License Manager
First start with the License Manager as this components allows everything else to operate. The installation is pretty much a next, next, finish process. You will be asked to do a restart of the server.
The validation process is pretty straight forward. First, ensure that the Windows service was installed. It should not be running, but it should be set as automatic. Next open up the Licensing Tools program you just installed go to Start/Stop/Reread and hit Start Server. This will use a temp license to start up. The temp license is stored in C:\Program Files\Nuance\license_manager\license. Once you start the service confirm you see the Windows service as running. And that the output of Server Status is this:
——–
Status
——–
Flexible License Manager status on Tue 4/7/2020 13:17[Detecting lmgrd processes…]
License server status: 27000@NUANCEHOST
License file(s) on NUANCEHOST: C:\Program Files\Nuance\license_manager\license\temp.lic:NUANCEHOST: license server UP (MASTER) v11.7
Vendor daemon status (on NUANCEHOST):
swilmgrd: UP v11.7
Feature usage info:Users of dummy: (Total of 1 license issued; Total of 0 licenses in use)
Go to Config Services tab to point to your license file. As a matter of practice I keep all licenses files in the same location to make it easy. Either restart the service or re-read the license file to ensure it reflects your entitlement correctly. From this point forward you need to make sure to have a proper license for each component otherwise the validation steps will fail.
Nuance Recognizer
This installer is very much like the licensing tool, which means it’s a next, next, finished process. You will have to perform a restart of the server once it’s done. Additionally, you will need to install the languages you want your recognizer to support. As an example, for en-us, there are two files you will need to install: NRec-en-US-10.0.2-10.2.0.x86_64-windows.zip and NRec-en-US-10.0.2-10.2.0-CumulativePatch-2_windows.zip.
The base installation of en-us is straight forward, but the patch is a bit more involved. First, unzip the patch to a temporary location make sure this temp location doesn’t have any spaces in the name otherwise the installer will fail. Second, open a command prompt as an administrator and cd to the temporary location of the patch. Ensure that “echo %SWISRSDK%” returns where the recognizer is installed for example C:\Program Files\Nuance\Recognizer. Also validate what version of nuance you’re running by running “nuance-version -p”. What you want to pay attention is the following:
Name: Nuance Recognizer
Location: C:\Program Files\Nuance\Recognizer\
Version:
Nuance Recognizer 10.2.8.2017022711 x86_64 – Package revision 17058Name: Nuance Recognizer English en-US Language Pack
Location: C:\Program Files\Nuance\Recognizer\config\en.us\10.0.2
Version:
Nuance Recognizer en-US Language Pack – Rev. 10.0.2-10.2.0-15335
This tells us we have our base install and the language. Now run the install_cumulative_patch.bat and then validate it installed correctly by checking the Nuance version again. You should see this:
Name: Nuance Recognizer
Location: C:\Program Files\Nuance\Recognizer\
Version:
Nuance Recognizer 10.2.8.2017022711 x86_64 – Package revision 17058Name: Nuance Recognizer English en-US Language Pack
Location: C:\Program Files\Nuance\Recognizer\config\en.us\10.0.2
Version:
Base: Nuance Recognizer en-US Language Pack – Rev. 10.0.2-10.2.0-15335
Cumulative Patch 2:
ELANGPACKS-36 Creditcard expiry date grammar – Extend default expiry year to be 25 years from now (parameter maxallowed changed to 300 months)
ELANGPACKS-39 Fixed @reject@, added @exh@ and removed #sil# from @noise
@ entries in system dictionary – all grammars recompiled with updated system dictionary
ENR-124 Added missing transcription ‘zed’ for letter z to system
dictionary
There are two ways to configure the recognizer service. The first is by editing Baseline.xml and the second it to use a user config which overwrites Baseline.xml. My preferred method is to use a user config file as it’s much easier to manage and it removes the monstrosity that is the Baseline files, but because that’s a whole other ball of wax we’re going to just do the direct edit to Baseline.xml. You must enter the licenses you have available in the value tags below in the following two lines:
<param name=”swirec_license_ports”>
<declaration group=”license” type=”int”
set_by=”default”>
<min_value>0</min_value>
</declaration>
<value>4</value>
</param><!– How many osr_swiep licenses will be checked out during SWIepInit() –>
<param name=”swiep_license_ports”>
<declaration group=”license” type=”int”
set_by=”default”>
<min_value>0</min_value>
</declaration>
<value>4</value>
</param>
The final step is ensuring you set the Recognizer to start as a service. Open up a command prompt again and cd to C:\Program Files\Nuance\Recognizer\Recognizer Service\amd64\bin. From there you need to decide what parameters you’ll set for the service. The below parameters are the default and should be used unless you know exactly what you’re doing.
C:\Program Files\Nuance\Recognizer\Recognizer Service\amd64\bin>nrs-win-service-
init.exe -i nrs-win-service.exe -servlet nrs -port 8200
From there start your service and then it’s time to validate everything worked as expected.
To validate that your recognizer is working as expected Nuance provides a small exe which allows you to test your config. You can find the utility at C:\Program Files\Nuance\Recognizer\samples\swirec_sample\SWIrecSample.exe. Using the command prompt run the utility piping the output to a log file:
SWIrecSample.exe > log.txt
You should see a lot of successful lines in the log file, here’s a small sample:
Function SWIrecInit returned SUCCESS.
Calling SWIepInit.
Calling SWIrecRecognizerCreate.
Function SWIrecRecognizerCreate returned SUCCESS.
Calling SWIrecSessionStart.
…
Nuance Vocalizer and Languages
Same thing as all the other installers, these are just a next, next, finished. Ensure you install the vocalizer first, restart, then languages and restart. The configuration is pretty straight forward too. As before having a user config is my preferred method however we’re going to stick with the basics and just update baseline.xml. Please note that this baseline.xml is different than the Recognizer Baseline.xml. Here are the two parameters you have to update based on your license entitlement:
<tts_license_ports>4</tts_license_ports>
<cpr_license_ports>4</cpr_license_ports>
<ssml_validation>warn</ssml_validation>
One thing to note is that the Vocalizer doesn’t need a Windows service to run, so don’t think you’ve done something wrong if you can’t see it in the services window. The validation process is two parts too. First run the nuance-version -p command and validate your voices are installed and recognized:
Name: Vocalizer for Enterprise en-US Zoe bet4 f8
Location: C:\Program Files (x86)\Nuance\Vocalizer for Enterprise\
Version:
Vocalizer for Enterprise 6.1.1.2013100217
Vocalizer for Enterprise Build ID 6.1.1.13275
Language: en-US
Voice: Zoe
Voice model: bet4
Coder: encrypt
Language version: 5.2.3.0000
Voice version: 5.2.3.13269Name: Vocalizer for Enterprise
Location: C:\Program Files (x86)\Nuance\Vocalizer for Enterprise\
Version:
Vocalizer for Enterprise 6.0.7.2018052303
Vocalizer for Enterprise Build ID 6.0.7.18143
Next using the command line cd to C:\Program Files (x86)\Nuance\Vocalizer for Enterprise\common\speech\components and run the following command:
nvncmdline.exe -l en-us -n Zoe -s “Hello this is Zoe using text to speech.” -w –
o test.wav
Please note that you have to match the language and voice you have installed in the system. The good thing is that this command’s error outputs will tell you if there’s an issue with either the voice or the language not being detected. If the command runs successfully listen to test.wav to ensure it sounds like you expect it to.
Nuance Speech Server
The most important piece of this is that you install this component last as the installer detects the Recognizer and Vocalizer upon running. If you don’t install it last, then you will have to make some changes to your config to allow the Speech Server to know where to find the other components. The installer just like the others is just a next, next, finish installation. You will have to restart the server upon completion. Additionally, you should install the Nuance Speech Server Client matching your Speech Server which will allow you validate your configuration. Once everything is installed ensure the service is started and set it to an automatic startup type.
Validation is similar to the Vocalizer. Nuance provides a client which is able to test the Speech Server. From the command prompt go to C:\Program Files (x86)\Nuance\Speech Server\Client\script. From there run the following command:
..\bin\client.exe -s localhost -p 5060 demoprompt.mrcp
The output will be in demoPrompt.log and should be a good bit of SIP messaging and SSML. The most likely error you will see is that your service is not started or that you don’t have a valid license. Here’s a sample of the output:
…
INVITE sip:mresources@localhost:5060 SIP/2.0
Via: SIP/2.0/TCP NUANCEHOST:49474;branch=z9hG4bKf529526265c4fb15
Max-Forwards: 6
To: MediaServer <sip:mresources@localhost:5060>
From: clien_user <sip:clien_user@NUANCEHOST:49474>;tag=b5d67ee5
Contact: <sip:clien_user@NUANCEHOST;transport=TCP>
Call-ID: a385e9e251def062
CSeq: 1467710150 INVITE
Content-Type: application/sdp
Content-Length: 322
…
<?xml version=”1.0″?>
<speak version=”1.0″ xml:lang=”en-US” xmlns=”http://www.w3.org/2001/10/synthesis”>
<p>
<s>You have 4 new messages.</s>
<s>The first is from <say-as
interpret-as=”name”>Stephanie Williams</say-as>
and arrived at
<say-as interpret-as=”time”>3:45pm</say-as>.</s><s>The subject is <prosody
rate=”fast”>ski trip</prosody></s>
</p>
</speak>
Add your new ASR and TTS server to VVB and you should be good to go.
~david
You must be logged in to post a comment.