2017-09-19 60 views
2

如何在語音文件播放過程中返回DTMF輸入。 我從Asterisk撥號計劃和vxml文件執行AGI,我想要返回收集的DTMF。 這裏是我的VXML將數據從VXML重新發送到Asterisk撥號規則

<?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} !") 

但是它沒有得到對撥號方案變量不是空洞的其它任何東西。
想知道我在那裏想念什麼?

回答

0

你使用Voximal嗎? 如果你想從Voximal返回一個值到Dialplan,最簡單的方法就是使用標籤。 該值將通過變量VOXIMAL_RESULT傳遞到dialplan上下文信道。

0

賓果。我能夠通過退出元素傳遞它。

我可以從星號撥號計劃中得到它。

我也是用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