VoiceXML Browser and Interpreter
The VoiceXML browser and interpreter could be considered the "heart" of the voice portal. From this point forward, the combined browser and interpreter will be referred to as the VoiceXML engine. The browser provides advanced Internet browserlike features such as bookmarking, cookies, and caching, whereas the interpreter provides the interpretation of the elements and attributes of the VoiceXML page. Hence, many of today's VoiceXML applications follow the trend of Internet browsing.
On receiving a start event, such as an incoming call, the browser fetches the first VoiceXML document for the application, typically using the HTTP protocol. If the caching feature of the browser has been enabled, the cached version of the page could potentially be that first page. The first VoiceXML application document is loaded into main memory by the browser for interpretation by the interpreter. The interpretation of the elements and attributes results in actions that will eventually drive the ASR, TTS, and telephony resources. The actions can be invoked through proprietary interfaces, or through more "standard" interfaces such as Java Speech API (JSAPI), for ASR and TTS, and Java Telephony API (JTAPI) for telephony.
When you're choosing a VoiceXML engine, keep the following design considerations in mind:
Your primary consideration is ensuring the VoiceXML engine implementer's adherence to the current VoiceXML specification. Vendors should have a list of the elements and attributes that their implementation supports. At this point, you would be wise to verify any statements made regarding the level of specification adherence that the vendor might make. As of this writing, the VoiceXML Forum Conformance Subgroup is actively working on a conformance suite that will be used to "certify" VoiceXML implementations.
Some engine vendors have chosen to add proprietary extensions to their implementations. You must weigh these extensions in terms of their value added to your application and to the direction of the VoiceXML specification.