如何在vxml中设置呼叫持续时间限制

时间:2014-11-12 19:47:52

标签: javascript php xml vxml

有没有办法在vxml中为通话时间设置时间限制?例如,如果呼叫者命令一段时间(例如10分钟),10分钟后,可以在vxml脚本中添加一个计时器,然后放弃呼叫,或者宣布呼叫结束?我正在寻找的主要功能,有希望的例子是能够在vxml中设置时间限制。

2 个答案:

答案 0 :(得分:2)

您不能直接在VoiceXML中执行此操作,但您可以使用免费标准CCXML来实现此目的。 CCXML是事件驱动的,可以设置为转换事件的状态机。

您可以将事件设置为在一段时间后超时。

 <transition state="'init'" event="connection.CONNECTION_CONNECTED" name="evt">
   <log expr="'ave liftoff.'"/>

   <dialogstart src="'gimme.vxml'" dialogid="theDialog"
               type="'application/xml+vxml;platform=motorola'"/>

   <assign name="state0" expr="'dialogActive'" />

   <send event="'timeout'" target="session.id" delay="'20000'" /> 
 </transition>

dialogstart元素启动VoiceXML应用程序。 CCXML继续在后台处理事件中运行。 send元素将事件发送回CCXML,使用delay属性可以设置时间段。 CCXML基于Web标准,因此您可以在延迟中以适当的时间段动态创建XML文档。当事件触发时,您将在CCXML中捕获它并终止VoiceXML应用程序。

<transition state="'dialogActive'" event="user.timeout">
   <log expr="'A timeout occured'" />
   <dialogterminate sessionid="theDialog" />
 </transition>

答案 1 :(得分:0)

如果时间限制很严格,Kevin对CCXML的回答是最佳选择,因为它可以中断对话。否则,您可以以编程方式检查每个表单转换或字段完成。