有没有办法在 vxml 中设置通话持续时间的时间限制?例如,如果呼叫者预定了一段时间(比如 10 分钟),那么 10 分钟后,是否可以在 vxml 脚本中添加一个计时器,然后挂断呼叫,或宣布呼叫结束?我正在寻找的主要功能(希望是示例)是在 vxml 中设置时间限制的能力。
问问题
557 次
2 回答
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>
于 2014-11-18T16:03:33.517 回答
0
如果时间限制很严格,Kevin 的 CCXML 答案是最好的选择,因为它可以中断对话。否则,您可以在每个表单转换或字段完成时以编程方式检查。
于 2015-01-23T20:55:25.827 回答