JVoiceXML: Release 0.6

A free VoiceXML interpreter written in JAVA supporting JAVA APIs such as JSAPI and JTAPI.

VoiceXML is an implementation of VoiceXML 2.1, the Voice Extensible Markup Language, specified at http://www.w3.org/TR/2005/CR-voicexml21-20050613/ as an extension to VoiceXML 2.0, specified at http://www.w3.org/TR/voicexml20/.
VoiceXML is designed for creating audio dialogs that feature synthesized speech, digitized audio, recognition of spoken and DTMF key input, recording of spoken input, telephony, and mixed initiative conversations. Major goal is to have a platform independent implementation that can be used for free.

Changes since release 0.5.5:
general
- preparation for jsapi 2.0
- added initial support for multi document applications
- started SIP support
- turning back to log4j as the underlying logging framework
- sessions are now closed via a hangup (opposite to call)

implementation
- new text based implementation platform
- refactoring: external resources are obtained per use
- refactoring: separation of system output into synthesized output and file output
- refactoring: CallControl, UserInput and SystemOutput are separated from the ExternalResouce interfaces
- added ability to hook external recognition listeners, e.g. for X+V implementations
- added ability to add custom connection handlers to allow for audio streaming with JSAPI 1.0
- JSAPI 1.0 like configuration for JSAPI 1.0 implementation platforms
- bugfix: pool was limited to 8 instances

interpreter
- evaluation of xml:base in VXML
- basic evaluation of interpreter states
- basic support of the final processing state
- basic support of the application shadow variable reduction to rhino as
the only scripting support
- basic implementation of a SRGS XML to SRGS XML grammar transformer
- basic implementation of a SRGS XML to JSGF grammar transformer
- bugfix: SRGS ABNF grammar identifier ignores grammar tag
- refactoring: removed all dependencies to JSAPI 1.0 from the core
- bugfix: corrected evaluation of conditions in menus
- bugfix: delaying until audio is played back
- bugfix: event handler throws event if there is no registered event strategy
- refactoring of concept to produce SSML
- grammar registry is scope aware and can be configured via the configuration file
- scopes APPLICATION, DOCUMENT and DIALOG are used
- more support for
- clear
- full support
- disconnect
- full support
- menu
- evaluation of nested enumerate tags
- grammar generation for voice
- vxml
- evaluation of the xml:base and the application attributes
- param
- full support
- object
- classid is a URI
- evaluation of the data attribute
- form item variable is set
- filled elements are processed
- script
- evaluation of the src and srcexpr attributes
- grammar
- evaluation of form level grammars
- field
- support of the modal attribute
- prompt
- support for the cond, xml:base and the timeout attributes
- basic support for
- enumerate
- option
- foreach
- record

xml
- initial support for PLS
- refactoring: XmlNode.appendChild throws an IllegalArgumentException if the child node is not allowed
- refactoring: differentiation between XmlNode.addChild and XmlNode.appendChild
- node factories return a generic node of the requested type, if the tag is unknown
- added convenient methods for an easier handling
- document type configurable via environment variable jvoicexml.vxml.version
- added missing lexicon node for SRGS documents
- bugfix: tags can be removed by setting the attribute to null failed if the attribute did not exist before
- bugfix: factory was not kept. this lead to problems e.g. when evaluating the child nodes of an SSML node that belongs to a VXML doc
bugfix: addChild called newInstance of the parent node not of the child node
- bugfix: The grammar type of grammar nodes was not resolved to a valid GrammarType object
- bugfix: corrected encoding in toString() methods encoding can be controlled via the environment variable jvoicexml.xml.encoding

documentserver
- added method to retrieve objects
- added method to store audio recordings
- prepared evaluation of fetch attributes

demos
- turned script demo into a multi document application
- new object tag demo
- new record tag demo

Posted by Dirk Schnelle-Walka 2008-06-04