SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Extensible Messaging and Presence Protocol
Sebastian Schumann
Slovak Telekom
5. December 2012
Bratislava, Slovakia
About me
¡ Studied 2003 – 2007 telecommunications
and computer sciences in Leipzig,
Germany
¡ In Slovakia since 2006
¡ Working for Slovak Telekom since 2007
¡ Post-grad studies at Slovak University of
Technology since 2007
¡ Worked extensively with SIP/XMPP based
presence and their possible integration
Outline
¡ XMPP
¡ Introduction
¡ Architecture
¡ Protocol
¡ Usage
¡ IM, presence, multi-party interaction
¡ Publish/subscribe
¡ Jingle
¡ Discussion
¡ XMPP vs. SIP/SIMPLE
¡ Relevance
Further reading
¡ This slide set is extended with content from the
presentation of Remko Tronçon et. al.: “XMPP 101”
¡ http://el-tramo.be/blog/xmpp-101-fosdem/
¡ Thank you for making your talk publicly available!
¡ The book “XMPP – The Definitive Guide” is excellent
material by the authors of the XMPP standards.
¡ Yes, I bought it myself.
Note!
¡ These slides only summarize the lecture.
¡ Take notes.
¡ Some slides are placeholders for work-
ing on the white board, take care!
¡ Questions/Contributions/Criticism/Notes/Hints?
¡ Interrupt me any time!
XMPP
Origins (RFC 2778, RFC 2779)
¡ IETF defines general model for presence and instant
messaging
¡ This model defines
¡ Presence service
¡ Instant messaging service
¡ Generic presence data model
¡ Requirements for instant messaging and presence
(IMPP) systems are also described
White board
Term definition
Presence service model, presence system
Publish/Subscribe, Notify
Watchers
Instant Message Service
Presence information
IMPP implementations
¡ Based on IETF generic IMPP RFCs, several protocols
are defined for delivering services
¡ Implementations are done by basic protocol and
particular IMPP extension
¡ Base protocol
¡  SIP (RFC 3261)
¡  XMPP Core (RFC 3920)
¡ IMPP extension
¡  SIMPLE (RFC 3265)
¡  XMPP IM (RFC 3921)
XMPP implementations
¡ To start with the relevance of the protocol, has
anyone chatted with the following services?
¡ Google
¡ Facebook
¡ Cisco
¡ WhatsApp
¡ identi.ca
¡ Apple
¡ All are based on or use XMPP to some extend*
* Some use a modification of the protocol.
XMPP, the protocol
¡ Original name: Jabber (1998, by Jeremie Miller)
¡ Purely XML based protocol (for streaming XML)
¡ Comparison: SIP is based on HTTP
¡ Information is shared using a continuous XML stream
transported over TCP
¡ SASL (Simple Authentication and Security Layer) and
TLS (Transport Layer Security) used to secure stream
¡ Based on a few RFCs and extended by many XEPs
¡ XMPP Extension Protocol
¡ Comparison: SIP extended only through RFCs
XMPP, the protocol ctd.
¡ XEPs make the protocol extensible
¡ XMPP is a decentralized, federated, asynchronous
client-server protocol
¡ Sample messages
<message from=’alice@hosted-im.fiit.ngnlab.eu/adium’
to=’ bob@hosted-im.fiit.ngnlab.eu' type='chat'>
<body>Hello!</body>
</message>
<presence type=’busy'>
<show>away</show>
<status>Giving a lecture!</status>
</presence>
White board
Architecture
C2S, S2S, GW, FN/FC
Comparison to HTTP, E-mail, SIP
XMPP Architecture
C1.1 C2.1S2S1
FC1FN1G1C1.2
C2S S2S
Addresses
¡ Bare JID similar to E-mail address, identifying
responsible user and domain
¡ alice@hosted-im.fiit.ngnlab.eu
¡ Full JID includes particular resource
¡ alice@hosted-im.fiit.ngnlab.eu/psi
¡ Jabber ID (JID)
¡ user@domain/resource
¡ DNS is used for service discovery
¡ SRV
¡ A
White board
Addressing
DNS
Client Port 5222/Server Port 5269
DNS
¡ Link IP addresses with domain names
¡ Support in locating XMPP servers
¡ SRV lookup
¡ A/AAAA lookup
¡ SRV look-up indicates the domain and port the service
listens on
¡  _xmpp-server._tcp.gmail.com. 900 IN SRV 5 0 5269 xmpp-server.l.google.com.
¡  _xmpp-client._tcp.gmail.com. 900 IN SRV 5 0 5222 xmpp.l.google.com
¡ A/AAAA to find the IP address of the domain name
¡  xmpp-server.l.google.com. 300 IN A 173.194.70.125
Client vs. Server Communications
¡ XMPP uses different ports for client to server (c2s) and
server to server (s2s) communications
¡ c2s: Port 5222
¡ s2s: Port 5269
¡ Same principle for s2s as for c2s
¡ Discovery
¡ XML streams
¡ No intermediate servers for federation (unlike E-mail)
¡ Similar security mechanisms (SASL, TLS)
Usage
IM, presence,
multi-party interaction
¡ All “built in” the main standards
¡ Protocol
¡ “Normal” instant messaging
¡ IM
¡ Presence
¡ Rosters
¡ Initial presence
¡ Statuses
¡ Priorities
¡  Negative priority
XMPP 101: Protocol deep-dive
¡ Streaming XML
¡ Slide 22
¡ XMPP XML stanzas
¡ <message/>
¡ <presence/>
¡ <iq/> (Info/Query)
¡  Slides 23-28
¡ Extensibility
¡ Slide 29
XMPP 101: Protocol deep-dive
¡ Extensions
¡ Multi-User Chat
¡  Slide 37
¡ PubSub
¡  Slide 40
¡ Extended presence
¡  Slide 45
Other aspects
¡ vCards (XEP-0054, RFC 2426)
¡ Server maintains vCard of users
¡ Service Discovery (disco)
¡ Entity: disco#items
¡ Features: disco#info
¡ Server features, client capabilities, etc.
¡ Roster
¡ Server configuration
Other aspects ctd.
¡ Server components
¡ MUC (Multi-user chat)
¡ Foreign network gateways
¡ File Transfer
¡ BOSH (Bidirectional streams over synchronous HTTP)
¡ XMPP over HTTP
¡ Bots
¡ c2s, components
Jingle (XEP-0166+)
¡ Set up multi-media sessions similarly to SIP
¡ Only session setup, no media transport
¡  Negotiate content
¡  Negotiate protocol (UDP, TCP)
¡ Streaming protocol (e.g. RTP) used to transport media
¡ Similar complexity as in SIP
¡ Different protocol/ports
¡ NAT traversal
White board
Jingle session setup
Overlap: SIP messages
Live tests
¡ Powered by from Process One
¡ Thank you!
¡ Domain
¡ hosted-im.fiit.ngnlab.eu
¡ Users
¡ Alice, Bob, Charlie, Dave
¡ Password
¡ fiit2012!lecture
White board
Stream setup
Have a look at some stanzas
Test presence, message, Jingle
Test some server components (PubSub)
Discussion
XMPP vs. SIP/SIMPLE
¡ Which one is better?
¡ How have both historically developed to where they
are now?
¡ Similarities/Differences
¡ Architecture
¡ Protocol
¡ Complexity
¡ Practical application
XMPP
vs.
SIP
Idea by Inaki Baz Castillo
What can one build with XMPP?
¡ Many things J - needs differentiation
¡ Obvious examples
¡ Real-time communications system
¡ Messaging bus (PubSub)
¡ Yet another…
¡ RCS-e/Joyn?
¡ Facebook?
¡ E-mail?
¡ Gaming platform?
¡ Identity service? Your Ideas?!
Relevance
¡ What is used these days?
¡ On the Internet
¡  Browser
¡  Mobile
¡  Clients
¡  Windows
¡  Mac
¡  Linux
¡ By operators
¡ Can SIP and XMPP be linked/connected?
SIP/XMPP consolidation
¡ Joint paper published @ ONIT 2010
¡  http://link.springer.com/chapter/10.1007%2F978-3-642-17851-1_70
¡ An alternative approach to “SIP/SIMPLE vs. XMPP”
and “Telco presence”
¡ Start point: current deployments
¡ Telephony: SIP
¡ IM/Presence: XMPP
¡ Requirements
¡ Use standard protocols (to re-use clients)
¡ Customers can keep current accounts in both worlds
SIP/XMPP consolidation ctd.
SIP/XMPP consolidation ctd.
¡ Telephone state extraction can be easily added to
each infrastructure
¡ Enhanced SIP proxy that can extract call state
information
¡ SIP call states must be converted to XMPP presence
information
¡ XMPP as main IM/P protocol
SIP/XMPP consolidation ctd.
SIP/XMPP consolidation ctd.
Summary
¡ A lot of open and/or free resources to follow up
¡ Programming libraries
¡ Clients, server – many open-source
¡ XMPP quite “under the radar” for now
¡ SIP gained a lot of attention w/ IMS, RCS-e, etc. in Telco
¡ Web 2.0 accelerated use of HTTP, esp. REST
¡ XMPP used, but not as “advocated”
¡ The Internet contains extensive material on XMPP
¡ This lecture was only an introduction!
¡ I hope it stimulated some ideas for future projects and
helped in understanding communications a bit better.
Sebastian Schumann
mail@s-schumann.com
@s_schumann
sschumann
Thank
you!
Download
¡ This lecture is available at http://bit.ly/fiit-xmpp
References
1.  RFCs 2778, 2779, 3920, 3921. Various XEPs
2.  XMPP: The Definitive Guide. Peter Saint-Andre et.al.
3.  XMPP 101. Remko Tronçon
http://www.slideshare.net/remko.troncon/xmpp-101
4.  Several own publications
5.  Graphics from Google Images, Open Clipart
If you feel content where you hold the copyright is displayed within these
slides and you do not like it, miss a link/reference, or want me to remove
it altogether please let me know.

