SlideShare uma empresa Scribd logo
1 de 41
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 -

Mais conteúdo relacionado

Destaque

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-MaximeSainte-Maxime Tourisme
 
Chuyen mach trong wan2
Chuyen mach trong wan2Chuyen mach trong wan2
Chuyen mach trong wan2VNG
 
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 Reporttomhcanderson
 
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 OptimizationsVe Interactive, US
 
Un DíA Para Recordar
Un DíA Para RecordarUn DíA Para Recordar
Un DíA Para Recordarnanycayo
 
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 & prototypeTheFamily
 
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ánticoFrancisco 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
 

Destaque (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)
 

Semelhante a Make ruby talk to your users - literally

Try! Swift Tokyo2017
Try! Swift Tokyo2017Try! Swift Tokyo2017
Try! Swift Tokyo2017Amy Cheong
 
Cross Device Accessibility
Cross Device AccessibilityCross Device Accessibility
Cross Device AccessibilityChris Mills
 
Voice Applications with Adhearsion
Voice Applications with AdhearsionVoice Applications with Adhearsion
Voice Applications with AdhearsionMojo Lingo
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Lorenzo 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 2016Cisco 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 Migrationjasnow
 
Cross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScriptCross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScriptFokke Zandbergen
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple PlatformsMike 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 collideEdward Wilde
 
Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012Adhearsion Foundation
 
Parsing binaries and protocols with erlang
Parsing binaries and protocols with erlangParsing binaries and protocols with erlang
Parsing binaries and protocols with erlangBhasker 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 2010Twilio Inc
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHPEric Johnson
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21Lorenzo 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 ligneFoobarlab
 

Semelhante a 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
 

Último

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Último (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

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)