IVR と Asp.net MVC:ブラウザの再発明をやめるにはどうすればよいですか?
-
18-09-2019 - |
質問
プロジェクト用に IVR システムを作成しているのですが、次のことを決定しました。 トゥイリオ 電話部分 (通話の発信と受信、SMS メッセージの送受信) を処理します。これにより、IVR フロントエンドを備えた Web サイトが表示され、ユーザーはプッシュホンを使用してサイトに移動できるようになります。
すべてのコンテンツを電話で閲覧できるようにしているわけではありません。それは当然のことです。
Twilio はクエリ文字列または POST 経由で URL にパラメータを送信し、IVR に動作方法を指示する XML の特別なサブセットで応答します。ASP.net MVC では、Twilio XML コンテンツをビューとして扱い、そこにサイトのデータをレンダリングすることで、非常に迅速にかなりの進歩を遂げました。
Twilio への応答は次のようになります。
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<Say>Hello World</Say>
<Play>http://api.twilio.com/Cowbell.mp3</Play>
</Response>
Twilio から見たメニューは次のようになります。
<?xml version="1.0" encoding="UTF-8" ?>
<Gather action="http://your_url" numdigits="1">
<Say>Press 1 to execute your_url, passing a parameter named "digits"</Say>
</Response>
ここで私が行き詰まっているのは次のとおりです。
ユニバーサル「戻る」ボタン、おそらく「スキップ」ボタン、「リピート」ボタンなどを追加しようとしていますが、各ビューで押された数字を検出し、その後if-ingしていることがわかりますハードコードされたものに Response.Redirect()
. 。多数のビューやメニューがある場合、これはすぐに維持できなくなることはわかっています。
では、MVC アプリを Zork のゲームではなくアプリケーションに近づけるにはどうすればよいでしょうか?Menu オブジェクトのスタック。それぞれに MenuItem オブジェクトのリストが含まれていますか?ユーザーがメニュー システムのどこにいても、各ビューでコードを記述することなく、たとえば「9」を「戻る」のユニバーサル オプションにしてアプリにそれを尊重させるにはどうすればよいでしょうか?
背面の機能は、今すぐ適切に設計しないと、このプロジェクトが混乱に陥ることの表れにすぎません。アイデアを調査できる .net IVR フレームワークはありますか?何か助けていただければ幸いです。これが新しい問題ではないことはわかっていますが、取るべき最適な方法がわかりません。
解決
私はほとんど、あなたが話しているのかについての手掛かりを持っていない誰もSOFAR何も言わないので、私はそれでショットを(私は方向に完全じゃないなら、私を撮影していない)。持っていますが、
MVC 2では、あなたの意見でアクションをレンダリングすることができます:
<%= Html.Action("home", "menu" , new { someparam = somevalue, someotherparam = someothervalue }) %>
これは、与えられたパラメータを使用してMenu
コントローラにHome
アクションを呼び出します。このResult
のAction
は、あなたのビューに挿入される。
あなたがきれいにあなたの意見を保つことができますこの方法、および1つの場所ですべてのメニューのもの。ただ、すべてのビューで上記の行を追加する必要があります。
ここでも同じことがHtmlHelper
年代で行うことができ、まだ時々、上記の方法だけで簡単です。
他のヒント
Twilio の Ricky です。
どういうわけか、Zork のように整理されたコードを持つことは私にとっては楽しいように思えますが、実際には、それがいかに誰かを狂わせるか理解できます。
私たちは、開発者が特定の種類のアプリケーションを構成する方法について質問がある場合に役立つ、重要な実稼働対応チュートリアルを多数公開しました。チュートリアルの 1 つは、 C# と ASP.NET MVC を使用して構築された IVR.
物事の構造をどのように決定するかを見てみると、ロジックを制御するために 3 つのコントローラーを使用しています。
- IVRコントローラー.cs:このコントローラーには、ユーザーが IVR に電話したときに歓迎するコードが含まれています。
- メニューコントローラー.cs:このコントローラーは、ユーザーの入力に応じてユーザーに適切な IVR メニューを決定する場所です。
- PhoneExchangeController.cs:このコントローラーには、IVR からの通話を別の電話番号に転送するロジックがあります。
「9 を押して戻る」などの項目を追加してエクスペリエンスをカスタマイズしたい場合は、次の変更を加えます。 MenuController.cs
そこに到達するのに役立つはずです。