主な「ビルディングブロック」と音声メニューの作成段階を選び出します。
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です->ここでは、営業時間中はIVR_Businessというブロックに行き、営業時間外と週末はIVR_NonBusinessに行きます。 それらについては少し後で。
<!-曜日: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 >
</ブロック>
</フォーム>
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テスト週末の発表を担当するXMLブロックは次のようになります。
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
<!-営業時間外->
<フォーム ID = "IVR_NonBusiness" >
<ブロック>
<プロンプト> <audio src = "flash0:/test/ivr2.wav" /> </プロンプト>
</ブロック>
</フォーム>
4.内線番号へのルーティング
ここでは、スキームに従って、短いあいさつ(ivr1)があり、指定された内線番号に通話を転送しています。 この番号は、電話番号、またはCUCM(Hunt Pilot)グループ番号のいずれかです。 私の場合、電話はアドレス電話// EXTを使用して転送されましたが、インターネット上ではtel:// EXTまたはsip:// EXTという形式のバリエーションがありました。 したがって、あなたとは少し違うかもしれません。
<!-営業時間->必要に応じて、デバッグvoipアプリケーションvxmlがデバッグモードを有効にすると、mycall変数で呼び出し結果コードをキャッチできます。 transferaudioパラメーターにも注意してください。これは、123番が電話に出るまで再生される音声ファイルです。
<フォーム 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 >
</記入済み>
</転送>
</フォーム>
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の開発に役立つリンクをいくつか紹介します。
- www.cisco.com -Ciscoのホワイトペーパー-VoiceXMLプログラマーズガイド
- www.vxml.org-多くのチュートリアルがありますが、これはシスコの実装ではなく、 Voxeoの実装です
- www.w3.org -VoiceXML 3.0言語仕様