VoiceXML 2.1 Development Guide Home  |  Frameset Home

  Final Notes  |  TOC  |  Persistent Logging  

Appendix A: Voxeo's Best Practices Guide

Not sure which methods you should use when writing your application? This is the place to start. This guide will cover not just the tricks of the trade, but will also provide in-depth explanations of why some methods are better suited for your project than others. As this document will *always* be a 'work in progress', we invite you to submit any cool tricks, and code samples that you would like to share to the voxeo support team.


Overview




  ANNOTATIONS: EXISTING POSTS
liljpy
1/29/2009 1:13 PM (EST)
I'm interested in adding/calling web services from a VXML app. I have a web service I'm creating and need to know some best practices for setting up the WSDL file for responses so VXML knows it's a complex type and how to xpath to the correct variable.  Anyone have any insight? 
voxeoblehn
1/29/2009 1:46 PM (EST)
Hi Joe,

When working with web services, particularly WSDL's, I did want to point out that the Voxeo SOAP client is really in it's infancy, and at this point is nowhere near ready for production-grade application deployments. We are aware of several idiosyncrasies and defects with the current implementation, and for us to continue to see you go down this path would likely be doing you a disservice, as it is my opinion that eventually, you will hit a brick wall in terms of what the Voxeo-SOAP offering can do. I'd also like to bring to light the fact that SOAP isn't really part of the VXML spec yet, (assuming that it ever makes the cut) and you may well be developing an application that will eventually be platform incompatible, and could requite re-engineering in the future.

Having said that, my personal recommendation would be to use simple XML/HTTP (e.g. REST) data structures.  These are much, much easier to implement.  I have seen many developers/customers struggle with SOAP, and then sing the praises when they finally try XML.  Furthermore, XML data is directly supported within both VoiceXML (via the <data> tag) and CCXML (in Prophecy 8 as a return from a <send>).

I have included the link for the <data> element below:

http://docs.voxeo.com/voicexml/2.0/data.htm

Please let us know if you have any further questions.

Regards,

Brian Lehnen
Voxeo Support
ekramer
2/12/2009 9:25 AM (EST)
Brian,
You guys rock.  Most other vendors I work with wouldn't be so straightforward and honest.  I appreciate that you want us to purposefully cross the line into becoming beta testers on something like this.

Cheers,
    Eric Kramer
    Nationwide Children's Hospital
    Columbus, Ohio

voxeoJason
2/12/2009 9:50 AM (EST)
Hi Eric,

Thanks for the praise!  If you want any additional information or have any other questions, please let us know and we will retrieve it for you as soon as possible.


Cheers,

Jason Sewell
Voxeo Support
dragondad
7/25/2009 6:46 PM (EDT)
  We are looking for the right approach to convert our mostly static vxml script to be dynamically generated vxml script. And really like to hear the opinions from this very nice community.
  So far, there are two major approach was presented. One is JSP based, another one is servlet based, both will share some common Java bean function.
  Here it is my questions.
1. what is the industry wide recommended approach
2. what is the pro and con for different approaches
3. is that a good idea to build a seperate vxml tag class, so each vxml tag will be created from the function call (instead of embedded in the code)
4. should we consider the pure object oriented class based design as the most important feature
5. what is the right time to consider the MVC approach, which is quite hard to be implemented as JSP, or please give us some hint of how to implement the MVC using JSP.
  Thanks in advance.
voxeoJeffK
7/26/2009 12:26 AM (EDT)
Hello,

There are indeed many excellent Java programmers working with IVR design that read these forums, but I might also point out that you may consider making inquiries among Java-specific forums as well. Since dynamically generating VXML can be considered very similar to generating HTML (or any XML), you may find additional insight from the great quantity of knowledge about Java based web and XML programming.

Regards,
Jeff Kustermann
Voxeo Support
mqce3
3/28/2010 11:45 AM (EDT)
We have Struts 1.1 apps running in Tomcat 5.0, which are currently called from IVR Designer. I assume we could call these from a vxml app. The only obstacle is that the Tomcat URL is internal and obviously not accessible from Voxeo.
voxeoblehn
3/28/2010 7:27 PM (EDT)
Hello,

Yes, if you are looking to host your application with us, the server side files will need to be available from an external URL as we will not host them - unless you have a managed server with us. If the server side apps are available externally to us, we can certainly fetch to them, however the script execution must be done on your own servers and return valid XML back to us.

Having said that, you may want to look into our newest platform; Tropo. It's a full functioning environment which allows you to write applications in your favorite programming languages, including Javascript. On this platform you can host your server side applications with us as well as benefit from the typical features found in our Evolution XML based environment i.e. free outbound dialing, IM, SMS, and local test DID's etc.

It's free to sign up for an account and might be more in line with what you are already doing. You can read more about this platform at Tropo.com.

Please let us know if you have any further questions or concerns.

Best Regards,

Brian Lehnen
Voxeo Support
sanjay86
12/21/2012 8:10 AM (EST)
Hi,

I want to create a pause and play button in vxml.I need some help as i want to resume the content from the point where i have paused the content.Pla help!!!!!!!!!!!

or it is not possible in VXML......
voxeoshanesmith
12/23/2012 8:51 AM (EST)
Hi,

There are a couple of different ways you could accomplish this, depending on your need. The easiest way (and the most common) is to use the "mark" VoiceXML 2.1 extension. The details on this element are located here:

http://www.vxml.org/mark.htm

We also have a tutorial detailing how to use it here:

http://www.vxml.org/t_21.6.htm

Now, that only accomplishes half the battle, allowing you to know exactly when during prompt playback caller speech begins. The other half becomes a bit trickier.

1. Assuming you're only going to restart from the beginning of any sentence, you can make your long prompt actually a series of several shorter prompts, one for each sentence you are prompting the caller. Then based on the mark time, you could programmatically reprompt excluding the wav's that the caller already heard.

2. The other option would be to do some heavy lifting on the server-side, and dynamically generate each audio file by trimming off the front of it whatever the caller has already listened to.

I hope that gives you a good idea on how to get started implementing this. If you have any other questions, please do not hesitate to contact us.

Regards,
Shane

login
  Final Notes  |  TOC  |  Persistent Logging  

© 2013 Voxeo Corporation  |  Voxeo IVR  |  VoiceXML & CCXML IVR Developer Site