SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
Rayo for XMPP Folks




      Ben Langfeld
      @benlangfeld
blangfeld@mojolingo.com




                          PAGE
WHAT IS ADHEARSION?
                      •Middle man between
                       phone calls and the real
                       world
                      •Does not process any
                       media or handle
                       signaling directly
                      •Exercises third-party call
                       control (3PCC)
                      •All Ruby
                      •High-level API




                                                     2
                                                    PAGE
HOW DO CALLS WORK WITH 3PCC?
                            Media &
                            Signaling

         SIP                    Jingle




                     3PCC
                     No media, just business logic
                     Rayo Protocol (over XMPP)




                                                      3
                                                     PAGE
•   Background info @ http://rayo.org
•   Draft spec @ http://rayo.org/xep
•   Source @ http://github.com/rayo/xmpp
•   Issue queue @ http://github.com/rayo/xmpp/issues




                                                        4
                                                       PAGE
Call Control: Incoming calls are "offered" to clients at which point they can be answered,
    rejected, redirected to another destination, etc. Evey attempt is made to be shield the Rayo
    client from the low level telephony protocol (e.g. SIP, Jingle, PSTN, etc.)

•   Audio File Playback: A compatible Rayo server will fetch a file from a a specified URL and play
    the containing audio to the caller.

•   Speech Synthesis / TTS: In cases where dynamic data must be spoken, a Speech Synthesis
    engine many be used to play computer generated speech to the caller.

•   DTMF / Touch-tone Events: Rayo surfaces real-time event when the caller presses keys on their
    touch-tone keypad.

•   Speech Recognition: Enables the phone application to take spoken queues allowing for
    sophisticated voice-driven menus and directory services.

•   Call Recording: Can be used to capture the caller’s voice (e.g. Voicemail) or both sides of the
    call for auditing and compliance purposes.

•   Mixing: Typically referred to as an audio “conference”; calls can be joined together so that the
    participants can hear each other in real-time.


                                                                                                       5
                                                                                                   PAGE
WHY ANOTHER PROTOCOL?
    Simple client library implementation - XMPP client libraries exist in all modern
    languages, and many are of a high standard of quality and maturity.
•   Cross-platform standard - The protocol must not expose any platform specifics and all
    elements should be candidates for implementation on any suitable platform. Additionally,
    the protocol must be ratied as a standard following a community discussion.
•   Asynchronous interface - The protocol should present an asynchronous interface for the
    purposes of performance and flexibility in performing parallel operations.
•   Consistent - The protocol must provide a considered, unobtrusive, logically and
    philosophically consistent interface.
•   Federated - The protocol must support communication between client and server entities
    on separately owned, operated and addressed networks.
•   Flexible routing - The protocol must lend itself to routing across wide networks such as
    the internet, and to potential complex routing such as proxying or redirection. Additionally,
    the client and server should each be aware of the presence of the other and be able to use
    such information to make routing decisions.
•   Extensible - The protocol must provide for the possibility of extra functionality being added
    by future specications or an individual implementation.
•   Secure - The protocol should include appropriate measures for authentication and
    authorization of participants, as well as preventing third-parties from intercepting control
    messages.

                                                                                                6
                                                                                              PAGE
• Primitives: Offer, Accept, Answer, Reject, Hangup, Join/Unjoin
• Media components:

   • Output (audio playback, text-to-speech)
   • Input (DTMF, speech recognition)

   • Record
• Currently voice only, but extensible to video




                                                                    7
                                                                   PAGE
QUESTIONS?




     @benlangfeld
blangfeld@mojolingo.com




                          PAGE

Weitere ähnliche Inhalte

Ähnlich wie Rayo for XMPP Folks

Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...
Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...
Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...
eCommConf
 
Voice morphing-101113123852-phpapp01 (1)
Voice morphing-101113123852-phpapp01 (1)Voice morphing-101113123852-phpapp01 (1)
Voice morphing-101113123852-phpapp01 (1)
Ravi Teja
 
MM_Conferencing.ppt
MM_Conferencing.pptMM_Conferencing.ppt
MM_Conferencing.ppt
Videoguy
 

Ähnlich wie Rayo for XMPP Folks (20)

