SlideShare a Scribd company logo
Make ruby ‘talk’ to your users
- literally
Bhavin Javia!
Founder @
www.mavenhive.in
Voice enable your Ruby apps
Why voice ?
❖ Many more people have phones than PCs/
internet!
❖ Many people prefer voice communications
over other channels!
❖ Voice provides interesting use-cases that
text and images alone can’t!
❖ Integrating computers with phones sounds
like magic !
maintained by
What is Adhearsion ?
❖ Framework for voice apps!
❖ Business layer of telephony stack!
❖ Adhearsion = “adhesion” + “hear”!
❖ Glues voice layer to rest of the world
<3
What is Adhearsion ?
❖ Written in Ruby!
❖ Open Source!
❖ Easy to use DSL!
❖ Powerful eventing!
❖ Plugins for common problems!
❖ Helpful community!
❖ Democratising telephony
Who is it for ?
❖ Voice app developers!
❖ Voice service providers!
❖ Telephony network providers!
❖ Ruby developers!
❖ Web developers!
❖ Anyone who doesn’t know ABC of telecom
Not just for the telecom guys
Where is it used ?
❖ IVRs!
❖ Call Center/Sales Force Automation!
❖ Surveys!
❖ Directory/Translation services!
❖ Automated reminders!
❖ Tele-marketing!
❖ Shopify (http://vimeo.com/33038589)!
❖ Your app ?
Adhearsion Features
❖ IVR Menus!
❖ Call answering, transfer, conferencing!
❖ Voicemails!
❖ Click-to-call!
❖ TTS or Audio playback!
❖ ASR!
❖ Answering Machine Detection
How is it used ?
https://speakerdeck.com/benlangfeld/infiltrating-telecoms-using-ruby
Connecting Adhearsion
❖ Database - via Sequel!
❖ HTTP client - HTTParty, RestClient etc!
❖ Redis - via redis gem!
❖ DRb - via adhearsion-drb!
❖ AMQP and other queues!
❖ HTTP server - Reel, Sinatra!
❖ XMPP - adhearsion-xmpp
http://www.confreaks.com/videos/2266-adhearsionconf2012-connecting-adhearsion
Adhearsion.kind_of?(Rails)
but
Adhearsion != Rails
Got it !
show me something in action
Demo
Social feed ‘talker’
Dharampal HS!
@codemangler
Instructions
❖ Everyone, please Switch OFF your WiFi :)!
❖ 4-5 people, please raise your hands to volunteer
Volunteers Only
❖ Tweet something to @mavenhive!
❖ Listen to your tweets (on stage)
Features Demo’ed
❖ Call Routing!
❖ IVR (ASR)!
❖ TTS!
❖ Integration!
❖ to external APIs e.g. Twitter API!
❖ via Ruby libraries e.g. twitter gem
Real world example ?
Grasshopper Demo
Lets look under the hood
Celluloid
❖ OOP + Actor model!
❖ Concurrent objects!
❖ Adhearsion uses Celluloid!
❖ Sidekiq users Celluloid!
❖ It’s an ecosystem - Celluloid::IO, DCell, Reel
https://github.com/celluloid/celluloid
Punchblock
❖ Middleware library for telephony
applications!
❖ Similar to Rack for Rails/Sinatra!
❖ Consistent API over third-party call control
protocols - Rayo, Asterisk, FreeSWITCH!
❖ Frameworks/Apps can leverage
Punchblock’s APIs!
❖ Not a framework in itself!
❖ https://github.com/adhearsion/
punchblock
VOIP Platforms
http://mojolingo.com/blog/2013/adhearsion-voice-platform-comparison/
How to choose ?
FreeSWITCH with mod_rayo
❖ Calls bridging!
❖ Call rejection/redirection!
❖ Outbound dialing!
❖ Audio playback!
❖ Audio input!
❖ Audio recording
❖ Fax!
❖ Call Progress Analysis!
❖ Supervisory tone detection!
❖ Answering nachhing detection!
❖ Fax tone detection!
SIP (Session Initiation Protocol)
❖ Communications protocol!
❖ Controls media communication sessions!
❖ e.g. Voice/Video calls over IP!
❖ Standardised as RFC 3261 under IETF!
❖ Application layer protocol!
❖ Independent of underlying transport - TCP/UDP/SCTP/
SMTP!
❖ Uses other protocols - SDP/RTP/SRTP!
❖ Similar to HTTP’s request/response model
DID (Direct Inward Dialing)
❖ DID numbers purchased from carrier
website!
❖ IP Address/FQDN of voice network
provided to carrier!
❖ Same or different carrier provides out
bound dialling!
❖ Calls are routed to single FS server or
OpenSIPS proxy
TTS (Text-To-Speech)
❖ Adhearsion itself does not provide a TTS engine!
❖ Works with various TTS engines via VOIP platforms like Asterisk,
FreeSWITCH etc!
❖ TTS Engines - Festival, Cepstral, Lumevox, Nuance, AT&T Speech API,
Google Translate!
❖ CallController#say
ASR (Automatic Speech Recognition)
❖ Adhearsion supports third-party ASR engines!
❖ ASR Engines - PocketSphinx, Lumevox, Nuance, Vestec, AT&T Speech API!
❖ Plugin - https://github.com/adhearsion/adhearsion-asr!
❖ More insights - http://adhearsionconf.com/events/adhearsion-mania/
Simple Deployment
Scaling it up
How can I get started ?
https://github.com/mojolingo/Telephony-Dev-Box
https://mojolingo.com/blog/2013/using-telephony-dev-box/
Adhearsion Plugins
http://ahnhub.com/
Finding Help
❖ Documentation - adhearsion.com/docs!
❖ Mailing list - groups.google.com/forum/#!forum/adhearsion!
❖ Github Issue Tracker - github.com/adhearsion/adhearsion/issues!
❖ Reusable Plugins - ahnhub.com!
❖ IRC - adhearsion.com/irc!
❖ Talks - adhearsion.com/media!
❖ Conference - adhearsionconf.com
SippyCup
http://mojolingo.github.io/sippy_cup
Remember
❖ There is lots of fraud in telephony!
❖ Be very careful when exposing your server to the public internet!
❖ Use access control lists to reject all SIP / XMPP traffic from untrusted IPs!
❖ Do not use default usernames and passwords in example configuration!
❖ Encrypt traffic between FS and Adhearsion - if not in same LAN!
❖ Be careful about letting customers dial expensive countries!
❖ Block dialing to premium numbers or non-market parts of the world!
❖ RTP is not encrypted if using SIP!
❖ Use SRTP with SSIP for encrypted audio
References
❖ adhearsion.com!
❖ speakerdeck.com/benlangfeld!
❖ slideshare.net/bklang/presentations!
❖ vimeo.com/adhearsion!
❖ mojolingo.com/blog/2014/adhearsion-survey-results-v2!
❖ github.com/MavenHive/social-feed-talker (demo app)
Thank You
Bhavin Javia	
@bhavinjavia	
bhavin@mavenhive.in
www.mavenhive.in
speakerdeck.com/bhavinjavia
slideshare.com/bhavinjavia
presentation available shortly at -

