0

アスタリスクダイヤルプランを学習していて、非常にシンプルなIVRメニューを作成しました。作成したものが正しいことを誰かに確認してもらいたいです。2つのメニューレベルと終了オプションを備えた非常にシンプルなIVRを作成したいと思います。

[incoming]
exten => 123,1,Answer()
exten => 123,n,Background(main-menu)

exten => 1,1,Playback(digits/1)
exten => 1,n,Goto(incoming,123,1)

exten => 2,1,Playback(digits/2)
exten => 2,n,Goto(incoming,123,1)

exten => 9,1,Hangup()

[main-menu]
exten => 456,1,Answer()
exten => 456,n,Background(main-menu)

exten => 3,1,Playback(digits/3)
exten => 3,n,Goto(incoming,456,1)

exten => 4,1,Playback(digits/4)
exten => 4,n,Goto(incoming,456,1)

exten => 9,1,Hangup()

上記の2つのコンテキストを作成しました

[着信]-着信を処理する[メインメニュー]-メニューオプション。

着信コンテキストでは、拡張子が「123」のときにAnswer()アプリケーションを呼び出します。その後、バックグラウンド(メインメニュー)を実行します。

if the user presses '1' it plays '1' and goes back to 123 priority '1'

if the user presses '2' it plays '2' and goes back to 123 priority '1'

if the user presses '9' it hangs up.

同様に[メインメニュー]で

このコンテキストでもanswer()が必要ですか?

ダイヤルプランを理解し始めたばかりで、今は少し混乱しています。

したがって、あなたの提案に基づいて、私の更新されたダイヤルプランは次のようになります。

[incoming]
exten => 123,1,Answer()
 same => n(menuprompt),Background(main-menu)

exten => 1,1,Playback(digits/1)
 same => n,Goto(menuprompt)

exten => 2,1,Playback(digits/2)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()

[main-menu]
exten => n(menuprompt),Background(main-menu)

exten => 3,1,Playback(digits/3)
 same => n,Goto(menuprompt)

exten => 4,1,Playback(digits/4)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()

提案と説明をありがとう。しかし、私は1つの質問があります。

1)背景に渡される「メインメニュー」はどうやらサウンドファイルです。[着信]の場合は次のように言いたいです。

 "press 1 to play 1"
 "press 2 to play 2"
 "press 9 to hangup"

[メインメニュー]の場合のように、次のように言いたいのですが

  "press 3 to play 3"
  "press 4 to play 4"
  "press 9 to hangup"

そのファイルを記録する必要がありますか?それはどのように機能しますか?

前もって感謝します。

4

2 に答える 2

1

あなたの[着信]コンテキストは、あなたが思っていることを正確に実行します。
顧客にサウンドを送信し始める前に、行に1回だけAnswer()する必要があります。したがって、[メインメニュー]でAnswer()を実行する必要があるのは、これまでに実行したことがない場合のみです。

これは[incoming]を少し書き直したもので、読みやすさとグーププルーフの点で少し「優れています」。

[incoming]
exten => 123,1,Answer()
 same => n(menuprompt),Background(main-menu)

exten => 1,1,Playback(digits/1)
 same => n,Goto(menuprompt)

exten => 2,1,Playback(digits/2)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()

「同じ」は、まさにそのように聞こえます。「上記の行と同じ拡張子を使用してください」。IVRなど、異なるセクション間でカットアンドペーストを少し調整する大規模なダイヤルプランを実行している場合は、「同じ」を使用すると、内線番号でエラーが発生するのを防ぐことができます。

「(menuprompt)」はラベルと呼ばれ、同じコンテキスト内でラベルに移動できます。これにより、使用する優先順位番号を把握するために「n」を数える必要がなくなります。

さらに読む:https ://wiki.asterisk.org/wiki/display/AST/Contexts,+Extensions,+and+Priorities

于 2012-10-16T14:51:01.207 に答える
1

あなたは近くにいますが、完全ではありません。

コンテキストを物理的なボックスと考えてください。箱の中の壁を通り抜けることはできません。したがって、「ラベル」と拡張機能は、その1つの特定のボックス/コンテキストにあるものにのみ適用されます。

更新されたダイヤルプランでは、あるコンテキストから別のコンテキストに移動するために、コンテキスト/拡張機能/優先度に具体的に移動する必要があります。そうすれば、ダイヤルプランは、すでに動作しているコンテキスト内で何かを参照しようとしていないことを認識します。

再生しているメッセージプロンプトに関しては、はい、それらを録音する必要があります。MP3形式は、ユーザーの観点からは最も簡単に操作できますが、PBXに少し負荷がかかります。マルチコアギガヘルツCPUの時代にあって、私はめったにそれを心配しません。

これが公に直面するシステムになる場合は、顧客のPOVから、メニューの記録がシステムの最も重要な部分であると考えてください。品質が低く、音量が小さく、アクセントが難しいメッセージなどは、IVRを使用するには「作業が多すぎる」ことを顧客に「納得」させます。

于 2012-10-17T14:17:18.407 に答える