Testing VoiceXML Apps In The Cloud

In a previous post I showed how easy it is to test a VoiceXML application developed using VoiceModel with a free IVR solution from Voxeo called Prophecy.  In this post I will show how you can use Voxeo's hosted IVR service which you can also test applications for free.  This hosted service resides in the Cloud and still uses the same Prophecy software to run it.  The added advantage to the hosted environment is gives you more options to try for connecting to the IVR, such as Skype, a number of SIP based phones, and regular telephone lines.  It is also a good way to test how your application will work if you plan to deploy it as a cloud based solution.  And it is easy to migrate your application from the hosted development  to production.  The other added advantage is the hosted platform is always up to the latest and greatest revision of the software which is transparent to you.  With a premise based solution you always have to check if there are new versions and apply the updates yourself.  And although Prophecy uses amazingly few resources for an IVR solution, in the hosted environment you do not have to worry about having the appropriate computing resources to run the IVR or having to deal with configuration and conflict issues.

To get started you need to have your VoiceXML application accessible  from the Internet.  You could punch a hole in any firewalls between your development environment and the Internet, allowing HTTP traffic through on the port you specify.  But I prefer to just deploy it in a hosted environment for security reasons.  You will find some tips for deploying your application in this post.  I use Amazon's EC2 Service because it is easy to spin up web server instances as you need them and you only pay for what you use.  Since it is an infrastructure as a service it also gives me a lot more flexibility on configuring the server for any unusual requirements I might have for my application.  Some shared hosting services are inflexible on more advanced configurations.

Once you have your VoiceXML application available to the Internet you can setup an account on Voxeo's Evolution Website.  Just go to this site and register.  Once you have an account you can create an application by selecting the Application Manager from the main page.

From the Application Manager you can add a new application by selecting the Add Application button at the bottom of the screen.  You will be presented with a form that looks like this.

Give your application a descriptive name.  Select the option for Voice phone calls.  You then will be presented with more options.  Select Prophecy 11, Multi-Language VoiceXML for the Voice Application Type. For the Voice URL put in the URL where you deployed your VoiceXML application, including the Controller and Action method that you used to handle the state machine in VoiceModel. You also have the option to add a phone number that is local to a variety of large cities. When the form is completed select the Create Application button.

You should see a web page as shown above that allows you to either update or delete this application.  Click on the Contact Methods tab to see how to access your application.

From the Contact Methods tab you can view all of the methods for calling into your IVR application.  I usually use Skype for testing because it is free to use and it works great.  Before you run your application for the first time you may want to open the debugger to see what is going on in your application if there are any issues.  You can open the debugger by selecting Account/Application Debugger from the main menu bar. This is not your typical debugger where you can set breakpoints, view contents of variables, etc...  It is more like a real-time trace of log information that is going on in your application.  You can also go back after the fact and retrieve the saved log by going to  Account/Files, Logs, & Reports.

You will need to send the log and related snippets of your VoiceXML to Voxeo's technical support if you need assistance from them. You request support for issues by selecting Extreme Support/Support Tickets from the main menu bar.  Or if you think the question may be beneficial to thousands of developers that use this platform then just ask it on the Voxeo Support Forums by going to Extreme Support/Voxeo Support Forums.  Before you open a support ticket make sure someone has not asked the question before in the Voxeo Support Forums.  There is a wealth of information in the Forums because Voxeo has a knowledgeable technical support staff that quickly responds to all of the requests even if they are from developers that using the platform for free.  Questions regarding issues on production application get higher priority, but you will be amazed at how fast they respond to your issues during development.

To test your application just call into the IVR system using the method of choice from the Contact Methods.  If the issue is in the MVC application I pinpoint the problem page/document from the debugger or logs and then run the page locally in a web browser in my development environment while the app is running in the Visual Studio debugger.  That way I can add breakpoints and step through the application to see what is going on.  I believe that this is one of the advantages of the VoiceModel approach where most of the business logic is in an ASP.NET MVC application which allows you to apply modern development tools like debuggers and test applications to find issues more quickly and produce higher quality applications. All of the development environments I have used by the major vendors do not supply these tools and rely on log files and traces that  are tedious for finding issues.

Happy testing.  I would love to hear from you if you have any tips or tricks for testing and debugging VoiceXML application.

Popular posts from this blog

Using Claims in ASP.NET Identity

Adding Email Confirmation to ASP.NET Identity in MVC 5

Customizing ASP.NET Identity in MVC 5