3. Open-Source Tropo & Cloud
Tropo
Control API Routing Sciprting WebAPI
Java
Moho
State Machine Events Monitoring Plugins...
JSR 289 JSR 309 JMX Clustering
PRISM Application Server
Oracle/Sun JBOSS
Speech Audio / Video
Call Recording Text to Speech
Recognition Conference
Plugin Signal
WAV / MP3 MRCP
Architecture Detection
Prophecy Media Server
4. Moho
Muti-channel Communications Java
Framework
– Wraps SIP Servlets and Java Media Control API
• JSR-289 / JSR-309
• Runs on Prism, Mobicents, SailFin, etc.
– Asynchronous Programming Model (Events, Actors, etc.)
– Multi-channel Driver (Voice, SMS and IM)
– Common concepts “baked in”
• Conferencing • Mixing
• Call Queueing • Call Recording
• Mute/Unmute • Transcoding
• Answering Machine Detection • Much more!
http://labs.voxeo.com/moho
5. Tropo Overview
Cloud Service & Open-source
Unified Communications API
– Simple. Only 15 commands.
– Synchronous Programming Model
– Speech Recognition / Speech Synthesis
• Dutch, English, French, Italian, German, Polish, Spanish
– Transcription
– Single API for Voice, IM, SMS and Twitter
Comes in Two Flavors
– WebAPI
– Scripting
6. Tropo WebAPI
REST API
– Familiar request/response model
– JSON
– Great for communictions enabling existing applications
– Works with Ruby on Rails, Sinatra & Others
8. Example App - OpenVoice
• Open-source Rails telephony framework, implement on top
of Tropo WebAPI by Zhao Lu (@zlu)
• Supports followme, call screen, caller announcement,
voicemail transcription, call recording, and more
• Supports SIP, Skype, SMS, and IM
• Web interface and Android client
• Runs on Heroku, fork that runs on GoogleApp engine
https://github.com/zlu/openvoice
9. Tropo Scripting
Scripting
– No web server required
– May run your app entirely in the ‘cloud’
– Similar to Google AppEngine, but not for generic applications
– We run your scripts in our cloud
11. Tropo Scripting
Open-source and in the cloud
– Similar to Google AppEngine
– No Hosting Required
– Limited Library Support (for now)
answer
say "Hello World!"
hangup
12. Language Bindings
Each Supported Language Gets a “Shim”
– Thin wrapper over native Java API
– Mainly convert from language-specific data structure to Java
– Could be more “comfy”
ask 'Wasabi mama, you single?', { currentCall.ask('Wasabi mama, you single?',
:timeout => 30, 30,
:choices => 'yes,no' new SimpleGrammar('yes,no')
} );
https://github.com/voxeo/tropo-shims