Talking to Rails - MagRails 2011

Post on 09-May-2015

608 views 0 download

Transcript of Talking to Rails - MagRails 2011

Ben LangfeldAdhearsion Core Team

Mojo Lingo

@benlangfeldblangfeld@adhearsion.com

Talking to Rails

Saturday, 15 October 2011

Why voice?

Saturday, 15 October 2011

Why voice?

•Many more people have access to a telephone than have access to the internet

Saturday, 15 October 2011

Why voice?

•Many more people have access to a telephone than have access to the internet

•Many people still prefer voice-based interactions

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

But wait...telephony is HARD right??

Photo by Joseph A. Carr from http://en.wikipedia.org/wiki/File:JT_Switchboard_770x540.jpg

Saturday, 15 October 2011

Code Sample (comfort zone)

Saturday, 15 October 2011

Code Sample (comfort zone)

Saturday, 15 October 2011

Code Sample (comfort zone)

Saturday, 15 October 2011

Saturday, 15 October 2011

A voice application development framework

Saturday, 15 October 2011

A voice application development framework

Independent from, but compatiblewith, Rails

Saturday, 15 October 2011

A voice application development framework

Independent from, but compatiblewith, Rails

Voice applications the Ruby Way

Saturday, 15 October 2011

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

Advanced Voice Features

Saturday, 15 October 2011

Advanced Voice Features

High-level constructs (Menus, Queues, Conferences)

Saturday, 15 October 2011

Advanced Voice Features

High-level constructs (Menus, Queues, Conferences)

DTMF gathering & voice recognition

Saturday, 15 October 2011

Advanced Voice Features

High-level constructs (Menus, Queues, Conferences)

Text-to-Speech

DTMF gathering & voice recognition

Saturday, 15 October 2011

Advanced Voice Features

High-level constructs (Menus, Queues, Conferences)

Text-to-Speech

DTMF gathering & voice recognition

Answering Machine Detection

Saturday, 15 October 2011

Advanced Voice Features

High-level constructs (Menus, Queues, Conferences)

Text-to-Speech

DTMF gathering & voice recognition

Call Progress

Answering Machine Detection

Saturday, 15 October 2011

Adhearsion Applied

Saturday, 15 October 2011

Adhearsion AppliedCall centre workflow

optimisation and integration

Saturday, 15 October 2011

Adhearsion AppliedCall centre workflow

optimisation and integration

Sales force automation

Saturday, 15 October 2011

Adhearsion AppliedCall centre workflow

optimisation and integration

Sales force automation

Conferencing applications

Saturday, 15 October 2011

Adhearsion AppliedCall centre workflow

optimisation and integration

Sales force automation

Conferencing applications

Translation services

Saturday, 15 October 2011

Adhearsion AppliedCall centre workflow

optimisation and integration

Sales force automation

Conferencing applications

Translation services

Robo-calling

Saturday, 15 October 2011

Adhearsion AppliedCall centre workflow

optimisation and integration

Sales force automation

Conferencing applications

Translation services

Polling

Robo-calling

Saturday, 15 October 2011

Adhearsion AppliedCall centre workflow

optimisation and integration

Sales force automation

Conferencing applications

Translation servicesIVR

Polling

Robo-calling

Saturday, 15 October 2011

2008

2010

2011

Adhearsion Platforms

Saturday, 15 October 2011

2008

2010

2011

Adhearsion Platforms

Saturday, 15 October 2011

2008

2010

2011

Adhearsion Platforms

Saturday, 15 October 2011

2008

2010

2011

Adhearsion Platforms

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

Why Adhearsion?

Saturday, 15 October 2011

Why Adhearsion?

•Easy code reuse

Saturday, 15 October 2011

Why Adhearsion?

•Easy code reuse•A natural DSL which is easy to write to

Saturday, 15 October 2011

Why Adhearsion?

•Easy code reuse•A natural DSL which is easy to write to•Rich inter-call operation within the process

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

A (contrived) example problem

Saturday, 15 October 2011

A (contrived) example problem

•Everyone loves a spontaneous conference call

Saturday, 15 October 2011

A (contrived) example problem

•Everyone loves a spontaneous conference call

•Getting people in is tricky

Saturday, 15 October 2011

A (contrived) example problem

•Everyone loves a spontaneous conference call

•Getting people in is tricky

•Not everyone likes the phone ringing

Saturday, 15 October 2011

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

Saturday, 15 October 2011

A solution

Saturday, 15 October 2011

A solution

•Simple rails app for managing contacts

Saturday, 15 October 2011

A solution

•Simple rails app for managing contacts

•Select contacts to call

Saturday, 15 October 2011

A solution

•Simple rails app for managing contacts

•Select contacts to call

•System asks contacts via Jabber if they are available

Saturday, 15 October 2011

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

Saturday, 15 October 2011

Code Demo

Saturday, 15 October 2011

Saturday, 15 October 2011

Saturday, 15 October 2011

Saturday, 15 October 2011

Adhearsion 2.0

Saturday, 15 October 2011

Adhearsion 2.0• The next major evolution of Adhearsion

Saturday, 15 October 2011

Adhearsion 2.0• The next major evolution of Adhearsion

• Many improvements including:

Saturday, 15 October 2011

Adhearsion 2.0• The next major evolution of Adhearsion

• Many improvements including:

• Truly cross-platform (Asterisk, Tropo & Rayo)

Saturday, 15 October 2011

Adhearsion 2.0• The next major evolution of Adhearsion

• Many improvements including:

• Truly cross-platform (Asterisk, Tropo & Rayo)

• Core architecture overhaul

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

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

Saturday, 15 October 2011

Adhearsion really far out

Saturday, 15 October 2011

Adhearsion really far out

•Adhearsion 1.x - Asterisk applications

Saturday, 15 October 2011

Adhearsion really far out

•Adhearsion 1.x - Asterisk applications

•Adhearsion 2.x - Voice applications

Saturday, 15 October 2011

Adhearsion really far out

•Adhearsion 1.x - Asterisk applications

•Adhearsion 2.x - Voice applications

•Adhearsion 3.x - Real-time communications

Saturday, 15 October 2011

adhearsion.com@Adhearsion

http://spkr8.com/t/8602

Questions?

Saturday, 15 October 2011