SlideShare a Scribd company logo
1 of 29
Download to read offline
Challenges in XMPP and
  SIP interoperability
   Saúl Ibarra Corretgé | AG Projects
AG Projects                                      SIP XMPP Interoperability
SIP Infrastructure Experts




                                           Hello

                        • I’m Saúl, a SIP guy
                        • @saghul
                        • Passionate about VoIP, SIP, XMPP and
                             Real Time Communications
                        • Had a blast at XMPP summit!
AG Projects                           SIP XMPP Interoperability
SIP Infrastructure Experts




                             AG Projects




         • SIP Infrastructure for providers
         • Focused on Open Standards
         • Open Source
Building a SIP to XMPP
       gateway
AG Projects                                       SIP XMPP Interoperability
SIP Infrastructure Experts




                                         Motivation

                        • Every Real Time Communications service
                             uses SIP or XMPP at the border
                        • XMPP opens the door to millions of IM
                             users
                        • Existing projects didn’t properly fill the gap
                        • World domination
AG Projects                                   SIP XMPP Interoperability
SIP Infrastructure Experts




                                     Foundation



                        • SIP SIMPLE SDK for SIP
                        • Wokkel for XMPP
                        • Python programming language
AG Projects                                  SIP XMPP Interoperability
SIP Infrastructure Experts




                                      End Product


                                      SylkServer

                        MSRP switch    XMPP MUC      Jingle


                             XMPP Wokkel      SIP SIMPLE SDK
AG Projects                                       SIP XMPP Interoperability
SIP Infrastructure Experts




                                      Gateway design


                        • Transparent, no need to craft special
                             URIs to route between the two universes
                        • No configuration
                        • Server vs Component
AG Projects                  SIP XMPP Interoperability
SIP Infrastructure Experts
AG Projects                                             SIP XMPP Interoperability
SIP Infrastructure Experts




                                          Previous work

                        • Various drafts by Peter St. Andre (2008)
                             •   draft-saintandre-sip-xmpp-core-01

                             •   draft-saintandre-sip-xmpp-presence-02

                             •   draft-saintandre-sip-xmpp-im-01

                             •   draft-saintandre-sip-xmpp-chat-03

                             •   draft-saintandre-sip-xmpp-groupchat-01
AG Projects                                    SIP XMPP Interoperability
SIP Infrastructure Experts




                                 Address translation

                        • XMPP JIDs have a resource field
                        • SIP GRUU (RFC 5627)
                                alice@example.com/hfje390



                             sip:alice@example.com;gr=hfje390
AG Projects                                      SIP XMPP Interoperability
SIP Infrastructure Experts




                                       Chat translation

                        • Different message stanza types: normal,
                              chat or headline
                        • Two IM modes in SIP: pager mode and
                              session based

                             session based IM     chat message stanzas
                                                  normal/headline
                               SIP MESSAGE
                                                  message stanzas
AG Projects                                        SIP XMPP Interoperability
SIP Infrastructure Experts




                                      Chat translation
                        • Not all XMPP clients use explicit sessions
                        • Any clients implementing XEP-0155?
                             (formal sessions)
                        • Not all clients implement XEP-0201
                             (thread usage)


                             Use heuristics to detect if 2 endpoints
                                  are engaged in conversation
AG Projects                                       SIP XMPP Interoperability
SIP Infrastructure Experts




                                      Chat translation

                        • Good support for XEP-0085 (chat states)
                        • Timing based session teardown is not
                             always desired
                        • XEP-0184 (receipts) are useful for
                             acknowledging message delivery in MSRP
                             (REPORT method)
AG Projects                  SIP XMPP Interoperability
SIP Infrastructure Experts
AG Projects                                      SIP XMPP Interoperability
SIP Infrastructure Experts




                                  Presence translation



                        • SIP encapsulates presence state in a single
                             document
                        • XMPP has <presence/> and PEP
AG Projects                                                SIP XMPP Interoperability
SIP Infrastructure Experts




                                      Presence translation


                        • XMPP resource can’t be used as PIDF
                             tuple ID (as with GRUU)
                        • Fewer presence states in SIP
                             •   Extension to PIDF with ‘available’, ‘busy’, ‘away’
                                 states - maybe use <show/> directly
AG Projects                  SIP XMPP Interoperability
SIP Infrastructure Experts
AG Projects                  SIP XMPP Interoperability
SIP Infrastructure Experts
AG Projects                                      SIP XMPP Interoperability
SIP Infrastructure Experts




                               Multiparty chat translation

                        • Easiest part of them all!
                        • Limited to features offered in SIP
                        • Some XMPP endpoints require XEP-0030
                             (disco)
                        • In SylkServer the conference really takes
                             place in SIP
AG Projects                                      SIP XMPP Interoperability
SIP Infrastructure Experts




                                Multiparty chat translation

                        • RFC4575 is used to translate participants
                             list
                        • Ambiguity between SIP display name and
                             nickname
                        • Not all clients deal well with nickname
                             conflicts
