私はプロジェクト用に 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 フレームワークはありますか? これが新しい問題ではないことはわかっていますが、最善の道を歩むことができないようです。