Reusable Dialog Components tag library 1.0 released


News: Reusable Dialog Components tag library 1.0 released

  1. JSP 2.0 based Apache Reusable Dialog Components (RDC) is a framework for creating JSP taglibs that aid in rapid development of voice and multimodal applications. The goal of the RDC project is to achieve for voice applications what JSP tag libraries have already achieved in the world of visual Web applications. The RDC tag library has graduated out of Taglibs sandbox with a 1.0 release. See also the RDC wiki.

    All components in the RDC taglib produce VoiceXML 2.0 that can be served to any VoiceXML 2.0 compliant voice browser. The generated applications can be deployed to a standard Tomcat server and be accessed by a VoiceXML 2.0 compliant voice browser.
    Server-side generation of HTML has proven an effective way of generating the user interface for visual Web applications that are implemented using server-side application frameworks such as Struts.

    Over time, the effort involved in such HTML generation has been reduced by the availability of various JSP tag libraries that abstract away the minutiae of HTML markup. The goal of the RDC project is to achieve for voice applications what JSP tag libraries have already achieved in the world of visual Web applications.
  2. And how can we test your taglibs? What browser would you recommend?

    Thank you,
  3. Running the RDCs[ Go to top ]

    Interesting question. You need a "voice interpreter" as described by the w3c spec on voiceXML ( to see the RDCs in action. We use the one that ships with IBM's Voice Toolkit 6.0 for RAD 6 (eclipse-based IDE), which lets us hear the prompts using text-to-speech, and which provides a speech recognition engine which supports w3c standard grammars. This lets you interact with the RDCs natively, using a microphone and headset.

    As for just running the RDCs, they work on Tomcat 5.x, and also on WebSphere 6.0.1+ (undoubtedly other J2EE 1.4 containers also, these are the only ones I've heard have been tested.

    There are lots of free voice interpreter sites you can sign up for over the internet, including, and ones run by BeVocal, TellMe, and Hey Anita. The problem is that they don't recognize standard grammars - and so blow up when the RDCs send these along. IBM's voice interpreter is the only one I've found so far that actually supports the w3c recommendation for speech grammars. Nuance-based grammars support a version of the specification from 2001. Until this is fixed - or someone provides grammars for the non-standard regnition engines - you'll have to use a voice browser such as IBM's (RAD 6 or RWD 6 required, and only on Windows due to the TTS dlls).

    Having said that, the RDCs are simply JSP 2.0 tags which generate voiceXML, and manage the gathering of voiceXML form field input. We write unit tests for them using Canoo Webtest (free at You can also interact with them with an html browser, as long as you've set it up to receive voiceXML, and you don't mind entering URLs such as http://localhost:9080/VoiceTestApp/vui/choose-language.jsp?langChoiceResultNBest=1;english;english

    So you don't need anything other than a browser to see them work, though it's not too exciting without a voice interpreter.

    We're about to use the RDCs for a very large voiceXML effort. RDCs were very appealing to us because they 1) push all of the logic down to the application server - familiar territory for java web developers, and 2) greatly simplify the voiceXML by encapsulating logic for gathering form input to "reuseable" components. #1 also makes unit testing possible at the view layer. Typical voiceXML applications push so much logic onto the interpreter, they're basically monstrous client-side javascript applications. In short, impossible to test. Using Canoo, we can easily run through call flow logic and test out all the scenarios without having to use a phone and keypad. While it doesn't test the grammars or prompts, it does test the JSPs and the backend logic quite nicely.
  4. First, there's a Wiki on RDC information at

    The RDC documentation is a bit weak still, but there's a lot of background and tutorial info on the wiki.

    Second, the RDCs are moving out of the sandbox, so the home page will very shortly be different. It's also likely they'll be part of the soon-to-be-created Webapp Commons project on Jakarta, which means it'll likely move again.

    Just google for "apache rdc taglib" if in the future the above links go stale.
  5. Any demo available?
  6. Any demo available?[ Go to top ]

    Well, the distribution comes with two example struts applications. The "music store" you can access via a web application or a voice browser. There isn't a phone number you can call up and try it out, if that's what you mean. But the demo apps will run in any standards-compliant voice interpreter (again, this doesn't include ones with Nuance-based speech recognition until ScanSoft (just bought Nuance) actually bothers to implement a recent version of the grammar standard.

    If you have RAD 6 or RWD 6 (again, IBM's eclipse-based IDEs) you can download the Voice Toolkit 6 and run the demos in that.