SIP2SIP - Direcciones SIP gratuitas para las masas
SIP2SIP - Direcciones SIP gratuitas para las masasSIP2SIP - Direcciones SIP gratuitas para las masas
SIP2SIP - Direcciones SIP gratuitas para las masas
 
Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...
Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...
Bryan Johns - Presentation at Emerging Communications Conference & Awards (eC...
 
Winthorpe - Let Your Applications Listen... And Talk
Winthorpe - Let Your Applications Listen... And TalkWinthorpe - Let Your Applications Listen... And Talk
Winthorpe - Let Your Applications Listen... And Talk
 
Transcription Tutorial - Using Limecraft to accurately Transcribe Audio in Mi...
Transcription Tutorial - Using Limecraft to accurately Transcribe Audio in Mi...Transcription Tutorial - Using Limecraft to accurately Transcribe Audio in Mi...
Transcription Tutorial - Using Limecraft to accurately Transcribe Audio in Mi...
 
Number one-issue-voip-today-fraud
Number one-issue-voip-today-fraudNumber one-issue-voip-today-fraud
Number one-issue-voip-today-fraud
 
Network Situational Awareness with d00gle
Network Situational Awareness with d00gleNetwork Situational Awareness with d00gle
Network Situational Awareness with d00gle
 
Voice morphing-101113123852-phpapp01 (1)
Voice morphing-101113123852-phpapp01 (1)Voice morphing-101113123852-phpapp01 (1)
Voice morphing-101113123852-phpapp01 (1)
 
The bigrabbit
The bigrabbitThe bigrabbit
The bigrabbit
 
Data minutes #2 Apache Pulsar with MQTT for Edge Computing Lightning - 2022
Data minutes #2   Apache Pulsar with MQTT for Edge Computing Lightning - 2022Data minutes #2   Apache Pulsar with MQTT for Edge Computing Lightning - 2022
Data minutes #2 Apache Pulsar with MQTT for Edge Computing Lightning - 2022
 
VOIP
VOIPVOIP
VOIP
 
Jingle
JingleJingle
Jingle
 
Talking To Rails
Talking To RailsTalking To Rails
Talking To Rails
 
P2P for mobile devices
P2P for mobile devicesP2P for mobile devices
P2P for mobile devices
 
VOIP services
VOIP servicesVOIP services
VOIP services
 
Greach 2011 - Building Telephony Apps with Groovy and Grails
Greach 2011 - Building Telephony Apps with Groovy and GrailsGreach 2011 - Building Telephony Apps with Groovy and Grails
Greach 2011 - Building Telephony Apps with Groovy and Grails
 
Speech Recognition Technology
Speech Recognition TechnologySpeech Recognition Technology
Speech Recognition Technology
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
MM_Conferencing.ppt
MM_Conferencing.pptMM_Conferencing.ppt
MM_Conferencing.ppt
 
VOICE BROWSER
VOICE BROWSERVOICE BROWSER
VOICE BROWSER
 
VOICE BROWSER
VOICE BROWSERVOICE BROWSER
VOICE BROWSER
 

Mehr von Mojo Lingo

Infiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando RubyInfiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando Ruby
Mojo Lingo
 

Mehr von Mojo Lingo (20)

AstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it BreaksAstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it Breaks
 
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In Sight
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In SightFreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In Sight
FreeSWITCH, FreeSWITCH Everywhere, and Not A Phone In Sight
 
Now Hear This! Putting Voice, Video, and Text into Ruby on Rails
Now Hear This! Putting Voice, Video, and Text into Ruby on RailsNow Hear This! Putting Voice, Video, and Text into Ruby on Rails
Now Hear This! Putting Voice, Video, and Text into Ruby on Rails
 
Using Asterisk to Create "Her"
Using Asterisk to Create "Her"Using Asterisk to Create "Her"
Using Asterisk to Create "Her"
 
AdhearsionConf 2013 Keynote
AdhearsionConf 2013 KeynoteAdhearsionConf 2013 Keynote
AdhearsionConf 2013 Keynote
 
Speech-Enabling Web Apps
Speech-Enabling Web AppsSpeech-Enabling Web Apps
Speech-Enabling Web Apps
 
WebRTC: What? How? Why? - ClueCon 2013
WebRTC: What? How? Why? - ClueCon 2013WebRTC: What? How? Why? - ClueCon 2013
WebRTC: What? How? Why? - ClueCon 2013
 
Infiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando RubyInfiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando Ruby
 
Enhancing FreePBX with Adhearsion
Enhancing FreePBX with AdhearsionEnhancing FreePBX with Adhearsion
Enhancing FreePBX with Adhearsion
 
Connecting Adhearsion
Connecting AdhearsionConnecting Adhearsion
Connecting Adhearsion
 
Testing Adhearsion Applications
Testing Adhearsion ApplicationsTesting Adhearsion Applications
Testing Adhearsion Applications
 
Building Real Life Applications with Adhearsion
Building Real Life Applications with AdhearsionBuilding Real Life Applications with Adhearsion
Building Real Life Applications with Adhearsion
 
Keeping It Realtime!
Keeping It Realtime!Keeping It Realtime!
Keeping It Realtime!
 
Integrating Voice Through Adhearsion
Integrating Voice Through AdhearsionIntegrating Voice Through Adhearsion
Integrating Voice Through Adhearsion
 
Infiltrating Telecoms Using Ruby
Infiltrating Telecoms Using RubyInfiltrating Telecoms Using Ruby
Infiltrating Telecoms Using Ruby
 
Telephony Through Ruby Colored Lenses
Telephony Through Ruby Colored LensesTelephony Through Ruby Colored Lenses
Telephony Through Ruby Colored Lenses
 
Voice Applications for the Modern Open Source Hacker
Voice Applications for the Modern Open Source HackerVoice Applications for the Modern Open Source Hacker
Voice Applications for the Modern Open Source Hacker
 
Multidextrous Voice Application Framework
Multidextrous Voice Application FrameworkMultidextrous Voice Application Framework
Multidextrous Voice Application Framework
 
Voice Applications with Adhearsion
Voice Applications with AdhearsionVoice Applications with Adhearsion
Voice Applications with Adhearsion
 
A Hackaton Focused on Call Control
A Hackaton Focused on Call ControlA Hackaton Focused on Call Control
A Hackaton Focused on Call Control
 

KĂźrzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

KĂźrzlich hochgeladen (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Rayo for XMPP Folks

  • 1. Rayo for XMPP Folks Ben Langfeld @benlangfeld blangfeld@mojolingo.com PAGE
  • 2. WHAT IS ADHEARSION? •Middle man between phone calls and the real world •Does not process any media or handle signaling directly •Exercises third-party call control (3PCC) •All Ruby •High-level API 2 PAGE
  • 3. HOW DO CALLS WORK WITH 3PCC? Media & Signaling SIP Jingle 3PCC No media, just business logic Rayo Protocol (over XMPP) 3 PAGE
  • 4. • Background info @ http://rayo.org • Draft spec @ http://rayo.org/xep • Source @ http://github.com/rayo/xmpp • Issue queue @ http://github.com/rayo/xmpp/issues 4 PAGE
  • 5. Call Control: Incoming calls are "offered" to clients at which point they can be answered, rejected, redirected to another destination, etc. Evey attempt is made to be shield the Rayo client from the low level telephony protocol (e.g. SIP, Jingle, PSTN, etc.) • Audio File Playback: A compatible Rayo server will fetch a le from a a specied URL and play the containing audio to the caller. • Speech Synthesis / TTS: In cases where dynamic data must be spoken, a Speech Synthesis engine many be used to play computer generated speech to the caller. • DTMF / Touch-tone Events: Rayo surfaces real-time event when the caller presses keys on their touch-tone keypad. • Speech Recognition: Enables the phone application to take spoken queues allowing for sophisticated voice-driven menus and directory services. • Call Recording: Can be used to capture the caller’s voice (e.g. Voicemail) or both sides of the call for auditing and compliance purposes. • Mixing: Typically referred to as an audio “conference”; calls can be joined together so that the participants can hear each other in real-time. 5 PAGE
  • 6. WHY ANOTHER PROTOCOL? Simple client library implementation - XMPP client libraries exist in all modern languages, and many are of a high standard of quality and maturity. • Cross-platform standard - The protocol must not expose any platform specics and all elements should be candidates for implementation on any suitable platform. Additionally, the protocol must be ratied as a standard following a community discussion. • Asynchronous interface - The protocol should present an asynchronous interface for the purposes of performance and flexibility in performing parallel operations. • Consistent - The protocol must provide a considered, unobtrusive, logically and philosophically consistent interface. • Federated - The protocol must support communication between client and server entities on separately owned, operated and addressed networks. • Flexible routing - The protocol must lend itself to routing across wide networks such as the internet, and to potential complex routing such as proxying or redirection. Additionally, the client and server should each be aware of the presence of the other and be able to use such information to make routing decisions. • Extensible - The protocol must provide for the possibility of extra functionality being added by future specications or an individual implementation. • Secure - The protocol should include appropriate measures for authentication and authorization of participants, as well as preventing third-parties from intercepting control messages. 6 PAGE
  • 7. • Primitives: Offer, Accept, Answer, Reject, Hangup, Join/Unjoin • Media components: • Output (audio playback, text-to-speech) • Input (DTMF, speech recognition) • Record • Currently voice only, but extensible to video 7 PAGE
  • 8. QUESTIONS? @benlangfeld blangfeld@mojolingo.com PAGE