Contenu connexe

En vedette

Communication Service Evolution
Communication Service EvolutionCommunication Service Evolution
Communication Service EvolutionSebastian Schumann
 
Campamentos verano loreto 2015
Campamentos verano loreto 2015Campamentos verano loreto 2015
Campamentos verano loreto 2015ActividadesAire
 
Rebuilt.la historia de mi vida...
Rebuilt.la historia de mi vida...Rebuilt.la historia de mi vida...
Rebuilt.la historia de mi vida...Paola Ruiz Sanchez
 
Sireva ii 2009
Sireva ii 2009Sireva ii 2009
Sireva ii 2009innovas7
 
Decàleg de consells i indicacions de la Creu Roja
Decàleg de consells i indicacions de la Creu RojaDecàleg de consells i indicacions de la Creu Roja
Decàleg de consells i indicacions de la Creu RojaCreu Roja a Catalunya
 
Ftk Wres Presentation Apr 2011 Agk
Ftk Wres Presentation Apr  2011 AgkFtk Wres Presentation Apr  2011 Agk
Ftk Wres Presentation Apr 2011 AgkAxel G. Kristiansen
 
Internet safety
Internet safetyInternet safety
Internet safetyzunker
 
Sedona Weekly Real Estate Transaction report
Sedona Weekly Real Estate Transaction reportSedona Weekly Real Estate Transaction report
Sedona Weekly Real Estate Transaction reportDamian Bruno
 
