SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Building	
  real	
  life	
  applica/ons	
  
      with	
  Adhearsion	
  
                 Luca	
  Pradovera	
  
       Voice	
  Applica/on	
  Developer	
  at	
  
         Mojo	
  Lingo	
  –	
  Atlanta,	
  GA	
  
What	
  is	
  Adhearsion?	
  
•    Ruby	
  voice	
  applica/on	
  framework	
  
•    Provides	
  logic	
  for	
  telephony	
  apps	
  
•    Open	
  source	
  and	
  managed	
  by	
  a	
  Founda/on	
  
•    Version	
  2.1	
  released	
  on	
  08/08	
  
•    2.0	
  was	
  released	
  in	
  April	
  with	
  a	
  complete	
  
     overhaul	
  



                                LSRC	
  2012	
  –	
  Aus/n,	
  TX	
       2	
  
Supported	
  plaSorms	
  
•    Ruby	
  1.9,	
  Jruby	
  with	
  a	
  couple	
  issues	
  
•    Asterisk	
  
•    Voxeo	
  PRISM	
  
•    FreeSWITCH	
  in	
  2.1.0	
  
•    Rayo	
  protocol	
  allows	
  for	
  other	
  plaSorms	
  to	
  be	
  
     supported	
  



                               LSRC	
  2012	
  –	
  Aus/n,	
  TX	
        3	
  
An	
  Adhearsion	
  applica/on	
  
•    Configura/on	
  
•    Call	
  Controllers	
  
•    Rou/ng	
  
•    The	
  ahn	
  command:	
  create,	
  daemon,	
  start,	
  
     stop,	
  restart,	
  generate,	
  help,	
  version	
  




                             LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     4	
  
Call	
  Controllers	
  
•  Contain	
  the	
  logic	
  for	
  the	
  applica/on	
  
•  Have	
  a	
  #run	
  method	
  that	
  is	
  called	
  for	
  
   execu/on	
  
!
class SimpleController < Adhearsion::CallController!
  def run!
     answer!
     play "tt-weasels"!
     hangup!
  end!
end!


                                LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     5	
  
Rou/ng	
  
•  Matches	
  condi/ons	
  to	
  controllers	
  
•  Is	
  in	
  adhearsion.rb	
  together	
  with	
  the	
  config	
  
	
  
Adhearsion.router do!
  route 'Simple controller', SimpleController, :to => '1'!
  route 'Outbound Notification', Adhearsion::OutboundCall,
ConnectingController!
  route 'default', MenuController!
end!




                               LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     6	
  
Basics	
  
•    Output:	
  #play,	
  #say	
  
•    Input:	
  #ask	
  
•    Menu:	
  #menu	
  
•    Recording:	
  #record	
  
•    Logging	
  
•    DemoController	
  demo	
  



                           LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     7	
  
Plugins	
  
•  Provide	
  extra	
  func/onality	
  in	
  a	
  reusable	
  
   manner	
  
•  Packaged	
  as	
  gems	
  
•  Self-­‐documen/ng	
  configura/on	
  
•  “Just”	
  a	
  library	
  of	
  classes	
  
•  Expose	
  hooks	
  for	
  loading	
  and	
  star/ng	
  
•  The	
  adhearsion-­‐drb	
  plugin	
  

                             LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     8	
  
Integra/ng	
  with	
  other	
  apps	
  
•    Database	
  (Ac/ve	
  Record,	
  Sequel)	
  
•    HTTP/REST	
  
•    DRb	
  
•    Queue	
  systems	
  
•    Click	
  to	
  call	
  demo	
  




                            LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     9	
  
Events	
  
•    Are	
  exposed	
  through	
  guarded	
  handlers	
  
•    Handled	
  globally	
  or	
  per-­‐call	
  
•    Essen/al	
  for	
  building	
  complex	
  interac/ons	
  
•    Events	
  in	
  the	
  browser	
  demo	
  




                             LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     10	
  
Call	
  events	
  and	
  /mers	
  
•    The	
  main	
  object	
  you	
  work	
  with	
  is	
  a	
  Call	
  
•    Calls	
  have	
  specialized	
  handlers	
  
•    On_joined,	
  on_answer,	
  on_end	
  
•    Timers	
  allow	
  for	
  periodic	
  events	
  
•    BillingController	
  demo	
  




                                   LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     11	
  
Case	
  studies	
  
•    Adhearsion	
  is	
  used	
  in	
  produc/on	
  now	
  
