Evented Telephony Application Design with Adhearsion

18
Ben Klang Founder, Mojo Lingo [email protected] Twitter/Github: @bklang Evented Telephony Application Design with

description

Evented Telephony Application Design with Adhearsion presented by Ben Klang of Mojo Lingo at Ruby Conf 2011

Transcript of Evented Telephony Application Design with Adhearsion

Page 2: Evented Telephony Application Design with Adhearsion

What is Adhearsion?

• Adhesion you can hear – glueing the voice layer to the rest of the world.

• Voice Application Development Framework

• Open Source

• Ruby – integrates easily with Rails, but not dependent

• Platform agnostic – runs anywhere Ruby or Java (JRuby) does

• Runs small, scales large

• Cloud-Ready

Page 3: Evented Telephony Application Design with Adhearsion

Adhearsion Applied

• Call center workflow optimization and integration

• Sales force automation

• Conferencing applications

• Translation services

• IVR

• Polling

• Robo-calling

Page 4: Evented Telephony Application Design with Adhearsion

2008

2010

2011

Adhearsion Platforms

Page 5: Evented Telephony Application Design with Adhearsion

Adhearsion Architecture

Page 6: Evented Telephony Application Design with Adhearsion

But wait...telephony is HARD right??

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

Page 7: Evented Telephony Application Design with Adhearsion

Code Sample (comfort zone)

Don’t Panic

Page 8: Evented Telephony Application Design with Adhearsion

Why evented design?

Page 9: Evented Telephony Application Design with Adhearsion

Why evented design?

• Telephony needs are well served by evented design

Page 10: Evented Telephony Application Design with Adhearsion

Why evented design?

• Telephony needs are well served by evented design

• DTMF key presses

Page 11: Evented Telephony Application Design with Adhearsion

Why evented design?

• Telephony needs are well served by evented design

• DTMF key presses

• New call setup/call state transition

Page 12: Evented Telephony Application Design with Adhearsion

Why evented design?

• Telephony needs are well served by evented design

• DTMF key presses

• New call setup/call state transition

• Conference or Queue join/leave

Page 13: Evented Telephony Application Design with Adhearsion

Why evented design?

• Telephony needs are well served by evented design

• DTMF key presses

• New call setup/call state transition

• Conference or Queue join/leave

• Allows extra logic to execute without interrupting flow

Page 14: Evented Telephony Application Design with Adhearsion

Why evented design?

• Telephony needs are well served by evented design

• DTMF key presses

• New call setup/call state transition

• Conference or Queue join/leave

• Allows extra logic to execute without interrupting flow

• Process keypresses while on a long blocking call

Page 15: Evented Telephony Application Design with Adhearsion

Why evented design?

• Telephony needs are well served by evented design

• DTMF key presses

• New call setup/call state transition

• Conference or Queue join/leave

• Allows extra logic to execute without interrupting flow

• Process keypresses while on a long blocking call

• React to external events (timer expired, agent available)

Page 16: Evented Telephony Application Design with Adhearsion

Code Demo

Code from this demo:https://github.com/mojolingo/RubyConf2011