UDA-Selección de tecnologías
UDA-Selección de tecnologíasUDA-Selección de tecnologías
UDA-Selección de tecnologíasAnder Martinez
 
Nyfen Corporate Sponsorship 2010.Pptx [Autosaved]
Nyfen Corporate Sponsorship 2010.Pptx [Autosaved]Nyfen Corporate Sponsorship 2010.Pptx [Autosaved]
Nyfen Corporate Sponsorship 2010.Pptx [Autosaved]Amore Leighton Black
 
Bachelor Thesis: “Use and application of an ERP System on a Cars dealership”.
Bachelor Thesis: “Use and application of an ERP System on a Cars dealership”.Bachelor Thesis: “Use and application of an ERP System on a Cars dealership”.
Bachelor Thesis: “Use and application of an ERP System on a Cars dealership”.Iñigo Arce San Vicente
 

En vedette (20)

Communication Service Evolution
Communication Service EvolutionCommunication Service Evolution
Communication Service Evolution
 
What is XMPP Protocol
What is XMPP ProtocolWhat is XMPP Protocol
What is XMPP Protocol
 
Campamentos verano loreto 2015
Campamentos verano loreto 2015Campamentos verano loreto 2015
Campamentos verano loreto 2015
 
Evolucion de la historia de la comunicacion
Evolucion de la historia de la comunicacionEvolucion de la historia de la comunicacion
Evolucion de la historia de la comunicacion
 
Scrum day post ch
Scrum day post chScrum day post ch
Scrum day post ch
 
Rebuilt.la historia de mi vida...
Rebuilt.la historia de mi vida...Rebuilt.la historia de mi vida...
Rebuilt.la historia de mi vida...
 
Sireva ii 2009
Sireva ii 2009Sireva ii 2009
Sireva ii 2009
 
CURRICULO BAS 2015
CURRICULO BAS 2015CURRICULO BAS 2015
CURRICULO BAS 2015
 
Zertifikato
ZertifikatoZertifikato
Zertifikato
 
Decàleg de consells i indicacions de la Creu Roja
Decàleg de consells i indicacions de la Creu RojaDecàleg de consells i indicacions de la Creu Roja
Decàleg de consells i indicacions de la Creu Roja
 
Ftk Wres Presentation Apr 2011 Agk
Ftk Wres Presentation Apr  2011 AgkFtk Wres Presentation Apr  2011 Agk
Ftk Wres Presentation Apr 2011 Agk
 
Presentación paymony
Presentación paymonyPresentación paymony
Presentación paymony
 
Internet safety
Internet safetyInternet safety
Internet safety
 
Sedona Weekly Real Estate Transaction report
Sedona Weekly Real Estate Transaction reportSedona Weekly Real Estate Transaction report
Sedona Weekly Real Estate Transaction report
 
Una travesía ambiental
Una travesía ambientalUna travesía ambiental
Una travesía ambiental
 
UDA-Selección de tecnologías
UDA-Selección de tecnologíasUDA-Selección de tecnologías
UDA-Selección de tecnologías
 
