views:

600

answers:

4

Hi, all.

Does anyone know of any tools out there that will let me run and debug a VXML application visually? There are a ton of VXML development tools, but they all require you to build your application within them.

I have an existing application that uses JSPs to generate VXML, and I'm looking for a way to navigate through and debug the rendered VXML in much the same way that Firebug allows one to do this with HTML. I have some proxy-like tools that let me inspect the rendered code as it is sent to the VXML browser, but there's a ton of JS, which makes traversing the code by hand rather difficult.

Has anyone worked with a product that allows for this?

Thanks!
IVR Avenger

+1  A: 

Disclaimer: I am the development manager for Voiyager (www.voiyager.com), a VoiceXML testing tool. It doesn't meet your criteria nor do I believe it is the type of tool you want, but I thought it was worth mentioning it.


As far as I know, there isn't such a test tool for VoiceXML. In fact there are very few VoiceXML tools on the market and hardly any of them test or analysis. The vendors that created development tools, have all been acquired by other companies. Some of them offered did offer various forms of debugging that were specific to their tool set or stayed at the Dialog (caller input) level. From your question, I'm assuming you need much lower level debugging capabilities.

I think the alternative paths are minimal and somewhat difficult. I believe your primary goal is to debug or rewrite an existing application, but you haven't provided any specific challenges beyond the JavaScript. Some thoughts or approaches that may help:

  1. Isolate the JavaScript and place the code into a unit test harness. That will go a long way to understanding the logic of the application. Any encapsulation of the JavaScript you perform will probably go a long way towards better code maintainability.
  2. Attempt to run the VoiceXML through a translation layer to HTML so you could use FireBug. The largest challenge would involve caller input (ie processing the SRGS grammars). You could probably cheat this by just having the form accept a JSON string the populates the field values. There are tools on the market to test grammars. Depending on the nature of your problems, you could take a simple and light approach and attempt this over just the trouble areas.
  3. Plumb the application with a lot of logging. This can be done through the VoiceXML LOG element, or push the variable space back to the server. By adding intermediate forms, you may be able to provide a dump from each via the VoiceXML Data element.
  4. See if your application will run in one of the open source VoiceXML browsers (not sure of the state of the open source browsers as we've built and bought for our various product lines). If you can get it mostly working, you can use the development debugger to provide some ability to step through the logic. However, it is probably one of the more difficult paths as you'll really need to understand the browser to know when and where to stick your breakpoints and to figure out how to expose the data you want.

Good luck on the challenge. If you find another approach, I would be interested in seeing it posted.

Jim Rush
A: 

The most promising tool I can think of at this point is the recently released Genesys Composer, which is built on the Eclipse IDE and supports single-step debugging, call traces, click-to-dial, server-side debugging, watchpoints and breakpoints. Unfortunately, it appears to be GVP-specific and doesn't tap into existing VXML code.

What you have described is the holy grail of VXML tools, one that many have been searching years for, but looks like does not exist yet. Firebug is open source, so it might be possible for the enterprising developer to extend it to support VXML, but voice browsers don't function quite the same way as web browsers, so I don't know if it would even be feasible.

Michael Zanussi
+1  A: 
DVK
That list is a bit dated, but some ownership changes:Audium=>CiscoBeVocal=>NuanceTellMe=>MicrosoftVoiceGenie=>GenesysVoiceObjects (not in the list)=>VoxeoCan't remember where the rest went or if they survive standalone.
Jim Rush
A: 

An alternative debug env is to use something like Asterisk with a voicexml browser plugin like the one from http://www.voiceglue.org/ or for a limited licence, i6net.

You can keep all the pieces separate(dynamic html and vxml application in php/jsp/j2ee/, tts processing, and optional asr processing as separate virtual machines with something like virtualbox. If the logic can be kept the same, then it is just a matter of changing the UI based on the channel.

A softphone is all you need to call a minimal asterisk machine, which has the voicexml browser with the url of the vxml in the call plan.

I just used Zend Framework as php is used in this environment, and changed view suffixes(phtml vs vxml) based on the user-agent string.

Flite for tts is fine for debugging, and when your app is ready you can either record phrases, and there was a page on the ubuntu forums with directions for how to increase flite quality with some additional sound files.

just hatched