Talking To Rails
-
Upload
mojo-lingo -
Category
Technology
-
view
81 -
download
0
description
Transcript of Talking To Rails
Ben LangfeldAdhearsion Core Team
Mojo Lingo
Talking to Rails
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-based interactions
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
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
But wait...telephony is HARD right??
Photo by Joseph A. Carr from http://en.wikipedia.org/wiki/File:JT_Switchboard_770x540.jpg
Code Sample (comfort zone)
Code Sample (comfort zone)
Code Sample (comfort zone)
A voice application development framework
A voice application development framework
Independent from, but compatiblewith, Rails
A voice application development framework
Independent from, but compatiblewith, Rails
Voice applications the Ruby Way
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
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
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
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
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
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
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
Advanced Voice Features
Advanced Voice Features
High-level constructs (Menus, Queues, Conferences)
Advanced Voice Features
High-level constructs (Menus, Queues, Conferences)
DTMF gathering & voice recognition
Advanced Voice Features
High-level constructs (Menus, Queues, Conferences)
Text-to-Speech
DTMF gathering & voice recognition
Advanced Voice Features
High-level constructs (Menus, Queues, Conferences)
Text-to-Speech
DTMF gathering & voice recognition
Answering Machine Detection
Advanced Voice Features
High-level constructs (Menus, Queues, Conferences)
Text-to-Speech
DTMF gathering & voice recognition
Call Progress
Answering Machine Detection
Adhearsion Applied
Adhearsion AppliedCall centre workflow
optimisation and integration
Adhearsion AppliedCall centre workflow
optimisation and integration
Sales force automation
Adhearsion AppliedCall centre workflow
optimisation and integration
Sales force automation
Conferencing applications
Adhearsion AppliedCall centre workflow
optimisation and integration
Sales force automation
Conferencing applications
Translation services
Adhearsion AppliedCall centre workflow
optimisation and integration
Sales force automation
Conferencing applications
Translation services
Robo-calling
Adhearsion AppliedCall centre workflow
optimisation and integration
Sales force automation
Conferencing applications
Translation services
Polling
Robo-calling
Adhearsion AppliedCall centre workflow
optimisation and integration
Sales force automation
Conferencing applications
Translation servicesIVR
Polling
Robo-calling
2008
2010
2011
Adhearsion Platforms
2008
2010
2011
Adhearsion Platforms
2008
2010
2011
Adhearsion Platforms
2008
2010
2011
Adhearsion Platforms
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
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
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
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
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
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
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
Adhearsion Architecture
XMPP/JabberSQL 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
Adhearsion Architecture
WebREST/JSON/XML
XMPP/JabberSQL 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
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•Brings modern development practices to telephony
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
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
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
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 the phone ringing
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
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 available
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
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, Tropo & Rayo)
Adhearsion 2.0• The next major evolution of Adhearsion
• Many improvements including:
• Truly cross-platform (Asterisk, Tropo & Rayo)
• Core architecture overhaul
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
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
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
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
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-time communications
adhearsion.com@Adhearsion
http://spkr8.com/t/8602
Questions?