More Related Content

Viewers also liked

Guide des Partenaires de l&rsquo;Office de Tourisme de Sainte-Maxime
Guide des Partenaires de l&rsquo;Office de Tourisme de Sainte-MaximeGuide des Partenaires de l&rsquo;Office de Tourisme de Sainte-Maxime
Guide des Partenaires de l&rsquo;Office de Tourisme de Sainte-Maxime
Sainte-Maxime Tourisme
 
Chuyen mach trong wan2
Chuyen mach trong wan2Chuyen mach trong wan2
Chuyen mach trong wan2
VNG
 
Anderson Analytics MENG 2010 Marketing Trend Report
Anderson Analytics MENG 2010 Marketing Trend ReportAnderson Analytics MENG 2010 Marketing Trend Report
Anderson Analytics MENG 2010 Marketing Trend Report
tomhcanderson
 
Web analytics masterclass Howest
Web analytics masterclass HowestWeb analytics masterclass Howest
Web analytics masterclass HowestEvelien De Mey
 
Roadbook forum saa s et cloud ibm final
Roadbook forum saa s et cloud ibm   finalRoadbook forum saa s et cloud ibm   final
Roadbook forum saa s et cloud ibm finalClub Alliances
 
Testing Makes Perfect: A Case Study in Onsite Optimizations
Testing Makes Perfect: A Case Study in Onsite OptimizationsTesting Makes Perfect: A Case Study in Onsite Optimizations
Testing Makes Perfect: A Case Study in Onsite Optimizations
Ve Interactive, US
 
Un DíA Para Recordar
Un DíA Para RecordarUn DíA Para Recordar
Un DíA Para Recordar
nanycayo
 
Reforma Código Penal - Agm Abogados
Reforma Código Penal - Agm Abogados Reforma Código Penal - Agm Abogados
Reforma Código Penal - Agm Abogados
AGM Abogados
 
