SlideShare une entreprise Scribd logo
1  sur  20
XMPP intro  E




 Extensible Messaging and Presence
             Protocol




Steffen Larsen (slarsen@nordija.com)
XMPP - what is it?
• Extensible Messaging and Presence
  Protocol

• An Open Source Instant Messaging
  (IM) system. I would also like to refer
  to it as a session protocol.

• Easy integration of extensions
• Widely used and many implementations
  of the core system.
XMPP clients

• Pidgin (formerly known as gaim, all)
• Adium (based on pidgin lib.,mac)
• GTalk (Google Talk, m$ windoze)
• psi (all)
• gajim (all), etc... MANY!
XMPP core

• Going from Jabber (1999) to XMPP
• XMPP foundation, founded 2003. For
  standardization.

• RFC 3920, RFC 3921 (define XML
  stream, login and architecture)
XMPP core

• XMPP is a XML streaming standard
• XMPP defines a <stream/> to make a
  stream session.

• TLS (authentication) / SASL (Simple
  Authentication and Security Layer)
XMPP core

core consists of the following:

   • <stream/>
   • Addressing standard (JIDs):
     user@host.domain/resource. This is
     important for the routing/prioritizing.

   • stanzas
XML Streams
• <stream/> container for XML
  elements in a stream.

 • <stream/> once in a session, send
    many xml elements!

 • <stream/> consists of:
   • negotiation of TLS and SASL
   • stanzas
The “layers”

• TCP (your socket!)
  • TLS secure layer
  • SASL negotiation
  • XMPP (send/receive stanzas)
  • Third party channel.. (initiated by XMPP, voice
    etc)
Using the language
• Logging in <stream>, TLS, SASL..
  • SASL for negotiating diff.
    encryption mechanisms.

  • Challenge/Response..
  • server binds the client resource
• fetching the buddy list.. <iq get
  roster..>

• sending stanzas messages, presence
  etc.
Language Elements

• XMPP have 3 XML stanzas. (well
 structured children under the
 <stream/> element):
 • <presence/>
 • <message/>
 • <iq/> (Information, Query: get, set)
XML Stream example
Basic sessions:

    |--------------------|   C: <?xml version='1.0'?>
    | <stream>           |      <stream:stream
    |--------------------|          to='example.com'
    | <presence>         |          xmlns='jabber:client'
    |   <show/>          |          xmlns:stream='http://etherx.jabber.org/streams'
    | </presence>        |          version='1.0'>
    |--------------------|   S: <?xml version='1.0'?>
    | <message to='foo'> |      <stream:stream
    |   <body/>          |          from='example.com'
    | </message>         |          id='someid'
    |--------------------|          xmlns='jabber:client'
    | <iq to='bar'>      |          xmlns:stream='http://etherx.jabber.org/streams'
    |   <query/>         |          version='1.0'>
    | </iq>              |   ... encryption, authentication, and resource binding ...
    |--------------------|   C:   <message from='juliet@example.com'
    | ...                |                 to='romeo@example.net'
    |--------------------|                 xml:lang='en'>
    | </stream>          |   C:     <body>Art thou not Romeo, and a Montague?</body>
    |--------------------|   C:   </message>
                             S:   <message from='romeo@example.net'
                                           to='juliet@example.com'
                                           xml:lang='en'>
                             S:     <body>Neither, fair saint, if either thee dislike.</body>
                             S:   </message>
                             C: </stream:stream>
                             S: </stream:stream>
XMPP Stanzas
 <message/>
                  <message
                      from='northumberland@shakespeare.lit/westminster'
                      id='richard2-4.1.247'
                      to='kingrichard@royalty.england.lit/throne'>
                    <body>My lord, dispatch; read o'er these articles.</body>
                    <request xmlns='urn:xmpp:receipts'/>
                  </message>




     <iq/>
                     Example: Client requests current roster from server:

                  <iq from='juliet@example.com/balcony' type='get' id='roster_1'>
                    <query xmlns='jabber:iq:roster'/>

