2017-09-19 2 views
2

Zurückgeben der DTMF-Eingabe während der Wiedergabe von Sprachdateien. Ich führe AGI von Asterisk Wählplan aus und aus der VXML-Datei möchte ich das gesammelte DTMF zurückgeben. Hier ist meine vxmlAbrufen von Daten von VXML zu Asterisk dialplan

<?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> 

ich gelesen, dass von meinem Stern Wählplan wie: -

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

Aber es alles andere als leer nicht an den Asterisk-Wählplan Variable erhalten.
Irgendeine Idee von dem, was ich dort vermisse?

Antwort

0

Verwenden Sie Voximal? Wenn Sie einen Wert vom Voximal zum Dialplan zurückgeben möchten, ist der einfachste Weg die Verwendung von Tags. Der Wert wird mit der Variablen VOXIMAL_RESULT an den Wählplankontextkanal übergeben.

0

BINGO. Ich konnte es über das Exit-Element übergeben.

Und ich konnte es von Asterisk Dial Plan bekommen.

Auch verwende ich die Voiceglue

in meinem Dial Plan

exten => 1,n(PLAYAGI),Agi(agi://127.0.0.1/url=${vxmlurl}) 
exten => 1,n,Verbose(0, "got mydigits ${mydigits} !") 

in meinem vmxl mydigits enthält die DTMF-Eingabe durch den Anrufer.

<exit namelist="mydigits"/> 

vmxl Dolmetscher nehmen den Rest der Arbeit kümmern und stellt es auf das Asterisk-Variable so, dass ich als normaler Variable $ zugreifen konnte {mydigits}