Sex-up your Apps using animations & prototype
Sex-up your Apps using animations & prototypeSex-up your Apps using animations & prototype
Sex-up your Apps using animations & prototype
TheFamily
 
Integracion de las Semántica en las IDE: IDEZar Callejero Semántico
Integracion de las Semántica en las IDE: IDEZar Callejero SemánticoIntegracion de las Semántica en las IDE: IDEZar Callejero Semántico
Integracion de las Semántica en las IDE: IDEZar Callejero Semántico
Francisco J. Lopez-Pellicer
 
Estudio socioeconómico y de identificación de oportunidades de cooperación em...
Estudio socioeconómico y de identificación de oportunidades de cooperación em...Estudio socioeconómico y de identificación de oportunidades de cooperación em...
Estudio socioeconómico y de identificación de oportunidades de cooperación em...Agencia IDEA
 
Construye tu muñeco de madera(kung fu)
Construye tu muñeco de madera(kung fu)Construye tu muñeco de madera(kung fu)
Construye tu muñeco de madera(kung fu)
hurtadomauro
 

Viewers also liked (15)

Herramientas
HerramientasHerramientas
Herramientas
 
Guide des Partenaires de l&rsquo;Office de Tourisme de Sainte-Maxime
Guide des Partenaires de l&rsquo;Office de Tourisme de Sainte-MaximeGuide des Partenaires de l&rsquo;Office de Tourisme de Sainte-Maxime
Guide des Partenaires de l&rsquo;Office de Tourisme de Sainte-Maxime
 
Nuestros Hijos e Internet
Nuestros Hijos e InternetNuestros Hijos e Internet
Nuestros Hijos e Internet
 
Chuyen mach trong wan2
Chuyen mach trong wan2Chuyen mach trong wan2
Chuyen mach trong wan2
 
Anderson Analytics MENG 2010 Marketing Trend Report
Anderson Analytics MENG 2010 Marketing Trend ReportAnderson Analytics MENG 2010 Marketing Trend Report
Anderson Analytics MENG 2010 Marketing Trend Report
 
Web analytics masterclass Howest
Web analytics masterclass HowestWeb analytics masterclass Howest
Web analytics masterclass Howest
 
Roadbook forum saa s et cloud ibm final
Roadbook forum saa s et cloud ibm   finalRoadbook forum saa s et cloud ibm   final
Roadbook forum saa s et cloud ibm final
 
Testing Makes Perfect: A Case Study in Onsite Optimizations
Testing Makes Perfect: A Case Study in Onsite OptimizationsTesting Makes Perfect: A Case Study in Onsite Optimizations
Testing Makes Perfect: A Case Study in Onsite Optimizations
 
Un DíA Para Recordar
Un DíA Para RecordarUn DíA Para Recordar
Un DíA Para Recordar
 
Reforma Código Penal - Agm Abogados
Reforma Código Penal - Agm Abogados Reforma Código Penal - Agm Abogados
Reforma Código Penal - Agm Abogados
 
Sex-up your Apps using animations & prototype
Sex-up your Apps using animations & prototypeSex-up your Apps using animations & prototype
Sex-up your Apps using animations & prototype
 
Integracion de las Semántica en las IDE: IDEZar Callejero Semántico
Integracion de las Semántica en las IDE: IDEZar Callejero SemánticoIntegracion de las Semántica en las IDE: IDEZar Callejero Semántico
Integracion de las Semántica en las IDE: IDEZar Callejero Semántico
 
Fotografo eadwear muybridge
Fotografo eadwear muybridgeFotografo eadwear muybridge
Fotografo eadwear muybridge
 
Estudio socioeconómico y de identificación de oportunidades de cooperación em...
Estudio socioeconómico y de identificación de oportunidades de cooperación em...Estudio socioeconómico y de identificación de oportunidades de cooperación em...
Estudio socioeconómico y de identificación de oportunidades de cooperación em...
 
Construye tu muñeco de madera(kung fu)
Construye tu muñeco de madera(kung fu)Construye tu muñeco de madera(kung fu)
Construye tu muñeco de madera(kung fu)
 

Similar to Make ruby talk to your users - literally

Try! Swift Tokyo2017
Try! Swift Tokyo2017Try! Swift Tokyo2017
Try! Swift Tokyo2017
Amy Cheong
 
Cross Device Accessibility
Cross Device AccessibilityCross Device Accessibility
Cross Device Accessibility
Chris Mills
 
Voice Applications with Adhearsion
Voice Applications with AdhearsionVoice Applications with Adhearsion
Voice Applications with Adhearsion
Mojo Lingo
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
Lorenzo Miniero
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
Cisco DevNet
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
Seamless Migration
Seamless MigrationSeamless Migration
Seamless Migration
jasnow
 
