Building voice, instant messaging and Twitter applications in the cloud

MAY 18, 2010
This post is part of the Who's @ Google I/O, a series of blog posts that give a closer look at developers who'll be speaking or demoing at Google I/O. This guest post is written by Adam Kalsey, Developer Evangelist at Voxeo Developer Network, who will be demoing as part of the Developer Sandbox.

Connecting to your customers via voice, SMS, or even IM allows you to reach them when they aren't at their desks. These real-time communications mediums are skyrocketing in usage and ubiquity, as what is more ubiquitous than the phone? Building an application that works over the phone or instant messaging is easier than you think.

Telephony has traditionally required complicated hardware and software or specialized programming languages. In recent years, however, web programming tools and models ranging from VoiceXML to web services APIs have made it easy for any developer to create communications services.

Companies for years have been providing customer self-service applications as Interactive Voice Response (IVR) systems as a way of boosting customer satisfaction while cutting service costs. These techniques and tools are starting to make their way into other mediums and at the same time are coming down in price, making them accessible to a whole new class of developers. This is leading to some great innovation as developers find creative ways to weave phones and text into their applications.

It's not just voice. A rising percentage of the population is just as likely to communicate over text messaging, IM, and social networks as they are to pick up the phone. APIs and customer-self service systems must adapt to the preferences of the customers they want to help. Over the next decade, 50% of the automated communications that today happens over the telephone will shift to other mediums. It's important for the applications you develop to serve your customers to
be available on the networks they choose to use.

Here's how an IVR application might work over instant messaging. Your company provides a Jabber IM address for people to contact you. Any of your customers using Google Talk can strike up a conversation. Your code intercepts their message and routes it to the right department based on the keywords used in the chat. Perhaps you even respond off hours letting people know when your agents are available or answer common questions automatically from a knowledge base.

Have you ever wanted your Google Talk number to be answered by your code? When your friends call, you'd like to pick it up, and when telemarketers call, you’d like it to go straight to voicemail. In addition to accepting calls, your application can make calls, sending appointment reminders or triggering alerts using only a few lines of code. You can even set the caller ID of the outbound call to your Google Voice number so that return calls come to you.

To demonstrate how easy it is for a developer to weave voice and text into their application, lets look at a sample application running on our Tropo cloud communications platform.

We've created a mashup for the San Francisco Bay Area Rapid Transit (BART) schedules so you can see when the next train is due to arrive at the station of your choice. Call or SMS (407) 374-9954 or send an IM to with Google Talk to try it. You can even talk to @tropobart on Twitter. Tropo treats Twitter as an IM network, sending all @mentions to your application just like an instant message would be.

Tropo works by converting phone calls, IMs, and text messages to API calls that your code works with. An incoming call or message is delivered to your code and your code tells Tropo what to say back.

The code behind this can sit in our cloud or on the web server of your choice, including Google App Engine. Other sample applications are available covering everything from simple games to directory assistance, to checking into Foursquare.

Real-time communications APIs for voice allow you to give instructions to the phone system and IM networks to answer or make calls, accept text messages, interact with your users using speech synthesis and speech recognition, set up conferences, or just about anything else you can think of and mash it up with Google technologies, like this Wave robot that adds conference calls to any Wave.

To learn more about building voice and text applications and the real-time communications APIs that are available to you, visit Voxeo in the Google I/O Developer Sandbox or visit the Voxeo blog and Tropo blog.

Posted by Adam Kalsey, Developer Evangelist at Voxeo Developer Network