Successfully reported this slideshow.

Realtime Enabling Your Ruby Applications

2,424 views

Published on

Presentation given at Euruko 2010 in Krakow, Poland.

Published in: Technology
  • Be the first to comment

Realtime Enabling Your Ruby Applications

  1. 1. Real-time Communications for Ruby
  2. 2. Euruko 2009 - Barcelona
  3. 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. 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. 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. 6. Tropo WebAPI REST API – Familiar request/response model – JSON – Great for communictions enabling existing applications – Works with Ruby on Rails, Sinatra & Others
  7. 7. Tropo WebAPI - Ruby Gem gem install tropo-webapi-ruby https://github.com/voxeo/tropo-shims
  8. 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. 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
  10. 10. Tropo Scripting - JVM Rhino JRuby Ruby Jython Quercus
  11. 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. 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
  13. 13. Code and Demos
  14. 14. Play the Simon game: Skype +99000936 9991442790 Speak in English or enter touch tones For more info: http://tropo.com Twitter: @jsgoecke / @tropo

×