The single source of truth about your customer
The single source of truth about your customerThe single source of truth about your customer
The single source of truth about your customer
 
Nyfen Corporate Sponsorship 2010.Pptx [Autosaved]
Nyfen Corporate Sponsorship 2010.Pptx [Autosaved]Nyfen Corporate Sponsorship 2010.Pptx [Autosaved]
Nyfen Corporate Sponsorship 2010.Pptx [Autosaved]
 
Bachelor Thesis: “Use and application of an ERP System on a Cars dealership”.
Bachelor Thesis: “Use and application of an ERP System on a Cars dealership”.Bachelor Thesis: “Use and application of an ERP System on a Cars dealership”.
Bachelor Thesis: “Use and application of an ERP System on a Cars dealership”.
 
Voluntariado transformador
Voluntariado transformadorVoluntariado transformador
Voluntariado transformador
 

Similaire à XMPP Intro

Tecnologías Web 2.0 de doble uso (civil y militar)
Tecnologías Web 2.0 de doble uso (civil y militar)Tecnologías Web 2.0 de doble uso (civil y militar)
Tecnologías Web 2.0 de doble uso (civil y militar)Jose Carlos Diaz
 
Actividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosActividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosJofre Mamani
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionEduardo J Onofre
 
T1 p2 d1 - protocolos y usabilidad de los recursos del internet
T1 p2 d1 - protocolos y usabilidad de los recursos del internetT1 p2 d1 - protocolos y usabilidad de los recursos del internet
T1 p2 d1 - protocolos y usabilidad de los recursos del internetANGELO ALVARADO JAÉN
 
Herramientas de colaboración digital
Herramientas de colaboración digitalHerramientas de colaboración digital
Herramientas de colaboración digitallefuente
 
Herramientas de colaboración digital
Herramientas de colaboración digitalHerramientas de colaboración digital
Herramientas de colaboración digitallefuente
 
3. protocolos de red
3.  protocolos de red3.  protocolos de red
3. protocolos de redEsteban rivas
 
resumen del modelo OSI y TCP/IP
resumen del modelo OSI y TCP/IPresumen del modelo OSI y TCP/IP
resumen del modelo OSI y TCP/IPEagle20
 
modelo osi
modelo osimodelo osi
modelo osiEagle20
 
Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskMoises Silva
 
Tema 5 capas superiores
Tema 5 capas superioresTema 5 capas superiores
Tema 5 capas superioresJonh Henri
 
SOAP y Web Services
SOAP y Web ServicesSOAP y Web Services
SOAP y Web Servicesedmodi
 
Protocolos de capa de sesión presentación y aplicación
Protocolos de capa de sesión presentación y aplicaciónProtocolos de capa de sesión presentación y aplicación
Protocolos de capa de sesión presentación y aplicaciónJhona Tan
 

Similaire à XMPP Intro (20)

Tecnologías Web 2.0 de doble uso (civil y militar)
Tecnologías Web 2.0 de doble uso (civil y militar)Tecnologías Web 2.0 de doble uso (civil y militar)
Tecnologías Web 2.0 de doble uso (civil y militar)
 
Tcp ip
Tcp ipTcp ip
Tcp ip
 
Tiposdeprotocolos
TiposdeprotocolosTiposdeprotocolos
Tiposdeprotocolos
 
Actividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolosActividad vi tiposdeprotocolos
Actividad vi tiposdeprotocolos
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacion
 
Modelo OSI y TCP/IP
Modelo OSI y TCP/IPModelo OSI y TCP/IP
Modelo OSI y TCP/IP
 
Elastix, TLS, SRTP y OpenVPN
Elastix, TLS, SRTP y OpenVPNElastix, TLS, SRTP y OpenVPN
Elastix, TLS, SRTP y OpenVPN
 
T1 p2 d1 - protocolos y usabilidad de los recursos del internet
T1 p2 d1 - protocolos y usabilidad de los recursos del internetT1 p2 d1 - protocolos y usabilidad de los recursos del internet
T1 p2 d1 - protocolos y usabilidad de los recursos del internet
 
Herramientas de colaboración digital
Herramientas de colaboración digitalHerramientas de colaboración digital
Herramientas de colaboración digital
 
Herramientas de colaboración digital
Herramientas de colaboración digitalHerramientas de colaboración digital
Herramientas de colaboración digital
 
3. protocolos de red
3.  protocolos de red3.  protocolos de red
3. protocolos de red
 
3. protocolos de red
3.  protocolos de red3.  protocolos de red
3. protocolos de red
 
resumen del modelo OSI y TCP/IP
resumen del modelo OSI y TCP/IPresumen del modelo OSI y TCP/IP
resumen del modelo OSI y TCP/IP
 
modelo osi
modelo osimodelo osi
modelo osi
 
Negociacion de Codecs en Asterisk
Negociacion de Codecs en AsteriskNegociacion de Codecs en Asterisk
Negociacion de Codecs en Asterisk
 
