Cisco VoiceXMLの最もシンプルな音声メニュー

シスコの音声ゲートウェイでVoiceXML言語を使用して最も単純な音声メニューを作成する訓練を受けていない人は、多くの熊手を踏まなければなりません。 この記事ではそれらのいくつかに注目します。 一部のシスコスペシャリストが鼻を鳴らして、これはすべて初歩的であると言う可能性がありますが、それにもかかわらず、このタスクに直面したとき、どこから始めればよいかわかりませんでした。 Googleは既製のIVRの賢明な例を提供しませんでした。 多かれ少なかれ良い出発点は、 この記事でした。 私のhabravoprosも特定の結果を出しませんでした。 しかし、歌詞を捨てて仕事に取り掛かってください。 VoiceXMLスクリプトをサポートするCisco音声ゲートウェイ(たとえば、Cisco 3925)があるとします。 写真に示す音声メニューを開発します。 営業時間中は、あいさつが再生され、休業日と週末に指定された内線番号に通話が転送されます。これは、平日に電話するという特別なお知らせです。





主な「ビルディングブロック」と音声メニューの作成段階を選び出します。

1.着信コールをvxmlスクリプトにルーティングします。

2.一時的な条件

3.サウンドファイルを再生する

4.内線番号への通話の転送

5. vxmlスクリプトをダウンロードしてアクティブ化する



1.着信コールルーティング



番号が7XXXYYYZZZZの形式の通常の電話回線(ポット)を介してプロバイダーから送られたと仮定します。 新しいダイヤルピアを作成し、着信コールを「テスト」サービスにルーティングする必要があることを示す必要があります。

gw# conf t

gw(config)# dial-peer voice 100 pots

gw(config-dial-peer)#説明IVR-Test

gw(config-dial-peer)#着信呼び出し番号7XXXYYYZZZZ

gw(config-dial-peer)#サービステスト
いいですね、電話が来ますが、今のところ実際のテストアプリケーションはありません。今度はそれを部分的に書きます。



2.一時的な条件



最初のXMLブロックを作成しています。 最初に変数を初期化してから、XMLドキュメントで作業していることを忘れずに必要な条件を作成します。つまり、「<」や「&」などのすべての文字をエスケープする必要があります。

<!-時刻はUTCです->

<!-曜日:0-日曜日、1-月曜日... 6-日曜日->

<var name = "VAR_Hour" expr = "新しい日付()。getHours()" />

<var name = "VAR_Day" expr = "新しい日付() 。getDay ()" />



<!-時間条件->

<フォーム ID = "IVR_TimeCondition" >

<ブロック>

<if cond = "5&lt; = VAR_Hour&amp;&amp; VAR_Hour&lt; 14&amp;&amp; 0&lt; VAR_Day&amp;&amp; VAR_Day&lt; 6" >

<goto next = "#IVR_Business" />

<else />

<goto next = "#IVR_NonBusiness" />

</ if >

</ブロック>

</フォーム>
ここでは、営業時間中はIVR_Businessというブロックに行き、営業時間外と週末はIVR_NonBusinessに行きます。 それらについては少し後で。



3.サウンドファイルとその再生



音声録音をG.711μ-law形式でゲートウェイのフラッシュメモリに保存します。 Windowsでは標準のSound Recorderプログラムを使用して録音でき、Linuxではsoxプログラムを使用します。 次のコマンドは、PCM形式のサウンドファイルをμ-law形式のファイルに変換します。



  sox input.wav -e u-law -V4 -r 8k -c 1 output.wav 


たとえば、HTTPサーバー192.168.0.10から必要なファイルをメモリにアップロードします。

gw# mkdirテスト

gw# copy http: // 192.168.0.10/ivr1.wav flash0:/test/ivr1.wav

gw# copy http: // 192.168.0.10/ivr2.wav flash0:/test/ivr2.wav

週末の発表を担当するXMLブロックは次のようになります。

<!-営業時間外->

<フォーム ID = "IVR_NonBusiness" >

<ブロック>

<プロンプト> <audio src = "flash0:/test/ivr2.wav" /> </プロンプト>

</ブロック>

</フォーム>


4.内線番号へのルーティング



ここでは、スキームに従って、短いあいさつ(ivr1)があり、指定された内線番号に通話を転送しています。 この番号は、電話番号、またはCUCM(Hunt Pilot)グループ番号のいずれかです。 私の場合、電話はアドレス電話// EXTを使用して転送されましたが、インターネット上ではtel:// EXTまたはsip:// EXTという形式のバリエーションがありました。 したがって、あなたとは少し違うかもしれません。

<!-営業時間->

<フォーム ID = "IVR_Business" >

<ブロック>

<プロンプト> <audio src = "flash0:/test/ivr1.wav" /> </プロンプト>

</ブロック>

<transfer name = "mycall" transferaudio = "flash0:/test/music.wav" bridge = "false" dest = "phone:// 123" >

<記入済み>

<log > 返された転送: <value expr = "mycall" /> </ log >

</記入済み>

</転送>

</フォーム>
必要に応じて、デバッグvoipアプリケーションvxmlがデバッグモードを有効にすると、mycall変数で呼び出し結果コードをキャッチできます。 transferaudioパラメーターにも注意してください。これは、123番が電話に出るまで再生される音声ファイルです。



5. vxmlスクリプトをダウンロードしてアクティブ化する



これで、最終的なスクリプトtest.vxmlができました。これをゲートウェイにアップロードできます。 同様に、HTTPサーバーを使用する場合:

gw# copy http: // 192.168.0.10/test.vxml flash0:/test/test.vxml

最後に、「テスト」スクリプトをアクティブにします。

gw# conf t

gw(config)#アプリケーション

gw(config-app) #no test test flash0:/test/test.vxml

gw(config-app) #service test flash0:/test/test.vxml

以上です! この基本的なスクリプトで、初心者でも簡単な音声メニューを作成できることを願っています。 次のステップは、電話のいずれかの番号を押して、メニューブランチの選択を強化することだと思います。 しかし、私はまだそれを必要としなかったので、括弧の外に置きます。



結論として、IVRの開発に役立つリンクをいくつか紹介します。




All Articles