Browsed by
Tag: xml

优化:将IVR-XML文件装入内存

优化:将IVR-XML文件装入内存

在多数语音交互的场景中, IVR-XML 文件都比较小,通常是几KB,因此收到呼叫触发 IVR 业务时,服务器都会从硬盘读取 IVR-XML 文件并触发相应的 IVR 流程。但是,如果负荷非常大,例如有大量的并发呼叫同时触发大量的 IVR 流程,miniSIPServer 将频繁读取硬盘上的 XML 文件。显然,这实际会影响服务器的性能。

因此我们做了点优化,将所有的 IVR-XML 文件都装入内存。如果这些文件没有被修改,IVR 业务就直接从内存中读取 XML 文件的内容。如果文件被修改了,miniSIPServer 会自动将修改后的 XML 文件再次装入内存。

这就意味着所有的 IVR 操作都是访问内存,不更改文件的情况下,不会再访问硬盘,miniSIPServer 运行比以前要快一些,在负荷沉重的时候尤其如此。

在IVR-XML流程中监视各种呼叫事件

在IVR-XML流程中监视各种呼叫事件

在部署 miniSIPServer 时,我们可以通过 IVR-XML 来订制自己需要的IVR业务流程,最常见的就是“自动话务员”业务。根据以往的 IVR-XML 功能集,我们可以使用“callto”动作发起新的呼叫,同时结束整个IVR流程。

但是,如果我们想监视呼叫过程中的某些事件,例如“被叫忙”,并根据这些事件改变IVR的流程,触发新的动作(action),我们该怎么做呢?

目前最新的 V37 版本已经发布,在这个版本中,扩展了一个与 IVR-XML 有关的关键特性。我们可以在“callto”动作中,配置“monitor-events”元素,对呼叫事件进行监视,并在事件发生时,将IVR流程转向新的动作。

例如,以下示例中,在“callto”动作中配置需要监视的事件:

<action method="callto" name="mainAction">
    <destination>100<destination>
    <monitor-events>
        <monitor-event detection="busy" nextaction="callto101"/>
    </monitor-events> 
</action> 

在这个示例中,如果“callto”发起的呼叫,遇到被叫忙,则 IVR 流程将执行下一个动作“callto101”, 即对另一个用户发起新的呼叫。

请参考IVR-XML 在线文档,了解更多关于“monitor-events”的细节。

上述zip文件是一个简单的IVR-XML脚本示例,用于测试新的“callto”动作。将其解压缩并保存在”xml”子目录下(您可以在miniSIPServer的安装目录下找到这个子目录),并在miniSIPServer中配置新的触发条件进行测试。

配置IVR业务
配置IVR业务
在云端通信系统定义您自己的IVR业务

在云端通信系统定义您自己的IVR业务

众所周知,在本地MSS系统中我们可以定义自己的IVR业务。现在,我们将这个特性移植到云端通信系统中,也就是说您也可以以相同的方式在云通信系统中定义自己的IVR业务。

在本地MSS系统中,我们可以直接将IVR-XML文件保存在服务器目录中。而在云系统中,情况稍有不同。出于安全性考虑,我们暂时不允许用户直接上传文件到云端服务器中,因此您需要将自定义的IVR-XML文件发给我们的技术支持团队(support(a)myvoipapp.com),我们将替您将文件上传到您的虚拟服务器中。接着,您可以登录进系统,点击菜单“资源 / IVR-XML文件”进行检查。

云系统菜单项 "IVR-XML文件"
云系统菜单项 “IVR-XML文件”

如果您自定义的IVR-XML文件已经上载到虚拟服务器中,您就可以开始配置“如何触发IVR业务”。MSS系统允许根据被叫号码来触发不同的IVR业务,而且非常容易配置。请点击菜单“业务 / IVR业务”进行配置。

云系统菜单项"IVR业务"
云系统菜单项”IVR业务”