Exposision 5
Exposision 5Exposision 5
Exposision 5
 
Tema 5 capas superiores
Tema 5 capas superioresTema 5 capas superiores
Tema 5 capas superiores
 
SOAP y Web Services
SOAP y Web ServicesSOAP y Web Services
SOAP y Web Services
 
Protocolos de capa de sesión presentación y aplicación
Protocolos de capa de sesión presentación y aplicaciónProtocolos de capa de sesión presentación y aplicación
Protocolos de capa de sesión presentación y aplicación
 
La Capa de Red más amistosa
La Capa de Red más amistosaLa Capa de Red más amistosa
La Capa de Red más amistosa
 

Plus de Sebastian Schumann

Challenges Consuming Programmable Telecoms from the Developer’s Perspective
Challenges Consuming Programmable Telecoms from the Developer’s PerspectiveChallenges Consuming Programmable Telecoms from the Developer’s Perspective
Challenges Consuming Programmable Telecoms from the Developer’s PerspectiveSebastian Schumann
 
immmr - transition from a commercial CPaaS to an open-source communications b...
immmr - transition from a commercial CPaaS to an open-source communications b...immmr - transition from a commercial CPaaS to an open-source communications b...
immmr - transition from a commercial CPaaS to an open-source communications b...Sebastian Schumann
 
Programmable Telecoms is Hard - The immmr Story
Programmable Telecoms is Hard - The immmr StoryProgrammable Telecoms is Hard - The immmr Story
Programmable Telecoms is Hard - The immmr StorySebastian Schumann
 
immmr - a hybrid operator model explained
immmr - a hybrid operator model explainedimmmr - a hybrid operator model explained
immmr - a hybrid operator model explainedSebastian Schumann
 
Post-launch experiences from a locally developed internal proof of concept im...
Post-launch experiences from a locally developed internal proof of concept im...Post-launch experiences from a locally developed internal proof of concept im...
Post-launch experiences from a locally developed internal proof of concept im...Sebastian Schumann
 
TADHack 2015 London: Number Mapper Implementation
TADHack 2015 London: Number Mapper ImplementationTADHack 2015 London: Number Mapper Implementation
TADHack 2015 London: Number Mapper ImplementationSebastian Schumann
 
Operator Insights: Thoughts, Experiences, Real-World Challenges Around WebRTC
Operator Insights: Thoughts, Experiences, Real-World Challenges Around WebRTCOperator Insights: Thoughts, Experiences, Real-World Challenges Around WebRTC
Operator Insights: Thoughts, Experiences, Real-World Challenges Around WebRTCSebastian Schumann
 
Telecoms & WebRTC: Opposites attract?!
Telecoms & WebRTC: Opposites attract?!Telecoms & WebRTC: Opposites attract?!
Telecoms & WebRTC: Opposites attract?!Sebastian Schumann
 
Expanding Service Providers’ Reach With WebRTC
Expanding Service Providers’ Reach With WebRTCExpanding Service Providers’ Reach With WebRTC
Expanding Service Providers’ Reach With WebRTCSebastian Schumann
 
Service Provider Involvement with WebRTC
Service Provider Involvement with WebRTCService Provider Involvement with WebRTC
Service Provider Involvement with WebRTCSebastian Schumann
 
Enabling Enhanced Services Through IMS Technology
Enabling Enhanced Services Through IMS TechnologyEnabling Enhanced Services Through IMS Technology
Enabling Enhanced Services Through IMS TechnologySebastian Schumann
 
Integration of Rich Communication Services
Integration of Rich Communication ServicesIntegration of Rich Communication Services
Integration of Rich Communication ServicesSebastian Schumann
 
Next Generation Services. The operator’s dream - The OTT’s reality?
Next Generation Services. The operator’s dream - The OTT’s reality?Next Generation Services. The operator’s dream - The OTT’s reality?
Next Generation Services. The operator’s dream - The OTT’s reality?Sebastian Schumann
 
Open-Source Based Prototype for Quality of Service (QoS) Monitoring and Quali...
Open-Source Based Prototype for Quality of Service (QoS) Monitoring and Quali...Open-Source Based Prototype for Quality of Service (QoS) Monitoring and Quali...
Open-Source Based Prototype for Quality of Service (QoS) Monitoring and Quali...Sebastian Schumann
 
ngnlab.eu - A Virtualized Laboratory Infrastructure
ngnlab.eu - A Virtualized Laboratory Infrastructurengnlab.eu - A Virtualized Laboratory Infrastructure
ngnlab.eu - A Virtualized Laboratory InfrastructureSebastian Schumann
 
The Potential of Consolidating SIP and XMPP Based Communication for Telecomm...
The Potential of Consolidating  SIP and XMPP Based Communication for Telecomm...The Potential of Consolidating  SIP and XMPP Based Communication for Telecomm...
The Potential of Consolidating SIP and XMPP Based Communication for Telecomm...Sebastian Schumann
 

