Post on 12-Aug-2015
XMPP Architecture
jappix.comjabber.org
talkr.im
Not encrypted
PLAIN
gmail.com googlemail.com
Encrypted
TLS v1.0+
NO SSL (v3-)
XMPP Architecture
jappix.comjabber.org
talkr.im
valerian@jappix.comjohn@jabber.org
jane@talkr.im
Pidgin Beem
AdiumJappix
IM+IM+
XMPP Architecture
jappix.comjabber.org
talkr.im
valerian@jappix.comjohn@jabber.org
jane@talkr.im
Pidgin Beem
AdiumJappix
IM+IM+
Client to server
TCP 5222Outbound + Inbound
XMPP Architecture
jappix.comjabber.org
talkr.im
valerian@jappix.comjohn@jabber.org
jane@talkr.im
Pidgin Beem
AdiumJappix
IM+IM+
Web to proxy to server
TCP 5280Outbound + Inbound
XMPP Architecture
jappix.comjabber.org
talkr.im
valerian@jappix.comjohn@jabber.org
jane@talkr.im
Pidgin Beemjane@talkr.im/Computer jane@talkr.im/Mobile
Adium
valerian@jappix.com/Macjohn@jabber.org/Jappix Web
JappixIM+
valerian@jappix.com/iPhoneIM+
valerian@jappix.com/iPad
XMPP Architecture
jappix.comjabber.org
talkr.im
valerian@jappix.comjohn@jabber.org
jane@talkr.im
Pidgin Beemjane@talkr.im/Computer jane@talkr.im/Mobile
Adium
valerian@jappix.com/Macjohn@jabber.org/Jappix Web
JappixIM+
valerian@jappix.com/iPhoneIM+
valerian@jappix.com/iPad
XMPP Architecture
jappix.comjabber.org
talkr.im
valerian@jappix.comjohn@jabber.org
jane@talkr.im
howard@talkr.im
fiona@talkr.im
julien@jappix.com
+25K users
tim@jabber.org
XMPP Architecture
jappix.comjabber.org
talkr.im
valerian@jappix.comjohn@jabber.org
jane@talkr.im
howard@talkr.im
fiona@talkr.im
julien@jappix.com
+25K users
tim@jabber.org
gmail.com
+425M users!
googlemail.com
XMPP Architecturejappix.com
muc.jappix.com
pubsub.jappix.com
vjud.jappix.com
XMPP Components
websocket.jappix.com
XMPP Architecturejappix.com
muc.jappix.com
pubsub.jappix.com
vjud.jappix.com
XMPP Components XMPP Gateways
skype.jappix.com
msn.jappix.com
websocket.jappix.com
XMPP Architecturejappix.com
muc.jappix.com
pubsub.jappix.com
vjud.jappix.com
XMPP Components XMPP Gateways
skype.jappix.com
msn.jappix.com
Non-XMPP services
stun.jappix.com
turn.jappix.com
websocket.jappix.com
XMPP Architecture
Everything is a node
Server = node Gateway = node
Client = node Bot = node
Component = node
XMPP Architecture
Full JID = user@domain.tld/resource Bare JID = user@domain.tld
XMPP Architecture
to = sender user from = receiving user type = stanza purpose id = stanza identifier
XMPP Core
<message type=‘chat’ from=‘valerian@jappix.com/Mac’ to=‘hector@jabber.ru/Gajim’ id=‘sz_ab_11’> <body>Hello buddy!</body></message>
XMPP Core
<presence type=‘available’ to=‘valerian@jappix.com‘ id=‘sz_ab_12’> <show>away</show></presence>
XMPP Core
<iq type='get' from=‘valerian@jappix.com/iPhone‘ to='julien@jappix.com/Jappix' id=‘sz_ab_292’> <query xmlns='jabber:iq:version'/></iq>
XEP Statuses
Active
Draft
Obsolete
DeprecatedDeferred
Experimental
Final
Proposed
Rejected Retracted
XMPP Extensions
session-accept
Romeo Juliet
session-initiate
ACK
session-accept
ACK
session-info
ACK
session established
XMPP EcosystemXMPP JavaScript
<iq type='get' id=‘jsjac_23’> <prefs xmlns='urn:xmpp:mam:0'/></iq>
JSJaC.js
Now mostly geeky Future can help unify communications, trash PSTN avoid communications to be PSTN-dependant
Thanks!
Jappix - jappix.com
XMPP - xmpp.org
Giggle.js - github.com/valeriansaliou/giggle