Building Real Life Applications with Adhearsion

351 views
271 views

Published on

Building Real Life Applications with Adhearsion presented by Luca Pradovera at Lone Star Ruby Conference 2012

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
351
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Building Real Life Applications with Adhearsion

  1. 1. Building  real  life  applica/ons   with  Adhearsion   Luca  Pradovera   Voice  Applica/on  Developer  at   Mojo  Lingo  –  Atlanta,  GA  
  2. 2. What  is  Adhearsion?  •  Ruby  voice  applica/on  framework  •  Provides  logic  for  telephony  apps  •  Open  source  and  managed  by  a  Founda/on  •  Version  2.1  released  on  08/08  •  2.0  was  released  in  April  with  a  complete   overhaul   LSRC  2012  –  Aus/n,  TX   2  
  3. 3. Supported  plaSorms  •  Ruby  1.9,  Jruby  with  a  couple  issues  •  Asterisk  •  Voxeo  PRISM  •  FreeSWITCH  in  2.1.0  •  Rayo  protocol  allows  for  other  plaSorms  to  be   supported   LSRC  2012  –  Aus/n,  TX   3  
  4. 4. An  Adhearsion  applica/on  •  Configura/on  •  Call  Controllers  •  Rou/ng  •  The  ahn  command:  create,  daemon,  start,   stop,  restart,  generate,  help,  version   LSRC  2012  –  Aus/n,  TX   4  
  5. 5. Call  Controllers  •  Contain  the  logic  for  the  applica/on  •  Have  a  #run  method  that  is  called  for   execu/on  !class SimpleController < Adhearsion::CallController! def run! answer! play "tt-weasels"! hangup! end!end! LSRC  2012  –  Aus/n,  TX   5  
  6. 6. Rou/ng  •  Matches  condi/ons  to  controllers  •  Is  in  adhearsion.rb  together  with  the  config    Adhearsion.router do! route Simple controller, SimpleController, :to => 1! route Outbound Notification, Adhearsion::OutboundCall,ConnectingController! route default, MenuController!end! LSRC  2012  –  Aus/n,  TX   6  
  7. 7. Basics  •  Output:  #play,  #say  •  Input:  #ask  •  Menu:  #menu  •  Recording:  #record  •  Logging  •  DemoController  demo   LSRC  2012  –  Aus/n,  TX   7  
  8. 8. Plugins  •  Provide  extra  func/onality  in  a  reusable   manner  •  Packaged  as  gems  •  Self-­‐documen/ng  configura/on  •  “Just”  a  library  of  classes  •  Expose  hooks  for  loading  and  star/ng  •  The  adhearsion-­‐drb  plugin   LSRC  2012  –  Aus/n,  TX   8  
  9. 9. Integra/ng  with  other  apps  •  Database  (Ac/ve  Record,  Sequel)  •  HTTP/REST  •  DRb  •  Queue  systems  •  Click  to  call  demo   LSRC  2012  –  Aus/n,  TX   9  
  10. 10. Events  •  Are  exposed  through  guarded  handlers  •  Handled  globally  or  per-­‐call  •  Essen/al  for  building  complex  interac/ons  •  Events  in  the  browser  demo   LSRC  2012  –  Aus/n,  TX   10  
  11. 11. Call  events  and  /mers  •  The  main  object  you  work  with  is  a  Call  •  Calls  have  specialized  handlers  •  On_joined,  on_answer,  on_end  •  Timers  allow  for  periodic  events  •  BillingController  demo   LSRC  2012  –  Aus/n,  TX   11  
  12. 12. Case  studies  •  Adhearsion  is  used  in  produc/on  now  •  Usage  covers  a  wide  range  of  applica/ons  •  Testability,  integra/on,  modularity  •  Built  for  the  developer  experience   LSRC  2012  –  Aus/n,  TX   12  
  13. 13. E-­‐Mediators  •  Adhearsion  1.2  •  Cultural  mediator  service  •  Mul/lingual  menu  and  interface  •  Complex  billing  with  rechargeable  accounts  •  Web-­‐based  SIP  interface  with  Java  and   Websockets  •  Mostly  SIP  based   LSRC  2012  –  Aus/n,  TX   13  
  14. 14. SOS  Travel  Card  •  Transla/on  service  for  travelers  •  Prepaid  cards  with  PIN  system  •  Completely  manageable  through  IVR,  SMS,   and  Web  •  Voicemail  handles  busy  situa/ons,  users  are   called  back  automa/cally  •  Cellphone  based  and  operated   LSRC  2012  –  Aus/n,  TX   14  
  15. 15. VerbalizeIt  •  Human  transla/on  service  •  For  business  and  travelers  •  Provides  over  the  phone  service,  a  mobile   app,  and  and  API    •  Also  offers  language  learning  sessions   LSRC  2012  –  Aus/n,  TX   15  
  16. 16. Mobile  operator  •  “Inside  the  carrier”  deployment  •  New  MVNO  opera/ng  in  North  America  •  Ahn  operates  the  subscriber  database,   authen/ca/on,  billing  •  All  call  rou/ng  •  Voicemail  and  services  •  In-­‐call  audio  using  early  media  to  provide   innova/ve  content   LSRC  2012  –  Aus/n,  TX   16  
  17. 17. Thank  you!   Presented  by:   Luca  Pradovera     @lucaprado   Github:  polysics  hpp://adhearsion.com  hpp://mojolingo.com   LSRC  2012  –  Aus/n,  TX   17  

×