Posts

Showing posts from November, 2011

Making a Reusable Framework for VoiceXML Apps

Image
In this post we will look at making the core components for our MVC voice application more reusable. In a previous post we looked at making a simple Hello World application to see how we might use MVC and Razor to develop a VoiceXML application.  This was more or less a proof of concept for a framework that has the goal of making development of VoiceXML applications easy and could rival some of the VoiceXML development tools out there. I have taken the reusable parts of this framework and put them into a class library which is open source and can be downloaded from CodePlex . I call this project VoiceModel because it replaces the ViewModel in the MVVM Design Pattern .  What is in our VoiceModel is the meta-data required to render VoiceXML to an IVR (VoiceXML Browser).  The challenge I came across was packaging up the Views developed in Razor that are also reusable across projects.  I did some research and found a solution that seems to work pretty well and is descr...

Testing Your VoiceXML App With Voxeo Prophecy

Image
In this post you will learn how to test the VoiceXML application created in a  previous post .  This voice application was created using ASP.Net MVC, Razor, and C#.  We will test using Voxeo's Prophecy IVR which is available to developers for free.  You have two options with Voxeo's Prophecy; hosted or on-premise.  Hosted is an IVR in the cloud that is hosted in several Voxeo hardened and redundant facilities that are geographically dispersed.  On-premise is an IVR that resides in your facility, or in this case your development environment right on your workstation.  In this post we will cover setting up Prophecy on your workstation. First go to Voxeo's website to download Prophecy .  After you download Prophecy run the simple install.  In most cases the defaults are just fine.  There will be a point where it asks if you want to have the Prophecy services start automatically.  For my development environment I prefer to start the s...

Using ASP.Net MVC to Create a Simple VoiceXML Application

Image
This is a continuation on a series focused on developing VoiceXML applications using ASP.Net and other Microsoft technologies. In today's post we will look at putting together a simple application using MVC 3.0 and Razor.  This assumes you have some familiarity with ASP.Net, Visual Studio 2010, and VoiceXML.  A good reference for VoiceXML can be found on Voxeo's Developer Website .  We will start out by creating the typical "Hello World" application. MVC stands for Model/View/Controller which is also a design pattern.  You can find a pretty good description of this pattern on the Microsoft Patterns & Practices Website .  Basically this pattern allows for more flexible and robust applications by separating concerns into these three areas.  The Model represents the application domain,  The View represents the information being displayed to the user, and the Controller mediates between the Model and the View by taking user input to contro...

VoiceXML and the ASP.Net Developer

This is a first in a series of blogs where I will explore using new Microsoft .Net technologies to develop voice/speech applications that will run on any IVR platform that supports VoiceXML.  In this initial blog I will take a brief look at the history of voice application development and why I think this is a viable and productive method for developing voice applications. I will also introduce you to the specific technologies I plan on using. I have been developing voice/speech applications for over 20 years and a lot has changed over these years.  The biggest change was from developing in proprietary development environments supplied by each IVR vendor to IVR platforms that supported open standards like VoiceXML and CCXML  that were controlled by the World Wide Web Consortium (W3C).  These open standards radically changed how voice application were developed, moving to more web-centric tools and promises of making every web developer a voice application develop...