Why voice ?
❖ Many more people have phones than PCs/
❖ 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 !
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 ?
❖ Call Center/Sales Force Automation!
❖ Directory/Translation services!
❖ Automated reminders!
❖ Shopify (http://vimeo.com/33038589)!
❖ Your app ?
❖ Middleware library for telephony
❖ Similar to Rack for Rails/Sinatra!
❖ Consistent API over third-party call control
protocols - Rayo, Asterisk, FreeSWITCH!
❖ Frameworks/Apps can leverage
❖ Not a framework in itself!
How to choose ?
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/
❖ Uses other protocols - SDP/RTP/SRTP!
❖ Similar to HTTP’s request/response model
DID (Direct Inward Dialing)
❖ DID numbers purchased from carrier
❖ IP Address/FQDN of voice network
provided to carrier!
❖ Same or different carrier provides out
❖ Calls are routed to single FS server or
❖ Adhearsion itself does not provide a TTS engine!
❖ Works with various TTS engines via VOIP platforms like Asterisk,
❖ TTS Engines - Festival, Cepstral, Lumevox, Nuance, AT&T Speech API,
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/
❖ 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 trafﬁc from untrusted IPs!
❖ Do not use default usernames and passwords in example conﬁguration!
❖ Encrypt trafﬁc 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