SlideShare une entreprise Scribd logo
1  sur  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 -

Contenu connexe

En vedette

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
 

En vedette (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)
 

Similaire à 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
 

Similaire à 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
 

Dernier

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
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
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Dernier (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
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
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
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)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

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)