Plus de Sebastian Schumann (20)

Challenges Consuming Programmable Telecoms from the Developer’s Perspective
Challenges Consuming Programmable Telecoms from the Developer’s PerspectiveChallenges Consuming Programmable Telecoms from the Developer’s Perspective
Challenges Consuming Programmable Telecoms from the Developer’s Perspective
 
immmr - transition from a commercial CPaaS to an open-source communications b...
immmr - transition from a commercial CPaaS to an open-source communications b...immmr - transition from a commercial CPaaS to an open-source communications b...
immmr - transition from a commercial CPaaS to an open-source communications b...
 
Programmable Telecoms is Hard - The immmr Story
Programmable Telecoms is Hard - The immmr StoryProgrammable Telecoms is Hard - The immmr Story
Programmable Telecoms is Hard - The immmr Story
 
immmr - a hybrid operator model explained
immmr - a hybrid operator model explainedimmmr - a hybrid operator model explained
immmr - a hybrid operator model explained
 
immmr - going both ways
immmr - going both waysimmmr - going both ways
immmr - going both ways
 
Post-launch experiences from a locally developed internal proof of concept im...
Post-launch experiences from a locally developed internal proof of concept im...Post-launch experiences from a locally developed internal proof of concept im...
Post-launch experiences from a locally developed internal proof of concept im...
 
TADHack 2015 London: Number Mapper Implementation
TADHack 2015 London: Number Mapper ImplementationTADHack 2015 London: Number Mapper Implementation
TADHack 2015 London: Number Mapper Implementation
 
IMS Service Rev. 2015
IMS Service Rev. 2015IMS Service Rev. 2015
IMS Service Rev. 2015
 
Operator Insights: Thoughts, Experiences, Real-World Challenges Around WebRTC
Operator Insights: Thoughts, Experiences, Real-World Challenges Around WebRTCOperator Insights: Thoughts, Experiences, Real-World Challenges Around WebRTC
Operator Insights: Thoughts, Experiences, Real-World Challenges Around WebRTC
 
Telecoms & WebRTC: Opposites attract?!
Telecoms & WebRTC: Opposites attract?!Telecoms & WebRTC: Opposites attract?!
Telecoms & WebRTC: Opposites attract?!
 
Expanding Service Providers’ Reach With WebRTC
Expanding Service Providers’ Reach With WebRTCExpanding Service Providers’ Reach With WebRTC
Expanding Service Providers’ Reach With WebRTC
 
Service Provider Involvement with WebRTC
Service Provider Involvement with WebRTCService Provider Involvement with WebRTC
Service Provider Involvement with WebRTC
 
IMS Signaling (Rev. 3)
IMS Signaling (Rev. 3)IMS Signaling (Rev. 3)
IMS Signaling (Rev. 3)
 
Enabling Enhanced Services Through IMS Technology
Enabling Enhanced Services Through IMS TechnologyEnabling Enhanced Services Through IMS Technology
Enabling Enhanced Services Through IMS Technology
 
IMS Services
IMS ServicesIMS Services
IMS Services
 
Integration of Rich Communication Services
Integration of Rich Communication ServicesIntegration of Rich Communication Services
Integration of Rich Communication Services
 
Next Generation Services. The operator’s dream - The OTT’s reality?
Next Generation Services. The operator’s dream - The OTT’s reality?Next Generation Services. The operator’s dream - The OTT’s reality?
Next Generation Services. The operator’s dream - The OTT’s reality?
 
Open-Source Based Prototype for Quality of Service (QoS) Monitoring and Quali...
Open-Source Based Prototype for Quality of Service (QoS) Monitoring and Quali...Open-Source Based Prototype for Quality of Service (QoS) Monitoring and Quali...
Open-Source Based Prototype for Quality of Service (QoS) Monitoring and Quali...
 
ngnlab.eu - A Virtualized Laboratory Infrastructure
ngnlab.eu - A Virtualized Laboratory Infrastructurengnlab.eu - A Virtualized Laboratory Infrastructure
ngnlab.eu - A Virtualized Laboratory Infrastructure
 
The Potential of Consolidating SIP and XMPP Based Communication for Telecomm...
The Potential of Consolidating  SIP and XMPP Based Communication for Telecomm...The Potential of Consolidating  SIP and XMPP Based Communication for Telecomm...
The Potential of Consolidating SIP and XMPP Based Communication for Telecomm...
 

Dernier

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 

Dernier (20)

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 

