Click Here to go to the BeVocal Café Home Page Call Now to Test Your App: 1.877.33.VOCAL

Login
Sign-Up
Home
Welcome

Tools & File Management
Resources
Deployment
Documentation
Support
•  Release Notes
•  Newsgroups
•  FAQ
•  Links
•  Site Map
Release Notes: BeVocal Café Version 2.3
Home > Support > Release Notes > BeVocal Café Version 2.3


20 June 2002

This version of the BeVocal VoiceXML interpreter contains a large number of changes for compatibility with the April, 2002 draft of VoiceXML 2.0 and related W3C specifications.

Major New Features
  • We now support the April, 2002 Speech Synthesis Markup Language (SSML) draft with support for tags like <voice> , <prosody> , <paragraph> etc. See the documentation for these tags for further details.
  • The interpreter now provides a dynamic JavaScript API for accessing SOAP services.  You can create a JavaScript proxy object for a SOAP service given its WSDL or endpoint URL, then call its methods as if they were ordinary JavaScript functions.

Potentially Breaking Changes

Some of the interpreter changes made for compliance with the VoiceXML 2.0 Last Call Working Draft may cause changes in the behavior of existing applications.  We have called out all of those changes, however minor, in this section.  If you already have applications running on the BeVocal Cafe, you should read through this section carefully to see whether your applications will need to be modified to run on the new Cafe release.  The most important changes are listed at the top of each subsection, with minor ones at the end.  Some of the more complicated changes have links to the appropriate section of the VoiceXML 2.0 draft (e.g. §5.2 ) for a more detailed information.

VoiceXML
  • 4339 - Added the required attribute xmlns to the <vxml> tag in VoiceXML 2.0 documents. You must set this attribute to http://www.w3.org/2001/vxml in all VoiceXML 2.0 documents.
  • 1405 - When an event is thrown during execution of a form in a VoiceXML 2.0 document, URLs in the handler for that event will be resolved relative to the document containing the form where event was thrown rather than the document where the handler resides ( §5.2 ).  This can be very confusing.  If you have a <catch> handler in an application root that resides in different directory from your main VoiceXML document, and if the main document throws an event that is caught by the handler in the application root, URLs in the handler will be resolved relative to the main document, not relative to the application root document where the handler resides.  This only applies to documents whose <vxml > element has its version attribute set to 2.0 or greater.
  • 1568 - Queued prompts are no longer played in the background during a <goto>, <submit> or other operation that fetches VXML data, unless that tag has a fetchaudio attribute or the fetchaudio or bevocal.fetchaudio.flushqueue property is set.  ( §4.1.8 )
  • 3392 - When a <link expr="..."> is triggered, the expression is evaluated in the context of the JavaScript scope containing the <link>, not in the context of the currently active form item.  (See the note at the end of   §2.5 )
  • 3908 - In a VoiceXML 2.0 document (when <vxml version="2.0"> ), the telephone.disconnect.* and error.telephone.* events have been changed to connection.disconnect.* and error.connection.*. ( §5.2.6 , §2.3.7.4 )
  • 3919 - A field's type attribute no longer indicates an implicit <say-as> type to use when speaking out the field's value. Instead, it plays the field's value in normal TTS.  You must now use the type attribute of <say-as> for a type-specific readout of the value.
  • 3924 - <return> now throws error.badfetch if both the event and namelist attributes are specified. ( §5.3.10 )
  • 3926 - In a VoiceXML 2.0 document, < catch > with an empty event attribute (<catch event=""> ) is no longer allowed. If you want to catch all events use <catch> or <catch event=".">. If the version is set to 1.0 you can still use the BeVocal extension of an empty event attribute to catch all events; however we encourage you to use the new <catch> syntax since it works in both versions of our interpreter. ( §5.2.2 )
  • 3927 - The allowed values for the bargeintype attribute and property are now "speech" and "hotword".  The old values "energy" and "recognition" are no longer allowed. ( §4.1 )
  • 3947 - The names in the namelist attribute of a form-level <filled > must be the names of input items. The names of control items such as <block> are no longer permitted in this list. ( §2.4 )
  • 3949 - If the dtmf attribute of < menu > is true and any of the menu's < choice > tags have specified their own DTMF sequences to be something other than "*", "#" or "0" an error.badfetch is thrown.  (See "DTMF in Menus" in  §2.2 )
  • 3955 - JavaScript anonymous variables -- those defined using an assignment statement (e.g. "a=3;") but not previously declared using the JavaScript var declaration or a VoiceXML <var> or form item tag -- are no longer allowed in VoiceXML 2.0 documents.  They will cause an error.semantic with an explanatory message.  In VoiceXML 1.0 documents, these variables are now created in the scope which contains the <script> in which they are defined.  Previously, we created them in the JavaScript "global" scope, which was incorrect.  ( §5.1.2 )
  • 3958 - A <grammar> contained within a <link> , <field> or <menu> cannot specify a scope attribute.  This was never semantically valid and we always ignored it, but we never treated it as an error until now.  ( §3.1.3 )
  • 4200 - <meta> now throws an error.badfetch at parse time if both the name and http-equiv attributes are specified.  We previously did not notice this error.
  • 4297 - The <vxml> tag no longer allows the base attribute if the version is set to 2.0.  Use xml:base instead.
  • 4677 - The speedvsaccuracy property's default value of 0.5 now maps to a Nuance rec.pruning setting of 800; it used to map to 1200.  This leads to much faster recognitions on large grammars with very little loss in accuracy.  If  you if you were explicitly setting speedvsaccuracy to a lower value to get better performance, you may want to adjust the value you are using.  A setting of 0.1 now maps to a rec.pruning of about 200; it used to map to about 800.
