49
VoiceCon - Orlando, FL - March 31st 2009 RJ Auburn CTO [email protected] Creating Voice Mashups with Tropo

Voicecon - Mashups with Tropo.com

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Voicecon - Mashups with Tropo.com

VoiceCon - Orlando, FL - March 31st 2009

RJ [email protected]

Creating Voice Mashups with Tropo

Page 2: Voicecon - Mashups with Tropo.com

Telephony

Page 3: Voicecon - Mashups with Tropo.com

Sucks

Page 4: Voicecon - Mashups with Tropo.com

Expensive

Page 5: Voicecon - Mashups with Tropo.com

Complex

Page 6: Voicecon - Mashups with Tropo.com

This is not how it should be...

Page 7: Voicecon - Mashups with Tropo.com

Simple

Page 8: Voicecon - Mashups with Tropo.com

Ubiquitous

Page 9: Voicecon - Mashups with Tropo.com

Open

Page 10: Voicecon - Mashups with Tropo.com

What Does It Look Like?

Page 11: Voicecon - Mashups with Tropo.com

Application

Platform

API XML Tools

Page 12: Voicecon - Mashups with Tropo.com

ApplicationApplication

Platform

API XML Tools

Page 13: Voicecon - Mashups with Tropo.com

Application

Platform

API XML Tools

Page 14: Voicecon - Mashups with Tropo.com

So...

Page 15: Voicecon - Mashups with Tropo.com

Religion

Page 16: Voicecon - Mashups with Tropo.com

XML

Page 17: Voicecon - Mashups with Tropo.com

VoiceXML and CCXML

Page 18: Voicecon - Mashups with Tropo.com

Big Enterprise

Page 19: Voicecon - Mashups with Tropo.com

So... How about API’s...

Page 20: Voicecon - Mashups with Tropo.com

Java

Page 21: Voicecon - Mashups with Tropo.com

© Voxeo Corporation

SIP Servlets

- Standard Java based API for writing SIP applications.

- 1.0 standardized as JSR-116. - 1.1 just released as JSR-289- Extends the HTTP Servlet model to support SIP and telephony applications

- http://www.sipservlet.com/- Supported by a large number of application servers including Oracle (BEA), IBM, Sun, Voxeo.

21

Page 22: Voicecon - Mashups with Tropo.com

So. We Have Java...

Page 23: Voicecon - Mashups with Tropo.com

But is it Simple?

Page 24: Voicecon - Mashups with Tropo.com

Is it cool?

Page 25: Voicecon - Mashups with Tropo.com

Well Not Exactly...

Page 26: Voicecon - Mashups with Tropo.com

So...

Page 27: Voicecon - Mashups with Tropo.com

Tropo.com

Page 28: Voicecon - Mashups with Tropo.com

answer();say("Hello, world!");hangup();

Tropo is Simple

Page 29: Voicecon - Mashups with Tropo.com

Ruby

Speaks YOUR Language

Page 30: Voicecon - Mashups with Tropo.com

Simple to Learn

•! answer

•! redirect

•! reject

•! call

•! transfer

•! hangup

•! ask

•! say

•! record

•! log

•! wait

•! default

Page 31: Voicecon - Mashups with Tropo.com

Simple to Deploy

•Hosted offering •Accessible via

•PSTN numbers•SIP URI•Direct Skype•iNum – Gizmo5, etc

•Inbound calling•Outbound calling•70,000 port capacity

Page 32: Voicecon - Mashups with Tropo.com

Simple Business Model

•No contracts•No setup costs•No commitment•Costs just 3 cents per minute•Credit card or paypal charge in $50 blocks•Five minutes from sign-up to live deployment

+ = GO

Page 33: Voicecon - Mashups with Tropo.com

What are the Ingredients ?

Page 34: Voicecon - Mashups with Tropo.com

SIP Servlets(JSR289)

Media Control(JSR309)

SIPMethod Prophecy

Scripting(JSR223)

Rhino, Jython, Jruby,Groovy, Quercus etc...

Applications

Java

Page 35: Voicecon - Mashups with Tropo.com

How about some code?

Page 36: Voicecon - Mashups with Tropo.com

T.1: Hello World

JavaScript and PHP

answer();

say("Hello, world!");

hangup();

Ruby

answer

say "Hello, world!”

hangup

Groovy

answer()

say 'Hello, world!'

hangup()

Python

answer()

say("Hello, world !")

hangup()

Page 37: Voicecon - Mashups with Tropo.com

// -----------// asking for input// -----------

answer();

result=ask( "Hi. For sales, press 1. For support, press 2.", {choices:"1, 2"} );

if (result.name=='choice'){ if (result.value=="1") { say( "sales is not available right now.") } if (result.value=="2") { say( "support is currently on the other line." ) }}

hangup();

Asking for Input - JavaScript

Page 38: Voicecon - Mashups with Tropo.com

# Using speech input instead of touch-tone

answer()

result = ask("Hi. For sales, say sales. For support, say support",{'choices':"sales, support", 'repeat':3})

if (result.name == 'choice'): if (result.value == "sales"): say("Sales is not available right now") if (result.value == "support"): say("Support is currently on the other line.")

hangup()

Using ASR - Python

Page 39: Voicecon - Mashups with Tropo.com

answer();

result=ask( "For sales, just say sales or press 1. For support, say support or press 2.", { choices:"sales( 1, sales), support( 2, support)", repeat:3, onBadChoice: function() { say("I'm sorry, I didn't understand what you said.") } } );

if (result.name=='choice'){ if (result.value=="sales") { say( "Ok, let me transfer you to sales." ); transfer( "14075551111"); } if (result.value=="support") { say( "Sure, let me get support. Please hold." ); transfer( "14085552222"); }}

Using ASR and DTMF - JavaScript

Page 40: Voicecon - Mashups with Tropo.com

How about a mashup?

Page 42: Voicecon - Mashups with Tropo.com

Looking at the big picturehttp://flickr.com/photos/txd/100437832

Page 43: Voicecon - Mashups with Tropo.com

So why is this important?

Page 44: Voicecon - Mashups with Tropo.com

Developers

Phone Developers Web Developers

Page 45: Voicecon - Mashups with Tropo.com

The Phone Developer is DEAD!

Page 46: Voicecon - Mashups with Tropo.com

Web 2.0

Page 47: Voicecon - Mashups with Tropo.com

Innovation

Page 48: Voicecon - Mashups with Tropo.com