2009-05-29 10 views
0

私はIVRメニューを書いています。私は、コミュニケーション中にいつでも0を押してください。以下は、私はそれを行う方法:アスタリスクのIVRメニューに関するヘルプを参照してください。

exten => 0,1,Playback(good-bye) 
exten => 0,2,Playback(beep) 
exten => 0,3,Hangup 

しかし、いくつかのファイルが再生されているか、他のいくつかの操作が行われている間、ユーザーを押すがゼロ時に、そうすることによって、彼/彼女は出ることができない、それはようですもし彼/彼女がゼロを押していなければ。私は十分に明確で、あなたがこれで私を助けることができることを願っています。 歓声

答えて

1

AFAIK、アスタリスクは、「背景」または「WaitExten」と呼んだときにのみキープレスでピックアップすることができます。だから、あなたがいくつかのAGIを走らせているなら、それらの2つのコマンドのうちの1つを呼び出さなければならないでしょう。

0

アスタリスクがユーザーの入力を待っているとは限りません。バックグラウンド、WaitExten、Readコマンド中のみ。再生()を使用している場合、Asteriskは音声ファイルを再生している間にDTMFを無視します。

再生をRead()に置き換えることはできますが、再生タイムアウトを非常に低い値に設定するか、Read()で再生するすべてのオーディオファイルの後に無音があります。あなたがリードを()を使用する場合、あなたは、終了を確認するために、ユーザーがこのような何かを入力された値をチェックする必要が...

代わり

exten => x,n,Playback(yourfile) 
exten => x,n,somethingelse... 

のあなたは

exten => x,n,Read(Exit,yourfile,1) 
exten => x,n,GotoIf($["${Exit}" = "0"]?0,1) 
exten => x,n,somethingelse... 
+0

は壊れる: ' EXTEN => X、nは、再生(yourfile) EXTEN => X、nは、somethingelse ...また' – fgwaller

2

が必要IVRの場合、Playback()の代わりにBackground()またはWaitExten()を使用します。次に、IVRダイヤルプランの例を示します。

[ivr_main] 
; answer and play announcement 
exten => s,1,Set(TIMEOUT(response)=2) 
exten => s,2,Set(TIMEOUT(digit)=2) 
exten => s,3,BackGround(/your/audio/file/announcement) 
exten => s,4,WaitExten(2) 
exten => s,5,GoTo(s|3) ; careful of this loop here! should GoTo() somewhere else! 
; handle key presses 
exten => 0,1,Playback(good-bye) 
exten => 0,2,Playback(beep) 
exten => 0,3,Hangup() 
exten => 1,1,NoOp(do this if user presses 1) 
exten => 2,1,NoOp(do this if user presses 2) 
exten => 3,1,NoOp(do this if user presses 3) 
exten => 4,1,NoOp(do this if user presses 4) 
exten => 5,1,NoOp(do this if user presses 5) 
; handle invalid key presses 
exten => i,1,Playback(pbx-invalid) 
exten => i,2,GoTo(s|3) 
; handle time out (user did not make a selection) 
exten => t,1,GoTo(0|1) ; go to Hangup :-) 

希望します。

アスタリスクCLIでは、これらのアプリケーションのマニュアルについては、「show application background」と「show application WaitExten」を実行してください。誰かがラインに置くことによって、そのソースが読めるようでし

+0

、確認してくださいあなたは何らかの点でコールを応答しました。通話は通常応答され、IVRにルーティングされます。 –

関連する問題