Grammars
  • The ABNF grammar parser used to silently ignore unexpected tokens.  It now treats them as an error, as it should.  This can cause the parser to detect errors in grammars that it used to parse successfully but incorrectly.

Enhancements

VoiceXML Interpreter

BeVocal Extensions
  • We now allow the <audio> tag to return a dynamically generated SSML document. The uri which generates the SSML document can be specified via the bevocal:ssml or bevocal:ssmlexpr attributes of <audio>. After the SSML document is downloaded , its contents are inlined to the containing <audio> tag. This feature allows for a flexible and fine-grained control over the dynamic generation of prompts. See our <audio> documentation for more details.
  • We now allow you to switch the TTS voice and the voice for recorded <say-as> output through the new property bevocal.voice.name . The available recorded voices are bv_ann_en_us and bv_adam_en_us. See the documentation for the property bevocal.voice.name for more details.
  • The new attribute bevocal:maxtimeexpr has been added to the <transfer> and <bevocal:dial> tags so that the maximum call time can be set at run time via a JavaScript expression.
  • References to pre-compiled grammars can be now embedded into an ABNF grammar by using the syntax $<compiled:/key> , where key is the key for the pre-compiled grammar. The grammars can be pre-compiled using the GrammarCompiler tool.
  • We now support a built-in airline grammar that recognizes major US airlines. The syntax is <grammar src="builtin:grammar/airline" /> . See the <grammar> documentation for more details.
  • We now support a built-in airport grammar that recognizes major US and international airports. The syntax is <grammar src="builtin:grammar/airport" />. See the <grammar> documentation for more details.
  • We now allow you to specify DTMF termination tones for the <transfer> tag through a property.  If the DTMF sequence matches the user input, the <transfer> call is terminated. See the documentation for the property bevocal.transfer.terminatetones for more details.  This property is essentially a workaround for the fact that our platform currently does not support DTMF grammras during a bridged call; when that problem is fixed the property will be deprecated.
  • The new attribute bevocal:expr has been added to the <property> tag. The javascript expression specified is evaluated whenever the <property>'s scope is reinitialized.