•    Usage	
  covers	
  a	
  wide	
  range	
  of	
  applica/ons	
  
•    Testability,	
  integra/on,	
  modularity	
  
•    Built	
  for	
  the	
  developer	
  experience	
  




                               LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     12	
  
E-­‐Mediators	
  
•  Adhearsion	
  1.2	
  
•  Cultural	
  mediator	
  service	
  
•  Mul/lingual	
  menu	
  and	
  interface	
  
•  Complex	
  billing	
  with	
  rechargeable	
  accounts	
  
•  Web-­‐based	
  SIP	
  interface	
  with	
  Java	
  and	
  
   Websockets	
  
•  Mostly	
  SIP	
  based	
  

                          LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     13	
  
SOS	
  Travel	
  Card	
  
•  Transla/on	
  service	
  for	
  travelers	
  
•  Prepaid	
  cards	
  with	
  PIN	
  system	
  
•  Completely	
  manageable	
  through	
  IVR,	
  SMS,	
  
   and	
  Web	
  
•  Voicemail	
  handles	
  busy	
  situa/ons,	
  users	
  are	
  
   called	
  back	
  automa/cally	
  
•  Cellphone	
  based	
  and	
  operated	
  


                            LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     14	
  
VerbalizeIt	
  
•  Human	
  transla/on	
  service	
  
•  For	
  business	
  and	
  travelers	
  
•  Provides	
  over	
  the	
  phone	
  service,	
  a	
  mobile	
  
   app,	
  and	
  and	
  API	
  	
  
•  Also	
  offers	
  language	
  learning	
  sessions	
  




                             LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     15	
  
Mobile	
  operator	
  
•  “Inside	
  the	
  carrier”	
  deployment	
  
•  New	
  MVNO	
  opera/ng	
  in	
  North	
  America	
  
•  Ahn	
  operates	
  the	
  subscriber	
  database,	
  
   authen/ca/on,	
  billing	
  
•  All	
  call	
  rou/ng	
  
•  Voicemail	
  and	
  services	
  
•  In-­‐call	
  audio	
  using	
  early	
  media	
  to	
  provide	
  
   innova/ve	
  content	
  
                               LSRC	
  2012	
  –	
  Aus/n,	
  TX	
      16	
  
Thank	
  you!	
  
    Presented	
  by:	
  
   Luca	
  Pradovera	
  
             	
  
     @lucaprado	
  
  Github:	
  polysics	
  
hpp://adhearsion.com	
  
hpp://mojolingo.com	
  

       LSRC	
  2012	
  –	
  Aus/n,	
  TX	
     17	
  

Weitere ähnliche Inhalte

Ähnlich wie Building Real Life Applications with Adhearsion

Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Lohika_Odessa_TechTalks
 
Tech talk microservices debugging
Tech talk microservices debuggingTech talk microservices debugging
Tech talk microservices debuggingAndrey Kolodnitsky
 
Packaging computational biology tools for broad distribution and ease-of-reuse
Packaging computational biology tools for broad distribution and ease-of-reusePackaging computational biology tools for broad distribution and ease-of-reuse
Packaging computational biology tools for broad distribution and ease-of-reuseMatthew Vaughn
 
Princeton Dec 2022 Meetup_ NiFi + Flink + Pulsar
Princeton Dec 2022 Meetup_ NiFi + Flink + PulsarPrinceton Dec 2022 Meetup_ NiFi + Flink + Pulsar
Princeton Dec 2022 Meetup_ NiFi + Flink + PulsarTimothy Spann
 
Onos summit roadmap dec 9
Onos summit  roadmap dec 9Onos summit  roadmap dec 9
Onos summit roadmap dec 9ONOS Project
 
bigdata 2022_ FLiP Into Pulsar Apps
bigdata 2022_ FLiP Into Pulsar Appsbigdata 2022_ FLiP Into Pulsar Apps
bigdata 2022_ FLiP Into Pulsar AppsTimothy Spann
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Apache Thrift, a brief introduction
Apache Thrift, a brief introductionApache Thrift, a brief introduction
Apache Thrift, a brief introductionRandy Abernethy
 
NoSQL afternoon in Japan Kumofs & MessagePack
NoSQL afternoon in Japan Kumofs & MessagePackNoSQL afternoon in Japan Kumofs & MessagePack
NoSQL afternoon in Japan Kumofs & MessagePackSadayuki Furuhashi
 
