一.
Asterisk 对VoiceXML 协议支持
1.说明:
OpenVXI 是一个开源的VoiceXML 协议解释器(C++语言实现), VoiceGlue 利用OpenVXI 实现了VoiceXML协议与Asterisk的对接。
通过利用 VoiceVXI version 3.4, VoiceGlue 能够处理 VoiceXML 2.0语法,同时实现了一些 VoiceXML 2.1 新特性,同时,VoiceGlue 是分布式的,可以与Asterisk在不同机器上。VoiceGlue通过 fastAGI与Asterisk交互,支持tts, dtmf信号检测,播放及录音asterisk支持的语音编码,最新版本为0.12,版本相对活跃。
2. 最新版 Voiceglue 支持特性
3.使用场景
1. 符合VoiceXML协议的文件通过http 协议上传到 voiceglue server .
2.主叫进入系统后,执行agi与voiceglue server 交互。
[comein]
exten => 1,1,Answer
exten => 1,2,Agi(agi://localhost/http://www.baidu.com&vxml=doit.vxml)
exten => 1,1,Answer
exten => 1,2,Agi(agi://localhost/http://www.baidu.com&vxml=doit.vxml)
// doit.vxml 定义了符合voicexml协议规则ivr 流程
exten => 1,3,Hangup
exten => 1,3,Hangup
voiceglue 系统架构图 ;
二 、Asterisk 对
CSTA 的支持
CSTA 为集成计算机和电信网平台定义了总体结构、要求和协议。此标准强调了计算和交换的灵活性、双向通信和分布模型。
CSTA协议规定了第三方对telephone interface 的呼叫控制规则,
目前还没有人在Asterisk上实现 CSTA协议,从我们的应用,实际上CSTA协议定义的功能与Asterisk 提供的AMI接口相似,即第三方通过CSTA接口在电脑上控制PBX提供的某些呼叫功能, 在sourceforge 上有个 开源项目 CSTA Inside, 此项目的目的是给C/C++开发者提供一个ECMA-269/ECMA-323 CSTAIII XML 协议的lib库,不专为Asterisk,使用C++语言开发,版本很低,需要做二次开发,从提供的例子看实际上是利用其提供的接口向pbx server 发送同步请求并回调相应的响应。跟Asterisk AMI相似。