XMPP Intro

  • 1. Extensible Messaging and Presence Protocol Sebastian Schumann Slovak Telekom 5. December 2012 Bratislava, Slovakia
  • 2. About me ¡ Studied 2003 – 2007 telecommunications and computer sciences in Leipzig, Germany ¡ In Slovakia since 2006 ¡ Working for Slovak Telekom since 2007 ¡ Post-grad studies at Slovak University of Technology since 2007 ¡ Worked extensively with SIP/XMPP based presence and their possible integration
  • 3. Outline ¡ XMPP ¡ Introduction ¡ Architecture ¡ Protocol ¡ Usage ¡ IM, presence, multi-party interaction ¡ Publish/subscribe ¡ Jingle ¡ Discussion ¡ XMPP vs. SIP/SIMPLE ¡ Relevance
  • 4. Further reading ¡ This slide set is extended with content from the presentation of Remko Tronçon et. al.: “XMPP 101” ¡ http://el-tramo.be/blog/xmpp-101-fosdem/ ¡ Thank you for making your talk publicly available! ¡ The book “XMPP – The Definitive Guide” is excellent material by the authors of the XMPP standards. ¡ Yes, I bought it myself.
  • 5. Note! ¡ These slides only summarize the lecture. ¡ Take notes. ¡ Some slides are placeholders for work- ing on the white board, take care! ¡ Questions/Contributions/Criticism/Notes/Hints? ¡ Interrupt me any time!
  • 7. Origins (RFC 2778, RFC 2779) ¡ IETF defines general model for presence and instant messaging ¡ This model defines ¡ Presence service ¡ Instant messaging service ¡ Generic presence data model ¡ Requirements for instant messaging and presence (IMPP) systems are also described
  • 8. White board Term definition Presence service model, presence system Publish/Subscribe, Notify Watchers Instant Message Service Presence information
  • 9. IMPP implementations ¡ Based on IETF generic IMPP RFCs, several protocols are defined for delivering services ¡ Implementations are done by basic protocol and particular IMPP extension ¡ Base protocol ¡  SIP (RFC 3261) ¡  XMPP Core (RFC 3920) ¡ IMPP extension ¡  SIMPLE (RFC 3265) ¡  XMPP IM (RFC 3921)
  • 10. XMPP implementations ¡ To start with the relevance of the protocol, has anyone chatted with the following services? ¡ Google ¡ Facebook ¡ Cisco ¡ WhatsApp ¡ identi.ca ¡ Apple ¡ All are based on or use XMPP to some extend* * Some use a modification of the protocol.
  • 11. XMPP, the protocol ¡ Original name: Jabber (1998, by Jeremie Miller) ¡ Purely XML based protocol (for streaming XML) ¡ Comparison: SIP is based on HTTP ¡ Information is shared using a continuous XML stream transported over TCP ¡ SASL (Simple Authentication and Security Layer) and TLS (Transport Layer Security) used to secure stream ¡ Based on a few RFCs and extended by many XEPs ¡ XMPP Extension Protocol ¡ Comparison: SIP extended only through RFCs
  • 12. XMPP, the protocol ctd. ¡ XEPs make the protocol extensible ¡ XMPP is a decentralized, federated, asynchronous client-server protocol ¡ Sample messages <message from=’alice@hosted-im.fiit.ngnlab.eu/adium’ to=’ bob@hosted-im.fiit.ngnlab.eu' type='chat'> <body>Hello!</body> </message> <presence type=’busy'> <show>away</show> <status>Giving a lecture!</status> </presence>
  • 13. White board Architecture C2S, S2S, GW, FN/FC Comparison to HTTP, E-mail, SIP
  • 15. Addresses ¡ Bare JID similar to E-mail address, identifying responsible user and domain ¡ alice@hosted-im.fiit.ngnlab.eu ¡ Full JID includes particular resource ¡ alice@hosted-im.fiit.ngnlab.eu/psi ¡ Jabber ID (JID) ¡ user@domain/resource ¡ DNS is used for service discovery ¡ SRV ¡ A
  • 16. White board Addressing DNS Client Port 5222/Server Port 5269
  • 17. DNS ¡ Link IP addresses with domain names ¡ Support in locating XMPP servers ¡ SRV lookup ¡ A/AAAA lookup ¡ SRV look-up indicates the domain and port the service listens on ¡  _xmpp-server._tcp.gmail.com. 900 IN SRV 5 0 5269 xmpp-server.l.google.com. ¡  _xmpp-client._tcp.gmail.com. 900 IN SRV 5 0 5222 xmpp.l.google.com ¡ A/AAAA to find the IP address of the domain name ¡  xmpp-server.l.google.com. 300 IN A 173.194.70.125
  • 18. Client vs. Server Communications ¡ XMPP uses different ports for client to server (c2s) and server to server (s2s) communications ¡ c2s: Port 5222 ¡ s2s: Port 5269 ¡ Same principle for s2s as for c2s ¡ Discovery ¡ XML streams ¡ No intermediate servers for federation (unlike E-mail) ¡ Similar security mechanisms (SASL, TLS)
  • 19. Usage
  • 20. IM, presence, multi-party interaction ¡ All “built in” the main standards ¡ Protocol ¡ “Normal” instant messaging ¡ IM ¡ Presence ¡ Rosters ¡ Initial presence ¡ Statuses ¡ Priorities ¡  Negative priority
  • 21. XMPP 101: Protocol deep-dive ¡ Streaming XML ¡ Slide 22 ¡ XMPP XML stanzas ¡ <message/> ¡ <presence/> ¡ <iq/> (Info/Query) ¡  Slides 23-28 ¡ Extensibility ¡ Slide 29
  • 22. XMPP 101: Protocol deep-dive ¡ Extensions ¡ Multi-User Chat ¡  Slide 37 ¡ PubSub ¡  Slide 40 ¡ Extended presence ¡  Slide 45
  • 23. Other aspects ¡ vCards (XEP-0054, RFC 2426) ¡ Server maintains vCard of users ¡ Service Discovery (disco) ¡ Entity: disco#items ¡ Features: disco#info ¡ Server features, client capabilities, etc. ¡ Roster ¡ Server configuration
  • 24. Other aspects ctd. ¡ Server components ¡ MUC (Multi-user chat) ¡ Foreign network gateways ¡ File Transfer ¡ BOSH (Bidirectional streams over synchronous HTTP) ¡ XMPP over HTTP ¡ Bots ¡ c2s, components
  • 25. Jingle (XEP-0166+) ¡ Set up multi-media sessions similarly to SIP ¡ Only session setup, no media transport ¡  Negotiate content ¡  Negotiate protocol (UDP, TCP) ¡ Streaming protocol (e.g. RTP) used to transport media ¡ Similar complexity as in SIP ¡ Different protocol/ports ¡ NAT traversal
  • 26. White board Jingle session setup Overlap: SIP messages
  • 27. Live tests ¡ Powered by from Process One ¡ Thank you! ¡ Domain ¡ hosted-im.fiit.ngnlab.eu ¡ Users ¡ Alice, Bob, Charlie, Dave ¡ Password ¡ fiit2012!lecture
  • 28. White board Stream setup Have a look at some stanzas Test presence, message, Jingle Test some server components (PubSub)
  • 30. XMPP vs. SIP/SIMPLE ¡ Which one is better? ¡ How have both historically developed to where they are now? ¡ Similarities/Differences ¡ Architecture ¡ Protocol ¡ Complexity ¡ Practical application
  • 32. What can one build with XMPP? ¡ Many things J - needs differentiation ¡ Obvious examples ¡ Real-time communications system ¡ Messaging bus (PubSub) ¡ Yet another… ¡ RCS-e/Joyn? ¡ Facebook? ¡ E-mail? ¡ Gaming platform? ¡ Identity service? Your Ideas?!
  • 33. Relevance ¡ What is used these days? ¡ On the Internet ¡  Browser ¡  Mobile ¡  Clients ¡  Windows ¡  Mac ¡  Linux ¡ By operators ¡ Can SIP and XMPP be linked/connected?
  • 34. SIP/XMPP consolidation ¡ Joint paper published @ ONIT 2010 ¡  http://link.springer.com/chapter/10.1007%2F978-3-642-17851-1_70 ¡ An alternative approach to “SIP/SIMPLE vs. XMPP” and “Telco presence” ¡ Start point: current deployments ¡ Telephony: SIP ¡ IM/Presence: XMPP ¡ Requirements ¡ Use standard protocols (to re-use clients) ¡ Customers can keep current accounts in both worlds
  • 36. SIP/XMPP consolidation ctd. ¡ Telephone state extraction can be easily added to each infrastructure ¡ Enhanced SIP proxy that can extract call state information ¡ SIP call states must be converted to XMPP presence information ¡ XMPP as main IM/P protocol
  • 39. Summary ¡ A lot of open and/or free resources to follow up ¡ Programming libraries ¡ Clients, server – many open-source ¡ XMPP quite “under the radar” for now ¡ SIP gained a lot of attention w/ IMS, RCS-e, etc. in Telco ¡ Web 2.0 accelerated use of HTTP, esp. REST ¡ XMPP used, but not as “advocated” ¡ The Internet contains extensive material on XMPP ¡ This lecture was only an introduction! ¡ I hope it stimulated some ideas for future projects and helped in understanding communications a bit better.
  • 41. Download ¡ This lecture is available at http://bit.ly/fiit-xmpp
  • 42. References 1.  RFCs 2778, 2779, 3920, 3921. Various XEPs 2.  XMPP: The Definitive Guide. Peter Saint-Andre et.al. 3.  XMPP 101. Remko Tronçon http://www.slideshare.net/remko.troncon/xmpp-101 4.  Several own publications 5.  Graphics from Google Images, Open Clipart If you feel content where you hold the copyright is displayed within these slides and you do not like it, miss a link/reference, or want me to remove it altogether please let me know.