NoSQL afternoon in Japan kumofs & MessagePack
NoSQL afternoon in Japan kumofs & MessagePackNoSQL afternoon in Japan kumofs & MessagePack
NoSQL afternoon in Japan kumofs & MessagePackSadayuki Furuhashi
 
KOHA - Open Source Library Management Software
KOHA - Open Source Library Management SoftwareKOHA - Open Source Library Management Software
KOHA - Open Source Library Management Softwarerajivkumarmca
 
Koha - Open Source Library Management Software
Koha - Open Source Library Management SoftwareKoha - Open Source Library Management Software
Koha - Open Source Library Management Softwarerajivkumarmca
 
Modern Distributed Messaging and RPC
Modern Distributed Messaging and RPCModern Distributed Messaging and RPC
Modern Distributed Messaging and RPCMax Alexejev
 
Apache Curator: Past, Present and Future
Apache Curator: Past, Present and FutureApache Curator: Past, Present and Future
Apache Curator: Past, Present and FutureJordan Zimmerman
 
Intro To Puppet.Key
Intro To Puppet.KeyIntro To Puppet.Key
Intro To Puppet.KeyWork
 
Voicebasedsrs 130319103050-phpapp02
Voicebasedsrs 130319103050-phpapp02Voicebasedsrs 130319103050-phpapp02
Voicebasedsrs 130319103050-phpapp02Lokesh Loki
 
Introduction to couchbase
Introduction to couchbaseIntroduction to couchbase
Introduction to couchbaseDipti Borkar
 
Monitoring, Alerting, and Tasks as Code by Russ Savage, Director of Product M...
Monitoring, Alerting, and Tasks as Code by Russ Savage, Director of Product M...Monitoring, Alerting, and Tasks as Code by Russ Savage, Director of Product M...
Monitoring, Alerting, and Tasks as Code by Russ Savage, Director of Product M...InfluxData
 
Pushing Java EE outside of the Enterprise - Home Automation
Pushing Java EE outside of the Enterprise - Home AutomationPushing Java EE outside of the Enterprise - Home Automation
Pushing Java EE outside of the Enterprise - Home AutomationDavid Delabassee
 
Lessons Learned Running The Largest OpenStack Clouds
Lessons Learned Running The Largest OpenStack CloudsLessons Learned Running The Largest OpenStack Clouds
Lessons Learned Running The Largest OpenStack CloudsKenneth Hui
 

Ähnlich wie Building Real Life Applications with Adhearsion (20)

Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
 
Tech talk microservices debugging
Tech talk microservices debuggingTech talk microservices debugging
Tech talk microservices debugging
 
Packaging computational biology tools for broad distribution and ease-of-reuse
Packaging computational biology tools for broad distribution and ease-of-reusePackaging computational biology tools for broad distribution and ease-of-reuse
Packaging computational biology tools for broad distribution and ease-of-reuse
 
Princeton Dec 2022 Meetup_ NiFi + Flink + Pulsar
Princeton Dec 2022 Meetup_ NiFi + Flink + PulsarPrinceton Dec 2022 Meetup_ NiFi + Flink + Pulsar
Princeton Dec 2022 Meetup_ NiFi + Flink + Pulsar
 
Onos summit roadmap dec 9
Onos summit  roadmap dec 9Onos summit  roadmap dec 9
Onos summit roadmap dec 9
 
bigdata 2022_ FLiP Into Pulsar Apps
bigdata 2022_ FLiP Into Pulsar Appsbigdata 2022_ FLiP Into Pulsar Apps
bigdata 2022_ FLiP Into Pulsar Apps
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Apache Thrift, a brief introduction
Apache Thrift, a brief introductionApache Thrift, a brief introduction
Apache Thrift, a brief introduction
 
NoSQL afternoon in Japan Kumofs & MessagePack
NoSQL afternoon in Japan Kumofs & MessagePackNoSQL afternoon in Japan Kumofs & MessagePack
NoSQL afternoon in Japan Kumofs & MessagePack
 
NoSQL afternoon in Japan kumofs & MessagePack
NoSQL afternoon in Japan kumofs & MessagePackNoSQL afternoon in Japan kumofs & MessagePack
NoSQL afternoon in Japan kumofs & MessagePack
 
KOHA - Open Source Library Management Software
KOHA - Open Source Library Management SoftwareKOHA - Open Source Library Management Software
KOHA - Open Source Library Management Software
 
Koha - Open Source Library Management Software
Koha - Open Source Library Management SoftwareKoha - Open Source Library Management Software
Koha - Open Source Library Management Software
 
