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.4
Home > Support > Release Notes
Advanced search

March 2003
Release Note Sections Previous Release Notes
  • Potentially Breaking Changes
  • Enhancements
  • Known Bugs and Limitations
  • Bug Fixes
  • Version 2.3
  • Version 2.2
  • Version 2.1
  • Potentially Breaking Changes

    The most important changes are listed towards the top of the table, with minor ones later. Some of the more complicated changes have links to the appropriate section of the VoiceXML 2.0 draft (e.g. §5.2) for more detailed information.

    Relevance Description
    Speech Objects Support for Nuance SpeechObjects has been removed. In VoiceXML 2.0 applications, the <object> tag now always throws error.unsupported.object.<objectname>. In VoiceXML 1.0 applications, it always throws error.unsupported.object
    Field Types The extended field types such as citystate, street, etc. have been removed. Use our corresponding builtin <grammar> types instead.
    Grammars We no longer support Nuance GSC Grammars.
    Grammars We have made a number of changes for compliance with the Candidate Recommendation version of the Speech Recognition Grammar Specification. See the Grammar Reference.
    Grammars The version attribute of <grammar> is now required, in both inline and external XML grammars. The only supported version is "1.0"; other versions will cause an error.
    geoApi The geoApi functions have been removed from the VoiceXML interpreter. Some functions (for example, getUSCityStateInfoFromPhone and getUSZipCodeFromPhone) have migrated to the Location Information Service. For other functions, we encourage you to use the interpreter's built-in SOAP client to access third-party sources of geographic and other data.
    Outbound Notification The HTTP-based Outbound Notification Service has been replaced with a SOAP-based version. For information on the new service, see Outbound Notification Service.
    Caching Support for the expirationtime attribute and the *expirationtime properties (e.g. audioexpirationtime) has been removed from the interpreter. These were a nonstandard BeVocal extension and have been supplanted by the standard maxstale attribute in VoiceXML 2.0. In Café 1.6, expirationtime was deprecated. For information on caching, see Fetching and Caching Resources in the VoiceXML Programmer's Guide.
    Streaming Audio Support has been removed for streaming audio files using the stream value of the audiofetchhint property and the fetchhint attribute of the <audio> tag.
    Streaming Record Support has been removed for streaming record using the bevocal:dest and bevocal:destexpr attributes.
    Session The nonstandard session.ani and session.dnis variables have been removed. Use session.telephone.*.
    Session The nonstandard session variable session.timeincall has been removed. Use session.bevocal.timeincall.
    Audio The <audio> tag must have one of the attributes src or expr. It cannot be used just as a prompt container.
    SSML The sub attribute of <say-as> is no longer valid. Use the <sub> element instead.
    VXML The xmlns attribute of <vxml> tag must be http://www.w3.org/2001/vxml; otherwise, the interpreter throws a parse error.
    VXML Previously, if the maxtime attribute of the call control tags (<transfer> and <bevocal:dial>) was beyond permissible limits, then an error.noauthorization event was thrown. In this release, an event is no longer thrown; instead, the call is placed for the maximum permissible duration.
    HTTP The User-Agent header in the interpreter's HTTP requests has been changed. Previously, it was simply
       BeVocal/2.0
    It is now
       User-Agent: BeVocal/2.4 VoiceXML/2.0 BVPlatform/1.8.0.4
    The BeVocal component reflects the version of the BeVocal VoiceXML interpreter, the VoiceXML component reflects the version of VoiceXML in the requesting document, and the BVPlatform component reflects the version of the underlying BeVocal platform. If you need to detect the User-Agent for a request, you should probably ignore the last 2 digits in the platform version, as these are likely to change occasionally. See Fetching and Caching Resources in the VoiceXML Programmer's Guide.
    MIME types The interpreter now checks for MIME types when it does fetches. It signals a warning if it detects an obviously incorrect MIME type (such as text/html when it's expecting a VoiceXML document). If you see a warning like this, it usually means your server is misconfigured. See the Fetching Resources section of the FAQ for information on configuring your server with the correct MIME types. Note that in the next release, the interpreter will throw an exception when it sees an incorrect MIME type.
    Voice Enrollment The keyexpr attribute of <bevocal:enroll> has been deprecated. To specify a security key, use the bevocal.security.key property.
    Voice Enrollment The speakerid attribute of <bevocal:enroll> has been renamed to speakeridexpr so that a JavaScript expression can be specified for a speaker ID during voice enrollment.
    Voice Enrollment The JavaScript function bevocal.removeEnrolledPhrase has been renamed to bevocal.enroll.removeEnrolledPhrase.
    Ports In earlier releases, you could use a variety of ports when submitting files or fetching resources. For security reasons, you can now use only the following ports, both for inbound and outbound purposes:
    80   HTTP
    443   HTTPS
    > 1023   User Ports

    Enhancements

    Relevance Description
    DTMF The interpreter now buffers DTMF keys that are received between input states, as described in VoiceXML 2.0 (§4.1.5, §4.1.8). This is controlled by the bargein attribute and property and the new bevocal.dtmf.flushbuffer property.
    DTMF The standard termtimeout property in VoiceXML is now supported.
    JavaScript A new JavaScript function, bevocal.getVersion, has been added. It returns the version number of the interpreter, as a string. Currently, the interpreter version returned by this function is "2.4".
    Grammars Prefetching is now implemented for <grammar> elements that use the src attribute to refer to an external grammar file. Bug 4382.
    HTTP The interpreter's caching mechanism now has full support for HTTP 1.1, including the Age header and the private, no-store, s-maxage, and must-revalidate attributes of Cache-Control. For information on caching, see Fetching and Caching Resources in the VoiceXML Programmer's Guide.
    Grammar We now support the NuanceGrammarObjects. See Compiled Grammar Files in the Grammar Reference for more details.
    FIA The interpreter now follows the rules for mapping semantic interpretations results to <form> item variables as described in §3.1.6. For more details, see Setting Input Variables in the Grammar Reference.
    FIA If the user input fills one or more field item variables, then all <initial> form item variables are set to true before any <filled> actions are executed. See §2.3.3 for more details.
    Record If no audio was collected during the execution of <record>, its input variable is unfilled. This allows the form item to be visited again by the FIA. (§2.3.6.)
    Record If the caller hangs up during <record>, an appropriate disconnect event is thrown. However, the recording stored until the point of hangup is available via the <record> shadow variables. (§2.3.6)
    SOAP The SOAP client in the interpreter now allows the addition of SOAP headers on the SOAP proxy client objects by using the new _addHeader method.
    SSML We now support the vxml:* types for the type attribute of <say-as>.
    <say-as> voices We've added a new male voice for use with <say-as type="citystate" bevocal:mode="recorded">. See TTS and Recorded Voice Selection in the VoiceXML Programmer's Guide
    Documentation The Café documentation has undergone significant revision. Every document has been touched, some have been completely rewritten or are new for this release. Highlights include:
    •  The Grammar Reference has been completely rewritten. It now provides more information on how to use grammars in your VoiceXML documents, as well as describing GSL, ABNF, and XML grammar syntax.
    •  Several chapters of the VoiceXML Programmer's Guide have been rewritten. Most notably, Fetching and Caching Resources and SOAP Client Facility.
    •  The VoiceXML Performance Guide is currently under revision. It's not done yet, but already contains a more complete checklist of things to look out for when designing an application for performance.
    •  And, of course, all of the documentation on the BeVocal Platform Services is new.
    •  In addition to content changes, the format and navigation of the HTML has also changed. For example, the navigation links in the left frame are more complete, now including the standard links to the rest of the Café site, as well as more levels of navigation within a document. And, if you ever find yourself looking at a document page without the surrounding navigation frames, you can get the frames back from a link at the bottom of the page.

    Known Bugs and Limitations

    Relevance Description
    Hotword Recognition
    •  DTMF tones are not recognized during hotword recognition.
    •  You may see some spurious error.internal errors during hotword recognition. This usually occurs when there are too many active grammars. The workaround is catch error.internal in the hotword state and treat it as a nomatch.
    Enrolled Grammars If you don't have any grammars active while executing the <bevocal:enroll> tag, the interpreter throws an error.semantic with the message "No grammars active during recognition." The workaround is to have at least one grammar active during the enrollment process.
    <menu> and <choice> tags In practice the accept attribute of the <menu> tag has no effect.
    The accept attribute of the <choice> tag is intended to override the value of the accept attribute of the parent <menu> element only if your VoiceXML code actually supplies a value for that attribute.
    However, because of the way the attribute is currently defined in the official VoiceXML 2.0 DTD, any value you put on a <menu> element is overridden in the child <choice> element, either by the default value of exact or by an explicitly-supplied value.
    <choice> and <audio> tags If you put an <audio> tag inside a <choice> element, you get incorrect output. One workaround is to use TTS instead of recorded audio in your <choice> elements.
    SSL SSL is currently supported only for text files. In general, using SSL causes a performance hit for fetches. Consequently, you should use SSL sparingly.
    <say-as> & TTS voices With <say-as bevocal:mode="recorded"...>, you can take advantage of prompts recorded by a human voice talent for many say-as types. There is a related bug, however.
    If you explicitly set the TTS voice to either jennifer or mark (using the bevocal.voice.name property or the <voice> SSML tag), the interpreter does not play appropriate recorded prompts.
    As a workaround, instead of setting the TTS voice to one of these names, set the recorded voice to bv_ann_en_us, bv_adam_en_us, or bv_ben_en_us. These recorded voices use jennifer and mark for TTS fallback. Note that you can only set the recorded voice using the bevocal.voice.name property; you cannot set a recorded voice with the <voice> SSML tag.
    fetchhint limitations The fetchhint attribute is currently not supported for the <choice>, <subdialog>, and <data> tags, despite what the documentation used to claim.
    Chunking in transfer encoding If you use Tomcat as your servlet container, you must turn off chunking in transfer encoding. Otherwise, you may get spurious error.badfetch errors when retrieving resources. For information on how to setup Tomcat, see the FAQ.
    DOCTYPE doc bug Earlier versions of our documentation claimed that a DOCTYPE declaration is required for a valid VoiceXML document. This is untrue; this declaration is optional.
    We strongly recommend including a DOCTYPE during development, as it provides better error checking, both by the interpreter and by the VoiceXML Checker. For deployment, however, you may decide to remove the DOCTYPE declaration for better performance. For more details on what constitutes a valid VoiceXML document, see the FAQ.

    Bug Fixes

    Bug Description
    3731 A <submit method="get"> of a JavaScript integer would include a trailing ".0" in some circumstances. This has been fixed.
    4201 The parser now does tighter error checking of the VoiceXML grammar <ruleref> element in documents with no DTD. The alias attribute is no longer allowed, and the error message for bad values of the special attribute has been improved.
    4826 The <assign> element now throws a parse-time error.badfetch if the name or expr attribute is missing. Previously, this would cause a confusing run-time error message.
    4824 The interpreter's built-in HTTP cache was occasionally throwing spurious error.badfetch events. This occurred if the current fetch succeeded but a fetch of the same resource had failed sometime in the past. This has been fixed.
    4829 In certain cases, when an outbound call placed with <transfer> or <bevocal:dial> was not answered or was disconnected immediately after being answered, the interpreter would get confused and all further activity on the call would fail. The interpreter no longer gets confused by this.
    4837 Previously, if there was no recording, the duration shadow variable of <record> contained invalid values. Now if there is no audio recorded during the execution of <record>, then the <record> item variable and its shadow variables are not filled.
    4855 Previously, double quotes present in the value of the <tag> element were erroneously dropped. They are preserved now.
    4861 For the <data> tag, if the name attribute was not present, then the HTTP response was not being ignored. Now the HTTP response is rightly ignored.
    4862 We now accept the MIME type application/x-nuance-gsl for Nuance GSL grammars. See Grammar Formats in the Grammar Reference.
    4865 Previously, for certain nomatch events, the Log Browser displayed a confusing message stating "No Interpretations was returned for this recognition." This message is no longer displayed.
    4872 The application.lastresult$ variable is filled after each and every successful recognition. This includes recognitions which resulted in an event being thrown or which matched a <link> grammar.



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