e.g. get roster   </iq>
                     Example: Client receives roster from server:


  at startup      <iq to='juliet@example.com/balcony' type='result' id='roster_1'>
                    <query xmlns='jabber:iq:roster'>
                      <item jid='romeo@example.net'
                             name='Romeo'
                             subscription='both'>
                        <group>Friends</group>
                      </item>
                      <item jid='mercutio@example.org'
                             name='Mercutio'
                             subscription='from'>
                        <group>Friends</group>
                      </item>
                      <item jid='benvolio@example.org'
                             name='Benvolio'
                             subscription='both'>
                        <group>Friends</group>
                      </item>
                    </query>
                  </iq>
XMPP Architecture
server - server. xmpp registar with cert.




client - client
XMPP Architecture



 server-       Text
               Text
client-gw-
    SIP
XMPP Extensions (XEP)

• XMPP defines a set of XEPs
• Definition of an extension (XEP-001).
  XEP relies on namespaces.
• XEP-166, XEP-167 (Jingles), XEP-176
  important right now
• Feature and service discovery
  important. Can also be done in
XMPP Platforms

• ejabberd (erlang)
• xfire (uses smack-lib, java based)
• google talk (based on libjingle, c++).
  Can connect to the base XMPP
  architecture and vice versa. Some
  XEPs are NOT the same (voice/video/
  ice)!
XMPP Libraries
• Libjingle (google, c++, not compliant to
  some xmpp extensions)

• Perl:XMPP (perl!, dah!)
• LibIksmeal (C, very unorganized!)
• Smack (Java, JMF!)
• My own!... :-) (core in libpurple, plugin
  lib for xep-166,167,176)
XMPP in the future?
• Will it become a de-facto
  standard? (xmpp is what http
  was in the past)

• New extensions?
• XEP-666 for set top boxes? ;-)
• XEP for Conferencing?
XMPP links:


• www.xmpp.org
• http://www.xmpp.org/rfcs/rfc3920.htm
• http://www.xmpp.org/rfcs/rfc3921.htm
• http://www.xmpp.org/extensions/
Questions?
If you don’t have any:

 • when is xep-166 etc.
    (jingle) a standard?

 • where do I start?
 • ....

Contenu connexe

Tendances

Step by step_linux_guide
Step by step_linux_guideStep by step_linux_guide
Step by step_linux_guide
vinod31dec
 
DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5
Eyal Vardi
 

Tendances (20)

Open Source XMPP for Cloud Services
Open Source XMPP for Cloud ServicesOpen Source XMPP for Cloud Services
Open Source XMPP for Cloud Services
 
Interacting with XMPP using PHP
Interacting with XMPP using PHPInteracting with XMPP using PHP
Interacting with XMPP using PHP
 
DDS and XMPP
DDS and XMPPDDS and XMPP
DDS and XMPP
 
Kopdar Zimbra-ID , How to use Zimbra SOAP API
Kopdar Zimbra-ID , How to use Zimbra SOAP APIKopdar Zimbra-ID , How to use Zimbra SOAP API
Kopdar Zimbra-ID , How to use Zimbra SOAP API
 
Composite Source With Mule ESB
Composite Source With Mule ESBComposite Source With Mule ESB
Composite Source With Mule ESB
 
FMS Administration Seminar
FMS Administration SeminarFMS Administration Seminar
FMS Administration Seminar
 
Massive emailing with Linux, Postfix and Ruby on Rails
Massive emailing with Linux, Postfix and Ruby on RailsMassive emailing with Linux, Postfix and Ruby on Rails
Massive emailing with Linux, Postfix and Ruby on Rails
 
Postfix
PostfixPostfix
Postfix
 
Inter-Process/Task Communication With Message Queues
Inter-Process/Task Communication With Message QueuesInter-Process/Task Communication With Message Queues
Inter-Process/Task Communication With Message Queues
 