Cross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScriptCross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScript
Fokke Zandbergen
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple Platforms
Mike Hartington
 
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
Kel
 
Serverless: when functions and GitOps collide
Serverless: when functions and GitOps collideServerless: when functions and GitOps collide
Serverless: when functions and GitOps collide
Edward Wilde
 
Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012
Adhearsion Foundation
 
Parsing binaries and protocols with erlang
Parsing binaries and protocols with erlangParsing binaries and protocols with erlang
Parsing binaries and protocols with erlang
Bhasker Kode
 
Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009eCommConf
 
Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010
Twilio Inc
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
Eric Johnson
 
Swift vs. Language X
Swift vs. Language XSwift vs. Language X
Swift vs. Language X
Scott Wlaschin
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
Lorenzo Miniero
 
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
mtoppa
 
UpStage: scène virtuelle & performance participative en ligne
UpStage: scène virtuelle & performance participative en ligneUpStage: scène virtuelle & performance participative en ligne
UpStage: scène virtuelle & performance participative en ligne
Foobarlab
 

Similar to Make ruby talk to your users - literally (20)

Try! Swift Tokyo2017
Try! Swift Tokyo2017Try! Swift Tokyo2017
Try! Swift Tokyo2017
 
Cross Device Accessibility
Cross Device AccessibilityCross Device Accessibility
Cross Device Accessibility
 
Voice Applications with Adhearsion
Voice Applications with AdhearsionVoice Applications with Adhearsion
Voice Applications with Adhearsion
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
Seamless Migration
Seamless MigrationSeamless Migration
Seamless Migration
 
Cross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScriptCross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScript
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple Platforms
 
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
 
Serverless: when functions and GitOps collide
Serverless: when functions and GitOps collideServerless: when functions and GitOps collide
Serverless: when functions and GitOps collide
 
Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012
 
Parsing binaries and protocols with erlang
Parsing binaries and protocols with erlangParsing binaries and protocols with erlang
Parsing binaries and protocols with erlang
 
Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009
 
Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
 
Swift vs. Language X
Swift vs. Language XSwift vs. Language X
Swift vs. Language X
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
 
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
 
UpStage: scène virtuelle & performance participative en ligne
UpStage: scène virtuelle & performance participative en ligneUpStage: scène virtuelle & performance participative en ligne
UpStage: scène virtuelle & performance participative en ligne
 

Recently uploaded

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 

Recently uploaded (20)

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 

