有没有办法在vxml中为通话时间设置时间限制?例如,如果呼叫者命令一段时间(例如10分钟),10分钟后,可以在vxml脚本中添加一个计时器,然后放弃呼叫,或者宣布呼叫结束?我正在寻找的主要功能,有希望的例子是能够在vxml中设置时间限制。
答案 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的回答是最佳选择,因为它可以中断对话。否则,您可以以编程方式检查每个表单转换或字段完成。