Share
Embed
Adhearsion 3: The future of Ruby communications - StarTechConf 2013
Delivered at StarTechConf 2013, Santiago Chile
Ben Langfeld
October 25, 2013
Transcript
156 slides
-
P A G E Adhearsion 3: the future of Ruby
communications Ben Langfeld @benlangfeld [email protected] 1 Saturday, 26 October 13 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
P A G E WHAT DO I USE IT FOR?
13 Saturday, 26 October 13 -
P A G E WHAT DO I USE IT FOR?
13 IVR Saturday, 26 October 13 -
P A G E WHAT DO I USE IT FOR?
13 Surveys IVR Saturday, 26 October 13 -
P A G E WHAT DO I USE IT FOR?
13 Surveys Call Centre IVR Saturday, 26 October 13 -
P A G E WHAT DO I USE IT FOR?
13 Voice 2.0 Surveys Call Centre IVR Saturday, 26 October 13 -
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 -
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 -
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 -
P A G E ADHEARSION 2.4 •Released in August 14
Saturday, 26 October 13 -
P A G E ADHEARSION 2.4 •Released in August •Full
support for JRuby 14 Saturday, 26 October 13 -
P A G E ADHEARSION 2.4 •Released in August •Full
support for JRuby •Lots of performance improvements 14 Saturday, 26 October 13 -
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 -
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 -
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 -
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 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Faster -> Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Faster -> Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Faster -> Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Faster -> Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Faster -> Saturday, 26 October 13 -
P A G E BUT IT’S JUST FOR BORING OLD
PHONES.... 15 Faster -> Saturday, 26 October 13 -
P A G E THEN WE GOT... 16 Saturday, 26
October 13 -
P A G E THE NEW PHONE IS EVERYWHERE 19
Saturday, 26 October 13 -
P A G E THE NEW PHONE IS EVERYWHERE 19
? Saturday, 26 October 13 -
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 -
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 -
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 -
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 -
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 -
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 -
P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT 20 Saturday,
26 October 13 -
P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate
medical claims 20 Saturday, 26 October 13 -
P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate
medical claims • Secure caller authentication 20 Saturday, 26 October 13 -
P A G E EXAMPLES: MEDICAL RECORD MANAGEMENT • Automate
medical claims • Secure caller authentication • Reuse primary auth from Website 20 Saturday, 26 October 13 -
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 -
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 -
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 -
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 -
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 -
P A G E EXAMPLES: INCIDENT RESPONSE •Immediate communication face-to-face
21 Saturday, 26 October 13 -
P A G E EXAMPLES: INCIDENT RESPONSE •Immediate communication face-to-face
•Relevant people without phone numbers 21 Saturday, 26 October 13 -
P A G E EXAMPLES: INCIDENT RESPONSE •Immediate communication face-to-face
•Relevant people without phone numbers •Rich presence 21 Saturday, 26 October 13 -
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 -
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 -
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 -
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 -
P A G E WHAT IS WEBRTC? 24 Saturday, 26
October 13 -
P A G E WHAT IS WEBRTC? •JavaScript Browser API
for real-time communication (voice & video) 24 Saturday, 26 October 13 -
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 -
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 -
P A G E 25 http:// Alice Bob Saturday, 26
October 13 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
P A G E GOTCHAS 27 Specification SDP is an
opaque blob to apps Saturday, 26 October 13 -
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 -
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 -
P A G E WEBRTC SUPPORT* 28 * “Support” is
a moving target - not everything works Saturday, 26 October 13 -
P A G E WEBRTC SUPPORT* •Client-Side 28 * “Support”
is a moving target - not everything works Saturday, 26 October 13 -
P A G E WEBRTC SUPPORT* •Client-Side •Chrome 28 *
“Support” is a moving target - not everything works Saturday, 26 October 13 -
P A G E WEBRTC SUPPORT* •Client-Side •Chrome •Firefox 28
* “Support” is a moving target - not everything works Saturday, 26 October 13 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
P A G E WHAT TOOLS? 29 sipML5 Strophe.js Saturday,
26 October 13 -
P A G E WHAT TOOLS? 29 sipML5 Strophe.js Saturday,
26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging Saturday,
26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging Saturday,
26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging Saturday,
26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging Saturday,
26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging Saturday,
26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging Saturday,
26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call
App Functionality Saturday, 26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call
App Functionality XMPP Messaging/Presence Saturday, 26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call
App Functionality XMPP Messaging/Presence Saturday, 26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call
App Functionality XMPP Messaging/Presence Saturday, 26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call
App Functionality XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call
App Functionality XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13 -
P A G E WHAT TOOLS? 30 Call Routing/Bridging In-Call
App Functionality XMPP Messaging/Presence Third Party Messages Saturday, 26 October 13 -
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 -
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 -
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 -
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 -
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 -
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 -
P A G E ADHEARSION 3? •Multi-modal as a first-class
citizen, Telephony as a component of that 31 Saturday, 26 October 13 -
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 -
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 -
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 -
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 -
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 -
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 -
P A G E WHAT IS WEBRTC NOT? 33 Saturday,
26 October 13 -
P A G E WHAT IS WEBRTC NOT? 33 Telephones
in Web Browsers! Saturday, 26 October 13 -
P A G E WHAT IS WEBRTC NOT? 33 Telephones
in Web Browsers! Morse Code in Telephones! Saturday, 26 October 13