Talking to Rails     Ben Langfeld Adhearsion Core Team      Mojo Lingo       @benlangfeldblangfeld@adhearsion.com
Why voice?
Why voice?•Many more people have access to a telephone than have access to the internet
Why voice?•Many more people have access to a telephone than have access to the internet•Many people still prefer voice-bas...
Why voice?•Many more people have access to a telephone than have access to the internet•Many people still prefer voice-bas...
Why voice?•Many more people have access to a telephone than have access to the internet•Many people still prefer voice-bas...
But wait...telephony is HARD right??  Photo by Joseph A. Carr from http://en.wikipedia.org/wiki/File:JT_Switchboard_770x54...
Code Sample (comfort zone)
Code Sample (comfort zone)
Code Sample (comfort zone)
A voice application development          framework
A voice application development          frameworkIndependent from, but compatible          with, Rails
A voice application development             framework   Independent from, but compatible             with, RailsVoice appl...
Features    Not just compiled down to some kind of crazy configuration, but we have full access    to both the ruby enviro...
Features•Easy-to-use DSL                       Not just compiled down to some kind of crazy configuration, but we have ful...
Features•Easy-to-use DSL•Idiomatic Ruby code                       Not just compiled down to some kind of crazy configurat...
Features•Easy-to-use DSL•Idiomatic Ruby code                        Not just compiled down to some kind of crazy configura...
Features•Easy-to-use DSL•Idiomatic Ruby code                        Not just compiled down to some kind of crazy configura...
Features•Easy-to-use DSL•Idiomatic Ruby code                        Not just compiled down to some kind of crazy configura...
Features•Easy-to-use DSL•Idiomatic Ruby code                        Not just compiled down to some kind of crazy configura...
Advanced Voice Features
Advanced Voice FeaturesHigh-level constructs(Menus, Queues,Conferences)
Advanced Voice FeaturesHigh-level constructs(Menus, Queues,         DTMF gathering &Conferences)            voice recognit...
Advanced Voice FeaturesHigh-level constructs(Menus, Queues,             DTMF gathering &Conferences)                voice ...
Advanced Voice FeaturesHigh-level constructs(Menus, Queues,             DTMF gathering &Conferences)                voice ...
Advanced Voice FeaturesHigh-level constructs(Menus, Queues,             DTMF gathering &Conferences)                voice ...
Adhearsion Applied
Adhearsion Applied Call centre workflow  optimisation and      integration
Adhearsion Applied Call centre workflow  optimisation and     Sales force automation      integration
Adhearsion Applied Call centre workflow  optimisation and     Sales force automation      integration Conferencing applicat...
Adhearsion Applied Call centre workflow  optimisation and     Sales force automation      integration                      ...
Adhearsion Applied Call centre workflow  optimisation and     Sales force automation      integration                      ...
Adhearsion Applied Call centre workflow  optimisation and     Sales force automation      integration     Polling          ...
Adhearsion Applied Call centre workflow  optimisation and           Sales force automation      integration     Polling    ...
Adhearsion Platforms                       2008                       2010                       2011
Adhearsion Platforms                       2008                       2010                       2011
Adhearsion Platforms                       2008                       2010                       2011
Adhearsion Platforms                       2008                       2010                       2011
Adhearsion Architecture   Tropo Pros:                           * Easy to set up                           * Awesome TTS/A...
Adhearsion Architecture   Tropo Pros:                           * Easy to set up                           * Awesome TTS/A...
Adhearsion Architecture   Tropo Pros:                           * Easy to set up                           * Awesome TTS/A...
Adhearsion Architecture   Tropo Pros:                           * Easy to set up                           * Awesome TTS/A...
Adhearsion Architecture   Tropo Pros:                           * Easy to set up                           * Awesome TTS/A...
Adhearsion Architecture   Tropo Pros:                           * Easy to set up                           * Awesome TTS/A...
Adhearsion Architecture      Tropo Pros:                              * Easy to set up                              * Awes...
Adhearsion Architecture                    Tropo Pros:                                            * Easy to set up        ...
Adhearsion Architecture                    Tropo Pros:                                            * Easy to set up        ...
Why Adhearsion?
Why Adhearsion?•Easy code reuse
Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to
Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process
Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process•Bring...
Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process•Bring...
Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process•Bring...
Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process•Bring...
A (contrived) example problem
A (contrived) example problem•Everyone loves a spontaneous conference call
A (contrived) example problem•Everyone loves a spontaneous conference call•Getting people in is tricky
A (contrived) example problem•Everyone loves a spontaneous conference call•Getting people in is tricky•Not everyone likes ...
A (contrived) example problem•Everyone loves a spontaneous conference call•Getting people in is tricky•Not everyone likes ...
A solution
A solution•Simple rails app for managing contacts
A solution•Simple rails app for managing contacts•Select contacts to call
A solution•Simple rails app for managing contacts•Select contacts to call•System asks contacts via Jabber if they are avai...
A solution•Simple rails app for managing contacts•Select contacts to call•System asks contacts via Jabber if they are avai...
Code Demo
Adhearsion 2.0
Adhearsion 2.0• The next major evolution of Adhearsion
Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including:
Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including:  • Truly cross-platform (Asterisk, Tr...
Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including:  • Truly cross-platform (Asterisk, Tr...
Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including:  • Truly cross-platform (Asterisk, Tr...
Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including:  • Truly cross-platform (Asterisk, Tr...
Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including:  • Truly cross-platform (Asterisk, Tr...
Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including:  • Truly cross-platform (Asterisk, Tr...
Adhearsion really far out
Adhearsion really far out•Adhearsion 1.x - Asterisk applications
Adhearsion really far out•Adhearsion 1.x - Asterisk applications•Adhearsion 2.x - Voice applications
Adhearsion really far out•Adhearsion 1.x - Asterisk applications•Adhearsion 2.x - Voice applications•Adhearsion 3.x - Real...
Questions?   adhearsion.com    @Adhearsionhttp://spkr8.com/t/8602
Talking To Rails
Talking To Rails
Talking To Rails
Talking To Rails
Talking To Rails
Upcoming SlideShare
Loading in …5
×

Talking To Rails

454 views

Published on

Talking To Rails presented by Ben Langfeld at MagRails 2011

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
454
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Talking To Rails

  1. 1. Talking to Rails Ben Langfeld Adhearsion Core Team Mojo Lingo @benlangfeldblangfeld@adhearsion.com
  2. 2. Why voice?
  3. 3. Why voice?•Many more people have access to a telephone than have access to the internet
  4. 4. Why voice?•Many more people have access to a telephone than have access to the internet•Many people still prefer voice-based interactions
  5. 5. Why voice?•Many more people have access to a telephone than have access to the internet•Many people still prefer voice-based interactions•Voice enables a multitude of interesting use-cases which text and images cannot
  6. 6. Why voice?•Many more people have access to a telephone than have access to the internet•Many people still prefer voice-based interactions•Voice enables a multitude of interesting use-cases which text and images cannot•Because having a computer make a phone ring is still cool
  7. 7. But wait...telephony is HARD right?? Photo by Joseph A. Carr from http://en.wikipedia.org/wiki/File:JT_Switchboard_770x540.jpg
  8. 8. Code Sample (comfort zone)
  9. 9. Code Sample (comfort zone)
  10. 10. Code Sample (comfort zone)
  11. 11. A voice application development framework
  12. 12. A voice application development frameworkIndependent from, but compatible with, Rails
  13. 13. A voice application development framework Independent from, but compatible with, RailsVoice applications the Ruby Way
  14. 14. Features Not just compiled down to some kind of crazy configuration, but we have full access to both the ruby environment and the call at all times Call setup/teardown events, DTMF events, conference join/leave, active speaker, etc Third largest mobile carrier in the world
  15. 15. Features•Easy-to-use DSL Not just compiled down to some kind of crazy configuration, but we have full access to both the ruby environment and the call at all times Call setup/teardown events, DTMF events, conference join/leave, active speaker, etc Third largest mobile carrier in the world
  16. 16. Features•Easy-to-use DSL•Idiomatic Ruby code Not just compiled down to some kind of crazy configuration, but we have full access to both the ruby environment and the call at all times Call setup/teardown events, DTMF events, conference join/leave, active speaker, etc Third largest mobile carrier in the world
  17. 17. Features•Easy-to-use DSL•Idiomatic Ruby code Not just compiled down to some kind of crazy configuration, but we have full access to both the ruby environment and the call at all times•Powerful Eventing System Call setup/teardown events, DTMF events, conference join/leave, active speaker, etc Third largest mobile carrier in the world
  18. 18. Features•Easy-to-use DSL•Idiomatic Ruby code Not just compiled down to some kind of crazy configuration, but we have full access to both the ruby environment and the call at all times•Powerful Eventing System Call setup/teardown events, DTMF events, conference join/leave, active speaker, etc•Plugins to solve common problems Third largest mobile carrier in the world
  19. 19. Features•Easy-to-use DSL•Idiomatic Ruby code Not just compiled down to some kind of crazy configuration, but we have full access to both the ruby environment and the call at all times•Powerful Eventing System Call setup/teardown events, DTMF events, conference join/leave, active speaker, etc•Plugins to solve common problems•A very helpful community Third largest mobile carrier in the world
  20. 20. Features•Easy-to-use DSL•Idiomatic Ruby code Not just compiled down to some kind of crazy configuration, but we have full access to both the ruby environment and the call at all times•Powerful Eventing System Call setup/teardown events, DTMF events, conference join/leave, active speaker, etc•Plugins to solve common problems•A very helpful community•Sponsorship from and Third largest mobile carrier in the world
  21. 21. Advanced Voice Features
  22. 22. Advanced Voice FeaturesHigh-level constructs(Menus, Queues,Conferences)
  23. 23. Advanced Voice FeaturesHigh-level constructs(Menus, Queues, DTMF gathering &Conferences) voice recognition
  24. 24. Advanced Voice FeaturesHigh-level constructs(Menus, Queues, DTMF gathering &Conferences) voice recognition Text-to-Speech
  25. 25. Advanced Voice FeaturesHigh-level constructs(Menus, Queues, DTMF gathering &Conferences) voice recognition Text-to-Speech Answering Machine Detection
  26. 26. Advanced Voice FeaturesHigh-level constructs(Menus, Queues, DTMF gathering &Conferences) voice recognition Text-to-Speech Answering Machine Detection Call Progress
  27. 27. Adhearsion Applied
  28. 28. Adhearsion Applied Call centre workflow optimisation and integration
  29. 29. Adhearsion Applied Call centre workflow optimisation and Sales force automation integration
  30. 30. Adhearsion Applied Call centre workflow optimisation and Sales force automation integration Conferencing applications
  31. 31. Adhearsion Applied Call centre workflow optimisation and Sales force automation integration Translation services Conferencing applications
  32. 32. Adhearsion Applied Call centre workflow optimisation and Sales force automation integration Translation services Conferencing applications Robo-calling
  33. 33. Adhearsion Applied Call centre workflow optimisation and Sales force automation integration Polling Translation services Conferencing applications Robo-calling
  34. 34. Adhearsion Applied Call centre workflow optimisation and Sales force automation integration Polling Translation IVR services Conferencing applications Robo-calling
  35. 35. Adhearsion Platforms 2008 2010 2011
  36. 36. Adhearsion Platforms 2008 2010 2011
  37. 37. Adhearsion Platforms 2008 2010 2011
  38. 38. Adhearsion Platforms 2008 2010 2011
  39. 39. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR
  40. 40. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR
  41. 41. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR
  42. 42. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR
  43. 43. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR
  44. 44. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR SQL
  45. 45. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR SQL LDAP
  46. 46. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR SQL LDAP XMPP/Jabber
  47. 47. Adhearsion Architecture Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons:Asterisk Pros: * No manager events* Run on your server * No built-in recordings* Widely Deployed* Eventing System Note: AGItate first written 1 year agoCons:* Tricky to set up/Requires hardware* No TTS/ASR XMPP/Jabber Web SQL LDAP REST/JSON/XML
  48. 48. Why Adhearsion?
  49. 49. Why Adhearsion?•Easy code reuse
  50. 50. Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to
  51. 51. Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process
  52. 52. Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process•Brings modern development practices to telephony
  53. 53. Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process•Brings modern development practices to telephony•No need for complex state-machines and constant load on your Rails app from an HTTP-based API
  54. 54. Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process•Brings modern development practices to telephony•No need for complex state-machines and constant load on your Rails app from an HTTP-based API•Runs on Asterisk, so can integrate with an existing PBX
  55. 55. Why Adhearsion?•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process•Brings modern development practices to telephony•No need for complex state-machines and constant load on your Rails app from an HTTP-based API•Runs on Asterisk, so can integrate with an existing PBX•Adhearsion democratises telephony development
  56. 56. A (contrived) example problem
  57. 57. A (contrived) example problem•Everyone loves a spontaneous conference call
  58. 58. A (contrived) example problem•Everyone loves a spontaneous conference call•Getting people in is tricky
  59. 59. A (contrived) example problem•Everyone loves a spontaneous conference call•Getting people in is tricky•Not everyone likes the phone ringing
  60. 60. A (contrived) example problem•Everyone loves a spontaneous conference call•Getting people in is tricky•Not everyone likes the phone ringing•Not everyone is available
  61. 61. A solution
  62. 62. A solution•Simple rails app for managing contacts
  63. 63. A solution•Simple rails app for managing contacts•Select contacts to call
  64. 64. A solution•Simple rails app for managing contacts•Select contacts to call•System asks contacts via Jabber if they are available
  65. 65. A solution•Simple rails app for managing contacts•Select contacts to call•System asks contacts via Jabber if they are available•Will read apologies via Jabber into the conference
  66. 66. Code Demo
  67. 67. Adhearsion 2.0
  68. 68. Adhearsion 2.0• The next major evolution of Adhearsion
  69. 69. Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including:
  70. 70. Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including: • Truly cross-platform (Asterisk, Tropo & Rayo)
  71. 71. Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including: • Truly cross-platform (Asterisk, Tropo & Rayo) • Core architecture overhaul
  72. 72. Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including: • Truly cross-platform (Asterisk, Tropo & Rayo) • Core architecture overhaul • A reduction in internal complexity and line-count
  73. 73. Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including: • Truly cross-platform (Asterisk, Tropo & Rayo) • Core architecture overhaul • A reduction in internal complexity and line-count • Scope reduction
  74. 74. Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including: • Truly cross-platform (Asterisk, Tropo & Rayo) • Core architecture overhaul • A reduction in internal complexity and line-count • Scope reduction • Overhaul of the plugin system
  75. 75. Adhearsion 2.0• The next major evolution of Adhearsion• Many improvements including: • Truly cross-platform (Asterisk, Tropo & Rayo) • Core architecture overhaul • A reduction in internal complexity and line-count • Scope reduction • Overhaul of the plugin system • Modular application constructs (voicemail, queueing, etc) as plugins
  76. 76. Adhearsion really far out
  77. 77. Adhearsion really far out•Adhearsion 1.x - Asterisk applications
  78. 78. Adhearsion really far out•Adhearsion 1.x - Asterisk applications•Adhearsion 2.x - Voice applications
  79. 79. Adhearsion really far out•Adhearsion 1.x - Asterisk applications•Adhearsion 2.x - Voice applications•Adhearsion 3.x - Real-time communications
  80. 80. Questions? adhearsion.com @Adhearsionhttp://spkr8.com/t/8602

×