VoiceXML 2.0
  • 3389 - <audio expr="..."> doesn't play any audio if the expression evaluates to ECMAScript undefined.  Previously this would cause an error.semantic.  For compability with previous releases, we also play no audio if the expression evaluates to null, even though the specification is silent on this issue.
  • 3920 - <subdialog> now has a srcexpr attribute that lets you calculate a subdialog's location at run time.
  • 3935 - The <metadata> tag is now supported in VoiceXML and XML grammar files.  It is intended for including RDF metadata in formats like Dublin Core, but this is not supported by DTDs.  When we support schemas, we will support more flexible metadata. ( §6.2.2 )
  • 3950 - <option> now has an accept attribute specifying whether the generated grammar matches the exact contents of the element's text or an approximate subset of it.  The default is approximate in VoiceXML 1.0 documents and exact in VoiceXML 2.0 documents.
  • 4187 - The <object> tag throws error.unsupported.object. objectname if the object invoked is not a valid object and if the version is set to 2.0.  It still throws error.unsupported.object for version 1.0 documents.
  • 4197 - Full control of base URLs is supported.  In VoiceXML 2.0 and XML grammar files, the <vxml> and <grammar> tags now allow the xml:base attribute. ABNF grammars support the new base declaration.  The <meta> tag and ABNF meta declaration also allow you to change the base URL, as long as it has not already been set via xml:base .  See the VoiceXML 2.0 draft ( §1.5.1 ), SRGS , and the XML:BASE recommendation for details.
  • 3921 - The <choice> , <link> and <return> tags now support the new eventexpr , message , and messageexpr attributes.
  • 3954 - The value of application.lastresult$ is set to ECMAScript undefined when the interpreter enters the next waiting state. The value is also set when a nomatch event is thrown (but not when noinput is thrown).
  • 3390 - If no grammars are active when input is expected in a <form> or <menu>, an error.sematic is thrown.
  • 3905 - Added aai and aaiexpr attributes to <transfer> . The interpreter parses these attributes but does not yet actually do anything with them at run time.  In a future release, the value specified will be used to fill in the UUI (User-to-User information) field for ISDN calls.
  • 3915 - <transfer> fills the shadow variables fieldname$.inputmode and fieldname$.utterance when it is terminated by a user utterance or DTMF sequence.
  • 3915 - The transferaudio attribute of <transfer> is now supported. The audio source specified by the URI is played while the call connection attempt is in progress.
  • 3918 - The namelist attribute in <clear> can now include variables that are not form item names. ( §5.3.3 )
  • 3959 - The recorded audio stored in the field item variable of a <record> item can now be played with < audio expr="..."> . In our next release, <value expr="..."> will no longer be able to play recorded audio, to conform with the latest VoiceXML 2.0 draft ( §2.3.6 ).
  • 4410 - The Content-Location HTTP header can now be used to specify the base URL for a VoiceXML document.  See  XML:BASE for details.
  • 4473 - An error.noresource event is thrown if an audio input or output resource is not available.
  • <break> now supports the "time" attribute. The value of the time attribute can contain a "s" or a "ms" suffix.
  • 4676 - We now support the DTD from the Last Call Working Draft of VoiceXML 2.0.  Use the Public ID "//W3C/DTD VoiceXML 2.0//EN" to access it.  Accessing it via URL from the W3C site without the Public ID will not work, because the copy on the W3C site has a few errors.
Grammars
  • 4192 - ABNF grammars now support MIME types on external URI references using the syntax $<uri>~<type/subtype>.
  • 4337 - XML grammars now support MIME types on external URI references via the type attribute of <ruleref>.

Bug Fixes

Interpreter

  • 4480 - <value expr="_prompt"/> or <value expr="_dtmf"/> inside <enumerate> would cause some garbage TTS output to be spoken. The TTS output is played fine now.



BeVocal, Inc. Café Home | Developer Agreement | Privacy Policy | Site Map | Terms & Conditions
©1999-2007 BeVocal, Inc. All Rights Reserved | 1.877.33.VOCAL