AG Projects                  SIP XMPP Interoperability
SIP Infrastructure Experts
AG Projects                                     SIP XMPP Interoperability
SIP Infrastructure Experts




                                      Next steps


                        • Jingle (Gingle?)
                        • File transfer
                        • Conferencing: XEP-0298 (COIN)
                        • Work on XMPP - SIP interoperability drafts
AG Projects                                             SIP XMPP Interoperability
SIP Infrastructure Experts




                                               Credits
                             SylkServer development was sponsored by NLNet
                             and AG Projects as part of “The WormHole Project”
                             http://nlnet.nl/news/2011/20111201-awards.html
AG Projects
SIP Infrastructure Experts
AG Projects
SIP Infrastructure Experts




                             <presence type='unavailable'>
                                    <status>Thank you!</status>
                             </presence>




                                 saul@ag-projects.com    @saghul

More Related Content

Viewers also liked

Performance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the WebPerformance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the WebMarkku Laine
 
Applebees server performance appraisal
Applebees server performance appraisalApplebees server performance appraisal
Applebees server performance appraisalliamedison67
 
Web performance optimization (WPO)
Web performance optimization (WPO)Web performance optimization (WPO)
Web performance optimization (WPO)Mariusz Kaczmarek
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKSaúl Ibarra Corretgé
 
Presente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIPPresente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIPSaúl Ibarra Corretgé
 
CDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPSCDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPSSaúl Ibarra Corretgé
 

Viewers also liked (19)

SIP is hard, let's go shopping!
SIP is hard, let's go shopping!SIP is hard, let's go shopping!
SIP is hard, let's go shopping!
 
SIP y XMPP: amigos para siempre
SIP y XMPP: amigos para siempreSIP y XMPP: amigos para siempre
SIP y XMPP: amigos para siempre
 
[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP
 
Blink: SIP beyond VoIP
Blink: SIP beyond VoIPBlink: SIP beyond VoIP
Blink: SIP beyond VoIP
 
Blink: voice is not enough
Blink: voice is not enoughBlink: voice is not enough
Blink: voice is not enough
 
Rethinking the PBX
Rethinking the PBXRethinking the PBX
Rethinking the PBX
 
SIP Conferencing Reloaded
SIP Conferencing ReloadedSIP Conferencing Reloaded
SIP Conferencing Reloaded
 
SIP Beyond VoIP
SIP Beyond VoIPSIP Beyond VoIP
SIP Beyond VoIP
 
Performance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the WebPerformance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the Web
 
Applebees server performance appraisal
Applebees server performance appraisalApplebees server performance appraisal
Applebees server performance appraisal
 
Janus @ DevDay Napoli
Janus @ DevDay NapoliJanus @ DevDay Napoli
Janus @ DevDay Napoli
 
Web performance optimization (WPO)
Web performance optimization (WPO)Web performance optimization (WPO)
Web performance optimization (WPO)
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDK
 
Blink: SIP conferencing done right
Blink: SIP conferencing done rightBlink: SIP conferencing done right
Blink: SIP conferencing done right
 
Presente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIPPresente y futuro de las comunicaciones VoIP
Presente y futuro de las comunicaciones VoIP
 
Trust No One
Trust No OneTrust No One
Trust No One
 
CDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPSCDRTool: CDR mediation and rating engine for OpenSIPS
CDRTool: CDR mediation and rating engine for OpenSIPS
 
Planning libuv v2
Planning libuv v2Planning libuv v2
Planning libuv v2
 
Python, WebRTC and You (v2)
Python, WebRTC and You (v2)Python, WebRTC and You (v2)
Python, WebRTC and You (v2)
 

More from Saúl Ibarra Corretgé

Challenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicChallenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicSaúl Ibarra Corretgé
 
The Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetThe Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetSaúl Ibarra Corretgé
 
Jitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveJitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveSaúl Ibarra Corretgé
 
Jitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedJitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedSaúl Ibarra Corretgé
 
Get a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceGet a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceSaúl Ibarra Corretgé
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCSaúl Ibarra Corretgé
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCSaúl Ibarra Corretgé
 
Jitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostJitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostSaúl Ibarra Corretgé
 
WebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTWebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTSaúl Ibarra Corretgé
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/oSaúl Ibarra Corretgé
 
SylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSaúl Ibarra Corretgé
 
Escalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasEscalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasSaúl Ibarra Corretgé
 
libuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenlibuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenSaúl Ibarra Corretgé
 

More from Saúl Ibarra Corretgé (20)

Challenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicChallenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemic
 
The Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetThe Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi Meet
 
Jitsi: State of the Union 2020
Jitsi: State of the Union 2020Jitsi: State of the Union 2020
Jitsi: State of the Union 2020
 
Jitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveJitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and love
 
Jitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedJitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy minded
 
Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019
 
Get a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceGet a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experience
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
 
Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)
 
Jitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostJitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-host
 
WebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTWebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoT
 
Jitsi: Open Source Video Conferencing
Jitsi: Open Source Video ConferencingJitsi: Open Source Video Conferencing
Jitsi: Open Source Video Conferencing
 
Jitsi: State of the Union
Jitsi: State of the UnionJitsi: State of the Union
Jitsi: State of the Union
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/o
 
SylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSylkServer: State of the art RTC application server
SylkServer: State of the art RTC application server
 
Escalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasEscalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincheras
 
A deep dive into libuv
A deep dive into libuvA deep dive into libuv
A deep dive into libuv
 
libuv, NodeJS and everything in between
libuv, NodeJS and everything in betweenlibuv, NodeJS and everything in between
libuv, NodeJS and everything in between
 
From SIP to WebRTC and vice versa
From SIP to WebRTC and vice versaFrom SIP to WebRTC and vice versa
From SIP to WebRTC and vice versa
 

Recently uploaded

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
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
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
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
 
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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 

Recently uploaded (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
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
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
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!
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
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
 
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
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 

Challenges in XMPP and SIP interoperability

  • 1. Challenges in XMPP and SIP interoperability Saúl Ibarra Corretgé | AG Projects
  • 2. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Hello • I’m Saúl, a SIP guy • @saghul • Passionate about VoIP, SIP, XMPP and Real Time Communications • Had a blast at XMPP summit!
  • 3. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts AG Projects • SIP Infrastructure for providers • Focused on Open Standards • Open Source
  • 4. Building a SIP to XMPP gateway
  • 5. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Motivation • Every Real Time Communications service uses SIP or XMPP at the border • XMPP opens the door to millions of IM users • Existing projects didn’t properly fill the gap • World domination
  • 6. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Foundation • SIP SIMPLE SDK for SIP • Wokkel for XMPP • Python programming language
  • 7. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts End Product SylkServer MSRP switch XMPP MUC Jingle XMPP Wokkel SIP SIMPLE SDK
  • 8.
  • 9. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Gateway design • Transparent, no need to craft special URIs to route between the two universes • No configuration • Server vs Component
  • 10. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts
  • 11. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Previous work • Various drafts by Peter St. Andre (2008) • draft-saintandre-sip-xmpp-core-01 • draft-saintandre-sip-xmpp-presence-02 • draft-saintandre-sip-xmpp-im-01 • draft-saintandre-sip-xmpp-chat-03 • draft-saintandre-sip-xmpp-groupchat-01
  • 12. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Address translation • XMPP JIDs have a resource field • SIP GRUU (RFC 5627) alice@example.com/hfje390 sip:alice@example.com;gr=hfje390
  • 13. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Chat translation • Different message stanza types: normal, chat or headline • Two IM modes in SIP: pager mode and session based session based IM chat message stanzas normal/headline SIP MESSAGE message stanzas
  • 14. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Chat translation • Not all XMPP clients use explicit sessions • Any clients implementing XEP-0155? (formal sessions) • Not all clients implement XEP-0201 (thread usage) Use heuristics to detect if 2 endpoints are engaged in conversation
  • 15. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Chat translation • Good support for XEP-0085 (chat states) • Timing based session teardown is not always desired • XEP-0184 (receipts) are useful for acknowledging message delivery in MSRP (REPORT method)
  • 16. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts
  • 17. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Presence translation • SIP encapsulates presence state in a single document • XMPP has <presence/> and PEP
  • 18. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Presence translation • XMPP resource can’t be used as PIDF tuple ID (as with GRUU) • Fewer presence states in SIP • Extension to PIDF with ‘available’, ‘busy’, ‘away’ states - maybe use <show/> directly
  • 19. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts
  • 20. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts
  • 21. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Multiparty chat translation • Easiest part of them all! • Limited to features offered in SIP • Some XMPP endpoints require XEP-0030 (disco) • In SylkServer the conference really takes place in SIP
  • 22. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Multiparty chat translation • RFC4575 is used to translate participants list • Ambiguity between SIP display name and nickname • Not all clients deal well with nickname conflicts
  • 23. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts
  • 24.
  • 25.
  • 26. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Next steps • Jingle (Gingle?) • File transfer • Conferencing: XEP-0298 (COIN) • Work on XMPP - SIP interoperability drafts
  • 27. AG Projects SIP XMPP Interoperability SIP Infrastructure Experts Credits SylkServer development was sponsored by NLNet and AG Projects as part of “The WormHole Project” http://nlnet.nl/news/2011/20111201-awards.html
  • 29. AG Projects SIP Infrastructure Experts <presence type='unavailable'> <status>Thank you!</status> </presence> saul@ag-projects.com @saghul