Difference between revisions of "XMPP 2.0"

Jump to navigation Jump to search
549 bytes added ,  10:31, 11 August 2017
Line 41: Line 41:
Rules for stanzas entering the XMPP 2.0 realm (from an XMPP 1.0 node):
Rules for stanzas entering the XMPP 2.0 realm (from an XMPP 1.0 node):


* If the stanza has an <code>&lt;xmpp-2/&gt;</code> tag, it MUST be processed as if it came from an XMPP 2.0 node. Any XMPP 1.0 Routing Modifiers MUST be stripped.
* A stanza with a <code>&lt;xmpp-2/&gt;</code> tag MUST be processed as if it came from an XMPP 2.0 node. Any XMPP 1.0 Routing Modifiers MUST be stripped.
* If a message to a ''bare JID'' has a XMPP 1.0 Routing Modifier which prevents carbon-copying, the [https://xmpp.org/rfcs/rfc6121.html#rules-localpart-barejid routing rules for bare JID messages as defined in RFC 6120] SHOULD be applied.
* A message to a ''bare JID'' must be delivered to all online clients (this is allowed by RFC 6120 already).
* A message to a ''full JID'' with <code>&lt;private/&gt;</code> or <code>&lt;no-copy/&gt;</code> is delivered to the targeted full JID (this matches current Carbons behavior).
* For a message to a ''full JID'' with no XMPP 1.0 Routing Modifier, a set of rules similar to Carbon copying needs to be applied, to determine if the message must be rerouted to the bare JID:
** type=normal - needs to detect body presence / special use cases
** type=chat - reroute to bare JID, deliver to all clients (alternatively: deliver Carbons); store in archive
** type=groupchat - treat as ''transient'', deliver to single resource
** type=headline - treat as ''transient'', deliver to single resource
* The stanza MUST be marked with a to-be-defined <code>&lt;xmpp-1/&gt;</code> tag so that XMPP 2.0 nodes further downstream can recognize that the XMPP 1.0 routing semantics shall apply.
* The stanza MUST be marked with a to-be-defined <code>&lt;xmpp-1/&gt;</code> tag so that XMPP 2.0 nodes further downstream can recognize that the XMPP 1.0 routing semantics shall apply.


Navigation menu