4

私がdialplan欲しいのは、ユーザーが任意のキーを押してファイルをもう一度再生すると、ダイヤルプランで dtmf 値を取得する方法がわかりません。これは私のダイヤルプランです:

[callme]  
exten => s,1,Answer 
exten => s,n,Playback(demo/${FILENAME1})

最初にDTMF値を取得する方法と、ユーザーが任意のキーを押した場合、再生を2回実行する必要があります.しかし、私はdialplan.

4

4 に答える 4

2

WaitExten [1] を使用して実行できます。

[callme]  
exten => s,1,Answer 
exten => s,n,Playback(demo/${FILENAME1})
exten => s,n,WaitExten(3)
exten => s,n,Goto(s,1)
exten => 1,1,Noop(user pressed 1)
exten => 1,n,Goto(however-shall-go-to-when-pressed-1)
exten => 2,1,Noop(user pressed 2)
exten => 2,n,Goto(however-shall-go-to-when-pressed-2)

拡張パターンの使用 [2]:

[callme]  
exten => s,1,Answer 
exten => s,n,Playback(demo/${FILENAME1})
exten => s,n,WaitExten(3)
exten => s,n,Goto(s,1)
exten => X,1,Noop(user pressed ${EXTEN})
exten => X,n,Goto(however-shall-go-to-when-pressed-${EXTEN})

これがまさにあなたが要求したものです:

[callme]  
exten => s,1,Answer 
exten => s,n,Playback(demo/${FILENAME1})
exten => s,n,WaitExten(3) 
exten => s,n,NoOp(going on - no dtmf detectd)
exten => X,1,Noop(user pressed ${EXTEN})
exten => X,n,Goto(s,1)

バックグラウンドのアスタリスク アプリケーション [3] も参照してください。

参考文献:

[1] http://www.voip-info.org/wiki/view/Asterisk+cmd+WaitExten

[2] http://www.voip-info.org/wiki/view/Asterisk+Dialplan+Patterns

[3] http://www.voip-info.org/wiki/view/Asterisk+cmd+BackGround

于 2012-09-08T13:40:09.487 に答える
1

アプリケーションの読み取りも使用できます。それは複数回尋ねるので、複雑なダイヤルプランがはるかに少なくなります

[test]
;Read(variable[,filename[&filename2[&...]][,maxdigits[,options[,attempts[,timeout]]]]])
exten => s,1,Read(response,file_to_play,3,,4,10)
;will read into response variable,upto 3 digits and ask upto 4 times, timeout 10 sec

exten => s,2,GotoIf($[ "${response}" == "123"]?pin_ok,s,1)

voip-info.org の Read に関する完全な情報

于 2012-09-08T20:37:26.887 に答える