Modern Distributed Messaging and RPC
Modern Distributed Messaging and RPCModern Distributed Messaging and RPC
Modern Distributed Messaging and RPC
 
Apache Curator: Past, Present and Future
Apache Curator: Past, Present and FutureApache Curator: Past, Present and Future
Apache Curator: Past, Present and Future
 
Intro To Puppet.Key
Intro To Puppet.KeyIntro To Puppet.Key
Intro To Puppet.Key
 
Voicebasedsrs 130319103050-phpapp02
Voicebasedsrs 130319103050-phpapp02Voicebasedsrs 130319103050-phpapp02
Voicebasedsrs 130319103050-phpapp02
 
Introduction to couchbase
Introduction to couchbaseIntroduction to couchbase
Introduction to couchbase
 
Monitoring, Alerting, and Tasks as Code by Russ Savage, Director of Product M...
Monitoring, Alerting, and Tasks as Code by Russ Savage, Director of Product M...Monitoring, Alerting, and Tasks as Code by Russ Savage, Director of Product M...
Monitoring, Alerting, and Tasks as Code by Russ Savage, Director of Product M...
 
Pushing Java EE outside of the Enterprise - Home Automation
Pushing Java EE outside of the Enterprise - Home AutomationPushing Java EE outside of the Enterprise - Home Automation
Pushing Java EE outside of the Enterprise - Home Automation
 
Lessons Learned Running The Largest OpenStack Clouds
Lessons Learned Running The Largest OpenStack CloudsLessons Learned Running The Largest OpenStack Clouds
Lessons Learned Running The Largest OpenStack Clouds
 

Mehr von Mojo Lingo

ConnectJS 2015: Video Killed the Telephone Star
ConnectJS 2015: Video Killed the Telephone StarConnectJS 2015: Video Killed the Telephone Star
ConnectJS 2015: Video Killed the Telephone StarMojo Lingo
 
AstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it BreaksAstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it BreaksMojo Lingo
 
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In Sight
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In SightFreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In Sight
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In SightMojo Lingo
 
Now Hear This! Putting Voice, Video, and Text into Ruby on Rails
Now Hear This! Putting Voice, Video, and Text into Ruby on RailsNow Hear This! Putting Voice, Video, and Text into Ruby on Rails
Now Hear This! Putting Voice, Video, and Text into Ruby on RailsMojo Lingo
 
Using Asterisk to Create "Her"
Using Asterisk to Create "Her"Using Asterisk to Create "Her"
Using Asterisk to Create "Her"Mojo Lingo
 
Tipping the Scales: Measuring and Scaling Asterisk
Tipping the Scales: Measuring and Scaling AsteriskTipping the Scales: Measuring and Scaling Asterisk
Tipping the Scales: Measuring and Scaling AsteriskMojo Lingo
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettMojo Lingo
 
AdhearsionConf 2013 Keynote
AdhearsionConf 2013 KeynoteAdhearsionConf 2013 Keynote
AdhearsionConf 2013 KeynoteMojo Lingo
 
Speech-Enabling Web Apps
Speech-Enabling Web AppsSpeech-Enabling Web Apps
Speech-Enabling Web AppsMojo Lingo
 
WebRTC: What? How? Why? - ClueCon 2013
WebRTC: What? How? Why? - ClueCon 2013WebRTC: What? How? Why? - ClueCon 2013
WebRTC: What? How? Why? - ClueCon 2013Mojo Lingo
 
Infiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando RubyInfiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando RubyMojo Lingo
 
Enhancing FreePBX with Adhearsion
Enhancing FreePBX with AdhearsionEnhancing FreePBX with Adhearsion
Enhancing FreePBX with AdhearsionMojo Lingo
 
Connecting Adhearsion
Connecting AdhearsionConnecting Adhearsion
Connecting AdhearsionMojo Lingo
 
Testing Adhearsion Applications
Testing Adhearsion ApplicationsTesting Adhearsion Applications
Testing Adhearsion ApplicationsMojo Lingo
 
Testing Telephony: It's Not All Terrible
Testing Telephony: It's Not All TerribleTesting Telephony: It's Not All Terrible
Testing Telephony: It's Not All TerribleMojo Lingo
 
Rayo for XMPP Folks
Rayo for XMPP FolksRayo for XMPP Folks
Rayo for XMPP FolksMojo Lingo
 
Talking To Rails
Talking To RailsTalking To Rails
Talking To RailsMojo Lingo
 
