以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML在语音技术中的应用 』   (http://bbs.xml.org.cn/list.asp?boardid=47)
----  OpenVXI如何实现电话的转接?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=47&rootid=&id=52799)


--  作者:叶子凝
--  发布时间:9/18/2007 11:15:00 AM

--  OpenVXI如何实现电话的转接?
openvxi结合语音板卡如何实现电话的转接呢?有人实现过吗?先谢了!
--  作者:叶子凝
--  发布时间:9/19/2007 9:41:00 PM

--  
我现在已经可以转接到分机了,不过是程序根据vxml文档指定的分机号自动转接过去的,并不是根据我用电话按键(DTMF)选择而拨过去的,这违背了我的初衷,我是想做DTMF识别的,可现在.........
我用的vxml文档如下:
<?xml version="1.0" encoding="GB2312"?>      
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/vxml
http://www.w3.org/TR/voicexml20/vxml.xsd">
<form>
    <transfer name="xfer" dest="8005" maxtime="30s" bridge="true">
        Calling 8005!
        <filled>
            <if cond="xfer == 'busy'">
                <prompt>Callee is busy!</prompt>
            <elseif cond="xfer == 'noanswer'"/>
                <prompt>Callee did not answer!</prompt>
            <else/>
                <prompt>Result:   <value expr="xfer"/></prompt>
                <prompt>Duration: <value expr="xfer$.duration"/></prompt>
            </if>
        </filled>        
    </transfer>
</form>
</vxml>
所以我有一个疑问:
既然<transfer dest="8005"  bridge="true">已经指定了要转接的分机号“8005”,程序本身就可以根据这个dest转接到分机,那么什么时候从电话的按键输入,从而用到DTMF的识别呢?
所以我认为:这个dest应该等于一个变量phonenumber,而不是直接赋值指定分机号,而这个变量的值要从检测DTMF之后产生的结果得来,可以这样理解吗?
还望高手指教,万分感谢!


--  作者:zlei12
--  发布时间:4/18/2008 10:29:00 PM

--  
语音板卡实现转接,以Dialogic和东进卡为例,可以采用dx_dial()实现。按我目前的理解,采用dx_dial()实现的是Blind Transfer功能,而不是Bridged Transfer。

如果需要实现Bridged Transfer功能,一般的需要引入CTI中间件,由运行vxml的IVR和CTI中间件通信实现。如果是纯IP的PBX环境,也可以由CTI实现Call Control,IVR实现Media Control,配合完成。

关于<transfer>标记, 请使用destexpr属性实现动态计算目标号码。顺便再提两点:
1) 也可以<submit>到Web服务器,通过某种计算如查询数据库来确定目标号码;
2) 目标号码可以是一个逻辑号码,例如可以用于表示呼叫中心的技能组号,而再由ACD确定具体的空闲座席的物理分机号码,等等。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms