Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Talking to Rails

Talking to Rails

Ben Langfeld

October 14, 2011
Tweet

More Decks by Ben Langfeld

Other Decks in Programming

Transcript

  1. Why voice? •Many more people have access to a telephone

    than have access to the internet Tuesday, 23 October 12
  2. Why voice? •Many more people have access to a telephone

    than have access to the internet •Many people still prefer voice-based interactions Tuesday, 23 October 12
  3. 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 Tuesday, 23 October 12
  4. 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 Tuesday, 23 October 12
  5. But wait... telephony is HARD right?? Photo by Joseph A.

    Carr from http://en.wikipedia.org/wiki/File:JT_Switchboard_770x540.jpg Tuesday, 23 October 12
  6. A voice application development framework Independent from, but compatible with,

    Rails Voice applications the Ruby Way Tuesday, 23 October 12
  7. 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 Tuesday, 23 October 12
  8. 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 Tuesday, 23 October 12
  9. 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 Tuesday, 23 October 12
  10. Features •Easy-to-use DSL •Idiomatic Ruby code •Powerful Eventing System 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 Tuesday, 23 October 12
  11. Features •Easy-to-use DSL •Idiomatic Ruby code •Powerful Eventing System •Plugins

    to solve common problems 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 Tuesday, 23 October 12
  12. Features •Easy-to-use DSL •Idiomatic Ruby code •Powerful Eventing System •Plugins

    to solve common problems •A very helpful community 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 Tuesday, 23 October 12
  13. Features •Easy-to-use DSL •Idiomatic Ruby code •Powerful Eventing System •Plugins

    to solve common problems •A very helpful community •Sponsorship from and 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 Tuesday, 23 October 12
  14. Advanced Voice Features High-level constructs (Menus, Queues, Conferences) Text-to-Speech DTMF

    gathering & voice recognition Answering Machine Detection Tuesday, 23 October 12
  15. Advanced Voice Features High-level constructs (Menus, Queues, Conferences) Text-to-Speech DTMF

    gathering & voice recognition Call Progress Answering Machine Detection Tuesday, 23 October 12
  16. Adhearsion Applied Call centre workflow optimisation and integration Sales force

    automation Conferencing applications Tuesday, 23 October 12
  17. Adhearsion Applied Call centre workflow optimisation and integration Sales force

    automation Conferencing applications Translation services Tuesday, 23 October 12
  18. Adhearsion Applied Call centre workflow optimisation and integration Sales force

    automation Conferencing applications Translation services Robo-calling Tuesday, 23 October 12
  19. Adhearsion Applied Call centre workflow optimisation and integration Sales force

    automation Conferencing applications Translation services Polling Robo-calling Tuesday, 23 October 12
  20. Adhearsion Applied Call centre workflow optimisation and integration Sales force

    automation Conferencing applications Translation services IVR Polling Robo-calling Tuesday, 23 October 12
  21. Adhearsion Architecture Asterisk Pros: * Run on your server *

    Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  22. Adhearsion Architecture Asterisk Pros: * Run on your server *

    Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  23. Adhearsion Architecture Asterisk Pros: * Run on your server *

    Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  24. Adhearsion Architecture Asterisk Pros: * Run on your server *

    Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  25. Adhearsion Architecture Asterisk Pros: * Run on your server *

    Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  26. Adhearsion Architecture SQL Asterisk Pros: * Run on your server

    * Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  27. Adhearsion Architecture SQL LDAP Asterisk Pros: * Run on your

    server * Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  28. Adhearsion Architecture XMPP/Jabber SQL LDAP Asterisk Pros: * Run on

    your server * Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  29. Adhearsion Architecture Web REST/JSON/XML XMPP/Jabber SQL LDAP Asterisk Pros: *

    Run on your server * Widely Deployed * Eventing System Cons: * Tricky to set up/ Requires hardware * No TTS/ASR Tropo Pros: * Easy to set up * Awesome TTS/ASR * SMS & International Cons: * No manager events * No built-in recordings Note: AGItate first written 1 year ago Tuesday, 23 October 12
  30. Why Adhearsion? •Easy code reuse •A natural DSL which is

    easy to write to Tuesday, 23 October 12
  31. Why Adhearsion? •Easy code reuse •A natural DSL which is

    easy to write to •Rich inter-call operation within the process Tuesday, 23 October 12
  32. 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 Tuesday, 23 October 12
  33. 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 Tuesday, 23 October 12
  34. 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 Tuesday, 23 October 12
  35. 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 Tuesday, 23 October 12
  36. A (contrived) example problem •Everyone loves a spontaneous conference call

    •Getting people in is tricky Tuesday, 23 October 12
  37. A (contrived) example problem •Everyone loves a spontaneous conference call

    •Getting people in is tricky •Not everyone likes the phone ringing Tuesday, 23 October 12
  38. 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 Tuesday, 23 October 12
  39. A solution •Simple rails app for managing contacts •Select contacts

    to call •System asks contacts via Jabber if they are available Tuesday, 23 October 12
  40. 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 Tuesday, 23 October 12
  41. Adhearsion 2.0 • The next major evolution of Adhearsion •

    Many improvements including: Tuesday, 23 October 12
  42. Adhearsion 2.0 • The next major evolution of Adhearsion •

    Many improvements including: • Truly cross-platform (Asterisk, Tropo & Rayo) Tuesday, 23 October 12
  43. Adhearsion 2.0 • The next major evolution of Adhearsion •

    Many improvements including: • Truly cross-platform (Asterisk, Tropo & Rayo) • Core architecture overhaul Tuesday, 23 October 12
  44. 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 Tuesday, 23 October 12
  45. 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 Tuesday, 23 October 12
  46. 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 Tuesday, 23 October 12
  47. 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 Tuesday, 23 October 12
  48. Adhearsion really far out •Adhearsion 1.x - Asterisk applications •Adhearsion

    2.x - Voice applications •Adhearsion 3.x - Real-time communications Tuesday, 23 October 12