如何在语音文件播放期间返回DTMF输入。 我正在从Asterisk拨号计划执行AGI,从vxml文件中我想返回收集的DTMF。 这是我的vxml
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
<form id="top">
<property name="inputmodes" value="dtmf"/>
<field name="mydigits" type="digits?maxlength=1">
<prompt>
<audio type="audio/basic" src="http://127.0.0.1/soundfiles/mysound.wav"/>
</prompt>
<grammar mode="dtmf" version="1.0">
<rule id="digit" scope="public">
<one-of>
<item> 1 </item>
<item> 2 </item>
<item> 3 </item>
</one-of>
</rule>
</grammar>
</field>
<filled mode="any">
<return namelist="mydigits"/>
</filled>
</form>
</vxml>
我从我的星号拨号计划中读到: -
;;this will call the local hosted vxml file above
exten => 1,n,Agi(agi://127.0.0.1/url=${vxmlurl})
;;try to read the data set at vxml file.
exten => 1,n,Verbose(0, "got mydigits ${mydigits} !")
但除了Asterisk拨号计划变量之外,它没有任何其他内容。
我想念那里的什么?
答案 0 :(得分:0)
你在使用Voximal吗? 如果要将值从Voximal返回到Dialplan,最简单的方法是使用标签。 该值将通过变量VOXIMAL_RESULT传递到dialplan上下文通道。
答案 1 :(得分:0)
宾果。我能够通过exit元素传递它。
我能够从星号拨号计划中获得它。
我也在使用Voiceglue
在我的拨号计划中
exten => 1,n(PLAYAGI),Agi(agi://127.0.0.1/url=${vxmlurl})
exten => 1,n,Verbose(0, "got mydigits ${mydigits} !")
在我的vmxl mydigits中包含调用者输入的DTMF。
<exit namelist="mydigits"/>
vmxl解释器注意剩下的工作并将其设置为Asterisk变量,以便我可以作为普通变量访问 $ {mydigits}