Step by step_linux_guide
Step by step_linux_guideStep by step_linux_guide
Step by step_linux_guide
 
Migration from ASP to ASP.NET
Migration from ASP to ASP.NETMigration from ASP to ASP.NET
Migration from ASP to ASP.NET
 
Rhel4
Rhel4Rhel4
Rhel4
 
Ftp server linux
Ftp server linuxFtp server linux
Ftp server linux
 
Presentation on samba server
Presentation on samba serverPresentation on samba server
Presentation on samba server
 
Protocolos de E-mail (SMTP, POP e IMAP)
Protocolos de E-mail (SMTP, POP e IMAP)Protocolos de E-mail (SMTP, POP e IMAP)
Protocolos de E-mail (SMTP, POP e IMAP)
 
DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5
 
Samba power point presentation
Samba power point presentationSamba power point presentation
Samba power point presentation
 
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices
 
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
 
Ubuntu For Intranet Services
Ubuntu For Intranet ServicesUbuntu For Intranet Services
Ubuntu For Intranet Services
 

En vedette

En vedette (20)

XMPP 101
XMPP 101XMPP 101
XMPP 101
 
What is XMPP Protocol
What is XMPP ProtocolWhat is XMPP Protocol
What is XMPP Protocol
 
Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 2Event Driven Architecture Concepts in Web Technologies - Part 2
Event Driven Architecture Concepts in Web Technologies - Part 2
 
Real time Web Application with XMPP and Wave
Real time Web Application with XMPP and WaveReal time Web Application with XMPP and Wave
Real time Web Application with XMPP and Wave
 
ProcessOne Push Platform: XMPP-based Push Solutions
ProcessOne Push Platform: XMPP-based Push SolutionsProcessOne Push Platform: XMPP-based Push Solutions
ProcessOne Push Platform: XMPP-based Push Solutions
 
Erlang White Label
Erlang White LabelErlang White Label
Erlang White Label
 
Multi Chat
Multi ChatMulti Chat
Multi Chat
 
Nanomsg - Scalable Networking Library
Nanomsg - Scalable Networking LibraryNanomsg - Scalable Networking Library
Nanomsg - Scalable Networking Library
 
Archipel Introduction - ejabberd SF Meetup
Archipel Introduction - ejabberd SF MeetupArchipel Introduction - ejabberd SF Meetup
Archipel Introduction - ejabberd SF Meetup
 
Create Your Own Language
Create Your Own LanguageCreate Your Own Language
Create Your Own Language
 
2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communauté2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communauté
 
OneTeam Media Server
OneTeam Media ServerOneTeam Media Server
OneTeam Media Server
 
WaveOne server and client by ProcessOne
WaveOne server and client by ProcessOneWaveOne server and client by ProcessOne
WaveOne server and client by ProcessOne
 
Multitasking in iOS 7
Multitasking in iOS 7Multitasking in iOS 7
Multitasking in iOS 7
 
Nodejs Applications in Production
Nodejs Applications in ProductionNodejs Applications in Production
Nodejs Applications in Production
 
XMPP Academy #1
XMPP Academy #1XMPP Academy #1
XMPP Academy #1
 
Event Driven Architecture Concepts in Web Technologies - Part 1
Event Driven Architecture Concepts in Web Technologies - Part 1Event Driven Architecture Concepts in Web Technologies - Part 1
Event Driven Architecture Concepts in Web Technologies - Part 1
 
Practical Look at Erlang
Practical Look at ErlangPractical Look at Erlang
Practical Look at Erlang
 
A vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF MeetupA vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF Meetup
 
Whole Site Delivery with Amazon CloudFront
Whole Site Delivery with Amazon CloudFrontWhole Site Delivery with Amazon CloudFront
Whole Site Delivery with Amazon CloudFront
 

Similaire à XMPP Intro 1101 - 2008

Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabber
l xf
 

Similaire à XMPP Intro 1101 - 2008 (20)

