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

Adhearsion 3: The future of Ruby communications...

Adhearsion 3: The future of Ruby communications - StarTechConf 2013

Delivered at StarTechConf 2013, Santiago Chile

Ben Langfeld

October 25, 2013
Tweet

More Decks by Ben Langfeld

Other Decks in Programming

Transcript

  1. P A G E Adhearsion 3: the future of Ruby

    communications Ben Langfeld @benlangfeld [email protected] 1 Saturday, 26 October 13
  2. P A G E 12 WHAT IS ADHEARSION? Voice App

    Punchblock AMI FreeSWITCH Logging Plugins Statistics SQL Web Service REST/JSON/XML Carrier APIs Saturday, 26 October 13
  3. P A G E 12 WHAT IS ADHEARSION? Voice App

    Punchblock AMI FreeSWITCH Logging Plugins Statistics SQL Web Service REST/JSON/XML Carrier APIs Business logic Saturday, 26 October 13
  4. P A G E 12 WHAT IS ADHEARSION? Voice App

    Punchblock AMI FreeSWITCH Logging Plugins Statistics SQL Web Service REST/JSON/XML Carrier APIs Business logic 3PCC Saturday, 26 October 13
  5. P A G E 12 WHAT IS ADHEARSION? Voice App

    Punchblock AMI FreeSWITCH Logging Plugins Statistics SQL Web Service REST/JSON/XML Carrier APIs Business logic No media / signaling 3PCC Saturday, 26 October 13
  6. P A G E 12 WHAT IS ADHEARSION? Voice App

    Punchblock AMI FreeSWITCH Logging Plugins Statistics SQL Web Service REST/JSON/XML Carrier APIs Business logic No media / signaling 3PCC High-level API Saturday, 26 October 13
  7. P A G E 12 WHAT IS ADHEARSION? Voice App

    Punchblock AMI FreeSWITCH Logging Plugins Statistics SQL Web Service REST/JSON/XML Carrier APIs Business logic No media / signaling 3PCC High-level API All Ruby Saturday, 26 October 13
  8. P A G E 12 WHAT IS ADHEARSION? Allows development

    of complex telephony apps with a simple language Voice App Punchblock AMI FreeSWITCH Logging Plugins Statistics SQL Web Service REST/JSON/XML Carrier APIs Business logic No media / signaling 3PCC High-level API All Ruby Saturday, 26 October 13
  9. P A G E WHAT DO I USE IT FOR?

    13 Saturday, 26 October 13
  10. P A G E WHAT DO I USE IT FOR?

    13 IVR Saturday, 26 October 13
  11. P A G E WHAT DO I USE IT FOR?

    13 Surveys IVR Saturday, 26 October 13
  12. P A G E WHAT DO I USE IT FOR?

    13 Surveys Call Centre IVR Saturday, 26 October 13
  13. P A G E WHAT DO I USE IT FOR?

    13 Voice 2.0 Surveys Call Centre IVR Saturday, 26 October 13
  14. P A G E WHAT DO I USE IT FOR?

    •In-call applications 13 Voice 2.0 Surveys Call Centre IVR Saturday, 26 October 13
  15. P A G E WHAT DO I USE IT FOR?

    •In-call applications •Speech recognition 13 Voice 2.0 Surveys Call Centre IVR Saturday, 26 October 13
  16. P A G E WHAT DO I USE IT FOR?

    •In-call applications •Speech recognition •Multi-modal applications 13 Voice 2.0 Surveys Call Centre IVR Saturday, 26 October 13
  17. P A G E ADHEARSION 2.4 •Released in August •Full

    support for JRuby 14 Saturday, 26 October 13
  18. P A G E ADHEARSION 2.4 •Released in August •Full

    support for JRuby •Lots of performance improvements 14 Saturday, 26 October 13
  19. P A G E ADHEARSION 2.4 •Released in August •Full

    support for JRuby •Lots of performance improvements •Improves cross-engine compatibility 14 Saturday, 26 October 13
  20. P A G E ADHEARSION 2.4 •Released in August •Full

    support for JRuby •Lots of performance improvements •Improves cross-engine compatibility •Adds some handy features 14 Saturday, 26 October 13
  21. P A G E ADHEARSION 2.4 •Released in August •Full

    support for JRuby •Lots of performance improvements •Improves cross-engine compatibility •Adds some handy features •6 months in the making 14 Saturday, 26 October 13
  22. P A G E ADHEARSION 2.4 •Released in August •Full

    support for JRuby •Lots of performance improvements •Improves cross-engine compatibility •Adds some handy features •6 months in the making •Made me really tired 14 Saturday, 26 October 13
  23. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Saturday, 26 October 13
  24. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Saturday, 26 October 13
  25. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Saturday, 26 October 13
  26. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Saturday, 26 October 13
  27. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Saturday, 26 October 13
  28. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Faster -> Saturday, 26 October 13
  29. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Faster -> Saturday, 26 October 13
  30. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Faster -> Saturday, 26 October 13
  31. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Faster -> Saturday, 26 October 13
  32. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Faster -> Saturday, 26 October 13
  33. P A G E BUT IT’S JUST FOR BORING OLD

    PHONES.... 15 Faster -> Saturday, 26 October 13
  34. P A G E THE NEW PHONE IS EVERYWHERE 19

    Saturday, 26 October 13
  35. P A G E THE NEW PHONE IS EVERYWHERE 19

    ? Saturday, 26 October 13
  36. P A G E THE NEW PHONE IS EVERYWHERE 19

    ? “Communicating isn’t going to be what you’re doing - it’s what you’ll be doing while you’re doing something else” Geoff Hollingworth Ericsson Head of AT&T Foundry Saturday, 26 October 13
  37. P A G E THE NEW PHONE IS EVERYWHERE •Relevant

    19 ? “Communicating isn’t going to be what you’re doing - it’s what you’ll be doing while you’re doing something else” Geoff Hollingworth Ericsson Head of AT&T Foundry Saturday, 26 October 13
  38. P A G E THE NEW PHONE IS EVERYWHERE •Relevant

    •Specific 19 ? “Communicating isn’t going to be what you’re doing - it’s what you’ll be doing while you’re doing something else” Geoff Hollingworth Ericsson Head of AT&T Foundry Saturday, 26 October 13
  39. P A G E THE NEW PHONE IS EVERYWHERE •Relevant

    •Specific •Contextual 19 ? “Communicating isn’t going to be what you’re doing - it’s what you’ll be doing while you’re doing something else” Geoff Hollingworth Ericsson Head of AT&T Foundry Saturday, 26 October 13
  40. P A G E THE NEW PHONE IS EVERYWHERE •Relevant

    •Specific •Contextual •Appropriate 19 ? “Communicating isn’t going to be what you’re doing - it’s what you’ll be doing while you’re doing something else” Geoff Hollingworth Ericsson Head of AT&T Foundry Saturday, 26 October 13
  41. P A G E THE NEW PHONE IS EVERYWHERE •Relevant

    •Specific •Contextual •Appropriate 19 ? Contextual! That means embedded in other interfaces. “Communicating isn’t going to be what you’re doing - it’s what you’ll be doing while you’re doing something else” Geoff Hollingworth Ericsson Head of AT&T Foundry Saturday, 26 October 13
  42. P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate

    medical claims 20 Saturday, 26 October 13
  43. P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate

    medical claims • Secure caller authentication 20 Saturday, 26 October 13
  44. P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate

    medical claims • Secure caller authentication • Reuse primary auth from Website 20 Saturday, 26 October 13
  45. P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate

    medical claims • Secure caller authentication • Reuse primary auth from Website • Verify using voice biometrics 20 Saturday, 26 October 13
  46. P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate

    medical claims • Secure caller authentication • Reuse primary auth from Website • Verify using voice biometrics • Cross-check against location 20 Saturday, 26 October 13
  47. P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate

    medical claims • Secure caller authentication • Reuse primary auth from Website • Verify using voice biometrics • Cross-check against location • Call recording/ transcription 20 Saturday, 26 October 13
  48. P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate

    medical claims • Secure caller authentication • Reuse primary auth from Website • Verify using voice biometrics • Cross-check against location • Call recording/ transcription • Medical advice transcribed and added to file 20 Saturday, 26 October 13
  49. P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate

    medical claims • Secure caller authentication • Reuse primary auth from Website • Verify using voice biometrics • Cross-check against location • Call recording/ transcription • Medical advice transcribed and added to file • Auditing and quality assurance 20 Saturday, 26 October 13
  50. P A G E EXAMPLES: INCIDENT RESPONSE •Immediate communication face-to-face

    •Relevant people without phone numbers 21 Saturday, 26 October 13
  51. P A G E EXAMPLES: INCIDENT RESPONSE •Immediate communication face-to-face

    •Relevant people without phone numbers •Rich presence 21 Saturday, 26 October 13
  52. P A G E EXAMPLES: INCIDENT RESPONSE •Immediate communication face-to-face

    •Relevant people without phone numbers •Rich presence •Multi-modal communication, including text chat, shared files, etc 21 Saturday, 26 October 13
  53. P A G E EXAMPLES: INCIDENT RESPONSE •Immediate communication face-to-face

    •Relevant people without phone numbers •Rich presence •Multi-modal communication, including text chat, shared files, etc •Metadata 21 Saturday, 26 October 13
  54. P A G E EXAMPLES: DISTRIBUTED CALL CENTRE •A call

    centre in a web browser •Chrome + headset + internet •Benefits of home / mobile working for more people? 22 Saturday, 26 October 13
  55. P A G E WHAT IS WEBRTC? •Spec enabling a

    web browser to access the camera and microphone •Standards for negotiating connections between two peers 23 Saturday, 26 October 13
  56. P A G E WHAT IS WEBRTC? •JavaScript Browser API

    for real-time communication (voice & video) 24 Saturday, 26 October 13
  57. P A G E WHAT IS WEBRTC? •JavaScript Browser API

    for real-time communication (voice & video) •Standards for interoperability • Opus, G.711, H.263* • SDP* • ICE/STUN/TURN • DTLS-SRTP 24 * Probably Saturday, 26 October 13
  58. P A G E WHAT IS WEBRTC? •JavaScript Browser API

    for real-time communication (voice & video) •Standards for interoperability • Opus, G.711, H.263* • SDP* • ICE/STUN/TURN • DTLS-SRTP 24 * Probably •Mix of related projects: • WebRTC (W3C) - JavaScript APIs • RTC-WEB (IETF) - Codecs, Security, Interop • MMUSIC (IETF) - ICE (NAT traversal), SDP Saturday, 26 October 13
  59. P A G E 25 http:// Get m e Bob

    please! SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 Alice Bob Saturday, 26 October 13
  60. P A G E 25 http:// Get m e Bob

    please! SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 Alice Bob Saturday, 26 October 13
  61. P A G E 25 http:// Get m e Bob

    please! SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 SDP: v=0 o=bob 19915 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 61001 RTP/SAVPF Alice Bob Saturday, 26 October 13
  62. P A G E 25 http:// Get m e Bob

    please! SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 SDP: v=0 o=bob 19915 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 61001 RTP/SAVPF Alice Bob Saturday, 26 October 13
  63. P A G E 25 http:// Get m e Bob

    please! SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 SDP: v=0 o=bob 19915 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 61001 RTP/SAVPF Alice Bob SRTP SRTP Saturday, 26 October 13
  64. P A G E 25 Get m e Bob please!

    SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 SDP: v=0 o=bob 19915 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 61001 RTP/SAVPF Alice Bob SRTP SRTP Saturday, 26 October 13
  65. P A G E 26 Get m e Bob please!

    SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 Alice Bob Saturday, 26 October 13
  66. P A G E 26 Get m e Bob please!

    SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 Alice Bob Saturday, 26 October 13
  67. P A G E 26 Get m e Bob please!

    SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 SDP: v=0 o=bob 19915 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 61001 RTP/SAVPF Alice Bob Saturday, 26 October 13
  68. P A G E 26 Get m e Bob please!

    SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 SDP: v=0 o=bob 19915 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 61001 RTP/SAVPF Alice Bob Saturday, 26 October 13
  69. P A G E 26 Get m e Bob please!

    SDP : v=0 o=alice 20518 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 54609 RTP/SAVPF 109 SDP: v=0 o=bob 19915 0 IN IP4 0.0.0.0 s=- t=0 0 m =audio 61001 RTP/SAVPF Alice Bob SRTP SRTP Saturday, 26 October 13
  70. P A G E GOTCHAS 27 Specification SDP is an

    opaque blob to apps Saturday, 26 October 13
  71. P A G E GOTCHAS 27 Specification SDP is an

    opaque blob to apps Mandatory video codecs still being fought over (VP8/H.264) Saturday, 26 October 13
  72. P A G E GOTCHAS 27 Specification SDP is an

    opaque blob to apps Mandatory DTLS-SRTP Mandatory video codecs still being fought over (VP8/H.264) Saturday, 26 October 13
  73. P A G E WEBRTC SUPPORT* 28 * “Support” is

    a moving target - not everything works Saturday, 26 October 13
  74. P A G E WEBRTC SUPPORT* •Client-Side 28 * “Support”

    is a moving target - not everything works Saturday, 26 October 13
  75. P A G E WEBRTC SUPPORT* •Client-Side •Chrome 28 *

    “Support” is a moving target - not everything works Saturday, 26 October 13
  76. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox 28

    * “Support” is a moving target - not everything works Saturday, 26 October 13
  77. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox •Opera

    (sorta) 28 * “Support” is a moving target - not everything works Saturday, 26 October 13
  78. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox •Opera

    (sorta) 28 * “Support” is a moving target - not everything works •Server-Side Saturday, 26 October 13
  79. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox •Opera

    (sorta) 28 * “Support” is a moving target - not everything works •Server-Side •FreeSWITCH (1.4+) Saturday, 26 October 13
  80. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox •Opera

    (sorta) 28 * “Support” is a moving target - not everything works •Server-Side •FreeSWITCH (1.4+) •Asterisk (11+) Saturday, 26 October 13
  81. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox •Opera

    (sorta) 28 * “Support” is a moving target - not everything works •Server-Side •FreeSWITCH (1.4+) •Asterisk (11+) •Commercial Offerings Saturday, 26 October 13
  82. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox •Opera

    (sorta) 28 * “Support” is a moving target - not everything works •Server-Side •FreeSWITCH (1.4+) •Asterisk (11+) •Commercial Offerings •Phono Gateway Saturday, 26 October 13
  83. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox •Opera

    (sorta) 28 * “Support” is a moving target - not everything works •Server-Side •FreeSWITCH (1.4+) •Asterisk (11+) •Commercial Offerings •Phono Gateway •TokBox Saturday, 26 October 13
  84. P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox •Opera

    (sorta) 28 * “Support” is a moving target - not everything works •Server-Side •FreeSWITCH (1.4+) •Asterisk (11+) •Commercial Offerings •Phono Gateway •TokBox •many others... Saturday, 26 October 13
  85. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality Saturday, 26 October 13
  86. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality XMPP Messaging/Presence Saturday, 26 October 13
  87. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality XMPP Messaging/Presence Saturday, 26 October 13
  88. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality XMPP Messaging/Presence Saturday, 26 October 13
  89. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  90. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  91. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  92. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality LDAP User Authentication XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  93. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality LDAP User Authentication XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  94. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality Web UI Contextual/Visual Interface LDAP User Authentication XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  95. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality Web UI Contextual/Visual Interface LDAP User Authentication XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  96. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality Web UI Contextual/Visual Interface LDAP User Authentication XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  97. P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call

    App Functionality Web UI Contextual/Visual Interface LDAP User Authentication XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13
  98. P A G E ADHEARSION 3? •Multi-modal as a first-class

    citizen, Telephony as a component of that 31 Saturday, 26 October 13
  99. P A G E ADHEARSION 3? •Multi-modal as a first-class

    citizen, Telephony as a component of that •Better support for WebRTC and the kind of applications built with it 31 Saturday, 26 October 13
  100. P A G E ADHEARSION 3? •Multi-modal as a first-class

    citizen, Telephony as a component of that •Better support for WebRTC and the kind of applications built with it •Greater modularisation and choice of components 31 Saturday, 26 October 13
  101. P A G E ADHEARSION 3? •Multi-modal as a first-class

    citizen, Telephony as a component of that •Better support for WebRTC and the kind of applications built with it •Greater modularisation and choice of components •Easier integration into Service Oriented Architectures 31 Saturday, 26 October 13
  102. P A G E ADHEARSION 3? •Multi-modal as a first-class

    citizen, Telephony as a component of that •Better support for WebRTC and the kind of applications built with it •Greater modularisation and choice of components •Easier integration into Service Oriented Architectures •Simpler, faster, more robust and more flexible 31 Saturday, 26 October 13
  103. P A G E ADHEARSION 3? •Multi-modal as a first-class

    citizen, Telephony as a component of that •Better support for WebRTC and the kind of applications built with it •Greater modularisation and choice of components •Easier integration into Service Oriented Architectures •Simpler, faster, more robust and more flexible •Only just starting to figure out what this might look like 31 Saturday, 26 October 13
  104. P A G E ADHEARSION 3? •Multi-modal as a first-class

    citizen, Telephony as a component of that •Better support for WebRTC and the kind of applications built with it •Greater modularisation and choice of components •Easier integration into Service Oriented Architectures •Simpler, faster, more robust and more flexible •Only just starting to figure out what this might look like •Contributions would be lovely, especially feedback and ideas 31 Saturday, 26 October 13
  105. P A G E WHAT IS WEBRTC NOT? 33 Telephones

    in Web Browsers! Saturday, 26 October 13
  106. P A G E WHAT IS WEBRTC NOT? 33 Telephones

    in Web Browsers! Morse Code in Telephones! Saturday, 26 October 13