Keeping It Realtime!
Keeping It Realtime!Keeping It Realtime!
Keeping It Realtime!Mojo Lingo
 
Integrating Voice Through Adhearsion
Integrating Voice Through AdhearsionIntegrating Voice Through Adhearsion
Integrating Voice Through AdhearsionMojo Lingo
 
Infiltrating Telecoms Using Ruby
Infiltrating Telecoms Using RubyInfiltrating Telecoms Using Ruby
Infiltrating Telecoms Using RubyMojo Lingo
 

Mehr von Mojo Lingo (20)

ConnectJS 2015: Video Killed the Telephone Star
ConnectJS 2015: Video Killed the Telephone StarConnectJS 2015: Video Killed the Telephone Star
ConnectJS 2015: Video Killed the Telephone Star
 
AstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it BreaksAstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it Breaks
 
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In Sight
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In SightFreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In Sight
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In Sight
 
Now Hear This! Putting Voice, Video, and Text into Ruby on Rails
Now Hear This! Putting Voice, Video, and Text into Ruby on RailsNow Hear This! Putting Voice, Video, and Text into Ruby on Rails
Now Hear This! Putting Voice, Video, and Text into Ruby on Rails
 
Using Asterisk to Create "Her"
Using Asterisk to Create "Her"Using Asterisk to Create "Her"
Using Asterisk to Create "Her"
 
Tipping the Scales: Measuring and Scaling Asterisk
Tipping the Scales: Measuring and Scaling AsteriskTipping the Scales: Measuring and Scaling Asterisk
Tipping the Scales: Measuring and Scaling Asterisk
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan Burnett
 
AdhearsionConf 2013 Keynote
AdhearsionConf 2013 KeynoteAdhearsionConf 2013 Keynote
AdhearsionConf 2013 Keynote
 
Speech-Enabling Web Apps
Speech-Enabling Web AppsSpeech-Enabling Web Apps
Speech-Enabling Web Apps
 
WebRTC: What? How? Why? - ClueCon 2013
WebRTC: What? How? Why? - ClueCon 2013WebRTC: What? How? Why? - ClueCon 2013
WebRTC: What? How? Why? - ClueCon 2013
 
Infiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando RubyInfiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando Ruby
 
Enhancing FreePBX with Adhearsion
Enhancing FreePBX with AdhearsionEnhancing FreePBX with Adhearsion
Enhancing FreePBX with Adhearsion
 
Connecting Adhearsion
Connecting AdhearsionConnecting Adhearsion
Connecting Adhearsion
 
Testing Adhearsion Applications
Testing Adhearsion ApplicationsTesting Adhearsion Applications
Testing Adhearsion Applications
 
Testing Telephony: It's Not All Terrible
Testing Telephony: It's Not All TerribleTesting Telephony: It's Not All Terrible
Testing Telephony: It's Not All Terrible
 
Rayo for XMPP Folks
Rayo for XMPP FolksRayo for XMPP Folks
Rayo for XMPP Folks
 
Talking To Rails
Talking To RailsTalking To Rails
Talking To Rails
 
Keeping It Realtime!
Keeping It Realtime!Keeping It Realtime!
Keeping It Realtime!
 
Integrating Voice Through Adhearsion
Integrating Voice Through AdhearsionIntegrating Voice Through Adhearsion
Integrating Voice Through Adhearsion
 
Infiltrating Telecoms Using Ruby
Infiltrating Telecoms Using RubyInfiltrating Telecoms Using Ruby
Infiltrating Telecoms Using Ruby
 