XMPP-IoT Protocol designed mainly to send mesages
XMPP-IoT Protocol designed mainly to send mesagesXMPP-IoT Protocol designed mainly to send mesages
XMPP-IoT Protocol designed mainly to send mesages
 
Powering your website with realtime data
Powering your website with realtime dataPowering your website with realtime data
Powering your website with realtime data
 
Xmpp presentation
Xmpp presentationXmpp presentation
Xmpp presentation
 
Monitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachineMonitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachine
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabber
 
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
 
AD102 - Break out of the Box
AD102 - Break out of the BoxAD102 - Break out of the Box
AD102 - Break out of the Box
 
Logstash
LogstashLogstash
Logstash
 
XMPP Academy #3
XMPP Academy #3XMPP Academy #3
XMPP Academy #3
 
Reaching Out From PL/SQL (OPP 2010)
Reaching Out From PL/SQL (OPP 2010)Reaching Out From PL/SQL (OPP 2010)
Reaching Out From PL/SQL (OPP 2010)
 
2014-11-26 | Creating a BitTorrent Client with Scala and Akka, Part 1 (Vienna...
2014-11-26 | Creating a BitTorrent Client with Scala and Akka, Part 1 (Vienna...2014-11-26 | Creating a BitTorrent Client with Scala and Akka, Part 1 (Vienna...
2014-11-26 | Creating a BitTorrent Client with Scala and Akka, Part 1 (Vienna...
 
XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)
 
Chat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIPChat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIP
 
Ruby
RubyRuby
Ruby
 
Camel as a_glue
Camel as a_glueCamel as a_glue
Camel as a_glue
 
Linux Desktop Automation
Linux Desktop AutomationLinux Desktop Automation
Linux Desktop Automation
 
Ruby e xmpp
Ruby e xmppRuby e xmpp
Ruby e xmpp
 
Mojo – Simple REST Server
Mojo – Simple REST ServerMojo – Simple REST Server
Mojo – Simple REST Server
 
Séminaire Web Services
Séminaire Web ServicesSéminaire Web Services
Séminaire Web Services
 
Motivations and Considerations for Migrating from SMTPD/Sendmail to CSSMTP
Motivations and Considerations for Migrating from SMTPD/Sendmail to CSSMTPMotivations and Considerations for Migrating from SMTPD/Sendmail to CSSMTP
Motivations and Considerations for Migrating from SMTPD/Sendmail to CSSMTP
 

Dernier

Dernier (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

XMPP Intro 1101 - 2008

  • 1. XMPP intro E Extensible Messaging and Presence Protocol Steffen Larsen (slarsen@nordija.com)
  • 2. XMPP - what is it? • Extensible Messaging and Presence Protocol • An Open Source Instant Messaging (IM) system. I would also like to refer to it as a session protocol. • Easy integration of extensions • Widely used and many implementations of the core system.
  • 3. XMPP clients • Pidgin (formerly known as gaim, all) • Adium (based on pidgin lib.,mac) • GTalk (Google Talk, m$ windoze) • psi (all) • gajim (all), etc... MANY!
  • 4. XMPP core • Going from Jabber (1999) to XMPP • XMPP foundation, founded 2003. For standardization. • RFC 3920, RFC 3921 (define XML stream, login and architecture)
  • 5. XMPP core • XMPP is a XML streaming standard • XMPP defines a <stream/> to make a stream session. • TLS (authentication) / SASL (Simple Authentication and Security Layer)
  • 6. XMPP core core consists of the following: • <stream/> • Addressing standard (JIDs): user@host.domain/resource. This is important for the routing/prioritizing. • stanzas
  • 7. XML Streams • <stream/> container for XML elements in a stream. • <stream/> once in a session, send many xml elements! • <stream/> consists of: • negotiation of TLS and SASL • stanzas
  • 8. The “layers” • TCP (your socket!) • TLS secure layer • SASL negotiation • XMPP (send/receive stanzas) • Third party channel.. (initiated by XMPP, voice etc)
  • 9. Using the language • Logging in <stream>, TLS, SASL.. • SASL for negotiating diff. encryption mechanisms. • Challenge/Response.. • server binds the client resource • fetching the buddy list.. <iq get roster..> • sending stanzas messages, presence etc.
  • 10. Language Elements • XMPP have 3 XML stanzas. (well structured children under the <stream/> element): • <presence/> • <message/> • <iq/> (Information, Query: get, set)
  • 11. XML Stream example Basic sessions: |--------------------| C: <?xml version='1.0'?> | <stream> | <stream:stream |--------------------| to='example.com' | <presence> | xmlns='jabber:client' | <show/> | xmlns:stream='http://etherx.jabber.org/streams' | </presence> | version='1.0'> |--------------------| S: <?xml version='1.0'?> | <message to='foo'> | <stream:stream | <body/> | from='example.com' | </message> | id='someid' |--------------------| xmlns='jabber:client' | <iq to='bar'> | xmlns:stream='http://etherx.jabber.org/streams' | <query/> | version='1.0'> | </iq> | ... encryption, authentication, and resource binding ... |--------------------| C: <message from='juliet@example.com' | ... | to='romeo@example.net' |--------------------| xml:lang='en'> | </stream> | C: <body>Art thou not Romeo, and a Montague?</body> |--------------------| C: </message> S: <message from='romeo@example.net' to='juliet@example.com' xml:lang='en'> S: <body>Neither, fair saint, if either thee dislike.</body> S: </message> C: </stream:stream> S: </stream:stream>
  • 12. XMPP Stanzas <message/> <message from='northumberland@shakespeare.lit/westminster' id='richard2-4.1.247' to='kingrichard@royalty.england.lit/throne'> <body>My lord, dispatch; read o'er these articles.</body> <request xmlns='urn:xmpp:receipts'/> </message> <iq/> Example: Client requests current roster from server: <iq from='juliet@example.com/balcony' type='get' id='roster_1'> <query xmlns='jabber:iq:roster'/> e.g. get roster </iq> Example: Client receives roster from server: at startup <iq to='juliet@example.com/balcony' type='result' id='roster_1'> <query xmlns='jabber:iq:roster'> <item jid='romeo@example.net' name='Romeo' subscription='both'> <group>Friends</group> </item> <item jid='mercutio@example.org' name='Mercutio' subscription='from'> <group>Friends</group> </item> <item jid='benvolio@example.org' name='Benvolio' subscription='both'> <group>Friends</group> </item> </query> </iq>
  • 13. XMPP Architecture server - server. xmpp registar with cert. client - client
  • 14. XMPP Architecture server- Text Text client-gw- SIP
  • 15. XMPP Extensions (XEP) • XMPP defines a set of XEPs • Definition of an extension (XEP-001). XEP relies on namespaces. • XEP-166, XEP-167 (Jingles), XEP-176 important right now • Feature and service discovery important. Can also be done in
  • 16. XMPP Platforms • ejabberd (erlang) • xfire (uses smack-lib, java based) • google talk (based on libjingle, c++). Can connect to the base XMPP architecture and vice versa. Some XEPs are NOT the same (voice/video/ ice)!
  • 17. XMPP Libraries • Libjingle (google, c++, not compliant to some xmpp extensions) • Perl:XMPP (perl!, dah!) • LibIksmeal (C, very unorganized!) • Smack (Java, JMF!) • My own!... :-) (core in libpurple, plugin lib for xep-166,167,176)
  • 18. XMPP in the future? • Will it become a de-facto standard? (xmpp is what http was in the past) • New extensions? • XEP-666 for set top boxes? ;-) • XEP for Conferencing?
  • 19. XMPP links: • www.xmpp.org • http://www.xmpp.org/rfcs/rfc3920.htm • http://www.xmpp.org/rfcs/rfc3921.htm • http://www.xmpp.org/extensions/
  • 20. Questions? If you don’t have any: • when is xep-166 etc. (jingle) a standard? • where do I start? • ....