Frage

Ich mache ein IVR-System für ein Projekt und haben beschlossen, auf Twilio das Telefon zu handhaben Bereich (Herstellung und Anrufe empfangen, das Senden und Empfangen von SMS-Nachrichten). Dies wird eine Website mit einer IVR-Front-End-Oberfläche, so dass Anwender der Website mit ihrem Tonwahltelefon navigieren.

Ich mache nicht den ganzen Inhalt browse-able über das Telefon, genau das, was Sinn macht.

Twilio sendet in Parameter an Ihre URL auf dem Abfragezeichenfolgeflag oder per Post, und Sie reagieren mit einer speziellen Untergruppe von XML, die die IVR sagt, wie zu handeln. Ich habe viele Fortschritte sehr schnell mit ASP.net MVC, die Twilio XML-Inhalte als Ansicht Behandlung und Rendering der Website Daten zu.

Hier ist, was eine Antwort auf Twilio wie folgt aussieht:

<?xml version="1.0" encoding="UTF-8" ?> 
<Response>
<Say>Hello World</Say>
<Play>http://api.twilio.com/Cowbell.mp3</Play>
</Response> 

Hier ist, was ein Menü wie zu Twilio aussieht:

<?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> 

Hier ist, wo ich bin fest:

Ich versuche, eine Universal-Schaltfläche „Zurück“ hinzufügen, vielleicht einen Button „überspringen“, eine „Wiederholung“ Taste, usw., und ich, dass auf jeder Ansicht zu finden, ich bin die Ziffer gedrückt zu erfassen und dann wenn-ing zu einem hartkodierte Response.Redirect(). Ich weiß, das schnell für eine große Anzahl von Ansichten und Menüs wartbaren werden wird.

Also, wie kann ich das MVC-app modellieren, so dass es eher wie eine Anwendung ist und weniger wie ein Spiel von Zork? Stapel von Menüobjekten, die jeweils mit Listen von MenuItem Objekten? Wie kann ich, sagen Sie „9“ die universelle Option für „zurück“ und hat die App es respektieren, unabhängig davon, wo im Menüsystem der Benutzer, ohne in jeder Ansicht für sie codieren mit?

Die Back-Funktion ist nur ein Symptom für das Chaos dieses Projekt in Schritt, wenn ich jetzt einen Moment Zeit nehmen Sie es nicht richtig zu entwerfen. Gibt es da draußen .net IVR-Frameworks kann ich für Ideen inspizieren? Jede mögliche Hilfe würde geschätzt, ich weiß, das ist kein Roman Problem, ich kann einfach nicht scheint, meinen Kopf zu nehmen um den besten Weg zu erhalten.

War es hilfreich?

Lösung

Obwohl ich fast keine Ahnung haben, was Sie sprechen, da niemand sofar etwas gesagt werde ich einen Schuss auf ihn haben (mich nicht schießen, wenn ich bin total nicht in die Richtung).

In MVC 2 Sie Aktionen in Ihren Ansichten machen können:

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

Dies würde die Menu Aktion in Ihrem Home Controller mit den gegebenen Parametern aufrufen. Die Result dieser Action würde dann in der Ansicht eingefügt werden.
So können Sie Ihre Ansichten sauber, und alle Menüs Sachen an einem Ort halten. Sie müssen nur die oben angegebene Zeile in jeder Ansicht hinzuzufügen.

Auch hier das gleiche kann mit HtmlHelper geschähe, doch manchmal die oben genannte Art und Weise ist nur einfacher.

Andere Tipps

Ricky von Twilio hier.

Aus irgendeinem Grund Code, der wie Zork organisiert ist klingt wie Spaß für mich, aber in der Praxis kann ich verstehen, wie, dass jemand verrückt machen kann!

Wir haben gerade eine Reihe von nicht-trivial, Produktion bereit Tutorials zu helfen, wenn Entwickler haben Fragen darüber, wie eine bestimmte Art von Anwendung zu organisieren. Ein Tutorial ist ein IVR gebaut unter Verwendung von C # mit ASP.NET MVC .

einen Blick nehmen, wie wir entscheiden, Dinge zu strukturieren, verwenden wir 3 Controller unsere Logik zu steuern:

  • IVRController.cs . Dieser Controller enthält den Code, der einen Benutzer begrüßt, wenn sie in unsere IVR rufen
  • MenuController.cs . Dieser Controller ist, wo wir das entsprechende IVR-Menü für den Benutzer je nach ihren Eingängen
  • bestimmen
  • PhoneExchangeController.cs . In diesem Controller haben wir die Logik einen Anruf von unserem IVR an eine andere Rufnummer weiterleiten

Wie Sie suchen die Erfahrung zu gestalten etwas wie das Hinzufügen von „9 Drücken Sie, um zurückgehen“, sollten Änderungen an MenuController.cs helfen, dorthin zu gelangen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top