在NGN技术的发展过程中,VXML促进了媒体服务器(交互式语音响应服务器(Interactive Voice Response Server,IVRS))应用的标准化。过去一些语音平台上的应用都是厂商按照自己的方式开发编写的,所以很难将一个平台上的应用移植到别的平台上去。VXML论坛积极倡导VXML的应用,因为VXML的应用更容易得到发展,并且鼓励各类开发者加入其中,以降低应用成本。VXML还可以建立在Web模型或者HTTP和Web服务器的结构上来进行内容传送。
传统的VXML脚本是用来描述语音对话过程的标记语言,主要设计为呼叫类的自动交互。其定义了如何使用语音识别、语音合成、互联网访问、数据库访问、语音文件播放、DTMF输入等功能开发一个完整的语音应用系统。用VXML开发的语音应用系统,不仅可以完全代替传统CTI系统所能提供的功能,而且还可以使应用系统开发过程极其简单快捷,系统有极高的可扩展性、可维护性、可移植性、可重用性和开放性。
VXML是允许建立一套完整的应用结构XML文档,包括取回内容和发送信息的后台Web服务。VXML文档包括dialogues、forms和menus标记,forms和menus是两种类型的会话,都使用菜单来建立基于选择的流控制。dialogues被分割成一些域项(field、record、transfer、object、subdialog标记)或一些控制项(block和initial标记)。在一个NGN的媒体会话中,通常提示用户的语音标记可以采用文本到语音(prompt标记)、预先录制的语音文件(audio标记)或音频流文件(audio标记加上缓存Caching和获取提示Fetchhint属性,设置成不需要文件缓冲并可以在得到整个文件之前就开始播放)。同样,呼叫者输入的标记也要定义(用field标记)。通常,这样一个VXML文档的基本结构如下。
?xml version="1.0"?>
vxml application="my first vxml app" version="1.0">
form id="first form">
field name="fieldl">
block>
promt>
Hello World
audio src="www.telecomsoapbox.cyit.com.cn/hello.wav">
/prompt>
/block>
/field>
/form>
form id="GetInput">
!—This field will collect up to 15 DTMF digits—>
field name="Input"type="digits?minlength=1;maxlength=15">
prompt>Give me DTMF input/prompt>
/field>
/form>
/vxml>