CallXML 3.0 Development GuideHome  |  Frameset Home

  Table Of Contents  |  TOC  |  Platform Overview  

Introduction to CallXML

If you have come to this documentation, then you are no doubt slavering to learn the CallXML language.  What follows will give you the broad overview of what the CallXML markup can do, and more importantly, what it cannot do. We will cover the basic building blocks of CallXML, the core theories of design, and give you an idea of where to start and where to look for the information that you will need at your fingertips when coding your applications on the Voxeo network.

What is CallXML?

CallXML is an XML based markup language used to describe the user interface of a telephone, voice over IP, or multi-media call application to a CallXML browser. A CallXML browser can then use that description to control and react to the call itself. CallXML includes:




Whats new in CallXML 3.0?

In an effort to continually improve our platform offerings, Voxeo has announced the next-generation in our CallXML markup language. That’s right, CallXML 3.0 is here! Not tempted yet? Take a look at the new features, and you will be:



CallXML compared to HTML

HTML is a markup language used to describe the user interface of a web application. The table below compares some elements from HTML to elements in CallXML:


HTML MarkupExplanationCallXML MarkupExplanation
htmlelement begins an HTML documentcallxmlelement begins an CXML document
tableelement groups other visual elements together blockelement groups other CallXML action and event elements together
imgelement displays a graphic playaudioelement plays an audio file 
a href="URL"element describes where to go when a user clicks on a web linkon event="choice:1"event element describes what to do when a user presses the '1' button on the phone



If you know HTML ...

If you know HTML but not XML, you will find that the two are very similar, although XML requires more precision when coding. Significant differences include:



Now, let's look at a comparison of a CallXML app versus a simple HTML application:

HTML Sample Code


<html>
  <body>
    <img src="AngryGrandpa.jpg"/>
  </body>
</html>


CallXML Sample Code


<?xml version="1.0" encoding="UTF-8"?>
<callxml version="3.0">
  <block>
    <prompt value="Grandpa is angry!"/>
  </block>
</callxml>


Both pages output content to the user, the only difference in the two examples above is the semantics of the markup, (duh!), and the medium of delivery...in one case, we have a visual representation of an angry grandpa delivered by a web browser, in the other instance, we have an audio file informing us that Grandpa White is mightily upset, which is delivered by the telephone.

CallXML compared to VoiceXML

VoiceXML is designed to make it easy for web developers to create voice recognition based interfaces for either telephones or computer-based applications. As such, VoiceXML is an excellent solution for voice based applications which provide access to web content and information, including:

CallXML was designed to make it easy for web developers to create applications that can interact with and control any number or type of calls, including:

Because of the natural complexity associated with dealing with voice commands, VoiceXML uses a relatively complex form / field / grammar / filled interface model in its design. In contrast, CallXML uses a more simplified block / action / event interface model, which can be easier to learn and which allows for visual design tools which directly represent CallXML markup as simple flowchart-like user interfaces.

How it Works

Creating a telephony application on the Voxeo platform is easier than you might think. Sticking with our HTML versus CallXML analogy, lets look at how HTML pages are served up, and compare it to how CallXML pages get executed by your callers. When designing an HTML page, like our example above, we first author the document, and then upload it to our webserver so that it is publicly available for the whole world to see. CallXML is no different; content must reside on a public webserver so that our servers can see it.

CallXML works with the same general principles, but with a slightly different spin, as we are using the telephone as the browser. The first difference is that while webhosts commonly serve up HTML, there aren't that many folks in the telephony game, so you will have to specifcally associate a phone number from a voice gateway, (us), and map it to the URL where your CallXML page resides. This is easily accomplished in the Voxeo Account Manager, (see Lesson 1 for more information on mapping applications in the VAM).

The next point is in how documents are fetched and executed. When a user clicks a link to our 'angry grandpa' HTML page, a request is sent to the webserver hosting the document, and the HTML page will then load the page in the user's web browser with the accompanying picture of a really angry 'golden ager'. Who happens to be holding a pair of .45's.

Again, CallXML works on the same principles, but remember that we are using the telephone as our web browser. Instead of clicking on a link, a user will dial the number pointing to your application, which is the equivalent of a hyperlink in HTML. When this number is dialed, it tells our servers to fetch the document that has been associated with that particular phone number or PIN code. Assuming that the code is well formed XML, and that the mapping has no typos, then our AngryGrandpa.xml file will load and execute, thus outputting the text to speech message to the caller.

What Will We Learn?

The Voxeo CallXML3.0 Guide is broken down in a pretty simple format. Preceding each hands-on, how-to module, you will find a short introduction that explains the principles of each Lesson in detail.

By the time you have completed the Lessons in the Voxeo CallXML guide, you should have a solid handle on the following topics:

Also included in this reference manual are sections that will clue you in on the best practices that the Pros use, a treatise on debugging your CallXML applications, and more stuff that I haven't written yet. Stay tuned...





  ANNOTATIONS: EXISTING POSTS
0 posts - click the button below to add a note to this page

login
  Table Of Contents  |  TOC  |  Platform Overview  

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