4

私はプロジェクト用に IVR システムを作成しており、電話部分 (通話の発信と受信、SMS メッセージの送受信) をTwilioで処理することにしました。これにより、IVR フロントエンドを備えた Web サイトが表示され、ユーザーはプッシュホンを使用してサイトをナビゲートできます。

すべてのコンテンツを電話で閲覧できるようにしているわけではありません。

Twilio はクエリ文字列または POST 経由でパラメーターを URL に送信し、IVR に動作方法を指示する XML の特別なサブセットで応答します。私は、Twilio XML コンテンツをビューとして扱い、サイトのデータをビューにレンダリングすることで、ASP.net MVC で非常に迅速に多くの進歩を遂げました。

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()た . これは、多数のビューとメニューですぐに維持できなくなることを私は知っています。

では、Zork のゲームではなくアプリケーションのように MVC アプリをモデル化するにはどうすればよいでしょうか? それぞれが MenuItem オブジェクトのリストを持つ Menu オブジェクトのスタック? 「戻る」のユニバーサルオプションを「9」と言って、ユーザーがメニューシステムのどこにいても、各ビューでコーディングすることなく、アプリにそれを尊重させるにはどうすればよいですか?

背面の機能は、今すぐ適切に設計しないと、このプロジェクトが混沌に陥る兆候にすぎません。アイデアを調べることができる .net IVR フレームワークはありますか? これが新しい問題ではないことはわかっていますが、最善の道を歩むことができないようです。

4

2 に答える 2

2

私はあなたが何を話しているのかほとんど手がかりがありませんが、誰も何も言わなかったので、私はそれを撃ちます(私がまったくその方向にいない場合は私を撃たないでください).

MVC 2 では、ビューでアクションをレンダリングできます。

<%= Html.Action("home", "menu" , new { someparam = somevalue, someotherparam = someothervalue }) %>

これにより、指定されたパラメーターを使用してコントローラーのMenuアクションが呼び出されます。HomeこのResultActionがビューに挿入されます。
このようにして、ビューをきれいに保ち、すべてのメニューを 1 か所にまとめることができます。すべてのビューに上記の行を追加するだけです。

'sでも同じことができますがHtmlHelper、上記の方法の方が簡単な場合もあります。

于 2010-03-09T07:56:41.940 に答える
0

Twilio の Ricky です。

どういうわけか、Zork のように編成されたコードを持つことは私には楽しいように思えますが、実際には、それがいかに誰かを夢中にさせるかを理解できます!

開発者が特定の種類のアプリケーションを構成する方法について質問がある場合に役立つ、重要で本番環境に対応した一連のチュートリアルを開始しました。1 つのチュートリアルは、C# と ASP.NET MVC を使用して構築された IVRです。

物事をどのように構造化するかを見てみましょう。ロジックを制御するために 3 つのコントローラーを使用しています。

  • IVRController.cs : このコントローラーには、ユーザーが IVR を呼び出すときにユーザーを歓迎するコードが含まれています。
  • MenuController.cs : このコントローラーは、ユーザーの入力に応じて、ユーザーに適切な IVR メニューを決定する場所です。
  • PhoneExchangeController.cs : このコントローラーには、通話を IVR から別の電話番号に転送するロジックがあります。

「Press 9 to go back」などを追加してエクスペリエンスをカスタマイズしようとしている場合は、変更を加えることMenuController.csで目的を達成できます。

于 2016-04-11T11:37:22.420 に答える