We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

Can Macromedia Flash be used with voiceXML?

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
julesxdelta
Posts: 3
Joined: Sun Aug 24, 2003 1:02 am
Location: na
Contact:

Can Macromedia Flash be used with voiceXML?

Post by julesxdelta »

I'd like to use flash in conjunction with voicexml. I was told this was possible via javascript. I've also seen an example on another platform where flash is being used on some site with vxml. I don't necessarily need to see the flash file visually (at least not at first) but do need to use its functionality. Is this doable and if so how would this be done with the plum platform?

Thanks!

Julian

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

Re: flash support for IVR platform use

Post by support »

It is unclear what you mean by using flash with voice XML; please give a specific IVR example of something you are trying to accomplish given the 2 technologies. Here are some other bits of information you may find relevant to your question:

Macromedia Flash is a visual interface; It is primarily used for displaying information or posting data to web servers via the internet. Voice XML, however has no interface you can see; It is used for telephony and can only be heard, not seen. So the confusion arises in that Flash and voice XML are both user interfaces. The difference between them is that one can be heard, and the other can be seen. So its difficult to understand what is meant by "using flash with vxml".

Traditionally, web services are structured in the following manner:

user interface 1 <-------> Backend Logic (middleware) <----> Database(s)
user interface 2
.
.
.
user interface N


In the above diagram, there are 3 principal components:
1) user interface: This can actually consist of more than 1 interface.
For example, voice mail services allow the caller to save, delete or listen to messages over the phone. This is a phone interface because it allows the caller to interact with the IVR system using her/his voice and touch tone (DTMF) input. Some voice mail services might also allow you to check voicemail messages from the internet (using technologies such as html, flash, java, etc), as well as the phone (vxml). In this case, the person has 2 interfaces available from which they might review their messages and save or delete them. Notice in the above diagram that the different user interfaces dont communicate with each other, rather each UI sends and receives information using the middleware component. (this is the source of confusion regarding flash with vxml comes in; the 2 technologies are used to create different kinds of user interfaces and dont communicate directly.)

2)Backend Logic (Middleware): This contains the business logic for each IVR application, and provides the implementation for the majority of the algorithms that govern how an IVR application works internally.

3)Database: provides the persistent storage mechanism for the application. Returning to the voicemail example, the list of messages for each user along with all other pertinent information stored in the IVR application instance is located in at least 1 database.

Hopefully this will shed some insight as to how you might further refine your question, if you still have one.
Last edited by support on Fri Feb 26, 2010 10:29 am, edited 2 times in total.

julesxdelta
Posts: 3
Joined: Sun Aug 24, 2003 1:02 am
Location: na
Contact:

flash support

Post by julesxdelta »

I'm using flash in conjunction with the database-side (or middle-ware) to calculate a request made of it from voicexml. Once the calculation has been made the results will be passed back to the voicexml browser to speak the result.

Coldfusion is eventually going to be used, however right now I'd like to use javascript to demonstrate to the same functionality (pass data to flash on the web server, flash then does its thing without it having to need any help because the data is all loaded into the flash file itself, so it just loops waiting for data, performing a task, sending results back). The user would only see the flash movie (and it results) in a regular browser of course, but it would appear seemless because if they had a cell phone the number would be on the page along with the flash file.

Thanks.

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

Flash Communication Server Support with IVR platfrom

Post by support »

If by "flash support" you mean using the Flash Communication Server as an IVR application server in conjunction with ECMAScript and VoiceXML, then, yes, the Plum Voice Platform can work with any IVR application server.

It may be that you will need to modify your server side IVR code to return results in a way that are compatible with ECMAScript and VoiceXML. For example, the Plum Voice Platform does not support all audio formats. It is unlikely that you will be able to reuse the flash code designed for web browers without significant modification.

Of course, there is no support in the Plum Voice Platform for Flash as a client side format. If you are relying on the "data in the flash file", you may be in for more work. We know of no simple way to extract data directly out of a flash file from ECMAScript. If you do, we would be interested in learning more.

The standard method to create dynamic VoiceXML is to use SUBMIT to post the request to your IVR application server, be it Flash Server or Cold Fusion or whatever, and have that generate and return the appropriate VoiceXML. There is often little or no need for ECMAScript using this architecture, since nearly all of the logic is handled on the server side. The Plum Voice Platform then needs to know very little or nothing at all about the back end - all it needs to get is VoiceXML that it knows how to render, rather than ECMAScript code which may make arbitrary requests to other data servers.

Keep in mind that every SUBMIT request generated by VoiceXML must return valid VoiceXML from the application server. Whatever it is that happens on the application server, the end result must be VoiceXML (with ECMAScript as appropriate). Those are the only ways the Plum IVR platform knows how to deal with.
Last edited by support on Fri Feb 26, 2010 10:31 am, edited 2 times in total.

julesxdelta
Posts: 3
Joined: Sun Aug 24, 2003 1:02 am
Location: na
Contact:

changing the approach

Post by julesxdelta »

Here is the flash game concept I'm trying out if you've watched the show "The Price is Right" it should be familiar:

The contestant(caller) is shown a small, two-digit prize and is asked to give a bid on it. (The value of the small prizes increases from the first prize to the last).
For each dollar the contestant's bid is higher or lower than the actual prize, a mountain climber moves up a scale towards the top of the mountain. If the contestant's bid is exactly right, the mountain climber stays put. The mountain climber can only take 25 steps before he falls off the mountain, so the contestant can not be off by a total more than $25 with his/her bids on all three prizes. If the mountain climber has not fallen off after the third prize is revealed, the contestant wins a bonus prize.

As the mountain climber moves up the mountain, a yodeling song is played.(This will loop when the climber is moving up the mountain until a bell dings indicating the new stop position, the caller has guessed enough so that the climber won't pass the $25 mark or the climber has fallen off the mountain).

Now, the entire game by itself is really easy to do in flash by itself. I'm trying to break up the script functions in asp to pass data back and forth so that the voicexml acts when it should. For example, when flash loads at the beginning it will randomly pick 3 prizes (jpeg images) with their prices then load the least expensive price to be recognized by vxml first, then the next expensive then the most expensive for the caller to guess at. (The rules for the game can be explained here in vxml and some start command for everthing...I can do this part fine).

If the contestant's bid is exactly right, the mountain climber stays put. Voicexml states "correct" then moves to the next item. If the bid is wrong the climber moves up the mountain "x" number of places. "X" being the difference between the correct price and the incorrect guess. Then the vxml states the new position. Vxml says "wrong" and sends whatever the reponse was back (server request) to flash via asp to calculate, move the climber then pass back new position info for vxml to state again.

This is what's going on in a nutshell. Its the when and where the asp fits in I need help on. The asp writing to a text file that the flash movie is reading values from is one approach. However is it as simple as just reversing this process to send data back through to the vxml or is it more to it?

By the way I looked at about 7 voicexml books and while the covers said examples of asp were included only 1 truly illustrated this but it was asp.net and how to create a vxml file with xslt. In the asp books I was looking for the difference between a single asp file containing all of your functions and when you would break functions up into smaller asp files. I'm still looking and going back over stuff though.

Thanks.

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

ASP directly return VXML on IVR platform

Post by support »

The simplest structure is for the ASP to directly return VXML on the IVR platform.

Post Reply