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
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>
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
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)
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
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.
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.