Voxeo: Telephony Meets the Internet : Make and Receive Phone Calls from ColdFusion

 
Jan 28, 2002
By Eron Cohen, Staff Writer

I've been interested in telephony for many years. I've dabbled in everything from old-fashioned PBXs to computer based phone systems like those from AltiGen, but nothing I've seen or used has impressed me so much as Voxeo. It is simple elegance at its best and its power is limitless. Every time I think about it, I think of another application that could be created based on Voxeo.

Voxeo is a way of connecting a phone system with a webserver. To the uninitiated, this may sound like a really weird thing to do-until you think about it. What if your company's telephone system could be connected to your intranet? There would be awesome benefits. First of all, you've just eliminated one more database that you need to maintain. Wouldn't you love it if you could create one account on the webserver for a new employee and their voice mail and extension was created with it? That's just the beginning. With Voxeo's system, you can create a fully customized phone system, with voice mail, speech recognition and more.

You could also use it for your company's technical support department. A customer dials in and types in an account number using a telephone keypad. The bot you've written cruises out to the webserver's database and looks up the customer's account. At this point it sees that his free technical support period has expired and prompts him for a credit card. The credit card is processed via your Cybercash account using ColdFusion. After that, the customer is transferred to the next available agent's line. When the support person picks up the phone, their screen already has the customer's record displayed. Wow!

Not only is Voxeo fun to talk about, but it's pretty easy to use. Even better: developers can create Voxeo applications for free-complete with 24 hour a day telephone and email tech support that's so good, you'll wish that Voxeo made ALL of the software you use. Get this: I called them at 11:30pm on a Sunday night. I really expected a recording telling me to get a life. Nope. Within about 3 minutes I was talking to a friendly representative who was knowledgeable and attitude-free-even though the cause of the problem I was calling about was 100% my mistake.

Coding applications for Voxeo is done using CallXML and VoiceXML. Obviously, you're going to need to know something about XML in order to start coding--but this is another plus. If you've been looking for an excuse to learn XML, here it is. (I've even included my own example of some simple CallXML code at the end of this article.) And guess what: Voxeo provides some very good tutorials on general XML and in CallXML and VoiceXML, which are available at http://community.voxeo.com. The tutorials also include topics like how to integrate your favorite web application server software. Of course, mine happens to be ColdFusion, but they also have some tutorials and open source code in ASP, PHP, JSP and more. Really, you just need to make sure that your application server can create standard XML.

You'll need to setup a free account on http://community.voxeo.com in order to get started. They will immediately provide you with a developer telephone number after you sign up. You can choose from a variety of exchanges throughout the United States of America or a 1-800 number. The idea is that you map a web page on your server to that assigned telephone number. For instance, let's say I wrote some code to act like a simple answering machine. The main code for the application was in a file called my_answering_machine.cfm (Although it's a ColdFusion file, in this case, ColdFusion is going to be used to generate an XML file). In my account on the Voxeo site, I specify that when someone dials the assigned telephone number, Voxeo should access my_answering_machine.cfm on my web server. From there, it's all about getting the XML scripting to do what you want and need.

But wait, there's another way to trigger your application-this adds ten extra layers of "COOL" to the possibilities. You can request a token from Voxeo, which is used to trigger your application using an HTTP request. In other words, you can make an event on your web server trigger a call. For instance, you could use Voxeo to write a service that calls you to remind you of upcoming events and responsibilities. Since one of the tags in the CallXML spec allows text to speech, it could even call you and actually read the text of the reminder to you on the phone. Note that this service requires you to provide a credit card. As a developer, you will be allowed to make $100 worth of free server-triggered outbound phone calls per month (that's really quite a generous amount of free calls!)

The CallXML spec basically includes the ability to code typical telephone system operations: play audio prompts (in the form of WAV files that you keep on your server), recognize digits that are keyed in on a telephone keypad, dial numbers, conference lines together, and hang-up. For an example of some working code, see Listing 1. The main purpose of the VoiceXML specification is to allow for speech recognition. That's right-you can even let people "say" their credit card number. Voxeo uses the standard Nuance engine to accomplish this.

All this sounds expensive, right? Well, it's really not. At this writing, their pricing for deployed applications starts at a low cost per minute. There are no setup fees, so you only pay for what you need. When you're ready to deploy your application, you set up an account with Voxeo by contacting their sales department.

CallXML and VoiceXML are more than just popular buzzwords in the press right now. The day of the phone-enabled web server is truly upon us. Voxeo is a terrific way for ColdFusion programmers to jump on board for free. If you are even remotely interested in the convergence of the telephone and web server, I recommend taking a look; with free developer accounts, there's nothing to stop you from trying your hand at this excellent technology.

References:

Voxeo Corporation
Corporate Headquarters
100 Enterprise Way
Scotts Valley, CA 95066
Phone: (831) 439-5130
Fax: (831) 439-0883
http://www.voxeo.com
Listing 1:

The following is an excerpt of Voxeo CallXML code that would be used as part of a simple answering machine. This snippet first plays a greeting with the "playaudio" tag and then records a voice-mail message and emails it as a WAV file by using the "recordaudio" tag. The way the code is written, if the # key is pressed or if the message exceeds the Maxtime or Maxsilence setting, the message is sent. Anything between the <TEXT> tags is read to the caller by the text-to-speech engine.

<?xml version="1.0" encoding="UTF-8" ?>

<callxml>

  <block>
       
      <playaudio             
        value="http://www.server.com/greet.wav"/>
  
<recordaudio format="audio/wav"
  value="mailto:eron_cohen@yahoo.com"    
  termdigits="#" maxtime="60s"    
  maxsilence="10s"  beep="TRUE"/>
 
 <ontermdigit value="#">
   <text>
   Message Sent.
   </text>
 </ontermdigit>
 
 <onmaxtime>
   <text> 
	  You have exceeded the Maximum
    Recording time.  Message Sent.
   </text> 
 </onmaxtime>
 
 <onmaxsilence>
   <text> 
    You have been silent for too      
    long. Message sent.
   </text> 
 </onmaxsilence>

  </block>

</callxml>

Privacy | FAQ | Site Map | About | Guidelines | Contact | Advertising | What is ColdFusion?
House of Fusion | ColdFusion Jobs | Blog of Fusion | AHP Hosting