Kürzlich hochgeladen

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Kürzlich hochgeladen (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

Building Real Life Applications with Adhearsion

  • 1. Building  real  life  applica/ons   with  Adhearsion   Luca  Pradovera   Voice  Applica/on  Developer  at   Mojo  Lingo  –  Atlanta,  GA  
  • 2. What  is  Adhearsion?   •  Ruby  voice  applica/on  framework   •  Provides  logic  for  telephony  apps   •  Open  source  and  managed  by  a  Founda/on   •  Version  2.1  released  on  08/08   •  2.0  was  released  in  April  with  a  complete   overhaul   LSRC  2012  –  Aus/n,  TX   2  
  • 3. Supported  plaSorms   •  Ruby  1.9,  Jruby  with  a  couple  issues   •  Asterisk   •  Voxeo  PRISM   •  FreeSWITCH  in  2.1.0   •  Rayo  protocol  allows  for  other  plaSorms  to  be   supported   LSRC  2012  –  Aus/n,  TX   3  
  • 4. An  Adhearsion  applica/on   •  Configura/on   •  Call  Controllers   •  Rou/ng   •  The  ahn  command:  create,  daemon,  start,   stop,  restart,  generate,  help,  version   LSRC  2012  –  Aus/n,  TX   4  
  • 5. Call  Controllers   •  Contain  the  logic  for  the  applica/on   •  Have  a  #run  method  that  is  called  for   execu/on   ! class SimpleController < Adhearsion::CallController! def run! answer! play "tt-weasels"! hangup! end! end! LSRC  2012  –  Aus/n,  TX   5  
  • 6. Rou/ng   •  Matches  condi/ons  to  controllers   •  Is  in  adhearsion.rb  together  with  the  config     Adhearsion.router do! route 'Simple controller', SimpleController, :to => '1'! route 'Outbound Notification', Adhearsion::OutboundCall, ConnectingController! route 'default', MenuController! end! LSRC  2012  –  Aus/n,  TX   6  
  • 7. Basics   •  Output:  #play,  #say   •  Input:  #ask   •  Menu:  #menu   •  Recording:  #record   •  Logging   •  DemoController  demo   LSRC  2012  –  Aus/n,  TX   7  
  • 8. Plugins   •  Provide  extra  func/onality  in  a  reusable   manner   •  Packaged  as  gems   •  Self-­‐documen/ng  configura/on   •  “Just”  a  library  of  classes   •  Expose  hooks  for  loading  and  star/ng   •  The  adhearsion-­‐drb  plugin   LSRC  2012  –  Aus/n,  TX   8  
  • 9. Integra/ng  with  other  apps   •  Database  (Ac/ve  Record,  Sequel)   •  HTTP/REST   •  DRb   •  Queue  systems   •  Click  to  call  demo   LSRC  2012  –  Aus/n,  TX   9  
  • 10. Events   •  Are  exposed  through  guarded  handlers   •  Handled  globally  or  per-­‐call   •  Essen/al  for  building  complex  interac/ons   •  Events  in  the  browser  demo   LSRC  2012  –  Aus/n,  TX   10  
  • 11. Call  events  and  /mers   •  The  main  object  you  work  with  is  a  Call   •  Calls  have  specialized  handlers   •  On_joined,  on_answer,  on_end   •  Timers  allow  for  periodic  events   •  BillingController  demo   LSRC  2012  –  Aus/n,  TX   11  
  • 12. Case  studies   •  Adhearsion  is  used  in  produc/on  now   •  Usage  covers  a  wide  range  of  applica/ons   •  Testability,  integra/on,  modularity   •  Built  for  the  developer  experience   LSRC  2012  –  Aus/n,  TX   12  
  • 13. E-­‐Mediators   •  Adhearsion  1.2   •  Cultural  mediator  service   •  Mul/lingual  menu  and  interface   •  Complex  billing  with  rechargeable  accounts   •  Web-­‐based  SIP  interface  with  Java  and   Websockets   •  Mostly  SIP  based   LSRC  2012  –  Aus/n,  TX   13  
  • 14. SOS  Travel  Card   •  Transla/on  service  for  travelers   •  Prepaid  cards  with  PIN  system   •  Completely  manageable  through  IVR,  SMS,   and  Web   •  Voicemail  handles  busy  situa/ons,  users  are   called  back  automa/cally   •  Cellphone  based  and  operated   LSRC  2012  –  Aus/n,  TX   14  
  • 15. VerbalizeIt   •  Human  transla/on  service   •  For  business  and  travelers   •  Provides  over  the  phone  service,  a  mobile   app,  and  and  API     •  Also  offers  language  learning  sessions   LSRC  2012  –  Aus/n,  TX   15  
  • 16. Mobile  operator   •  “Inside  the  carrier”  deployment   •  New  MVNO  opera/ng  in  North  America   •  Ahn  operates  the  subscriber  database,   authen/ca/on,  billing   •  All  call  rou/ng   •  Voicemail  and  services   •  In-­‐call  audio  using  early  media  to  provide   innova/ve  content   LSRC  2012  –  Aus/n,  TX   16  
  • 17. Thank  you!   Presented  by:   Luca  Pradovera     @lucaprado   Github:  polysics   hpp://adhearsion.com   hpp://mojolingo.com   LSRC  2012  –  Aus/n,  TX   17