IVR VS ASP.NET MVC: كيف يمكنني التوقف عن إعادة اختراع المتصفح؟

StackOverflow https://stackoverflow.com/questions/2402347

  •  18-09-2019
  •  | 
  •  

سؤال

أقدم نظام IVR للمشروع، وقررت twilio. للتعامل مع جزء الهاتف (صنع واستقبال المكالمات وإرسال واستقبال رسائل SMS). سيؤدي ذلك إلى سطح موقع الويب الخاص به مع نهاية أمامية IVR، مما يتيح للمستخدمين التنقل في الموقع باستخدام هاتف Touch-Tone.

أنا لا أستعرض جميع المحتوى - قادرة على الهاتف، فقط ما معنى له.

يرسل Twilio في المعلمات إلى عنوان URL الخاص بك على QueryString أو عبر Post، وتستجيب بمجموعة فرعية خاصة من XML التي تخبر IVR كيفية التصرف. لقد صنعت الكثير من التقدم بسرعة كبيرة من خلال ASP.NET MVC، مع معالجة محتوى XML Twilio كمنظر وتقديم بيانات الموقع إليه.

إليك ما يبدو عليه الرد على 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> 

إليك أين أنا عالق:

أحاول إضافة زر "رجوع" عالمي، ربما زر "تخطي"، زر "تكرار"، إلخ، وأنا أجد أنه في كل عرض، أنا كشف حساب الرقم المرفق ثم إذا إلى hardcoded Response.Redirect(). وبعد أعلم أن هذا سيصبح بسرعة غير قابل للإصابة بأعداد كبيرة من وجهات النظر والقوائم.

لذلك، كيف يمكنني نموذج تطبيق MVC بحيث يشبه التطبيق وأقل مثل لعبة زورق؟ كدسات من كائنات القائمة، كل منها قوائم كائنات menuitem؟ كيف يمكنني إجراء، قل "9" الخيار العالمي ل "السابق" والحصول على التطبيق يحترمه، بغض النظر عن مكان وجوده في نظام القائمة المستخدم، دون الحاجة إلى رمز لذلك في كل عرض؟

ميزة الخلفية هي مجرد أعراض من الفوضى، سيتخطأ هذا المشروع إذا لم أكن أحمل لحظة الآن لتصميمها بشكل صحيح. هل هناك .NET أطر IVR هناك أستطيع أن أفقد الأفكار؟ سيكون موضع تقدير أي مساعدة، وأنا أعلم أن هذه ليست مشكلة جديدة، إلا أنني لا أستطيع أن أبدو رأيي حول أفضل طريق لاتخاذ.

هل كانت مفيدة؟

المحلول

على الرغم من أنني لم يكن لدي أدنى فكرة حول ما تتحدث عنه، إلا أنه لن يذكر أحد Sofar أي شيء سأحصل عليه (لا تطلق النار علي إذا لم أكن في الاتجاه).

في MVC 2، يمكنك تقديم إجراءات في وجهات نظرك:

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

هذا سوف يسمي Menu العمل في الخاص بك Home تحكم مع المعلمات المحددة. ال Result من هذا Action سيتم إدراجها بعد ذلك في رأيك.
بهذه الطريقة يمكنك الحفاظ على نظافة وجهات نظرك، وجميع الأشياء القائمة الخاصة بك في مكان واحد. فقط يجب أن تضيف الخط المذكور أعلاه في كل عرض.

مرة أخرى يمكن القيام بذلك مع HtmlHelper، في بعض الأحيان في بعض الأحيان تكون الطريقة المذكورة أعلاه أسهل.

نصائح أخرى

ريكي من twilio هنا.

لسبب ما، فإن الحصول على رمز ينظم مثل زورق يبدو أن المرح بالنسبة لي ولكن في الممارسة العملية أستطيع أن أفهم كيف قد يدفع شخص مجنون!

لقد أطلقنا للتو مجموعة من برامج تعليمية جاهزة للإنتاج غير تافهة للمساعدة عندما يكون للمطورين أسئلة حول كيفية تنظيم نوع معين من التطبيقات. تعليمي واحد هو IVR بنيت باستخدام C # مع ASP.NET MVC.

إلقاء نظرة على الطريقة التي نقرر فيها هيكل الأشياء، نحن نستخدم 3 وحدات تحكم للتحكم في منطقنا:

  • ivrcontroller.cs.: تحتوي وحدة التحكم هذه على الرمز الذي يرحب بمستخدم عند الاتصال به في IVR الخاص بنا.
  • menucontroller.cs.: وحدة التحكم هذه هي المكان الذي نحدد فيه قائمة IVR المناسبة للمستخدم اعتمادا على مدخلاتهم.
  • phoneexchangeController.cs.: في وحدة التحكم هذه، لدينا منطق لإعادة توجيه مكالمة من IVR لدينا إلى رقم هاتف آخر.

كما تتطلع إلى تخصيص التجربة عن طريق إضافة شيء مثل "اضغط 9 للعودة"، إجراء تغييرات على MenuController.cs يجب أن تساعد في الحصول على هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top