Make ruby talk to your users - literally

  • 1. Make ruby ‘talk’ to your users - literally Bhavin Javia! Founder @ www.mavenhive.in
  • 2. Voice enable your Ruby apps
  • 3. Why voice ? ❖ Many more people have phones than PCs/ internet! ❖ Many people prefer voice communications over other channels! ❖ Voice provides interesting use-cases that text and images alone can’t! ❖ Integrating computers with phones sounds like magic !
  • 5. What is Adhearsion ? ❖ Framework for voice apps! ❖ Business layer of telephony stack! ❖ Adhearsion = “adhesion” + “hear”! ❖ Glues voice layer to rest of the world
  • 6. <3
  • 7. What is Adhearsion ? ❖ Written in Ruby! ❖ Open Source! ❖ Easy to use DSL! ❖ Powerful eventing! ❖ Plugins for common problems! ❖ Helpful community! ❖ Democratising telephony
  • 8. Who is it for ? ❖ Voice app developers! ❖ Voice service providers! ❖ Telephony network providers! ❖ Ruby developers! ❖ Web developers! ❖ Anyone who doesn’t know ABC of telecom Not just for the telecom guys
  • 9. Where is it used ? ❖ IVRs! ❖ Call Center/Sales Force Automation! ❖ Surveys! ❖ Directory/Translation services! ❖ Automated reminders! ❖ Tele-marketing! ❖ Shopify (http://vimeo.com/33038589)! ❖ Your app ?
  • 10. Adhearsion Features ❖ IVR Menus! ❖ Call answering, transfer, conferencing! ❖ Voicemails! ❖ Click-to-call! ❖ TTS or Audio playback! ❖ ASR! ❖ Answering Machine Detection
  • 11. How is it used ? https://speakerdeck.com/benlangfeld/infiltrating-telecoms-using-ruby
  • 12. Connecting Adhearsion ❖ Database - via Sequel! ❖ HTTP client - HTTParty, RestClient etc! ❖ Redis - via redis gem! ❖ DRb - via adhearsion-drb! ❖ AMQP and other queues! ❖ HTTP server - Reel, Sinatra! ❖ XMPP - adhearsion-xmpp http://www.confreaks.com/videos/2266-adhearsionconf2012-connecting-adhearsion
  • 14. Got it ! show me something in action
  • 16. Instructions ❖ Everyone, please Switch OFF your WiFi :)! ❖ 4-5 people, please raise your hands to volunteer
  • 17. Volunteers Only ❖ Tweet something to @mavenhive! ❖ Listen to your tweets (on stage)
  • 18. Features Demo’ed ❖ Call Routing! ❖ IVR (ASR)! ❖ TTS! ❖ Integration! ❖ to external APIs e.g. Twitter API! ❖ via Ruby libraries e.g. twitter gem
  • 20.
  • 21.
  • 23. Lets look under the hood
  • 24. Celluloid ❖ OOP + Actor model! ❖ Concurrent objects! ❖ Adhearsion uses Celluloid! ❖ Sidekiq users Celluloid! ❖ It’s an ecosystem - Celluloid::IO, DCell, Reel https://github.com/celluloid/celluloid
  • 25. Punchblock ❖ Middleware library for telephony applications! ❖ Similar to Rack for Rails/Sinatra! ❖ Consistent API over third-party call control protocols - Rayo, Asterisk, FreeSWITCH! ❖ Frameworks/Apps can leverage Punchblock’s APIs! ❖ Not a framework in itself! ❖ https://github.com/adhearsion/ punchblock
  • 27. FreeSWITCH with mod_rayo ❖ Calls bridging! ❖ Call rejection/redirection! ❖ Outbound dialing! ❖ Audio playback! ❖ Audio input! ❖ Audio recording ❖ Fax! ❖ Call Progress Analysis! ❖ Supervisory tone detection! ❖ Answering nachhing detection! ❖ Fax tone detection!
  • 28. SIP (Session Initiation Protocol) ❖ Communications protocol! ❖ Controls media communication sessions! ❖ e.g. Voice/Video calls over IP! ❖ Standardised as RFC 3261 under IETF! ❖ Application layer protocol! ❖ Independent of underlying transport - TCP/UDP/SCTP/ SMTP! ❖ Uses other protocols - SDP/RTP/SRTP! ❖ Similar to HTTP’s request/response model
  • 29. DID (Direct Inward Dialing) ❖ DID numbers purchased from carrier website! ❖ IP Address/FQDN of voice network provided to carrier! ❖ Same or different carrier provides out bound dialling! ❖ Calls are routed to single FS server or OpenSIPS proxy
  • 30. TTS (Text-To-Speech) ❖ Adhearsion itself does not provide a TTS engine! ❖ Works with various TTS engines via VOIP platforms like Asterisk, FreeSWITCH etc! ❖ TTS Engines - Festival, Cepstral, Lumevox, Nuance, AT&T Speech API, Google Translate! ❖ CallController#say
  • 31. ASR (Automatic Speech Recognition) ❖ Adhearsion supports third-party ASR engines! ❖ ASR Engines - PocketSphinx, Lumevox, Nuance, Vestec, AT&T Speech API! ❖ Plugin - https://github.com/adhearsion/adhearsion-asr! ❖ More insights - http://adhearsionconf.com/events/adhearsion-mania/
  • 34. How can I get started ?
  • 37. Finding Help ❖ Documentation - adhearsion.com/docs! ❖ Mailing list - groups.google.com/forum/#!forum/adhearsion! ❖ Github Issue Tracker - github.com/adhearsion/adhearsion/issues! ❖ Reusable Plugins - ahnhub.com! ❖ IRC - adhearsion.com/irc! ❖ Talks - adhearsion.com/media! ❖ Conference - adhearsionconf.com
  • 39. Remember ❖ There is lots of fraud in telephony! ❖ Be very careful when exposing your server to the public internet! ❖ Use access control lists to reject all SIP / XMPP traffic from untrusted IPs! ❖ Do not use default usernames and passwords in example configuration! ❖ Encrypt traffic between FS and Adhearsion - if not in same LAN! ❖ Be careful about letting customers dial expensive countries! ❖ Block dialing to premium numbers or non-market parts of the world! ❖ RTP is not encrypted if using SIP! ❖ Use SRTP with SSIP for encrypted audio
  • 40. References ❖ adhearsion.com! ❖ speakerdeck.com/benlangfeld! ❖ slideshare.net/bklang/presentations! ❖ vimeo.com/adhearsion! ❖ mojolingo.com/blog/2014/adhearsion-survey-results-v2! ❖ github.com/MavenHive/social-feed-talker (demo app)