diff --git a/xep-0001.xml b/xep-0001.xml index 04950502..62de3a3b 100644 --- a/xep-0001.xml +++ b/xep-0001.xml @@ -211,7 +211,7 @@
  1. To produce practical, technically excellent solutions to important problems of real-time communication based on the set of streaming XML technologies known as XMPP.
  2. To document XMPP extensions in a clear, concise manner so that the task of implementing the protocols is straightforward.
  3. -
  4. To ensure interoperability among the disparate technologies used on XMPP networks.
  5. +
  6. To ensure interoperability among the disparate technologies used on XMPP networks.
  7. To guarantee that any person or entity can implement the protocols without encumbrance.
  8. To work in an fair, open, objective manner.
@@ -350,8 +350,8 @@ Experimental ----> Proposed ----> Active | +--> Obsolete -

Because such XEPs do not seek to define standard protocols, in general they are less controversial and tend to proceed from Proposed to Active without controversy on a vote of the XMPP Council. However, some of these XEPs may be remanded from the Council to the XEP author and/or XMPP Extensions Editor for revision in order to be suitable for advancement from Proposed to Active (e.g., documentation of protocols in use must be accurate and describe any existing security concerns). As with Standards Track XEPs, the XEP author may retract such a XEP when it is Experimental, and the Council may reject such a XEP when it is Proposed.

-

Once approved, Historical, Informational, and Procedural XEPs will have a status of Active. Such a XEP may be replaced by a new XEP on the same or a similar topic, thus rendering the earlier XEP out of date; in such cases, the earlier XEP shall be assigned a status of Deprecated (and eventually Obsolete) with a note specifying the superseding XEP.

+

Because such XEPs do not seek to define standard protocols, in general they are less controversial and tend to proceed from Proposed to Active without controversy on a vote of the XMPP Council. However, some of these XEPs may be remanded from the Council to the XEP author and/or XMPP Extensions Editor for revision in order to be suitable for advancement from Proposed to Active (e.g., documentation of protocols in use must be accurate and describe any existing security concerns). As with Standards Track XEPs, the XEP author may retract such a XEP when it is Experimental, and the Council may reject such a XEP when it is Proposed.

+

Once approved, Historical, Informational, and Procedural XEPs will have a status of Active. Such a XEP may be replaced by a new XEP on the same or a similar topic, thus rendering the earlier XEP out of date; in such cases, the earlier XEP shall be assigned a status of Deprecated (and eventually Obsolete) with a note specifying the superseding XEP.

The XMPP Council may, at its discretion, decide to convert an Historical XEP into a Standards Track XEP if the protocol defined in the XEP has been in long use, is deemed stable and uncontroversial, and is unlikely to be superseded by a newer protocol. The Historical XEP shall be treated in the same way as a Standards Track XEP that has a status of Experimental, beginning with the Proposal Process. If after the Last Call and voting by the XMPP Council the XEP is approved for advancement on the standards track, its type shall be changed to Standards Track and its status shall be changed to Draft.

@@ -370,7 +370,7 @@ Experimental ----> Proposed ----> Active

A Standards Track XEP is in the Final state after it has been in the Draft state for at least six (6) months, has been implemented in at least two separate codebases, and has been voted forward on the standards track by the XMPP Council.

-

Note: Once an XMPP Extension Protocol has been advanced to a status of Final, every effort shall be made to limit the scope of modifications; in particular, backwards-incompatible changes shall not be made. However, limited modifications may be made as long as they are optional, backwards-compatible extensions rather than modifications to the core protocol itself. Therefore, a Final protocol is safe for deployment in mission-critical applications.

+

Note: Once an XMPP Extension Protocol has been advanced to a status of Final, every effort shall be made to limit the scope of modifications; in particular, backwards-incompatible changes shall not be made. However, limited modifications may be made as long as they are optional, backwards-compatible extensions rather than modifications to the core protocol itself. Therefore, a Final protocol is safe for deployment in mission-critical applications.

A XEP of any type other than Standards Track is advanced to a status of Active after it has been voted forward from Experimental by the XMPP Council.

@@ -453,10 +453,10 @@ THE SOFTWARE. - This schema defines the document format for XMPP Extension + This schema defines the document format for XMPP Extension Protocols (XEPs). For further information about XEPs, visit: - http://www.xmpp.org/extensions/ + http://www.xmpp.org/extensions/ The canonical URL for this schema is: @@ -481,20 +481,20 @@ THE SOFTWARE. - - + + - - + + - - + + @@ -744,7 +744,7 @@ THE SOFTWARE. - + @@ -754,7 +754,7 @@ THE SOFTWARE. - + @@ -766,7 +766,7 @@ THE SOFTWARE. - + @@ -776,7 +776,7 @@ THE SOFTWARE. - + @@ -804,8 +804,8 @@ THE SOFTWARE. - - + + @@ -815,8 +815,8 @@ THE SOFTWARE. - - + + diff --git a/xep-0004.xml b/xep-0004.xml index 0cd43795..a884ae48 100644 --- a/xep-0004.xml +++ b/xep-0004.xml @@ -317,7 +317,7 @@ type='get' xml:lang='en' id='create1'> - @@ -481,7 +481,7 @@ type='get' xml:lang='en' id='search1'> - @@ -492,7 +492,7 @@ type='result' xml:lang='en' id='search1'> - @@ -512,7 +512,7 @@ type='get' xml:lang='en' id='search2'> - @@ -528,7 +528,7 @@ type='result' xml:lang='en' id='search2'> - @@ -642,9 +642,9 @@ - diff --git a/xep-0007.xml b/xep-0007.xml index b23b109d..876fe0bb 100644 --- a/xep-0007.xml +++ b/xep-0007.xml @@ -70,7 +70,7 @@
  • The "groupchat" protocol has no way of performing feature negotiation (e.g., specifying the additional protocol elements needed to participate in a room, or optionally allowed from participants within a room). If there were participants with clients sending custom data through the room (such as XHTML or whiteboarding), you would receive that information even without your client being able to support it, and have no way of distinguishing altered behavior due to additional features of a "groupchat" implementation.
  • This new conferencing protocol will be designed to solve these problems.

    -

    Because of the prevalence of the existing "groupchat" specification for multi-user chats, a long conversion process is anticipated. A server implementation which supports both protocols will simply not allow "groupchat"-only clients to participate in rooms with required features.

    +

    Because of the prevalence of the existing "groupchat" specification for multi-user chats, a long conversion process is anticipated. A server implementation which supports both protocols will simply not allow "groupchat"-only clients to participate in rooms with required features.

    As listed above, there is a fairly large number of features that could be developed on top of a well-designed framework. The Conferencing SIG will first be established to develop a framework, with features mainly being compared against the framework for feasibility of implementation. After a proposal has been formalized as a specification, the SIG will become a group for discussing and proposing new features, and for formally specifying those features.

    diff --git a/xep-0009.xml b/xep-0009.xml index ce12e551..f956e8ed 100644 --- a/xep-0009.xml +++ b/xep-0009.xml @@ -5,7 +5,7 @@ ]> -
    +
    Jabber-RPC This specification defines an XMPP protocol extension for transporting XML-RPC encoded requests and responses between two XMPP entities. The protocol supports all syntax and semantics of XML-RPC except that it uses XMPP instead of HTTP as the underlying transport. &LEGALNOTICE; @@ -74,9 +74,9 @@ @@ -91,9 +91,9 @@ ]]> @@ -108,9 +108,9 @@ ]]>

    If the requesting entity does not have sufficient permissions to perform remote procedure calls, the responding entity MUST return a &forbidden; error:

    @@ -131,17 +131,17 @@

    If an entity supports the Jabber-RPC protocol, it SHOULD advertise that fact in response to &xep0030; information ("diso#info") requests by returning an identity of "automation/rpc" and a feature of "jabber:iq:rpc":

    ]]> @@ -179,9 +179,9 @@ The protocol documented by this schema is defined in XEP-0009: http://www.xmpp.org/extensions/xep-0009.html - There is no official XML schema for XML-RPC. The main body - of this schema has been borrowed from an unofficial schema - representation contained in the book "Processing XML With + There is no official XML schema for XML-RPC. The main body + of this schema has been borrowed from an unofficial schema + representation contained in the book "Processing XML With Java" by Elliotte Rusty Harold, as located at: http://www.ibiblio.org/xml/books/xmljava/chapters/ch02s05.html @@ -210,13 +210,13 @@ - - + @@ -236,13 +236,13 @@ - - - - + + + - @@ -255,7 +255,7 @@ - + @@ -286,7 +286,7 @@ - @@ -303,7 +303,7 @@ - diff --git a/xep-0012.xml b/xep-0012.xml index c45c106c..71a110a7 100644 --- a/xep-0012.xml +++ b/xep-0012.xml @@ -81,7 +81,7 @@

    In order to request last activity information regarding another entity, the requesting entity sends an &IQ; stanza of type "get" to the target entity, containing a &QUERY; element qualified by the 'jabber:iq:last' namespace:

    @@ -90,7 +90,7 @@ ]]>

    The target entity MUST return either an IQ-result or an IQ-error. When returning an IQ-result, the target entity sends an &IQ; stanza of type='result' containing a &QUERY; element with a REQUIRED 'seconds' attribute and OPTIONAL XML character data.

    @@ -108,7 +108,7 @@

    The primary usage of the 'jabber:iq:last' namespace is to find out how long ago a user logged out (and, additionally, what their status message was at that time). This primary usage assumes that the IQ-get is sent to a bare JID &LOCALBARE;. When used in this way, the &QUERY; element contained in the IQ-result has a 'seconds' attribute, which is the number of seconds that have passed since the user last logged out. In addition, the element MAY contain XML character data that specifies the status message of the last unavailable presence received from the user. An example is shown below:

    @@ -118,9 +118,9 @@

    As specified in &xmppcore; and &xmppim;, an IQ stanza of type "get" sent to a bare JID &LOCALBARE; is handled by the user's server on the user's behalf, not delivered to one or more connected or available resources.

    If the requesting entity is not authorized to view the user's presence information (normally via a presence subscription as defined in XMPP-IM), the user's server MUST NOT return last activity information but instead MUST return a &forbidden; error in response to the last activity request.

    @@ -152,7 +152,7 @@

    In this case, the user's server shall either deliver the IQ to an available resource or respond on behalf of the user.

    In particular, as with the offline query use case above, if the requesting entity is not authorized to view the user's presence information (normally via a presence subscription as defined in XMPP IM), the user's server MUST NOT deliver the IQ-get to an available resource but instead MUST return a &forbidden; error in response to the last activity request.

    @@ -163,9 +163,9 @@ ]]>

    If the user's server delivers the IQ-get to one of the user's available resources, the user's client MAY respond with the idle time of the user (i.e., the last time that a human user interacted with the client application).

    @@ -173,7 +173,7 @@

    In the foregoing example, the user has been idle for about two minutes.

    Support for this functionality is OPTIONAL. A client that does not support the protocol, or that does not wish to divulge this information, MUST return a &unavailable; error.

    @@ -187,15 +187,15 @@

    When the last activity query is sent to a server or component (i.e., to a JID of the form &DOMAINBARE;), the information contained in the IQ reply reflects the uptime of the JID sending the reply. The seconds attribute specifies how long the host has been running since it was last (re-)started. The &QUERY; element SHOULD NOT contain XML character data.

    ]]> diff --git a/xep-0013.xml b/xep-0013.xml index c2a238e9..9aa0efad 100644 --- a/xep-0013.xml +++ b/xep-0013.xml @@ -122,12 +122,12 @@

    In order to discover whether one's server supports this protocol, one uses &xep0030;.

    - + ]]> @@ -141,7 +141,7 @@

    In order to determine the number of messages in the offline message queue, the user sends a disco#info request without a 'to' address (i.e., implicitly to the user himself) and with the disco node specified as 'http://jabber.org/protocol/offline':

    - ]]> @@ -171,32 +171,32 @@

    In order to retrieve headers for all of the messages in the queue, the user sends a disco#items request without a 'to' address (i.e., implicitly to the user himself) and with the disco node specified as 'http://jabber.org/protocol/offline'.

    - ]]>

    The server now MUST return headers for all of the user's offline messages. So that the user may determine whether to view a full message, the header information provided MUST include the full Jabber ID of the sender (encoded in the 'name' attribute) and a unique identifier for the message within the user's "inbox" (encoded in the 'node' attribute), so that the user may appropriately manage (view or remove) the message.

    - - - - - - @@ -298,7 +298,7 @@ S: C: authentication (SASL in XMPP, non-SASL in older systems) -S: acknowledge successful authentication +S: acknowledge successful authentication C: @@ -315,7 +315,7 @@ S: C: authentication (SASL in XMPP, non-SASL in older systems) -S: acknowledge successful authentication +S: acknowledge successful authentication C: request message headers @@ -325,7 +325,7 @@ NOTE: Server now MUST NOT flood Client with offline messages. C: -NOTE: Server does not flood Client with offline messages, but +NOTE: Server does not flood Client with offline messages, but sends in-session messages as usual. C: request and remove offline messages, send and receive messages, etc. @@ -363,7 +363,7 @@ C: request and remove offline messages, send and receive messages, etc. message-list - The node for the offline message queue; valid only for the node + The node for the offline message queue; valid only for the node "http://jabber.org/protocol/offline" XEP-0013 @@ -371,7 +371,7 @@ C: request and remove offline messages, send and receive messages, etc. message-node - A node for a specific offline message if service discovery is + A node for a specific offline message if service discovery is provided for messages XEP-0013 diff --git a/xep-0018.xml b/xep-0018.xml index bac72bf4..ea090186 100644 --- a/xep-0018.xml +++ b/xep-0018.xml @@ -119,7 +119,7 @@ chat - + chat ]]> diff --git a/xep-0019.xml b/xep-0019.xml index 7a3e0cd7..9652cc29 100644 --- a/xep-0019.xml +++ b/xep-0019.xml @@ -52,7 +52,7 @@
    1. "Crack the whip" -- encourage and cajole the existing SIGs into becoming more active, and energetically manage them so that they produce specifications.
    2. "Wait and see" -- immediately disband the SIGs that are clearly inactive but keep the existing SIGs and hope that they will eventually produce something of value (over time disbanding any that are conspicuously inactive).
    3. -
    4. "Bite the bullet" -- recognize that, for whatever reason, the existing structure (many special-purpose interest groups) is not working and seek a better way to produce enhancements to XMPP.
    5. +
    6. "Bite the bullet" -- recognize that, for whatever reason, the existing structure (many special-purpose interest groups) is not working and seek a better way to produce enhancements to XMPP.

    Given the lack of activity in the SIGs so far (and the lack of time available to those who would manage them), I am skeptical that "cracking the whip" will produce results, and I believe the onus of proof is on those who would argue that the existing SIGs can be successful. Similarly, taking a "wait and see" attitude will simply let a bad situation continue unchecked, and in my opinion will at some point require us to choose between option 1 and option 3. Rather than postpone the day of reckoning, I argue that we need to address the problem head-on and take action to streamline the SIGs and find a better way of working.

    But what is that "better way"? In order to figure that out, we need to understand why things are not working now. I don't think it's that the current SIG members are lazy, stupid, or incompetent -- after all, these are the same people who have in many instances created good XMPP-based software. Nor do I think it's that members of the XMPP community are incapable of creating specifications, because individually and in small, ad-hoc groups they have created quite a few.

    diff --git a/xep-0021.xml b/xep-0021.xml index 0e689801..8e8d6f7e 100644 --- a/xep-0021.xml +++ b/xep-0021.xml @@ -48,14 +48,14 @@
  • User's avatar has changed
  • The coffee machine is empty
  • - +

    In Jabber, the role of the ENS has traditionally been filled by overloading the <presence/> packet type. However, this method was never designed to be used as a general publish-and-subscribe mechanism, and so has the following problems:

    • Dispatching of <presence/> packets is performed by the JSM (Jabber Session Manager), and so is not easily usable by components and other entities that don't connect via a client manager (c2s, CCM).
    • An entity cannot subscribe to the presence of a specific resource of another entity, only to any presence from that entity. This lack of granularity makes its difficult to use <presence/> in situations where large chunks of data must be dispatched to subscribers (eg avatars).
    - +

    The protocol consists of two parts - the subscriber-to-ENS protocol, and the publisher-to-ENS protocol. Since there is no direct interaction between a publisher and a subscriber, it makes sense to seperate the two parts of the protocol.

    The protocol operates in the 'http://xml.cataclysm.cx/jabber/ens/' namespace.

    @@ -187,7 +187,7 @@

    A notification may also contain a (application-specific) "payload" XML fragment:

    - + <iq id='enspub2' type='set' from='ens-jid' to='subscriber-jid'> <publish xmlns='http://xml.cataclysm.cx/jabber/ens/' jid='event-jid'> @@ -225,7 +225,7 @@

    A notification may also contain a (application-specific) "payload" XML fragment:

    - + <iq id='pub1' type='set' from='event-jid' to='ens-jid'> <publish xmlns='http://xml.cataclysm.cx/jabber/ens/'> @@ -257,7 +257,7 @@

    The subscriber may include an <auth-info/> XML fragment containing some (application-specific) information that the publisher can use to authorise it:

    - + <iq id='ensauth1' type='get' from='ens-jid' to='event-jid'> <authorise xmlns='http://xml.cataclysm.cx/jabber/ens/' jid='subscriber-jid'> @@ -270,7 +270,7 @@

    To signal to the ENS that a subscriber should be allowed to subscribe, the publisher should return a packet of the following form:

    - + <iq id='ensauth1' type='result' from='event-jid' to='ens-jid'> <authorised xmlns='http://xml.cataclysm.cx/jabber/ens/' jid='subscriber-jid'/> @@ -310,7 +310,7 @@
  • Have some sort of ENS-to-ENS protocol, and have ENSs proxy publishes for other ENSs. This does not fix the problem, it just moves it away from the subscriber and into the ENS. An ENS will still need to find out which ENS the publisher is publishing to.
  • Integrate ENS into the session manager. This leaves us with a glorified presence system, and makes the ENS basically unusable by non-session-manager-based server components.
  • - +

    This problem may be outside of the scope of this specification.

    diff --git a/xep-0024.xml b/xep-0024.xml index 0b653d2d..3e4e81b7 100644 --- a/xep-0024.xml +++ b/xep-0024.xml @@ -7,7 +7,7 @@
    Publish/Subscribe - A publish-subscribe protocol for Jabber. + A publish-subscribe protocol for Jabber. &PUBLICDOMAINNOTICE; 0024 Retracted @@ -64,7 +64,7 @@ two separate but related goals:

    The specification details the use of the Jabber protocol elements and -introduces a new namespace, jabber:iq:pubsub. +introduces a new namespace, jabber:iq:pubsub. It also includes notes on actual implementation of such a mechanism in Jabber.

    @@ -78,7 +78,7 @@ It's clear that as Jabber is deployed over a wider spectrum of platforms and circumstances, more and more information will be exchanged. Whether that information is specific to Jabber (JSM) users, or components, we need an mechanism to be able to manage the exchange of this information in an -efficient way. +efficient way.

    @@ -301,7 +301,7 @@ You can also send an unsubscribe without specifying any namespaces:

    -SEND: <iq type='set' to='pubsub.localhost' +SEND: <iq type='set' to='pubsub.localhost' from='subscriber.localhost' id='s1'> <query xmlns='jabber:iq:pubsub'> <unsubscribe to='publisher'/> @@ -392,7 +392,7 @@ Likewise, you can unsubscribe from certain namespaces in this non-publisher-spec

    -SEND: <iq type='set' to='pubsub.localhost' +SEND: <iq type='set' to='pubsub.localhost' from='subscriber.localhost' id='s1'> <query xmlns='jabber:iq:pubsub'> <unsubscribe> @@ -402,7 +402,7 @@ SEND: <iq type='set' to='pubsub.localhost' </query> </iq> -RECV: <iq type='result' from='pubsub.localhost' +RECV: <iq type='result' from='pubsub.localhost' to='subscriber.localhost' id='s1'> <query xmlns='jabber:iq:pubsub'> <unsubscribe> @@ -424,14 +424,14 @@ Finally, a subscriber can wipe the slate clean like this:

    -SEND: <iq type='set' to='pubsub.localhost' +SEND: <iq type='set' to='pubsub.localhost' from='subscriber.localhost' id='s1'> <query xmlns='jabber:iq:pubsub'> <unsubscribe/> </query> </iq> -RECV: <iq type='result' from='pubsub.localhost' +RECV: <iq type='result' from='pubsub.localhost' to='subscriber.localhost' id='s1'> <query xmlns='jabber:iq:pubsub'> <unsubscribe/> @@ -644,7 +644,7 @@ RECV: <iq type='result' from='pubsub.localhost' @@ -379,35 +379,35 @@ PARTICULAR PURPOSE. - @@ -418,7 +418,7 @@ PARTICULAR PURPOSE. values must be specified as a comma separated list of values. --> - + @@ -441,21 +441,21 @@ PARTICULAR PURPOSE. multiple values must be specified as a comma separated list of values. --> - + @@ -466,12 +466,12 @@ PARTICULAR PURPOSE. @@ -480,19 +480,19 @@ PARTICULAR PURPOSE. @@ -501,90 +501,90 @@ PARTICULAR PURPOSE. - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + - - + an external binary digital audio pronunciation.--> - + - + - + @@ -593,19 +593,19 @@ PARTICULAR PURPOSE. handle free-form descriptive text. --> - + - + - + - + - + - + diff --git a/xep-0056.xml b/xep-0056.xml index ee08f448..55736c19 100644 --- a/xep-0056.xml +++ b/xep-0056.xml @@ -54,7 +54,7 @@ ANSI X.12, EDIFACT/UN and ebXML are all standards. This document describes a fun -

    EbXML http://www.ebxml.org, a subset of XML that is defined through OASIS.org, is quickly becoming a de-facto standard for electronic, unified, inter and intra business process communication and for business process specification. The direct adjacency to UN/CEFACT EDIFACT, especially object-oriented EDI, make the widespread use of ebXML for automatic business transaction negotiation, process definition, etc. quite likely. +

    EbXML http://www.ebxml.org, a subset of XML that is defined through OASIS.org, is quickly becoming a de-facto standard for electronic, unified, inter and intra business process communication and for business process specification. The direct adjacency to UN/CEFACT EDIFACT, especially object-oriented EDI, make the widespread use of ebXML for automatic business transaction negotiation, process definition, etc. quite likely.

    @@ -73,12 +73,12 @@ ebXML Messages SHALL be transmitted within Jabber IQ chunks. The value of the 't ]]>

    -EbXML information is always transmitted in this envelope. No transformation of native ebXML tags into native Jabber tags is performed (e.g., ebXML reception receipt into Jabber reception receipt). The business logic, on top of Jabber transport logic, has to parse incoming IQ chunks and forward received ebXML information to the ebXML Messaging Service. The business logic has as well to pack the ebXML messages into IQ chunks and invoke the message delivery. +EbXML information is always transmitted in this envelope. No transformation of native ebXML tags into native Jabber tags is performed (e.g., ebXML reception receipt into Jabber reception receipt). The business logic, on top of Jabber transport logic, has to parse incoming IQ chunks and forward received ebXML information to the ebXML Messaging Service. The business logic has as well to pack the ebXML messages into IQ chunks and invoke the message delivery.

    -Although a complex business transaction between two or more Trading Partners might require a payload that contains an array of business documents, binary images, or other related Business Information' Walsh. 2002. ebXML: The Technical Specifications; p. 69, only one ebXML message can be (at the moment) transmitted at a time in one message. However, the ebXML Message MAY contain payload in it's own payload envelope. +Although a complex business transaction between two or more Trading Partners might require a payload that contains an array of business documents, binary images, or other related Business Information' Walsh. 2002. ebXML: The Technical Specifications; p. 69, only one ebXML message can be (at the moment) transmitted at a time in one message. However, the ebXML Message MAY contain payload in it's own payload envelope.

    -

    It has to be noted: The karma restriction of XMPP, implied on clients, makes transmission of large amounts of payload (at the moment) to services or other clients from client side nearly impossible. However, components' karma is not restrained. +

    It has to be noted: The karma restriction of XMPP, implied on clients, makes transmission of large amounts of payload (at the moment) to services or other clients from client side nearly impossible. However, components' karma is not restrained.

    @@ -166,7 +166,7 @@ EDIFACT/UN is very similar to X.12 and differs only in the meaning of tags and i -

    SAP IDocs SHALL be transmitted in a query tag of an IQ chunk. The IQ chunk's type attribute SHALL be 'set. The query's namespace attribute SHALL be set to 'http://jabber.org/protocol/sap_idoc'. The query tag SHALL contain the iDoc, XML aware. +

    SAP IDocs SHALL be transmitted in a query tag of an IQ chunk. The IQ chunk's type attribute SHALL be 'set. The query's namespace attribute SHALL be set to 'http://jabber.org/protocol/sap_idoc'. The query tag SHALL contain the iDoc, XML aware.

    diff --git a/xep-0057.xml b/xep-0057.xml index a23d4ac4..5ccd9802 100644 --- a/xep-0057.xml +++ b/xep-0057.xml @@ -7,7 +7,7 @@
    Extended Roster - This document defines a way to handle extended roster items. + This document defines a way to handle extended roster items. &LEGALNOTICE; 0057 Retracted @@ -66,7 +66,7 @@

    This information is implementation-dependent, so to provide flexibility for it, the jabber:x:data namespace defined in &xep0004; must be used. The client can set these parameters by setting this item with this form with type='submit'.

    @@ -138,7 +138,7 @@ @@ -162,7 +162,7 @@ diff --git a/xep-0058.xml b/xep-0058.xml index e7a383d3..66ffa1ea 100644 --- a/xep-0058.xml +++ b/xep-0058.xml @@ -96,7 +96,7 @@ 8.5. Modifying the Member List 8.6. Granting Moderator Privileges 8.7. Revoking Moderator Privileges - 8.8. Modifying the Moderator List + 8.8. Modifying the Moderator List ... ]]> diff --git a/xep-0061.xml b/xep-0061.xml index 82dd132f..810bb38a 100644 --- a/xep-0061.xml +++ b/xep-0061.xml @@ -27,7 +27,7 @@ 0.2 2003-09-30 psa - At the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational. + At the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational. 0.1 @@ -37,14 +37,14 @@
    -

    A very simple namespace contaning display hints for the content in a message. Can be used for +

    A very simple namespace contaning display hints for the content in a message. Can be used for person-person collaboration, or by a service managing notes.

    -

    Normal messages are sent, with a sharednote namespace extending them hinting to any supporting client on -how to display the message as a note instead. Any changes to the note within that client should then be sent -back to the sender, either automatically or when the user saves the note (depending on the update element, by +

    Normal messages are sent, with a sharednote namespace extending them hinting to any supporting client on +how to display the message as a note instead. Any changes to the note within that client should then be sent +back to the sender, either automatically or when the user saves the note (depending on the update element, by default on a save action by the user).

    ]]> -

    Any element not specified in the note should use the last known setting or client defaults, so that when a +

    Any element not specified in the note should use the last known setting or client defaults, so that when a change is sent, only the changed elements are returned.

    @@ -75,7 +75,7 @@ change is sent, only the changed elements are returned.

    Each thread is a different shared note. Auto updates should use an internal client timer and batch large changes into chunks, when the user is typing every 5-10 seconds or so. When the user has made changes that -haven't been sent and an update comes in on the same thread the client should prompt the user with the +haven't been sent and an update comes in on the same thread the client should prompt the user with the changes offering to replace or save their changes.

    diff --git a/xep-0063.xml b/xep-0063.xml index d536ada4..22d9528b 100644 --- a/xep-0063.xml +++ b/xep-0063.xml @@ -30,7 +30,7 @@ 0.2 2003-09-30 psa - At the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational. + At the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational. 0.1 @@ -61,7 +61,7 @@ ]]> - + jabber:iq:version ]]> @@ -69,7 +69,7 @@ user@company.com ]]> - + @@ -85,11 +85,11 @@ ]]> - + me@home.com ]]> - + diff --git a/xep-0064.xml b/xep-0064.xml index ebd722c6..5aef95fd 100644 --- a/xep-0064.xml +++ b/xep-0064.xml @@ -30,7 +30,7 @@ 0.2 2003-09-30 psa - At the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational. + At the request of the author, changed the status of this document to Deferred pending development of an implementation; also changed the type to Informational. 0.1 @@ -56,11 +56,11 @@ /message/subject ]]> - + /presence/x[namespace-uri()=='jabber:x:delay'] ]]> - + diff --git a/xep-0065.xml b/xep-0065.xml index 36e716ef..2d6ab771 100644 --- a/xep-0065.xml +++ b/xep-0065.xml @@ -308,7 +308,7 @@ to='requester@example.com/foo' type='error'> - @@ -320,7 +320,7 @@ to='requester@example.com/foo' type='error'> - @@ -332,7 +332,7 @@ to='streamer.example.com' type='error'> - @@ -403,7 +403,7 @@ Requester Target to='requester@example.com/foo' type='error'> - @@ -438,7 +438,7 @@ STATUS = X'00' to='requester@example.com/foo' type='error'> - @@ -741,7 +741,7 @@ DATA = Target or Requester JID from='streamer.example.com' to='target@example.org/bar' id='zy3v29h6'> - ]]>
    diff --git a/xep-0066.xml b/xep-0066.xml index f0a87233..f1361fbc 100644 --- a/xep-0066.xml +++ b/xep-0066.xml @@ -183,11 +183,11 @@

    A sample protocol flow is shown below.

    - @@ -209,7 +209,7 @@ to='romeo@montague.net/orchard' id='offer1'> diff --git a/xep-0067.xml b/xep-0067.xml index d251dd76..f370367a 100644 --- a/xep-0067.xml +++ b/xep-0067.xml @@ -45,7 +45,7 @@

    -Usage of jabber/xmpp for stock data transmission would be a nice-to-have. This xep defines transmission of stock ticker values via XMPP based on publish/subscribe. A component, client or alike may publish stock data in this specified way, after creating a node. However, first of all a node on the pub/sub server must be created, this xep recommends creation of the node in the domain 'stocks/', with specific stock value published in the ticker name domain space, i.e. 'stocks/CATG.DE' or 'stocks/602345'. This xep uses the domain 'stocks/' for example data. +Usage of jabber/xmpp for stock data transmission would be a nice-to-have. This xep defines transmission of stock ticker values via XMPP based on publish/subscribe. A component, client or alike may publish stock data in this specified way, after creating a node. However, first of all a node on the pub/sub server must be created, this xep recommends creation of the node in the domain 'stocks/', with specific stock value published in the ticker name domain space, i.e. 'stocks/CATG.DE' or 'stocks/602345'. This xep uses the domain 'stocks/' for example data.

    So, what this document comes down to: it defines the data architecture for stock data and it specifies, that a 'stocks/' node is recommended to exist, which again holds all symbols as subnodes, which again hold either '/realtime', '/bar' or '/news' as subnodes. The 'bar' subnode contains a 'time descriptor' subnode. The sort of the symbols is defined through the service provider, who can i.e. support Y!ahoo finance symbols, (german) WKNs or official stock symbols. @@ -55,7 +55,7 @@ So, what this document comes down to: it defines the data architecture for stock

    -Realtime (or close-to-realtime) full stock value data is distributed to a ticker symbol pub/sub location, in the stocks domain. The share data SHALL contain name, time of last trade, most recent stock value, last trade volume, bid, ask, bid size, ask size of the share. If a value is not available, the value MUST be set to '-1'. Each of the values is transmitted in a corresponding xml element, as seen below. The data is published to a pub/sub position. Realtime share value SHALL be published to a position 'realtime' in the ticker symbol domain. +Realtime (or close-to-realtime) full stock value data is distributed to a ticker symbol pub/sub location, in the stocks domain. The share data SHALL contain name, time of last trade, most recent stock value, last trade volume, bid, ask, bid size, ask size of the share. If a value is not available, the value MUST be set to '-1'. Each of the values is transmitted in a corresponding xml element, as seen below. The data is published to a pub/sub position. Realtime share value SHALL be published to a position 'realtime' in the ticker symbol domain.

    @@ -126,10 +126,10 @@ Realtime (or close-to-realtime) full stock value data is distributed to a ticker

    Time framed, suitable for barcharts/candle sticks/line diagram, stock value data is distributed to a pub/sub location, the ticker symbol domain in the stocks domain. The share data SHALL contain name, validity time of this data set, open, hi, low, close for this time frame, traded volume in this time span of a share.

    If a value is not available, the value MUST be set to '-1'.

    -

    Each of the values is transmitted in a corresponding xml element, as seen below. The data is published to a pub/sub position. Time framed, barcharted share data SHALL be published to a position 'bar' in the ticker symbol domain, the subdomain of this position SHALL be the time span information, time span as stated below. It is up to a component, how to to react on subscriptions in various time spans. Implementations are advised to generate data as according to subscribers demands (subscriptions). Values lower than 0:0:0:0:5:0 are not suitable for most implementations. +

    Each of the values is transmitted in a corresponding xml element, as seen below. The data is published to a pub/sub position. Time framed, barcharted share data SHALL be published to a position 'bar' in the ticker symbol domain, the subdomain of this position SHALL be the time span information, time span as stated below. It is up to a component, how to to react on subscriptions in various time spans. Implementations are advised to generate data as according to subscribers demands (subscriptions). Values lower than 0:0:0:0:5:0 are not suitable for most implementations.

    -The time span SHALL be represented as a string, composed of the amount of years, months, days, hours, minutes, seconds covered by this barchart data set. Time span values SHALL be separated from each other through ':'. A leading zero MAY be attached to digits lower than ten. +The time span SHALL be represented as a string, composed of the amount of years, months, days, hours, minutes, seconds covered by this barchart data set. Time span values SHALL be separated from each other through ':'. A leading zero MAY be attached to digits lower than ten.

    @@ -165,7 +165,7 @@ Similar to section 2, timeframed data MAY be transmitted in a message element. Another important part in a stock system is distribution of stock/share specific news.

    -Stock news are distributed to the pub/sub gateway, to the 'news' location in the ticker symbol subdomain. The stock news are packed in a 'stocknews' chunk. The stocknews chunk contains time, subject, body and source of these news. +Stock news are distributed to the pub/sub gateway, to the 'news' location in the ticker symbol subdomain. The stock news are packed in a 'stocknews' chunk. The stocknews chunk contains time, subject, body and source of these news.

    diff --git a/xep-0068.xml b/xep-0068.xml index 6167b4c4..eefe04eb 100644 --- a/xep-0068.xml +++ b/xep-0068.xml @@ -118,14 +118,14 @@

    These are forms that do not have a hidden field of name FORM_TYPE. Existing processing rules still apply.

    vote-thread-reatmon-134 Vote #134 - This is the vote to pick a new mascot. + This is the vote to pick a new mascot. Thanks for your time! @@ -156,11 +156,11 @@ generic/pgm-mp3-player - sub1@foo.com - 09:00-12:00 13:00-17:00 @@ -203,7 +203,7 @@ ]]> - http://jabber.org/protocol/muc#user + http://jabber.org/protocol/muc#user - - - - - - @@ -258,7 +258,7 @@ ]]> - http://jabber.org/protocol/muc#user + http://jabber.org/protocol/muc#user Brunhilde diff --git a/xep-0070.xml b/xep-0070.xml index 30a5dd98..308776b8 100644 --- a/xep-0070.xml +++ b/xep-0070.xml @@ -175,11 +175,11 @@ GET https://files.shakespeare.lit:9345/missive.html HTTP/1.1 @@ -203,13 +203,13 @@ Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== @@ -226,9 +226,9 @@ Authorization: Digest username="juliet@capulet.com",

    If the JID provided was a full JID, the confirmation request SHOULD be sent in an &IQ; stanza of type "get" whose 'to' attribute is set to the full JID, but MAY be sent in a &MESSAGE; stanza.

    If the JID provided was a bare JID, the confirmation request MUST be sent in a &MESSAGE; stanza whose 'to' attribute is set to the bare JID; this enables delivery to the "most available" resource for the user (however "most available" is determined by the XMPP Server). The &MESSAGE; stanza SHOULD include a &THREAD; element for tracking purposes and MAY include a &BODY; element that provides human-readable information or instructions. If it however provides a &BODY;, the server SHOULD be able to handle a plaintext reply from the client, in the case where it does not support this XEP.

    e0ffe42b28561960c6b12b944a092794b9683a38 @@ -251,7 +251,7 @@ Authorization: Digest username="juliet@capulet.com", a7374jnjlalasdf82 If you wish to confirm the request, please reply - to this message by typing "OK". If not, please + to this message by typing "OK". If not, please reply with "No".

    If the confirmation request was provided via an &IQ; stanza, the XMPP Client MUST respond to the request by sending an &IQ; stanza back to the XMPP Server. If the user wishes to confirm the request, the &IQ; response stanza MUST be of type "result" and MAY contain the original <confirm/> child element (although this is not necessary since the XMPP 'id' attribute can be used for tracking purposes):

    ]]>

    If the user wishes to deny the request, the &IQ; response stanza MUST be of type "error", MAY contain the original <confirm/> child element (although this is not necessary since the XMPP 'id' attribute can be used for tracking purposes), and MUST specify an error, which SHOULD be ¬authorized;:

    If the user wishes to deny the request, the &MESSAGE; response stanza MUST be of type "error", MUST mirror the <thread/> ID (if provided by the XMPP Server), MUST contain the original <confirm/> child element, and MUST specify an error, which SHOULD be ¬authorized;:

    e0ffe42b28561960c6b12b944a092794b9683a38 @@ -342,7 +342,7 @@ Content-Length: 3032
  • The channel used for HTTP requests and responses SHOULD be encrypted via SSL (secure HTTP via https: URLs) or TLS (&rfc2817;).
  • If the standard binding of XMPP to TCP is used, TLS SHOULD be negotiated for the XMPP channel in accordance with RFC 6120.
  • If a binding of XMPP to HTTP is used (e.g., as specified in XEP-0124), exchanges between the XMPP Client and XMPP Server (connection manager) SHOULD be sent over a channel that is encrypted using SSL or TLS.
  • - +

    For added security, the XMPP Server and XMPP Client may wish to communicate using end-to-end encryption. Methods for doing so are outside the scope of this proposal.

    @@ -365,7 +365,7 @@ Content-Length: 3032 targetNamespace='http://jabber.org/protocol/http-auth' xmlns='http://jabber.org/protocol/http-auth' elementFormDefault='qualified'> - + The protocol documented by this schema is defined in @@ -384,7 +384,7 @@ Content-Length: 3032 - + diff --git a/xep-0071.xml b/xep-0071.xml index 84dcf9d3..0eabf2dd 100644 --- a/xep-0071.xml +++ b/xep-0071.xml @@ -313,7 +313,7 @@
    -

    The Hypertext Module is defined as including the <a/> element only:

    +

    The Hypertext Module is defined as including the <a/> element only:

    @@ -372,7 +372,7 @@

    For security reasons or because of display constraints, a compliant client MAY choose to display 'alt' text only, not the image itself (for details, see the Malicious Objects section of this document).

    -

    This module MUST be supported in XHTML-IM if possible; although clients written for certain platforms (e.g., console clients, mobile phones, and handheld computers) or for certain classes of users (e.g., text-to-speech clients) might not be able to support all of the recommended styles directly, they SHOULD attempt to emulate or translate the defined style properties into text or other presentation styles that are appropriate for the platform or user base in question.

    +

    This module MUST be supported in XHTML-IM if possible; although clients written for certain platforms (e.g., console clients, mobile phones, and handheld computers) or for certain classes of users (e.g., text-to-speech clients) might not be able to support all of the recommended styles directly, they SHOULD attempt to emulate or translate the defined style properties into text or other presentation styles that are appropriate for the platform or user base in question.

    A full list of recommended style properties is provided below.

    CSS1 defines 42 "atomic" style properties (which are categorized into font, color and background, text, box, and classification properties) as well as 11 "shorthand" properties ("font", "background", "margin", "padding", "border-width", "border-top", "border-right", "border-bottom", "border-left", "border", and "list-style"). Many of these properties are not appropriate for use in text-based instant messaging, for one or more of the following reasons:

    @@ -765,30 +765,30 @@ That seems fine to me. The XHTML user agent conformance requirements say to ignore elements and attributes you don't understand, to wit: - 4. If a user agent encounters an element it does - not recognize, it must continue to process the - children of that element. If the content is text, + 4. If a user agent encounters an element it does + not recognize, it must continue to process the + children of that element. If the content is text, the text must be presented to the user. - 5. If a user agent encounters an attribute it does - not recognize, it must ignore the entire attribute + 5. If a user agent encounters an attribute it does + not recognize, it must ignore the entire attribute specification (i.e., the attribute and its value). -

    The XHTML user agent conformance - requirements say to ignore elements and attributes +

    The XHTML user agent conformance + requirements say to ignore elements and attributes you don't understand, to wit:

    1. - If a user agent encounters an element it does - not recognize, it must continue to process the + If a user agent encounters an element it does + not recognize, it must continue to process the children of that element. If the content is text, the text must be presented to the user.

    2. - If a user agent encounters an attribute it does - not recognize, it must ignore the entire attribute + If a user agent encounters an attribute it does + not recognize, it must ignore the entire attribute specification (i.e., the attribute and its value).

    @@ -938,8 +938,8 @@ That seems fine to me. This schema defines the element qualified by the 'http://jabber.org/protocol/xhtml-im' namespace. The only allowable child is a element qualified - by the 'http://www.w3.org/1999/xhtml' namespace. Refer - to the XHTML-IM schema driver for the definition of the + by the 'http://www.w3.org/1999/xhtml' namespace. Refer + to the XHTML-IM schema driver for the definition of the XHTML 1.0 Integration Set. Full documentation of this Integration Set is contained in @@ -955,8 +955,8 @@ That seems fine to me. - @@ -994,7 +994,7 @@ That seems fine to me. - List - Image - Style Attribute - + The Formal Public Identifier (FPI) for this Integration Set is: @@ -1011,23 +1011,23 @@ That seems fine to me. - - - - - - - - - @@ -1044,13 +1044,13 @@ That seems fine to me. - This is the XML Schema module of named XHTML 1.0 content models - for XHTML-IM, an XHTML 1.0 Integration Set for use in exchanging - marked-up instant messages between entities that conform to - the Extensible Messaging and Presence Protocol (XMPP). This - Integration Set includes a subset of the modules defined for - XHTML 1.0 but does not redefine any existing modules, nor - does it define any new modules. Specifically, it includes the + This is the XML Schema module of named XHTML 1.0 content models + for XHTML-IM, an XHTML 1.0 Integration Set for use in exchanging + marked-up instant messages between entities that conform to + the Extensible Messaging and Presence Protocol (XMPP). This + Integration Set includes a subset of the modules defined for + XHTML 1.0 but does not redefine any existing modules, nor + does it define any new modules. Specifically, it includes the following modules only: - Structure @@ -1059,7 +1059,7 @@ That seems fine to me. - List - Image - Style Attribute - + Therefore XHTML-IM uses the following content models: Block.mix; Block-like elements, e.g., paragraphs diff --git a/xep-0072.xml b/xep-0072.xml index 43198ce7..2f6b1988 100644 --- a/xep-0072.xml +++ b/xep-0072.xml @@ -137,18 +137,18 @@

    In order to determine whether a potential responding entity supports the SOAP XMPP Binding, a requesting entity SHOULD send a &xep0030; information request to the potential responding entity:

    + type='get'> ]]>

    If the responding entity supports the SOAP XMPP Binding and the requesting entity is not blocked from communicating with the responding entity, the responding entity MUST include a feature of "http://jabber.org/protocol/soap" in its reply and SHOULD specify a service discovery identity of "automation/soap".

    + type='result'> @@ -169,18 +169,18 @@ - + to='responder@example.com/soap-server' + type='set'> + - uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d 2001-11-29T13:20:00.000-05:00 - @@ -208,7 +208,7 @@ none - + ]]>

    If the responding entity does not support the SOAP XMPP Binding, it SHOULD return a &unavailable; error:

    @@ -247,13 +247,13 @@ ]]>

    If the responding entity does not return an error, it MUST respond with an IQ of type "result":

    - + - uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d @@ -276,7 +276,7 @@ JFK LGA EWR - + @@ -286,12 +286,12 @@ - + to='responder@example.com/soap-server' + type='set'> + - uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d @@ -367,10 +367,10 @@ - + - uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d @@ -449,10 +449,10 @@ - + - uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d @@ -485,17 +485,17 @@ - + /aWKKapGGyQ= - uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d @@ -536,8 +536,8 @@ /aWKKapGGyQ= - uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d @@ -592,13 +592,13 @@

    The following is an example of a WSDL definition for an endpoint that supports the SOAP XMPP binding: a mythical service that translates Shakespearean English into selected modern languages and dialects.

    xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://shakespeare.lit/translation.wsdl'> - + @@ -626,7 +626,7 @@

    The SOAP XMPP Binding is identified by the following URI:

      -
    • http://jabber.org/protocol/soap
    • +
    • http://jabber.org/protocol/soap
    @@ -1078,7 +1078,7 @@
    ElementAttributes
    <a/>class, id, title; style; accesskey, charset, href, hreflang, rel, rev, tabindex, type
    <VersionMismatch/>
    -

    Note: When errors are due to the XMPP transport protocol alone and not to the application layer defined by SOAP, errors MUST be reported with standard XMPP error codes only instead of the XMPP &undefined; condition plus application-specific condition.

    +

    Note: When errors are due to the XMPP transport protocol alone and not to the application layer defined by SOAP, errors MUST be reported with standard XMPP error codes only instead of the XMPP &undefined; condition plus application-specific condition.

    @@ -1155,7 +1155,7 @@ -

    This section is non-normative.

    +

    This section is non-normative.

    An XMPP entity that supports the SOAP XMPP binding could function as a "SOAP intermediary" that hands a SOAP message off to some other deployment for subsequent processing (HTTP, email, a specialized enterprise messaging platform, etc.) rather than functioning as the "ultimate SOAP receiver" for the message (as these terms are defined in Section 1.5.3 of SOAP Version 1.2 Part 1). If the intended recipient functions as a SOAP intermediary, implementations should be aware that subsequent processing may alter the representation of SOAP messages.

    As an example, consider a component that functions as a gateway between XMPP-based and HTTP-based web services. Its purpose might be to mix HTTP and XMPP for web services and to invoke any web services already accessible through HTTP from XMPP clients.

    WS-Routing, whose aim is to dynamically compose SOAP message paths and processing sequences, can be used in order to reference web services outside of an XMPP network from within it. WS-Routing extends SOAP Envelope Headers with the <path/> element, which specifies the following for the message: the sender's URL (<from/>), the final destination's URL (<to/>), a forward (<forward/>) path with an arbitrary number of intermediaries (<via/>), and an optional return path (<reverse/>). Each intermediary MUST process the <path/> header and update it accordingly to the already performed path; moreover it MAY process the Body of the message.

    diff --git a/xep-0073.xml b/xep-0073.xml index 22c46ffe..83867556 100644 --- a/xep-0073.xml +++ b/xep-0073.xml @@ -110,7 +110,7 @@

    Note: This protocol suite is obsolete. For updated protocol suites, refer to &xep0211; and &xep0212;.

    -

    Given the large number of Jabber/XMPP protocols, +

    Given the large number of Jabber/XMPP protocols, The protocols developed by the Jabber community have matured considerably since 1999. The core protocols were originally created by a small group of developers who worked on early Jabber-related open-source software projects such as the &jabberd; server, the Winjab, Gabber, and Jarl clients, the Net::Jabber and Jabberbeans libraries, and gateways to consumer IM services. In the summer of 2001, the &XSF; was founded to institute a formal standards process within the growing Jabber community (codified in &xep0001;). In late 2002, the &IETF; formed the &XMPPWG;, which formalized the core Jabber protocols under the name Extensible Messaging and Presence Protocol (XMPP). In early 2004, the IETF approved the main XMPP specifications as Proposed Standards within the Internet Standards Process defined by &rfc2026;, resulting in publication of &rfc3920; and &rfc3921;. In the meantime, the XSF has continued to develop additional protocols on top of XMPP in order to address functionality areas that are too application-specific for consideration within the IETF. it is not always clear to developers exactly which protocols they need to implement in order to interoperate over Jabber/XMPP networks. This document attempts to assist developers by defining a protocol suite for basic instant messaging and presence.

    @@ -168,9 +168,9 @@

    RFC 3920 requires support for SASL and TLS as must-implement protocols, and that support is not modified herein. The older authentication method specified in XEP-0078: Non-SASL Authentication is now deprecated; however, support for it is still recommended in server implementations for the sake of backward compatibility (see XEP-0078 regarding the proper order of precedence between SASL authentication and non-SASL authentication).

    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    -

    This document requires no interaction with the ®ISTRAR;.

    +

    This document requires no interaction with the ®ISTRAR;.

    diff --git a/xep-0074.xml b/xep-0074.xml index 4545c4e2..0aa8ca82 100644 --- a/xep-0074.xml +++ b/xep-0074.xml @@ -48,7 +48,7 @@ actor="juliet@capulet.com/church" oper="uri://capulet.com/inventory#obtain" target="poison"/> - + ]]>

    Here we have the inventory.capulet.com component querying the security component as to whether juliet@ may obtain the requested poison.

    @@ -63,7 +63,7 @@ target="poison"> - + ]]>

    Unfortunately, the response is in the affirmative and the romantic tragedy follows.

    @@ -87,7 +87,7 @@ target="poison"> - + ]]>
    @@ -101,7 +101,7 @@ target="poison"> - + ]]> @@ -114,7 +114,7 @@ oper="uri://capulet.com/inventory#obtain" target="poison"/> No information available - + ]]>
    @@ -126,7 +126,7 @@ from="inventory.capulet.com" type="get" id="1234"> - + ]]>

    The to jid must then respond with a list of operations, if the jid supports SAC.

    @@ -140,7 +140,7 @@
    - + ]]>
    @@ -151,7 +151,7 @@

    To follow.

    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    As a result of this document, the ®ISTRAR; will need to register the 'http://jabber.org/protocol/sac' namespace.

    diff --git a/xep-0075.xml b/xep-0075.xml index 76b46b73..821493dd 100644 --- a/xep-0075.xml +++ b/xep-0075.xml @@ -430,7 +430,7 @@ used to describe the attribute in multiple languages (differentiated using the 'xml:lang' attribute). -

    The attribute definitions returned to a client should +

    The attribute definitions returned to a client should include only attributes the user is authorized to access.

    @@ -447,7 +447,7 @@
  • One or more strings of descriptive text, indicating the use and behavior of this method.
  • -

    The method definitions returned to a client should +

    The method definitions returned to a client should include only methods the user is authorized to access.

    @@ -674,7 +674,7 @@ id='joap_read_1' from='Station@trainset.example.com/Paddington' to='Client@example.com'> - + name Paddington Station @@ -726,7 +726,7 @@ id='joap_read_2' from='Train@trainset.example.com/38' to='Client@example.com'> - + location Station@trainset.example.com/Paddington @@ -742,7 +742,7 @@ BoxCar@trainset.example.com/212 Caboose@trainset.example.com/9 - + @@ -1620,7 +1620,7 @@ minOccurs='1' maxOccurs='1' /> - + @@ -1799,7 +1799,7 @@ PassengerCar: Car passengers: i4 - + Building: name: string size: struct (length: i4, width: i4) @@ -1808,12 +1808,12 @@ previous: TrackSegment next: TrackSegment - Switch: + Switch: in: TrackSegment out: TrackSegment[] boolean switchTo(TrackSegment) - Station: TrackSegment, Building + Station: TrackSegment, Building ]]>
    diff --git a/xep-0076.xml b/xep-0076.xml index 0f29979b..96553590 100644 --- a/xep-0076.xml +++ b/xep-0076.xml @@ -43,9 +43,9 @@ -

    If an evil entity sends an evil message, it MUST include an appropriately namespaced extension in the message stanza:

    +

    If an evil entity sends an evil message, it MUST include an appropriately namespaced extension in the message stanza:

    @@ -57,7 +57,7 @@ ]]>
    -

    If an evil entity sends evil presence information, it MUST include an appropriately namespaced extension in the presence stanza:

    +

    If an evil entity sends evil presence information, it MUST include an appropriately namespaced extension in the presence stanza:

    dnd @@ -67,7 +67,7 @@ ]]>
    -

    If an evil entity provides evil information in an IQ exchange, it MUST include an appropriately namespaced extension in the IQ stanza:

    +

    If an evil entity provides evil information in an IQ exchange, it MUST include an appropriately namespaced extension in the IQ stanza:

    Because the 'http://jabber.org/protocol/evil' namespace flags an XML stanza as malicious, it is critically important that an entity appropriately process an XML stanza that contains the evil extension. Mission-critical applications SHOULD ignore any stanzas tagged with the evil extension. Evil servers MAY pass through evil stanzas unmodified. Really evil servers MAY silently delete the evil extension. Entities that are evil to the core SHOULD support channel-level evil as defined in RFC 3514, since this document defines per-stanza evil only.

    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    The ®ISTRAR; shall register the 'http://jabber.org/protocol/evil' namespace as a result of this document.

    diff --git a/xep-0077.xml b/xep-0077.xml index 79490689..f64940c9 100644 --- a/xep-0077.xml +++ b/xep-0077.xml @@ -839,10 +839,10 @@ xmpp:marlowe.shakespeare.lit?unregister xmlns='jabber:iq:register' elementFormDefault='qualified'> - - diff --git a/xep-0078.xml b/xep-0078.xml index 371b1399..cb7500b1 100644 --- a/xep-0078.xml +++ b/xep-0078.xml @@ -309,11 +309,11 @@ NOTE WELL: Non-SASL Authentication via the jabber:iq:auth - protocol has been superseded by SASL Authentication as + protocol has been superseded by SASL Authentication as defined in RFC 3920 and RFC 6120, and is now obsolete. - For historical purposes, the protocol documented by this - schema is defined in XEP-0078: + For historical purposes, the protocol documented by this + schema is defined in XEP-0078: http://www.xmpp.org/extensions/xep-0078.html @@ -348,11 +348,11 @@ NOTE WELL: Non-SASL Authentication via the jabber:iq:auth - protocol has been superseded by SASL Authentication as + protocol has been superseded by SASL Authentication as defined in RFC 3920 and RFC 6120, and is now obsolete. - For historical purposes, the protocol documented by this - schema is defined in XEP-0078: + For historical purposes, the protocol documented by this + schema is defined in XEP-0078: http://www.xmpp.org/extensions/xep-0078.html diff --git a/xep-0079.xml b/xep-0079.xml index 2348afec..c16b2547 100644 --- a/xep-0079.xml +++ b/xep-0079.xml @@ -1070,7 +1070,7 @@ is "forward" and the message can be forwarded to another XMPP address, (3) the value is "gateway" and the message can be sent to a non-XMPP address via a gateway, (4) the value is "none" and - the message cannot be delivered at all, or (5) the value is + the message cannot be delivered at all, or (5) the value is "stored" and the message can be stored for later delivery. XEP-0079 @@ -1177,7 +1177,7 @@ targetNamespace='http://jabber.org/protocol/amp' xmlns='http://jabber.org/protocol/amp' elementFormDefault='qualified'> - + The protocol documented by this schema is defined in @@ -1196,7 +1196,7 @@ - + @@ -1241,7 +1241,7 @@ targetNamespace='http://jabber.org/protocol/amp#errors' xmlns='http://jabber.org/protocol/amp#errors' elementFormDefault='qualified'> - + The protocol documented by this schema is defined in diff --git a/xep-0080.xml b/xep-0080.xml index 08632cfc..bace23da 100644 --- a/xep-0080.xml +++ b/xep-0080.xml @@ -156,7 +156,7 @@
  • It shall be possible to encapsulate location in terms of Global Positioning System (GPS) coordinates as well as civil location (city, street, building, etc.).
  • The GPS encoding mechanism shall have a single set of units, so that receivers do not need to use heuristics to determine an entity's position.
  • It shall be possible to specify the known amount of error in the GPS coordinates.
  • -
  • It shall be possible to include a natural-language description of the location.
  • +
  • It shall be possible to include a natural-language description of the location.
  • @@ -337,7 +337,7 @@ ]]> @@ -356,7 +356,7 @@ ]]>

    In order to indicate that the user is no longer publishing any location information, the user's client shall send an empty <geoloc/> element, which can be considered a "stop command" for geolocation:

    @@ -369,7 +369,7 @@ ]]> @@ -436,8 +436,8 @@ <Street/> The IMPS specification also enables one to define an intersection (e.g., "Broadway and 34th Street") as the combination of a <Crossing1/> element (e.g., "Broadway") and a <Crossing2/> element (e.g., "34th Street"). To map from IMPS to XMPP, an application SHOULD map such a combination to one XMPP <street/> element. - <A6/> - The PIDF-LO format provides information elements for much more granular control over a traditional street address; in PIDF-LO the <A6/> element is the street name only, and further information is provided in distinct elements for a leading street direction (e.g., "N"), trailing street suffix (e.g., "SW"), street suffix (e.g., "Avenue"), house number (e.g., "909"), and house number suffix (e.g., "1/2"). To map from PIDF-LO to XMPP, an application SHOULD construct the complete street address from the PIDF-LO elements (<A6/>, <PRD/>, <POD/>, <STS/>, <HNO/>, and <HNS/>) and map the result to one XMPP <street/> element. + <A6/> + The PIDF-LO format provides information elements for much more granular control over a traditional street address; in PIDF-LO the <A6/> element is the street name only, and further information is provided in distinct elements for a leading street direction (e.g., "N"), trailing street suffix (e.g., "SW"), street suffix (e.g., "Avenue"), house number (e.g., "909"), and house number suffix (e.g., "1/2"). To map from PIDF-LO to XMPP, an application SHOULD construct the complete street address from the PIDF-LO elements (<A6/>, <PRD/>, <POD/>, <STS/>, <HNO/>, and <HNS/>) and map the result to one XMPP <street/> element. <STREET/> @@ -512,9 +512,9 @@ - diff --git a/xep-0081.xml b/xep-0081.xml index 501e9507..ad01ac3a 100644 --- a/xep-0081.xml +++ b/xep-0081.xml @@ -59,7 +59,7 @@

    The value of a URI scheme (see &rfc3986;) for Jabber/XMPP communications has long been recognized within the Jabber community, and such a scheme has been formally defined in &rfc5122; as a way of identifying entities that adhere to &xmppcore; or its antecedents. Unfortunately, URI schemes are slow to be accepted on the Internet, such that it might be years (if ever) before widely deployed software such as web browsers will support addresses of the form <xmpp:user@domain>.

    -

    Thankfully, it is not necessary for the large existing base of deployed software to support the xmpp: URI scheme in order to integrate Jabber/XMPP support. A well-accepted alternative approach +

    Thankfully, it is not necessary for the large existing base of deployed software to support the xmpp: URI scheme in order to integrate Jabber/XMPP support. A well-accepted alternative approach See, for instance, <http://www.mozilla.org/docs/web-developer/mimetypes.html> for information about MIME support in the Mozilla family of web browsers. is to define a MIME type (in accordance with &rfc2045;) and then reconfigure the relevant server and client software to correctly handle the new MIME type.

    Therefore, this document defines a MIME type of "application/jabber+xml" (in particular, an XML media type in accordance with &rfc3023;). Files of this MIME type would commonly be accessed with a web browser via HTTP, although other access methods are possible (e.g., attachment of the MIME type to an email message). On opening a file of this type, a browser would (by configuration) invoke an appropriate "helper" application (i.e., an external Jabber client, plugin, or internal module) that would enable the user to interact with a Jabber/XMPP server. If the user is not currently connected to a server, the invoked program would be responsible for connecting the user with appropriate prompting for authentication credentials. The file passed to the helper application would define parameters needed to complete a certain use case, such as sending a message to another user.

    @@ -76,10 +76,10 @@
    • Join a groupchat room.
    • Register with a service.
    • -

    These use cases are defined below.

    @@ -203,19 +203,19 @@ Optional parameters: (charset) Same as charset parameter of Encoding considerations: Same as encoding considerations of application/xml as specified in RFC 3023; per Section 11.5 of RFC 3920, the encoding must be UTF-8. -Security considerations: All of the security considerations - specified in RFC 3023 and RFC 3920 apply to this XML media +Security considerations: All of the security considerations + specified in RFC 3023 and RFC 3920 apply to this XML media type. Refer to Section 11 of XSF XEP-0081. Interoperability considerations: (none) Specification: XSF XEP-0081 Applications which use this media type: non-XMPP applications (e.g., web browsers or email clients) that wish to invoke - XMPP-compliant applications for instant messaging and + XMPP-compliant applications for instant messaging and presence functionality. -Additional information: This media type is not to be confused - with the "application/xmpp+xml" media type, which is for +Additional information: This media type is not to be confused + with the "application/xmpp+xml" media type, which is for use by native XMPP applications. -Person and email address to contact for further information: +Person and email address to contact for further information: XMPP Registrar, Intended usage: COMMON Author/Change controller: XSF, XMPP Registrar diff --git a/xep-0084.xml b/xep-0084.xml index a0f60950..9507baa5 100644 --- a/xep-0084.xml +++ b/xep-0084.xml @@ -263,9 +263,9 @@ ]]>

    The PEP service running at the user's server then SHOULD return the avatar data.

    diff --git a/xep-0085.xml b/xep-0085.xml index cf3e0ddb..3eaed012 100644 --- a/xep-0085.xml +++ b/xep-0085.xml @@ -314,7 +314,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED

    In the following conversation, both User <bernardo@shakespeare.lit> and Contact <francisco@shakespeare.lit> support chat state notifications.

    @@ -323,7 +323,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]> @@ -333,7 +333,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    Because the User now knows that the Contact supports chat state notifications, the User can send other notification types.

    @@ -341,7 +341,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]> @@ -352,9 +352,9 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED

    And so forth.

    -

    The following conversation flow illustrates in more detail the workings of chat state notifications (in this case also using threads) between a User <romeo@shakespeare.lit> and a Contact <juliet@capulet.com>.

    +

    The following conversation flow illustrates in more detail the workings of chat state notifications (in this case also using threads) between a User <romeo@shakespeare.lit> and a Contact <juliet@capulet.com>.

    @@ -369,7 +369,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    At this point Juliet's client knows that Romeo's client supports chat state notifications. Thus she replies to the content message and her client includes a notification that her state is <active/>:

    @@ -383,7 +383,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    And so the conversation continues. After a while, Juliet asks a question that brings Romeo up short:

    @@ -393,8 +393,8 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    Romeo begins composing a reply to Juliet's heartfelt question, and his client notifies Juliet that he is composing a reply.

    act2scene2chat1 @@ -403,8 +403,8 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    Romeo realizes his reply is too rash and pauses to choose the right words; after some (configurable) time period, his client senses the delay and sends a state of <paused/>.

    act2scene2chat1 @@ -413,8 +413,8 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    Romeo starts composing again, and his Jabber client sends a <composing/> notification to Juliet's client.

    act2scene2chat1 @@ -423,8 +423,8 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    Romeo finally sends his reply.

    act2scene2chat1 @@ -434,7 +434,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    The conversation ebbs and flows, waxes and wanes, until Juliet is called away by her Nurse...

    @@ -449,7 +449,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    We suppose that Juliet minimizes the chat window, so her client generates an <inactive/> notification:

    @@ -459,7 +459,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    When she returns and brings the window up again, her client generates an <active/> notification:

    @@ -469,7 +469,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    The conversation continues, but Juliet is called away again by that nagging Nurse:

    @@ -482,7 +482,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    We suppose that Juliet closes the chat window, so her client generates a <gone/> notification:

    @@ -492,7 +492,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    Romeo's client now considers the chat thread to be over and generates a new Thread ID when he sends a new message:

    @@ -507,7 +507,7 @@ INACTIVE <--> ACTIVE <--> COMPOSING <--> PAUSED ]]>

    When Juliet returns to her computer on the balcony, she finds the new message from Romeo. When she finishes her reply, her client includes both an <active/> notification and the new Thread ID with the body of her reply:

    diff --git a/xep-0086.xml b/xep-0086.xml index 8acbf86d..b7a03b71 100644 --- a/xep-0086.xml +++ b/xep-0086.xml @@ -83,7 +83,7 @@

    XMPP-compliant entities can issue errors to legacy clients and servers by adding a "code" attribute to the <error/> element it sends.

    diff --git a/xep-0087.xml b/xep-0087.xml index 3243f4b7..c49d5740 100644 --- a/xep-0087.xml +++ b/xep-0087.xml @@ -84,7 +84,7 @@ Receiver rejects the stream initiation, EUC - +
    @@ -95,9 +95,9 @@

    @@ -132,8 +132,8 @@ - @@ -155,8 +155,8 @@ - @@ -181,8 +181,8 @@ === + |X| socket opened --> === |-| | | | new message out --> +-+ |-| <-- empty body response |X| @@ -291,7 +291,7 @@ first socket second socket | +-+ | | | empty body request --> +-+ - | |X| + | |X| | |-| | | | | | | diff --git a/xep-0127.xml b/xep-0127.xml index fd55bae9..810f2b82 100644 --- a/xep-0127.xml +++ b/xep-0127.xml @@ -63,7 +63,7 @@

    In the case of direct messages, the message stanza SHOULD have no 'type' attribute, but MAY have any defined type that is appropriate to the communications context (e.g., "groupchat" in a text conference). The <alert/> element SHOULD be the only child element of the message stanza, but other elements MAY be included as necessary (e.g., a <body/> child in the 'jabber:client' namespace providing a natural-language description of the alert). The 'id' attribute of the &MESSAGE; stanza MAY be set to the value of the CAP <identifier/> element.

    The following example shows Example A.2 from the CAP specification sent as a direct message.

    @@ -82,10 +82,10 @@ NATIONAL WEATHER SERVICE SACRAMENTO SEVERE THUNDERSTORM WARNING - AT 254 PM PDT... NATIONAL WEATHER SERVICE DOPPLER RADAR - INDICATED A SEVERE THUNDERSTORM OVER SOUTH CENTRAL ALPINE - COUNTY... OR ABOUT 18 MILES SOUTHEAST OF KIRKWOOD... - MOVING SOUTHWEST AT 5 MPH. HAIL... INTENSE RAIN AND STRONG + AT 254 PM PDT... NATIONAL WEATHER SERVICE DOPPLER RADAR + INDICATED A SEVERE THUNDERSTORM OVER SOUTH CENTRAL ALPINE + COUNTY... OR ABOUT 18 MILES SOUTHEAST OF KIRKWOOD... + MOVING SOUTHWEST AT 5 MPH. HAIL... INTENSE RAIN AND STRONG DAMAGING WINDS ARE LIKELY WITH THIS STORM @@ -94,12 +94,12 @@ BARUFFALDI/JUSKIE - EXTREME NORTH CENTRAL TUOLUMNE COUNTY IN CALIFORNIA, + EXTREME NORTH CENTRAL TUOLUMNE COUNTY IN CALIFORNIA, EXTREME NORTHEASTERN CALAVERAS COUNTY IN CALIFORNIA, SOUTHWESTERN ALPINE COUNTY IN CALIFORNIA - 38.47,-120.14 38.34,-119.95 38.52,-119.74 + 38.47,-120.14 38.34,-119.95 38.52,-119.74 38.62,-119.89 38.47,-120.14 fips6=006109 @@ -138,10 +138,10 @@ NATIONAL WEATHER SERVICE SACRAMENTO SEVERE THUNDERSTORM WARNING - AT 254 PM PDT... NATIONAL WEATHER SERVICE DOPPLER RADAR - INDICATED A SEVERE THUNDERSTORM OVER SOUTH CENTRAL ALPINE - COUNTY... OR ABOUT 18 MILES SOUTHEAST OF KIRKWOOD... - MOVING SOUTHWEST AT 5 MPH. HAIL... INTENSE RAIN AND STRONG + AT 254 PM PDT... NATIONAL WEATHER SERVICE DOPPLER RADAR + INDICATED A SEVERE THUNDERSTORM OVER SOUTH CENTRAL ALPINE + COUNTY... OR ABOUT 18 MILES SOUTHEAST OF KIRKWOOD... + MOVING SOUTHWEST AT 5 MPH. HAIL... INTENSE RAIN AND STRONG DAMAGING WINDS ARE LIKELY WITH THIS STORM @@ -150,12 +150,12 @@ BARUFFALDI/JUSKIE - EXTREME NORTH CENTRAL TUOLUMNE COUNTY IN CALIFORNIA, + EXTREME NORTH CENTRAL TUOLUMNE COUNTY IN CALIFORNIA, EXTREME NORTHEASTERN CALAVERAS COUNTY IN CALIFORNIA, SOUTHWESTERN ALPINE COUNTY IN CALIFORNIA - 38.47,-120.14 38.34,-119.95 38.52,-119.74 + 38.47,-120.14 38.34,-119.95 38.52,-119.74 38.62,-119.89 38.47,-120.14 fips6=006109 @@ -191,10 +191,10 @@ NATIONAL WEATHER SERVICE SACRAMENTO SEVERE THUNDERSTORM WARNING - AT 254 PM PDT... NATIONAL WEATHER SERVICE DOPPLER RADAR - INDICATED A SEVERE THUNDERSTORM OVER SOUTH CENTRAL ALPINE - COUNTY... OR ABOUT 18 MILES SOUTHEAST OF KIRKWOOD... - MOVING SOUTHWEST AT 5 MPH. HAIL... INTENSE RAIN AND STRONG + AT 254 PM PDT... NATIONAL WEATHER SERVICE DOPPLER RADAR + INDICATED A SEVERE THUNDERSTORM OVER SOUTH CENTRAL ALPINE + COUNTY... OR ABOUT 18 MILES SOUTHEAST OF KIRKWOOD... + MOVING SOUTHWEST AT 5 MPH. HAIL... INTENSE RAIN AND STRONG DAMAGING WINDS ARE LIKELY WITH THIS STORM @@ -203,12 +203,12 @@ BARUFFALDI/JUSKIE - EXTREME NORTH CENTRAL TUOLUMNE COUNTY IN CALIFORNIA, + EXTREME NORTH CENTRAL TUOLUMNE COUNTY IN CALIFORNIA, EXTREME NORTHEASTERN CALAVERAS COUNTY IN CALIFORNIA, SOUTHWESTERN ALPINE COUNTY IN CALIFORNIA - 38.47,-120.14 38.34,-119.95 38.52,-119.74 + 38.47,-120.14 38.34,-119.95 38.52,-119.74 38.62,-119.89 38.47,-120.14 fips6=006109 diff --git a/xep-0129.xml b/xep-0129.xml index 62287a22..4021a7f6 100644 --- a/xep-0129.xml +++ b/xep-0129.xml @@ -137,18 +137,18 @@ Host: files.shakespeare.lit Authorization: Digest username="juliet@capulet.com", realm="xmpp", - nonce="ec2cc00f21f71acd35ab9be057970609", + nonce="ec2cc00f21f71acd35ab9be057970609", uri="missive.html", qop=auth, nc=00000001, cnonce="0a4f113b", response="6629fae49393a05397450978507c4ef1", - opaque="5ccc069c403ebaf9f0171e9517f40e41" + opaque="5ccc069c403ebaf9f0171e9517f40e41" ]]>

    The server then checks to ensure that the provided JID was specified via the jidlist property. If not, the server MUST return an HTTP 403 (Forbidden) error; if so, the server attempts to authorize the user via &xep0070;:

    e0ffe42b28561960c6b12b944a092794b9683a38
  • IM User completes IM User Removes Contact from WaitingList use case. -
      -
    1. ServiceProvider's WaitingListService removes item from WaitingList.
    2. -
    3. Use Case Ends unsuccessfully.
    4. -
    +
      +
    1. ServiceProvider's WaitingListService removes item from WaitingList.
    2. +
    3. Use Case Ends unsuccessfully.
    4. +
  • All Users Remove Contact from Their WaitingLists -
      -
    1. ServiceProvider's WaitingListService removes item from WaitingList at InteropPartner's WaitingListService.
    2. +
        +
      1. ServiceProvider's WaitingListService removes item from WaitingList at InteropPartner's WaitingListService.
      2. Use Case Ends unsuccessfully.
      3. -
      +
  • @@ -604,7 +604,7 @@

    If none of the "modify" errors was generated and WaitingListService does not know Contact JID when the IQ result is returned to the user, it needs to contact InteropPartners in order to determine if the Contact is associated with one of the InteropPartners. Thus before it returns the Contact JID to the IM User, it needs to wait for the one of the InteropPartners to return Contact JID or for all of the InteropPartners to return errors.

    If all of the InteropPartners return an error of type "cancel" (typically ¬found; and/or ¬authorized;) to WaitingListService, WaitingListService MUST return an ¬found; error (or local equivalent) to the IM User (and IM User SHOULD complete IM User Removes Contact from WaitingList use case).

    Sorry, we cannot find this contact. - contact-number contact-name - @@ -815,7 +815,7 @@ ]]>

    If ServiceProvider's WaitingListService receives ¬authorized; and/or ¬found; errors from all InteropPartners, it returns a ¬found; error to IM User:

    The Distribute header enables a sender to specify whether the stanza may be further distributed by the recipient to other entities on the network. The allowable values for this header are "true" and "false". If the sender specifies a value of "false", the recipient MUST NOT further distribute the stanza or any information contained therein; if the sender specifies a value of "true", the recipient MAY further distribute the stanza or any information contained therein; if the value is anything other than "true" or "false" and the recipient does not understand the value, the recipient MUST assume the default value of "false". This header is semantically equivalent to the "Distribute" flag defined in &geoprivpol;. (The HTTP "Max-Forwards" header is not appropriate for this usage, since it defines proxy and gateway behavior rather than recipient behavior.) Note: This header may be security-sensitive (see the Security Considerations for details).

    -

    The Store header enables a sender to specify whether the stanza may be stored or archived by the recipient. The allowable values for this header are "true" and "false". If the sender specifies a value of "false", the recipient MUST NOT store the stanza or any information contained therein; if the sender specifies a value of "true", the recipient MAY store the stanza or any information contained therein; if the value is anything other than "true" or "false" and the recipient does not understand the value, the recipient MUST assume the default value of "false". Note: This header may be security-sensitive (see the Security Considerations for details).

    +

    The Store header enables a sender to specify whether the stanza may be stored or archived by the recipient. The allowable values for this header are "true" and "false". If the sender specifies a value of "false", the recipient MUST NOT store the stanza or any information contained therein; if the sender specifies a value of "true", the recipient MAY store the stanza or any information contained therein; if the value is anything other than "true" or "false" and the recipient does not understand the value, the recipient MUST assume the default value of "false". Note: This header may be security-sensitive (see the Security Considerations for details).

    It may be useful to specify that the information contained in a stanza is valid only for a limited period of time. Such is the function of the "TTL" header, the value of which is some number of seconds since the creation of the stanza. Note well that this header is purely informational and MUST NOT be used for routing or delivery of XML stanzas, since that function is already served by &xep0079;. A stanza that includes the "TTL" header SHOULD also include a "Created" header so that the recipient can properly process the stanza.

    @@ -225,7 +225,7 @@

    It can be useful to specify that the information contained in a stanza is more or less time-sensitive (e.g., in order to help the recipient determine whether to attend to the information immediately or to delay attending to the information). Such is the function of the "Urgency" header, the value of which is "high", "medium", or "low". One use of the header is Sieve notifications (see &sievenotify;) sent via XMPP, as specified in &sievenotifyxmpp;.

    diff --git a/xep-0132.xml b/xep-0132.xml index e4462071..54af4e7b 100644 --- a/xep-0132.xml +++ b/xep-0132.xml @@ -43,7 +43,7 @@

    As defined in XMPP IM, presence stanzas of type "probe" are handled on behalf of the target entity by the entity's server. While normally these presence stanzas are generated by the requesting entity's server (e.g., when the requesting entity sends initial presence), the requesting entity itself (or, more precisely, its client) is allowed to generate presence stanzas of type "probe". In this document we make use of this ability to query the target entity's server regarding the entity's physical presence.

    In the following example, a star-crossed lover pokes the server of his beloved to determine her physical presence (notice that the value of 'to' address lacks a resource identifier and therefore is a bare JID, not a full JID).

    If the user's server does not support the POKE protocol, it SHOULD ignore the extension and treat the presence stanza as a normal (non-IRL) presence probe. However, the user's server MAY return a "Service Unavailable" error to the requesting entity to inform the requesting entity that IRL probes are not supported (for details regarding error syntax, refer to &xep0086;):

    - ]]>

    If the user's server supports the POKE protocol, it MUST first perform appropriate access checks to determine if the requesting entity has permission to view the user's presence (e.g., by checking presence subscriptions and privacy lists). If the user's server determines that the requesting entity is not allowed to learn the user's physical presence information, it MUST return a "Forbidden" error:

    - @@ -87,7 +87,7 @@

    If the server determines that the user is physically present in the vicinity of a client, it SHOULD return that information to the requesting entity, including the appropriate resource:

    @@ -96,21 +96,21 @@ ]]>

    The server SHOULD NOT wait an inordinate amount of time before returning the presence information (e.g., usually not more than two minutes), but the timeout period SHOULD be configurable. If the request times out, the server SHOULD return a "Request Timeout" error to the requesting entity:

    - ]]>

    The server SHOULD NOT return a "Not Found" error unless the user does not exist. If the server determines that the user has died, it MAY return a "Gone" error with appropriate descriptive text, although it SHOULD wait to do so pending notification of next-of-kin; note well that such notification is out of scope for this document (though this seems like a sensible application of the &xep0060; protocol):

    - Please accept our condolences: the user you are + Please accept our condolences: the user you are trying to reach has died. @@ -146,7 +146,7 @@ id='poke1'> - @@ -223,8 +223,8 @@ - diff --git a/xep-0133.xml b/xep-0133.xml index 33d30781..4e271c26 100644 --- a/xep-0133.xml +++ b/xep-0133.xml @@ -142,7 +142,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -154,7 +154,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -194,7 +194,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -229,7 +229,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -246,7 +246,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -258,7 +258,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -284,7 +284,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -304,7 +304,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -320,7 +320,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -332,7 +332,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -358,7 +358,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -378,7 +378,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -394,7 +394,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -406,7 +406,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -432,7 +432,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -452,7 +452,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -460,7 +460,7 @@ ]]>
    -

    An administrator may need to terminate one or all of the user's current sessions, but allow future logins (this can be thought of as "kicking" rather than "banning" the user). The command node for this use case SHOULD be "http://jabber.org/protocol/admin#end-user-session".

    +

    An administrator may need to terminate one or all of the user's current sessions, but allow future logins (this can be thought of as "kicking" rather than "banning" the user). The command node for this use case SHOULD be "http://jabber.org/protocol/admin#end-user-session".

    A sample protocol flow for this use case is shown below.

    - @@ -480,7 +480,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -506,7 +506,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -526,7 +526,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -542,7 +542,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -554,7 +554,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -580,7 +580,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -601,7 +601,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -629,7 +629,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -641,7 +641,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -672,7 +672,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -695,7 +695,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -711,7 +711,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -723,7 +723,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -749,7 +749,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -770,7 +770,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -813,7 +813,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -825,7 +825,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -851,7 +851,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -872,7 +872,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -900,7 +900,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -912,7 +912,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -937,7 +937,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -957,7 +957,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -996,7 +996,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1008,7 +1008,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1035,7 +1035,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1057,7 +1057,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1074,7 +1074,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1086,7 +1086,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1116,7 +1116,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1139,7 +1139,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1155,7 +1155,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1167,7 +1167,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1193,7 +1193,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1205,7 +1205,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1231,7 +1231,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1243,7 +1243,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1269,7 +1269,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1281,7 +1281,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1307,7 +1307,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1319,7 +1319,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1345,7 +1345,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1361,7 +1361,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1395,7 +1395,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1415,7 +1415,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1463,7 +1463,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1479,7 +1479,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1513,7 +1513,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1533,7 +1533,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1562,7 +1562,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1578,7 +1578,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1612,7 +1612,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1632,7 +1632,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1671,7 +1671,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1687,7 +1687,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1721,7 +1721,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1741,7 +1741,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1773,7 +1773,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1789,7 +1789,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1823,7 +1823,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1843,7 +1843,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1877,7 +1877,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1889,7 +1889,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1917,7 +1917,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1939,7 +1939,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1947,7 +1947,7 @@ ]]>
    -

    Administrators of some existing Jabber servers have found it useful to be able to send a "message of the day" that is delivered to any user who logs in to the server that day (e.g., to announce service changes); +

    Administrators of some existing Jabber servers have found it useful to be able to send a "message of the day" that is delivered to any user who logs in to the server that day (e.g., to announce service changes); Typically, a "message of the day" is an announcement that is sent once to all users of a server or a service until and unless the message is deleted; it can be thought of as a "standing announcement" as opposed to the "one-time announcement" sent to all online users in the previous use cases. The announcement is sent immediately to users who are online when the message is set, or after the next session initiation for other users (e.g., on server login or chatroom join). this concept can be extended to any service (such as a multi-user chat service or a gateway to a foreign IM service). The command node for this use case SHOULD be "http://jabber.org/protocol/admin#set-motd".

    A sample protocol flow for this use case is shown below.

    @@ -1957,7 +1957,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -1969,7 +1969,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -1996,7 +1996,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2020,7 +2020,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2036,7 +2036,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2048,7 +2048,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2080,7 +2080,7 @@ to='shakespeare.lit' type='edit' xml:lang='en'> - @@ -2104,7 +2104,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2120,7 +2120,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2132,7 +2132,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2148,7 +2148,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2160,7 +2160,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2190,7 +2190,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2213,7 +2213,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2229,7 +2229,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2241,7 +2241,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2257,7 +2257,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2269,7 +2269,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2298,7 +2298,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2319,7 +2319,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2335,7 +2335,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2347,7 +2347,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2381,7 +2381,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2405,7 +2405,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2421,7 +2421,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2433,7 +2433,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2467,7 +2467,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -2491,7 +2491,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -2527,7 +2527,7 @@ The ad-hoc commands protocol is not supported. -

    For the syntax of these errors, see &xep0086;. Naturally, other errors may be returned as well (e.g., &internalserver; if the service cannot be shut down).

    +

    For the syntax of these errors, see &xep0086;. Naturally, other errors may be returned as well (e.g., &internalserver; if the service cannot be shut down).

    The ability to complete the administrative tasks specified herein MUST NOT be granted to users who lack service-level administrative privileges.

    diff --git a/xep-0134.xml b/xep-0134.xml index 00bbd656..cbe6a0f4 100644 --- a/xep-0134.xml +++ b/xep-0134.xml @@ -96,7 +96,7 @@

    Background

    The core strength of Jabber technologies is the streaming of relatively small XML fragments between presence-aware network endpoints. As is usually the case, our greatest strength is also our greatest weakness. Thus XMPP is not optimized for binary data, large XML files, multimedia streaming, or other such applications.

    Meaning

    -

    It's not a bad thing that we don't solve the problems of exchanging binary data, streaming multimedia, or transferring large XML files, because other protocols and technologies have addressed those domains. But it's important to recognize what we do well and what we don't. For example, sending base64-encoded binary data, streaming voice or video, or consistently large stanzas in the Jabber band +

    It's not a bad thing that we don't solve the problems of exchanging binary data, streaming multimedia, or transferring large XML files, because other protocols and technologies have addressed those domains. But it's important to recognize what we do well and what we don't. For example, sending base64-encoded binary data, streaming voice or video, or consistently large stanzas in the Jabber band There are no hard-and-fast rules regarding a reasonable upper limit on the average XML stanza. (Note the use of both 'reasonable' and 'average' in that sentence.) In reality, there is a continuum of stanza sizes, and different sizes may be appropriate for different types of XMPP applications and deployments. While sending 2 gigabyte or 2 megabyte stanzas is wrong in the current context of Jabber technologies, we cannot legitimately say that a 2 kilobyte, 20 kilobyte, or even 200 kilobyte stanza is unreasonable. Is the stanza sent over an open network with current server implementations, or over a closed network with specially tuned servers and clients? Does the application generate one such stanza every second, every minute, every hour? Considerations of this kind help us determine if the use of XMPP is "reasonable" in some sense. However, when protocol extensions are defined in XMPP Extension Protocols, the XMPP Council will require clear explanation of design choices and reasonable stanza size limits if the extension will generally require what might be considered larger than normal stanzas. is probably not a good idea, and applications that would depend on such behavior are better designed to communicate their data out of band.

    Examples

    diff --git a/xep-0135.xml b/xep-0135.xml index e5bb6797..61a14bcc 100644 --- a/xep-0135.xml +++ b/xep-0135.xml @@ -31,7 +31,7 @@

    Existing Jabber protocols provide a strong foundation for the controlled, permissions-based sharing of files between Jabber entities, e.g., to enable shared workspaces among ad-hoc workgroups and the attachment of files to &xep0045; rooms.

    -

    This document defines several additional building blocks (a simple request protocol along with well-known service discovery nodes) that tie together existing protocols to enable the sharing of files between Jabber entities.

    +

    This document defines several additional building blocks (a simple request protocol along with well-known service discovery nodes) that tie together existing protocols to enable the sharing of files between Jabber entities.

      @@ -83,7 +83,7 @@ id='disco2'> ... - ... @@ -127,7 +127,7 @@ id='disco4'> ... - ... @@ -142,7 +142,7 @@ @@ -151,7 +151,7 @@

      If the requesting entity is not allowed to view the offering entity's files (the requesting entity is not an occupant of a chatroom, is not registered with the offering entity, is not a contact in a user's roster, etc.) or the offering entity has no files to share, the offering entity SHOULD return an empty &QUERY; element:

      If the requesting entity is allowed to view the offering entity's files and the offering entity has files to share, the offering entity SHOULD return a list of items:

      - @@ -182,7 +182,7 @@ @@ -191,10 +191,10 @@

      If the item is a directory, the offering entity SHOULD return information about the directory, including an identity whose category is "filesys" and whose type is "directory":

      - @@ -204,7 +204,7 @@ @@ -213,10 +213,10 @@

      If the item is a file, the offering entity SHOULD return information about the file, including an identity whose category is "filesys" and whose type is "file":

      - @@ -227,7 +227,7 @@ @@ -236,10 +236,10 @@

      The offering entity will then return a list of files and directories contained within the queried directory:

      - @@ -253,7 +253,7 @@ @@ -261,10 +261,10 @@ ]]> - @@ -273,7 +273,7 @@ @@ -281,10 +281,10 @@ ]]> - @@ -293,7 +293,7 @@ @@ -301,10 +301,10 @@ ]]> - @@ -323,10 +323,10 @@ ]]> - @@ -348,7 +348,7 @@ share @@ -356,10 +356,10 @@ share ]]> - @@ -397,7 +397,7 @@ share @@ -405,10 +405,10 @@ share ]]> - @@ -442,7 +442,7 @@ share @@ -455,11 +455,11 @@ share ]]> - @@ -537,7 +537,7 @@ share targetNamespace='http://jabber.org/protocol/files' xmlns='http://jabber.org/protocol/files' elementFormDefault='qualified'> - + diff --git a/xep-0136.xml b/xep-0136.xml index c569e68f..21659560 100644 --- a/xep-0136.xml +++ b/xep-0136.xml @@ -203,7 +203,7 @@

      In order to capture a complete set of preferences, when the server returns the user's preferences to the client the <pref/> element:

      • MUST include an <auto/> element that specifies whether automatic archiving is on or off.
      • -
      • MUST include a <default/> element that specifies the user's default settings for OTR Mode and Save Mode.
      • +
      • MUST include a <default/> element that specifies the user's default settings for OTR Mode and Save Mode.
      • MAY include one or more <item/> elements that specify preferences related to particular contacts.
      • MAY include one or more <session/> elements that specifies whether automatic archiving is on or off for a given chat session.
      • MUST include at least three <method/> elements, differentiated by the value of the 'type' attribute (i.e., at least one <method/> element each for "auto", "local", and "manual").
      • @@ -488,7 +488,7 @@ ]]> -

        The client can set one or more method preferences by sending an IQ-set containing a <pref/> element that in turn contains one or more <method/> elements.

        +

        The client can set one or more method preferences by sending an IQ-set containing a <pref/> element that in turn contains one or more <method/> elements.

        @@ -1176,7 +1176,7 @@ @@ -1186,7 +1186,7 @@ diff --git a/xep-0139.xml b/xep-0139.xml index d9a6ab2c..c1f0dc26 100644 --- a/xep-0139.xml +++ b/xep-0139.xml @@ -45,16 +45,16 @@

        Because security is a core value within the Jabber community, it is appropriate for the XMPP Standards Foundation to assess potential security threats related to technologies that implement the Jabber protocols (including XMPP and defined XMPP extensions), as well as ways to address the threats (for general information about the Internet threat model, see &rfc3552;). Furthermore, since security threats are wide-ranging and of broad concern, it would be valuable for interested members of the entire Jabber community to discuss these matters. Unfortunately, security discussions can often be theoretical, contentious, and inconclusive. Thus it is imperative that discussion proceed based on a methodical process of threat identification, risk analysis, and prioritization before moving on to documentation of threat responses (preferably in protocol specifications such as &xep0001;). This document proposes a forum and process for such security discussions in the form of a Special Interest Group (see &xep0002;) that shall report to the &COUNCIL; in accordance with Article VIII of the &BYLAWS;.

        -
        +

        The role of the Security SIG shall be to identify and describe security threats related to Jabber technologies, analyze their potential risk, assign priorities to each threat, provide references to existing responses, and (where appropriate) provisionally recommend improvements in Jabber protocols and technologies in order to address the identified threats. The Security SIG shall not itself develop or approve protocols, which tasks shall remain under the purview of the &SSIG; and the Jabber Council respectively.

        -
        +

        The Security SIG shall be open to the public and shall not be limited to elected members of the XMPP Standards Foundation. Security SIG discussions shall be conducted in open forums, including a dedicated mailing list at <security-jig@jabber.org>. The process for moderating such discussions shall be decided by the members of the Security SIG, but such moderation is strongly encouraged in order to follow the orderly process of threat identification and risk analysis outlined below.

        -
        +

        The Security SIG shall be a standing SIG, and shall exist as long as the Jabber Council deems it useful.

        -
        +

        The Security SIG shall produce at least the following deliverables:

          @@ -78,7 +78,7 @@
        1. Existing approaches for addressing the threat (e.g., as documented in a XEP)
        2. The gap between the identified threat and existing responses
        3. Potential approaches to addressing the threat or closing the gap, including implementation issues associated with each approach (since security measures that cannot or will not be implemented are useless)
        4. -
        5. Current recommended approach (which may be "do nothing at this time")
        6. +
        7. Current recommended approach (which may be "do nothing at this time")

        The template will not fully define the foregoing information, but instead specify what information must be defined for each threat when completing the analysis described in Step 3.

        diff --git a/xep-0140.xml b/xep-0140.xml index 50e092bb..67e40835 100644 --- a/xep-0140.xml +++ b/xep-0140.xml @@ -116,7 +116,7 @@ Marketing/Europe @@ -134,7 +134,7 @@ Marketing/Europe @@ -210,7 +210,7 @@

        An administrator may wish to define a hierarchy of shared groups (e.g., "Marketing/Europe" and "Marketing/North America"). This can be done using collection nodes as defined in Section 9 of XEP-0060. The receiving application MAY use &xep0083; to define the roster group names.

        -

        Presence is exchanged via the normal mechanisms defined in XMPP IM.

        +

        Presence is exchanged via the normal mechanisms defined in XMPP IM.

        In order to send a message to all members of a shared group, a group member's sending application (usually an end-user client) SHOULD either send multiple messages or use &xep0033;.

        diff --git a/xep-0141.xml b/xep-0141.xml index 84946e98..a8ed7ac4 100644 --- a/xep-0141.xml +++ b/xep-0141.xml @@ -68,7 +68,7 @@ XSF Application Please fill out this form - + @@ -81,14 +81,14 @@ - + - + @@ -105,8 +105,8 @@ This is page one of three. - Note: In accordance with the XSF privacy policy, your personal information will - never be shared outside the organization in any way for any purpose; however, + Note: In accordance with the XSF privacy policy, your personal information will + never be shared outside the organization in any way for any purpose; however, your name and JID may be published in the XSF membership directory. @@ -118,7 +118,7 @@ This is page two of three. - We use this page to gather information about any XEPs you've worked on, + We use this page to gather information about any XEPs you've worked on, as well as your mailing list activity. You do post to the mailing lists, don't you? @@ -129,7 +129,7 @@ This is page three of three. You're almost done! - This is where you describe your future plans and why you think you + This is where you describe your future plans and why you think you deserve to be a member of the XMPP Standards Foundation. @@ -170,8 +170,8 @@
        - Note: In accordance with the XSF privacy policy, your personal information will - never be shared outside the organization in any way for any purpose; however, + Note: In accordance with the XSF privacy policy, your personal information will + never be shared outside the organization in any way for any purpose; however, your name and JID may be published in the XSF membership directory. @@ -182,7 +182,7 @@
        - We use this page to gather information about any XEPs you've worked on, + We use this page to gather information about any XEPs you've worked on, as well as your mailing list activity. You do post to the mailing lists, don't you? @@ -192,7 +192,7 @@
        You're almost done! - This is where you describe your future plans and why you think you + This is where you describe your future plans and why you think you deserve to be a member of the XMPP Standards Foundation. @@ -228,12 +228,12 @@ ... - +
        - Note: In accordance with the XSF privacy policy, your personal information will - never be shared outside the organization in any way for any purpose; however, + Note: In accordance with the XSF privacy policy, your personal information will + never be shared outside the organization in any way for any purpose; however, your name and JID may be published in the XSF membership directory.
        @@ -250,7 +250,7 @@
        - We use this page to gather information about any XEPs you've worked on, + We use this page to gather information about any XEPs you've worked on, as well as your mailing list activity. You do post to the mailing lists, don't you? @@ -259,18 +259,18 @@
        - This is where you describe your future plans and why you think you + This is where you describe your future plans and why you think you deserve to be a member of the XMPP Standards Foundation.
        - + ... ]]> -

        Note: The preceding example partitions the fields into one page and three sections, with the first section being further partitioned into two sub-sections and one free-standing field reference.

        +

        Note: The preceding example partitions the fields into one page and three sections, with the first section being further partitioned into two sub-sections and one free-standing field reference.

        Data forms tables (the <reported/> and <item/> elements) can also be included in the layout, using the <reportedref/> element. This element MAY be included anywhere that the <fieldref/> element is allowed, but MUST NOT appear more than once.

        @@ -358,7 +358,7 @@ - + @@ -380,11 +380,11 @@ - + - + diff --git a/xep-0142.xml b/xep-0142.xml index d8f93645..f642723f 100644 --- a/xep-0142.xml +++ b/xep-0142.xml @@ -484,7 +484,7 @@ S: to='user@example.net/home'> S: S: S: -S: You have been invited to chat with a support@workgroup.example.com +S: You have been invited to chat with a support@workgroup.example.com agent. S: S: @@ -700,14 +700,14 @@ Agent Service

        The workgroup service pushes presence updates to the agent as the presence of other agents changes. This will only occur after an agent has requested to receive other agents' information. The server will continue to send presence updates until the agent sends an unavailable presence to the server. This protocol is similar to the standard XMPP roster workflow.

        To receive presence updates for other agents in the workgroup, the agent sends an agent info request to the workgroup:

        U: U: ]]>

        The workgroup will then reply with a list of all agents in the workgroup (excluding the agent making the request):

        S: S: @@ -1043,7 +1043,7 @@ S: - diff --git a/xep-0143.xml b/xep-0143.xml index 433cec2d..34a4f732 100644 --- a/xep-0143.xml +++ b/xep-0143.xml @@ -180,7 +180,7 @@

      We repeat: include lots of protocol examples. Examples help not only implementers but also those who will review your proposal in the Standards SIG and XMPP Council. You get extra credit with the XMPP Extensions Editor team if you follow Jabber tradition by using characters and situations from the plays of Shakespeare:

      @@ -234,16 +234,16 @@

      Examples are the major source of right-scrolling in our HTML output files. Right-scrolling is evil. Therefore, adjust your example layouts accordingly (line widths should be no more than 110 characters or so).

      Example:

      Configuration for "darkcave" Room - Please complete this form to make changes to the configuration - of your room; to add room owners and administrators, use the + Please complete this form to make changes to the configuration + of your room; to add room owners and administrators, use the appropriate room commands rather than this form. diff --git a/xep-0144.xml b/xep-0144.xml index 70f8217d..5c9c6098 100644 --- a/xep-0144.xml +++ b/xep-0144.xml @@ -107,7 +107,7 @@ Some visitors, m'lord! - + @@ -134,16 +134,16 @@

      In order to programatically suggest that the receiving entity should delete one or more items from its roster, the sending entity MUST send a &MESSAGE; or &IQ; stanza containing an &X; element qualified by the 'http://jabber.org/protocol/rosterx' namespace; the &X; element in turn MUST contain one or more <item/> child elements, each of which MUST possess an 'action' attribute whose value is "delete", MUST possess a 'jid' attribute that specifies the JabberID of the item to be deleted, MAY possess a 'name' attribute that specifies a natural-language name or nickname for the item, and MAY contain one or more <group/> elements specifying roster groups for the item. If a &MESSAGE; stanza is sent, it MAY contain a &BODY; element but SHOULD NOT contain any other child elements. Here is an example:

      - + - Visitors - - - Visitors + name='Rosencrantz'> + Visitors + + + Visitors @@ -160,7 +160,7 @@

      In order to programatically suggest that the receiving entity should modify one or more items from its roster, the sending entity MUST send a &MESSAGE; or &IQ; stanza containing an &X; element qualified by the 'http://jabber.org/protocol/rosterx' namespace; the &X; element in turn MUST contain one or more <item/> child elements, each of which MUST possess an 'action' attribute whose value is "modify", MUST possess a 'jid' attribute that specifies the JabberID of the item to be modified, MAY possess a 'name' attribute that specifies a natural-language name or nickname for the item, and MAY contain one or more <group/> elements specifying roster groups into which to place the item. If a &MESSAGE; stanza is sent, it MAY contain a &BODY; element but SHOULD NOT contain any other child elements. Here is an example:

      - + @@ -244,7 +244,7 @@

      There is a third category of entities that might initiate roster item exchanges, which we label a "group service" and identify by a Service Discovery category of "directory" and type of "group". A group service enables an administrator to centrally define and administer roster groups so that they can be shared among a user population in an organized fashion. Such a service could prove useful in enterprise environments For example, when Alice is hired by the marketing department of Big Company Enterprises, it makes sense for her to automatically have the other members of the marketing department in her roster the first time she logs in, and for the rest of the marketing department to have Alice in their rosters as soon as her account has been set up. Similarly, when Bob in logistics gets fired, it makes sense for him to disappear from the rosters of everyone else in the logistics department. and other settings where it is beneficial to synchronize rosters across individuals (e.g., schools, social networking applications, consumer IM services, and anywhere else that it is important to build and manage small communities of users).

      -

      In some contexts, an IM server could function as a group service (e.g., if there is a single server deployed on a small company intranet); in other contexts, it may make more sense to deploy a standalone group service (e.g., in a larger or more heterogeneous environment with users on multiple servers). In both cases, the group service MUST advertise a service discovery identity of "directory/group" and SHOULD use the protocol specified herein to communicate changes ("add", "delete", and "modify") to the relevant shared groups; in addition, a user MUST first register with the service (either over Jabber via &xep0077; or out of band, e.g., via the web) or be otherwise provisioned to use the service (e.g., by a system administrator) before accepting roster item suggestions from the service.

      +

      In some contexts, an IM server could function as a group service (e.g., if there is a single server deployed on a small company intranet); in other contexts, it may make more sense to deploy a standalone group service (e.g., in a larger or more heterogeneous environment with users on multiple servers). In both cases, the group service MUST advertise a service discovery identity of "directory/group" and SHOULD use the protocol specified herein to communicate changes ("add", "delete", and "modify") to the relevant shared groups; in addition, a user MUST first register with the service (either over Jabber via &xep0077; or out of band, e.g., via the web) or be otherwise provisioned to use the service (e.g., by a system administrator) before accepting roster item suggestions from the service.

      If the user has registered with a group service or been otherwise provisioned to use a group service, the receiving application SHOULD process roster item suggestions received from the service. Such processing MAY occur automatically (i.e., without the user's approval of each roster item or batch of roster items) if and only if the receiving application has explicitly informed the user that it will automatically process roster items from the service. Furthermore, the receiving application SHOULD periodically verify automatic processing with the user (e.g., once per session in which the service sends roster item suggestions to the user).

      diff --git a/xep-0145.xml b/xep-0145.xml index 47391791..2d8da41c 100644 --- a/xep-0145.xml +++ b/xep-0145.xml @@ -64,7 +64,7 @@ - +

      Annotations are stored using server-side private XML storage (the 'jabber:iq:private' namespace). A storage element marked by the storage:rosternotes namespace contains a collection of one or more <note/> elements, each representing a note about a given entity. For any given JID there MUST NOT be more than one note.

      The 'jid' attribute of the <note/> element SHOULD be used without a resource. Along with the annotation a client MAY choose to store creation time ('cdate') and modification time ('mdate') as attributes to the <note/> element containing the note; these attributes MUST conform to the DateTime profile specified in &xep0082; and the timezone SHOULD be UTC.

      diff --git a/xep-0146.xml b/xep-0146.xml index d1b6f8f3..d5187b5a 100644 --- a/xep-0146.xml +++ b/xep-0146.xml @@ -33,7 +33,7 @@ 0.3 2006-01-25 rt - Using XEP-0033 (Extended Stanza Addressing) for Forwarding + Using XEP-0033 (Extended Stanza Addressing) for Forwarding use case. @@ -52,14 +52,14 @@

      - When one has multiple clients at different locations logged in - simultaneously, it is often desirable to control these clients from + When one has multiple clients at different locations logged in + simultaneously, it is often desirable to control these clients from the client you are currently using. There are a number of common tasks one might want to perform remotely on clients: change the status of the client, forward all received unread messages to this client, and so on. Therefore, it makes sense to define a protocol for performing these tasks.

      - +

      This document describes a protocol to perform a set of common tasks on a remote client, by specifying a profile of &xep0050;. @@ -70,7 +70,7 @@

      This document addresses the following requirements:

        -
      • Enable users to perform a set of common tasks on a remote +
      • Enable users to perform a set of common tasks on a remote client.
      • Re-use existing XMPP and Jabber protocols wherever possible.
      @@ -78,7 +78,7 @@ -

      A client MUST advertise any remote controlling commands it supports via +

      A client MUST advertise any remote controlling commands it supports via &xep0030; (as described in XEP-0050: Ad-Hoc Commands). &xep0115; can be used to query capability of remote controlling commands in a client. @@ -107,8 +107,8 @@

      It is common to forget changing the status of a resource when leaving the - client for a longer period. When realizing this while at another location, it - might be desirable to change the status from there, to avoid contacts + client for a longer period. When realizing this while at another location, it + might be desirable to change the status from there, to avoid contacts thinking that resource is attended and sending it messages.

      - ]]> -

      Unless an error occurs (see the - Error Handling section below), the service +

      Unless an error occurs (see the + Error Handling section below), the service SHOULD return the appropriate form.

      - + http://jabber.org/protocol/rc
      - online - - - - - - - - 5 + 5 -
      @@ -186,7 +186,7 @@ type='set' id='set-status-2' xml:lang='en'> - @@ -209,9 +209,9 @@

      If the 'status-priority' variable is omitted, the client SHOULD NOT change the priority of the client

      ]]> -

      Notification of completion MAY include the processed data in a data +

      Notification of completion MAY include the processed data in a data form of type 'result'.

      @@ -254,7 +254,7 @@ type='set' id='forward-1' xml:lang='en'> - @@ -267,7 +267,7 @@ the command was completed.

      Just saying hi Hello Juliet! @@ -279,9 +279,9 @@ stamp='2002-09-10T23:41:07Z'/> ]]> - ]]> @@ -340,23 +340,23 @@ var='sounds'> 1 - 0 - 0 - 0 - 0 @@ -369,7 +369,7 @@ type='set' id='set-options-2' xml:lang='en'> - @@ -425,7 +425,7 @@ type='set' id='accept-files-1' xml:lang='en'> - ]]>
      @@ -450,17 +450,17 @@ http://jabber.org/protocol/rc - - - - @@ -473,7 +473,7 @@ type='set' id='accept-files-2' xml:lang='en'> - @@ -491,9 +491,9 @@ local client of completion.

      - ]]> http://jabber.org/protocol/rc - - - - @@ -557,7 +557,7 @@ type='set' id='leave-groupchats-2' xml:lang='en'> - @@ -575,9 +575,9 @@

      The remote client leaves the requested groupchats, and informs the local client of completion.

      - - + +

      Several error conditions are possible when an entity sends a command request to the service, as defined in the following table. If one of these errors occurs, the service MUST return an error stanza to the requesting @@ -613,7 +613,7 @@ &forbidden; - The requesting entity does not have sufficient privileges to + The requesting entity does not have sufficient privileges to perform the command @@ -621,32 +621,32 @@ The ad-hoc commands protocol is not supported - +

      For the syntax of these errors, see &xep0086;. Naturally, other errors may be returned as well.

      - +

      Implementations of this protocol MAY add or remove fields to forms as they see fit. For example, when setting the status of a remote client that - supports multiple accounts, the client may choose to add a boolean field + supports multiple accounts, the client may choose to add a boolean field to allow the user to specify whether the status change should be applied globally or only to the receiving account.

      Implementations MAY also introduce extra forms for commands. For example, - when forwarding unread messages, a client could return a form containing a - list + when forwarding unread messages, a client could return a form containing a + list of short descriptions of unread messages, allowing the user to select the messages he wants to forward.

      The ability to complete the tasks specified herein MUST NOT be granted - to users who lack privileges to control a client. A sensible - access policy is to only allow remote controlling by other + to users who lack privileges to control a client. A sensible + access policy is to only allow remote controlling by other resources of the same account used by the client. If other accounts - are to be able to remote control the client, the client needs more + are to be able to remote control the client, the client needs more complex access right management.

      @@ -657,7 +657,7 @@ - +

      The XMPP Registrar includes 'http://jabber.org/protocol/rc' in its registry of protocol namespaces (see &NAMESPACES;).

      @@ -665,8 +665,8 @@

      &xep0068; defines a process for standardizing the fields used within - Data Forms scoped by a particular namespace (see also &FORMTYPES;). - The reserved fields for the 'http://jabber.org/protocol/rc' namespace + Data Forms scoped by a particular namespace (see also &FORMTYPES;). + The reserved fields for the 'http://jabber.org/protocol/rc' namespace are specified below.

      @@ -697,25 +697,25 @@ - - - - - - - diff --git a/xep-0147.xml b/xep-0147.xml index 1ee5a2f3..b594db8b 100644 --- a/xep-0147.xml +++ b/xep-0147.xml @@ -102,7 +102,7 @@

      The range of actions that might be triggered by interaction with an XMPP entity by means of an XMPP IRI/URI is potentially as wide as the range of extensions to XMPP. This document does not seek to exhaustively define all such potential actions. However, the following actions might be of general interest:

      -
        +
        1. Sending a message.
        2. Adding or removing a roster item.
        3. Subscribing to or unsubscribing from an entity's presence information.
        4. @@ -113,7 +113,7 @@
        5. Subscribing to or unsubscribing from a &xep0060; node.
        6. Registering with another entity via &xep0077;.
        7. Initiating a file transfer with another entity (see &xep0096;).
        8. -
        +

      For each such action, the XMPP Registrar maintains a RECOMMENDED "querytype" (this can be thought of as an action name or "verb"; see RFC 5122 for syntax and semantics) as well as an OPTIONAL list of keys to be used in key-value pairs if appropriate.

      The querytypes and key-value pairs related to RFC 3920 and RFC 3921 are defined herein; the querytypes and key-value pairs related to protocols defined in the XMPP Standards Foundation's XEP series are defined in the relevant XMPP Extension Protocol specifications.

      @@ -244,7 +244,7 @@ xmpp:romeo@montague.net?unsubscribe the name of the querytype (e.g., "pubsub") - the namespace of associated protocol output + the namespace of associated protocol output (e.g., "http://jabber.org/protocol/pubsub") a natural-language description of the querytype diff --git a/xep-0148.xml b/xep-0148.xml index 0394f4b0..32ee9d01 100644 --- a/xep-0148.xml +++ b/xep-0148.xml @@ -120,8 +120,8 @@ id='hint1'> - I've heard that there's this thing called the Internet, which - contains incredible amounts of helpful information. Have you considered + I've heard that there's this thing called the Internet, which + contains incredible amounts of helpful information. Have you considered using it? @@ -175,7 +175,7 @@ idiot -

      While once common, these terms are now considered politically incorrect. However, please note that this specification merely provides informational documentation of a protocol historically used within the Jabber community, and is not intended to stereotype individuals in any manner whatsoever. A given server implementation of the 'jabber:iq:iq' protocol MAY substitute more modern ranges and terminology if desired or leave out the descriptive phrases entirely, and a given client implementation MAY rename or disguise the descriptive phrases.

      +

      While once common, these terms are now considered politically incorrect. However, please note that this specification merely provides informational documentation of a protocol historically used within the Jabber community, and is not intended to stereotype individuals in any manner whatsoever. A given server implementation of the 'jabber:iq:iq' protocol MAY substitute more modern ranges and terminology if desired or leave out the descriptive phrases entirely, and a given client implementation MAY rename or disguise the descriptive phrases.

      That said, it is true that many people on the Jabber network do act like morons, imbeciles, and even idiots.

      @@ -201,7 +201,7 @@

      Most people become somewhat insecure when they realize that in fact they are not as smart as they thought they were; for this reason, querying the server for one's own IM IQ is NOT RECOMMENDED on a regular basis.

      -

      This document requires no interaction with &IANA;.

      +

      This document requires no interaction with &IANA;.

      The ®ISTRAR; shall include the 'jabber:iq:iq' namespace in its registry of protocol namespaces.

      diff --git a/xep-0149.xml b/xep-0149.xml index 40b320c6..bda160d9 100644 --- a/xep-0149.xml +++ b/xep-0149.xml @@ -91,9 +91,9 @@

      An XMPP extension for user activity is specified in XEP-0108. It may be desirable to include time period information when publishing one's activity.

      @@ -117,9 +117,9 @@

      An XMPP extension for user mood is specified in XEP-0107. It may be desirable to include time period information when publishing one's mood.

      diff --git a/xep-0150.xml b/xep-0150.xml index f1bdc318..4feda4d2 100644 --- a/xep-0150.xml +++ b/xep-0150.xml @@ -59,14 +59,14 @@

      The basic concept behind XMPP Entity Tag use is semantically equivalent to the use in HTTP (although we use the term "data object" to refer to the payload); this is made possible by a straightforward application of SHIM headers as specified in XEP-0131. In the context of an IQ request-response interaction, the responding entity will include an ETag SHIM header in its IQ response (indicating that the data object can be cached), the requesting entity will include that identical value in an If-None-Match SHIM header when it queries the server for the same data object, and the responding entity will return either an IQ result with the changed data object or an IQ error indicating that the data object has not changed.

      Here is an example of such a request-response flow (the example is that of roster retrieval):

      ]]> @@ -83,7 +83,7 @@ ]]> @@ -96,7 +96,7 @@

      If the responding entity does not understand the If-None-Match header or does not handle Entity Tags for the namespace in the request, it MUST ignore the header and return whatever information it would have returned if the header had not been present.

      If the responding entity determines that the requested information has not changed since it was last retrieved by the requesting entity, then it MUST return a <not-modified/> error corresponding to the HTTP 304 error returned by HTTP entities that support the ETag header:

      @@ -118,7 +118,7 @@

      As specified in &xmppim;, an XMPP instant messaging client will typically store its "roster" (contact list) on the server so that any connecting client for that account can retrieve the roster at will. Since RFC 6121 defines no upper limit on the number of items allowed in the roster, it is possible for a roster to become quite large (e.g., there are known cases of rosters with more than 1,000 items). Therefore a server may support Entity Tag functionality with regard to roster management. The process is as follows.

      First, the client requests its roster:

      @@ -126,7 +126,7 @@ ]]>

      If the server supports Entity Tag functionality for rosters, it SHOULD include an ETag SHIM header in its response (although it MAY decide not to include the header if the roster is deemed to be not worth caching because it is so small):

      @@ -144,7 +144,7 @@ ]]>

      The client would then cache that roster and associate the included Entity Tag with that cached copy. In order to subsequently retrieve the roster, the client would include the last known Entity Tag value with the request in an If-None-Match SHIM header:

      @@ -156,7 +156,7 @@ ]]>

      If the roster did not change since the client last retrieved the roster and the server supports Entity Tags for the 'jabber:iq:roster' namespace, the server MUST return a <not-modified/> error:

      @@ -171,7 +171,7 @@ ]]>

      If the roster has changed, the provided Entity Tag value is not valid, or the server does not support Entity Tags, it MUST return the roster as if the If-None-Match header was not included:

      @@ -192,8 +192,8 @@

      The payloads exchanged in the &xep0016; protocol can also be quite large. Therefore a server might want to support Entity Tags in the context of privacy list management. The process is as follows.

      First, a client requests its privacy lists:

      @@ -202,7 +202,7 @@ ]]>

      The server returns the list and includes an Entity Tag in an ETag SHIM header.

      @@ -229,8 +229,8 @@ ]]>

      Later, the client requests the same privacy list again and includes the provided Entity Tag in an If-None-Match SHIM header:

      @@ -242,7 +242,7 @@ ]]>

      If the privacy list did not change since the client last retrieved it and the server supports Entity Tags for the 'jabber:iq:privacy' namespace, the server MUST return a <not-modified/> error:

      @@ -258,7 +258,7 @@ ]]>

      If the privacy list has changed, the provided Entity Tag value is not valid, or the server does not support Entity Tags, it MUST return the privacy list as if the If-None-Match header was not included:

      diff --git a/xep-0151.xml b/xep-0151.xml index 3422c183..5857c72f 100644 --- a/xep-0151.xml +++ b/xep-0151.xml @@ -50,7 +50,7 @@ 0.0.7 2005-02-08 hw -

      Added comments on anonymity of presence element JID. +

      Added comments on anonymity of presence element JID. Added additional avatar retrieval methods: 1. presence stanza avatar data element 2. via disco

      @@ -93,9 +93,9 @@

      Virtual presence on Web pages (also sometimes known as co-browsing, while co-browsing can also mean something different) makes people aware of each other, who are at the same Web location at the same time. The basic purpose of a virtual presence system is to show names, icons, and/or avatars of people who are on a page or a set of pages and to let them communicate. This document proposes extensions to the Jabber protocol, which enable neat virtual presence on Web pages. The extensions are implemented as namespaces for the protocol elements &IQ;, &PRESENCE;, &MESSAGE;, and for server storage.

      - -

      This document also covers the mapping of URLs to Jabber chat rooms. It describes step by step how clients derive virtual locations from URLs of web pages. The process includes queries to the web server, queries to default configuration sources, delegation between configuration sets, ways for administrators of websites to opt out, and methods to shape the virtual space actively by clustering together or splitting off URL groups.

      - + +

      This document also covers the mapping of URLs to Jabber chat rooms. It describes step by step how clients derive virtual locations from URLs of web pages. The process includes queries to the web server, queries to default configuration sources, delegation between configuration sets, ways for administrators of websites to opt out, and methods to shape the virtual space actively by clustering together or splitting off URL groups.

      +

      This document describes an implementation that proved to be useful over one year. We propose the extensions, but we are open to comments and other proposals, if readers think that different approaches would better fit into the Jabber architecture. This also applies to namespaces, especially since the extensions where designed while the Jabber community was moving to URL-style namespaces. So did this implementation.

      @@ -122,7 +122,7 @@

      The traffic goals can be met by using only the initial &PRESENCE; stanza, which carries all required information, so that no peer-to-peer messages are required on entering. VP clients which gather additional information about peers (e.g. avatar images) should cache the data so that it can be re-used. This is especially important since users browsing virtually connected locations (i.e. linked pages) may meet very often in a short time.

      -

      The virtual presence extensions make use of Jabber group chat. Virtual locations are implemented as public Jabber chat channels. The proposed protocol works with &xep0045; rooms and GroupChat 1.0 compatible services. Its core functionality described here uses only groupchat features.

      +

      The virtual presence extensions make use of Jabber group chat. Virtual locations are implemented as public Jabber chat channels. The proposed protocol works with &xep0045; rooms and GroupChat 1.0 compatible services. Its core functionality described here uses only groupchat features.

      The virtual presence extensions are supposed to be implemented by Jabber IM clients in addition to the IM functions or by pure virtual presence (Jabber VP) clients.

      @@ -175,7 +175,7 @@ -

      Since it has been suggested that the use of Shakespeare characters might please the reader we will try to employ them without really knowing the works of Shakespeare. Two characters called Romeo and Juliet will appear. Both will be equipped with a Web browser and a virtual presence Jabber client which implements the protocol extensions described in this document (called VP client in the following). The communication is shown as seen by the conference component including 'from' attributes.

      +

      Since it has been suggested that the use of Shakespeare characters might please the reader we will try to employ them without really knowing the works of Shakespeare. Two characters called Romeo and Juliet will appear. Both will be equipped with a Web browser and a virtual presence Jabber client which implements the protocol extensions described in this document (called VP client in the following). The communication is shown as seen by the conference component including 'from' attributes.

      This shows how the first meeting of Romeo and Juliet would have happened if they had known Cyberspace, i.e. the Web. Romeo browses the Web with his favorite web client. He reads the page http://www.shakespeare.com/market/ModernLibrary/page1.html. He is also running a VP client. There is no mention of a buddy list jabber client at this point. The VP client is properly logged in to the Jabber server using the JID romeo@montague.net. Through some magic, the VP client acquires the URL of the current web page. The VP client converts the URL into the JID of a public chat room (see section 'Virtual Locations'). The JID will usually be a SHA1 digest of the URL prefixed to a conference component (like f4eb29410ec339144633773dda1dc4a643513933@shakespeare.com). For the sake of readability we will refer to the chat room as room1@shakespeare.com. The VP client then enters the room using 'YoungHero' as the nickname.

      @@ -188,16 +188,16 @@ ]]>
      -

      Upon reception the VP client visualizes the presence of Romeo at the location to Romeo, e.g. by displaying Romeo's icon and/or nickname on, at, or close to the web page. In other words: the VP client shows an avatar of Romeo on the page.

      +

      Upon reception the VP client visualizes the presence of Romeo at the location to Romeo, e.g. by displaying Romeo's icon and/or nickname on, at, or close to the web page. In other words: the VP client shows an avatar of Romeo on the page.

      -

      Dramatic increases when Juliet browses to the same web page. Her VP client also gathers the URL, performs the same mapping and enters the room. It sends a &PRESENCE; stanza to the room using nickname 'WebGirl'. The room as expected returns the acknowledgement. In addition the room forwards both &PRESENCE; stanzas to the VP clients in order to announce the mutual presence.

      +

      Dramatic increases when Juliet browses to the same web page. Her VP client also gathers the URL, performs the same mapping and enters the room. It sends a &PRESENCE; stanza to the room using nickname 'WebGirl'. The room as expected returns the acknowledgement. In addition the room forwards both &PRESENCE; stanzas to the VP clients in order to announce the mutual presence.

      Romeo gets:

      ]]> -

      Juliet gets the equivalent. Romeo's VP client shows Juliet's presence by adding a second avatar to the page. They now engage in a vivid conversation. In deviation to the original text Juliet would not ask "Who art thou, Romeo?", because she only knows the nickname and on the other hand she actually knows where Romeo is: he is on the same web page. There is nothing new until now. Everything happened according to GroupChat 1.0 (XEP-0045) without MUC features. Of course, users can join the same room with any client that supports GroupChat, if they know the room's JID.

      +

      Juliet gets the equivalent. Romeo's VP client shows Juliet's presence by adding a second avatar to the page. They now engage in a vivid conversation. In deviation to the original text Juliet would not ask "Who art thou, Romeo?", because she only knows the nickname and on the other hand she actually knows where Romeo is: he is on the same web page. There is nothing new until now. Everything happened according to GroupChat 1.0 (XEP-0045) without MUC features. Of course, users can join the same room with any client that supports GroupChat, if they know the room's JID.

      Extensions come into the play in order to make the virtual presence more attractive and more vivid.

      @@ -208,7 +208,7 @@

      Entering the room Juliet would add a JID-element to the initial &PRESENCE; stanza.

      juliet@capulet.com/balcony
      ]]>
      @@ -231,7 +231,7 @@

      Romeo will be much more interested in Juliet if Juliet is depicted by a nice image rather than only a name. Users may choose avatars, publish those avatars, and change them on the fly. Changes to the avatar are tracked by comparing a stored digest of the avatar data to the received digest. The avatar digest will be received as part of the &PRESENCE; stanza. Juliet also includes an avatar-digest element with a hex-coded SHA1-digest of the avatar data (i.e. the digest of the image file):

      juliet@capulet.com/balcony
      9b3635eb1440a1ee1c9f67767651194f34ecf130 ]]> @@ -325,7 +325,7 @@ as part of: -9b3635eb1440a1ee1c9f67767651194f34ecf130
      ]]> @@ -363,7 +363,7 @@ as part of:

      A web page can be regarded as a two dimensional space. Avatars can move around on the page. Users are not just at a page, they are at a certain coordinate of the page. Entering the room Juliet tells Romeo (and all other participants) her initial position by including a position element into the initial &PRESENCE; stanza:

      juliet@capulet.com/balcony 9b3635eb1440a1ee1c9f67767651194f34ecf130 @@ -375,7 +375,7 @@ as part of:

      As soon as Juliet enters and her avatar appears, Romeo moves his avatar up to Juliet's. Romeo's VP client sends a new &PRESENCE; stanza with an altered position. The message is automatically broadcast by the room to all participants and stored for new participants. Romeo approaches Juliet:

      romeo@montague.net e5229ec136892e00fcb79f822c192e7a2067a296 @@ -409,7 +409,7 @@ as part of: - +

      We remember: after seeing Juliet's avatar, Romeo has already falling in love. But Juliet is a more realistic type. She insists on talking before falling in love. The avatar-on-web-pages paradigm frees us from chat line based chat. Each avatar may show a separate chat bubble with the latest text or even a chat history.

      While Juliet is writing an opening, her VP client may send the current contents of the chat line to the room giving other participants snapshots of the text. We propose instant chat updates as an extension to groupchat. For backward compatibility these snapshots are transmitted as control messages without body text, so that other clients ignore them. Once Juliet hits the send button (or the enter-key) the VP client sends the chat message as body text of a &MESSAGE;. With a timely distance of fractions of seconds to few seconds Juliet sends the following messages:

      @@ -440,11 +440,11 @@ as part of:
      - +

      After some chatting, Juliet is still not convinced. She demands to see Romeo live (although not in person). Romeo switches on his webcam and sends the webcam URL as part of the &PRESENCE; stanza.

      romeo@montague.net e5229ec136892e00fcb79f822c192e7a2067a296 @@ -495,7 +495,7 @@ as part of:

      This <name/>-tag produces the room name. The text of the <name/>-tag in combination with the match expression of the <location/> extracts the first level folder of the path section from the URL. It creates a room for each first level folder. The resulting room name is 'market-room'. It is hashed by a message digest, if the <digest/> tag is present. A SHA1 digest is used by default. VP clients must support SHA1. The hashed result will be prefixed by 'vp-'. Prefixing is provided for convenience, so that rooms generated for virtual presence can be sorted easily in room lists of conference components. Both <digest/> and <prefix/> are optional.

      The \1 variable of the match-expression is used to generate a room per sub-folder of the URL. Match-expression variables can be used inside all elements to modify the inner text of the element. You might use the \1 inside the <service/>-tag to point to a different chat server per sub-folder of the URL.

      - +

      The rule generates a virtual location ID. This mechanism is extensible to other protocols as virtual presence transport, e.g. IRC. The <service/>-tag contains a service URL, which consists of a scheme and server address. In this case the 'xmpp'-scheme means that the Jabber protocol will be used and that the VP client joins a Jabber chat room with a JID created according to the Jabber ID building rules, i.e. room-name@server-address, where the room-name has been derived from the 'name'-tag and mangled by the 'digest'-tag before it has been prepended to '@server-address'.

      A <location/> without match-attribute matches all URLs. In other words: the default match-attribute is '.*'.

      @@ -514,7 +514,7 @@ as part of: ... ... ]]>
      - +

      Examples were formerly available at http://developer.lluna.de/docs/vpi-file-syntax.html

      @@ -556,7 +556,7 @@ as part of: ]]>
      - + @@ -579,9 +579,9 @@ http://www.shakespeare.com/_vpi.xml]]> - \1 + \1 - xmpp:location.virtual-presence.org + xmpp:location.virtual-presence.org ]]> @@ -595,7 +595,7 @@ http://www.shakespeare.com/_vpi.xml]]> - http://www.shakespeare.com/_vpi.xml + http://www.shakespeare.com/_vpi.xml ]]> @@ -604,7 +604,7 @@ http://www.shakespeare.com/_vpi.xml]]> - http://vpi.vp.bluehands.de/lluna-2.5.2/dotcom-vpi.xml + http://vpi.vp.bluehands.de/lluna-2.5.2/dotcom-vpi.xml ]]> ... @@ -641,12 +641,12 @@ http://www.shakespeare.com/_vpi.xml]]> - + http://vpi.vp.bluehands.de/lluna-2.5.2/dotcom-vpi.xml - + http://vpi.vp.bluehands.de/lluna-2.5.2/dotde-vpi.xml @@ -718,7 +718,7 @@ http://www.shakespeare.com/_vpi.xml]]> So, the security mask is (the rule applies only to URLs in the same folder as the original URL):

      - +

      If the security mask applies to a URL can be verified by a simple string-compare without using a regular expression. diff --git a/xep-0152.xml b/xep-0152.xml index 109ab331..5d3a6b4b 100644 --- a/xep-0152.xml +++ b/xep-0152.xml @@ -223,7 +223,7 @@

      If an entity supports reachability addresses, it MUST advertise that fact by returning a feature of "urn:xmpp:reach:0" &VNOTE; in response to a &xep0030; information request.

      @@ -231,9 +231,9 @@ ]]> @@ -294,7 +294,7 @@ - @@ -304,7 +304,7 @@ - diff --git a/xep-0153.xml b/xep-0153.xml index d14249ae..e4385de9 100644 --- a/xep-0153.xml +++ b/xep-0153.xml @@ -85,7 +85,7 @@

      Before informing contacts of the user's avatar, the user's client first publishes the avatar data to the user's public vCard using the protocol defined in &xep0054;.

      @@ -123,16 +123,16 @@

      When the recipient's client receives the hash of the avatar image, it SHOULD check the hash to determine if it already has a cached copy of that avatar image. If not, it retrieves the sender's full vCard in accordance with the protocol flow described in XEP-0054 (note that this request is sent to the user's bare JID, not full JID):

      ]]> diff --git a/xep-0154.xml b/xep-0154.xml index 6810026c..d8464295 100644 --- a/xep-0154.xml +++ b/xep-0154.xml @@ -118,9 +118,9 @@

      This document addresses the following requirements for data representation:

      1. Specify how to represent profile data in an XMPP-friendly manner for communication over the wire.
      2. -
      3. Ensure that the protocol is extensible (e.g., not limited to existing vCard fields). +
      4. Ensure that the protocol is extensible (e.g., not limited to existing vCard fields). The extensibility requirement is critically important, because it would be best if the protocol specified herein could be used to represent data used within specialized communities. Examples of such communities include dating services, multiplayer gaming networks, IM services provided by portals and ISPs, and expert-location systems within large corporations. While such communities might use part or all of some common set of data fields (such as fields that map to familiar vCard elements), each community might also want to represent quite disparate kinds of information (dating criteria, favorite games, contact preferences, areas of expertise, and the like). Furthermore, data might be used to profile network actors that are not persons (e.g., bots, services, and other software agents). Therefore, the ideal proposal will provide an extensible framework for representing profile data and will not limit itself to representing the relatively small set of data fields covered by the vCard format. -
      5. +
      6. Where possible, map profile data fields to existing vCard fields and other common formats.
      @@ -169,7 +169,7 @@
    1. The Jabber/XMPP community possesses consistent methods for profiling and scoping data forms (as specified in XEP-0068).
    2. Data forms have a generic schema that is easy to map to common data storage mechanisms (usually databases).
    3. Data forms provide a consistent abstraction layer for XMPP applications, thus shielding them from changes in the profile data formats being defined by other Internet projects and standards development organizations.
    4. -
    5. The use of data forms as the medium of representation for communication over the wire does not prevent applications from storing backend profile data in some other underlying format (e.g., RDF or a database).
    6. +
    7. The use of data forms as the medium of representation for communication over the wire does not prevent applications from storing backend profile data in some other underlying format (e.g., RDF or a database).
    @@ -1609,7 +1609,7 @@ ]]> -

    Many people feel affiliated with a religious belief system.

    +

    Many people feel affiliated with a religious belief system.

    The Data Forms field that represents a religious affiliation is "religion".

    @@ -1627,7 +1627,7 @@ ]]>
    -

    Some people smoke tobacco in various forms (cigarettes, cigars, pipes, etc.).

    +

    Some people smoke tobacco in various forms (cigarettes, cigars, pipes, etc.).

    The Data Forms field that represents whether a person smokes is "smoker".

    diff --git a/xep-0160.xml b/xep-0160.xml index a26fd597..f47d0a28 100644 --- a/xep-0160.xml +++ b/xep-0160.xml @@ -94,7 +94,7 @@ Too flattering-sweet to be substantial. Offline Storage ]]> diff --git a/xep-0161.xml b/xep-0161.xml index 57b27ac5..58049d3e 100644 --- a/xep-0161.xml +++ b/xep-0161.xml @@ -162,11 +162,11 @@
  • The recipient SHOULD NOT report the abuse stanza to the suspected abuser.

  • - You too can be rich! Find out how at + You too can be rich! Find out how at http://clickhere.info/makemoney Let's chat to make your dreams come true! @@ -179,12 +179,12 @@ type='set' id='report1'> - - You too can be rich! Find out how at + You too can be rich! Find out how at http://clickhere.info/makemoney Let's chat to make your dreams come true! @@ -391,7 +391,7 @@ xmlns='urn:xmpp:tmp:abuse' elementFormDefault='qualified'> - diff --git a/xep-0162.xml b/xep-0162.xml index e28be7a7..f038c685 100644 --- a/xep-0162.xml +++ b/xep-0162.xml @@ -60,9 +60,9 @@

    &rfc3921; explains how subscriptions and rosters integrate. However, several points are left to the client author's discretion, and this can lead - to some confusion among client developers. This document specifies best practices - that enable all Jabber clients to manage subscriptions and roster in a coherent - way, thus making sure that such clients will not surprise end users with + to some confusion among client developers. This document specifies best practices + that enable all Jabber clients to manage subscriptions and roster in a coherent + way, thus making sure that such clients will not surprise end users with unexpected behavior.

    @@ -76,7 +76,7 @@
  • subscription='none': you aren't interested in the item's presence, and neither is the item interested in yours.
  • - +
  • subscription='from': the item is interested in your presence information, but you don't care about the contact. (You must be somebody important! ;)
  • @@ -84,7 +84,7 @@
  • subscription='to': You are interested in the item's presence information, but the contact is not interested in yours.
  • - +
  • subscription='both': You and the contact are interested in each other's presence information.
  • @@ -141,7 +141,7 @@ - +

    In addition to the "Remove" action described above, the client MAY provide a way to revoke the contact's subscription to the user's presence. This action, if provided, SHOULD be called "Block" since this is the diff --git a/xep-0163.xml b/xep-0163.xml index 07e59bba..a344f44a 100644 --- a/xep-0163.xml +++ b/xep-0163.xml @@ -150,7 +150,7 @@ -

    Personal eventing provides a way for a Jabber/XMPP user to send updates or "events" to other users, who are typically contacts in the user's roster. An event can be anything that a user wants to make known to other people, such as those described in &xep0080;, &xep0107;, &xep0108;, and &xep0118;. While the XMPP &xep0060; extension ("pubsub") can be used to broadcast such events associated, the full pubsub protocol is often thought of as complicated and therefore has not been widely implemented. +

    Personal eventing provides a way for a Jabber/XMPP user to send updates or "events" to other users, who are typically contacts in the user's roster. An event can be anything that a user wants to make known to other people, such as those described in &xep0080;, &xep0107;, &xep0108;, and &xep0118;. While the XMPP &xep0060; extension ("pubsub") can be used to broadcast such events associated, the full pubsub protocol is often thought of as complicated and therefore has not been widely implemented. Instead, many "extended presence" formats are currently sent using the &PRESENCE; stanza type; unfortunately, this overloads presence, results in unnecessary presence traffic, and does not provide fine-grained control over access. The use of publish-subscribe rather than presence is therefore preferable. To make publish-subscribe functionality more accessible (especially to instant messaging and presence applications that conform to &xmppim;), this document defines a simplified subset of pubsub that can be followed by instant messaging client and server developers to more easily deploy personal eventing services across the Jabber/XMPP network. We label this subset "Personal Eventing Protocol" or PEP.

    Note: Any use cases not described herein are described in XEP-0060. Also, this document does not show error flows related to the generic publish-subscribe use cases referenced herein, since they are exhaustively defined in XEP-0060. The reader is referred to XEP-0060 for all relevant protocol details related to the XMPP publish-subscribe extension. This document merely defines a "subset" or "profile" of XMPP publish-subscribe.

    @@ -274,7 +274,7 @@ - @@ -404,7 +404,7 @@

    Note: The "on_sub_and_presence" setting relates to the subscriber's presence, not the publisher's presence.

    - @@ -412,7 +412,7 @@ ]]> - @@ -533,7 +533,7 @@ pep - A personal eventing service that supports the + A personal eventing service that supports the publish-subscribe subset defined in XEP-0163. XEP-0163 diff --git a/xep-0164.xml b/xep-0164.xml index 88cbbd8a..0513ede5 100644 --- a/xep-0164.xml +++ b/xep-0164.xml @@ -57,7 +57,7 @@

    To illustrate the functionality of this protocol, we will first request a standard vCard. As shown in XEP-0054, a user may view another user's vCard by sending an IQ of type "get" to the other user's bare JID. A compliant server MUST return the vCard to the requestor and not forward the IQ to the requestee's connected resource.

    @@ -65,8 +65,8 @@ ]]>

    The server should then return the other user's vCard to the requestor:

    @@ -85,7 +85,7 @@

    A user may request that specific portions of another user's vCard be excluded by including the requested field(s) inside a filter element qualified by the 'vcard-temp-filter' namespace, inside the vCard element.

    diff --git a/xep-0165.xml b/xep-0165.xml index 279b4c91..9c658eb0 100644 --- a/xep-0165.xml +++ b/xep-0165.xml @@ -81,8 +81,8 @@ ᏚᎢᎵᎬᎢᎬᏒ@ᎫᎪᏴᏴᎬᏒ.org

    That JID is not an uppercase version of "stpeter@jabber.org" in US-ASCII characters, but a fake JID made up mostly of Cherokee characters, namely:

    - U+13DA U+13A2 U+13B5 U+13AC U+13A2 U+13AC U+13D2 - @ + U+13DA U+13A2 U+13B5 U+13AC U+13A2 U+13AC U+13D2 + @ U+13AB U+13AA U+13F4 U+13F4 U+13AC U+13D2 .org

    In this example, it is unlikely that the average user could tell the difference between the real JID and the fake JID. Naturally, there is no way to distinguish with full certainty which is the fake JID and which is the real JID. For example, in some communication contexts, the Cherokee JID may be the real JID and the US-ASCII JID may thus appear to be the fake JID.

    By contrast with address forging, it may be relatively easy to mimic (some) JIDs in Jabber/XMPP systems, especially because JIDs can contain almost any Unicode character. The possibility of address mimicking introduces security vulnerabilities of the kind that have also plagued the World Wide Web, specifically the phenomenon known as phishing. Phishing has been defined by the Financial Services Technology Consortium Counter-Phishing Initiative as "a broadly launched social engineering attack in which an electronic identity is misrepresented in an attempt to trick individuals into revealing personal credentials that can be used fraudulently against them"). To be precise, the current document (1) does not assume that such attacks will be broadly launched and (2) focuses on the misrepresentation of Jabber IDs (not any other identifiers) within the context of Jabber/XMPP systems. To combat those vulnerabilities, this document recommends a set of best practices to minimize the potential impact of address mimicking on the Jabber/XMPP network. This document does not cover handling of non-XMPP addresses, for example HTTP URLs. Jabber/XMPP clients SHOULD handle such addresses in accordance with best practices for the relevant non-XMPP technology.

    diff --git a/xep-0166.xml b/xep-0166.xml index 7ec164c0..75261f69 100644 --- a/xep-0166.xml +++ b/xep-0166.xml @@ -1081,7 +1081,7 @@ PENDING o-----------------------+ | ]]> -

    Not all Jingle sessions end gracefully. When the parties to a Jingle session also exchange XMPP presence information, receipt of &UNAVAILABLE; from the other party SHOULD be considered a session-ending event that justifies proactively sending a session-terminate message to the seemingly unavailable party -- if, that is, no other communication has been received within 5 or 10 seconds from the seemingly unavailable party in the form of XMPP signalling traffic, connectivity checks, or continued media transfer.

    +

    Not all Jingle sessions end gracefully. When the parties to a Jingle session also exchange XMPP presence information, receipt of &UNAVAILABLE; from the other party SHOULD be considered a session-ending event that justifies proactively sending a session-terminate message to the seemingly unavailable party -- if, that is, no other communication has been received within 5 or 10 seconds from the seemingly unavailable party in the form of XMPP signalling traffic, connectivity checks, or continued media transfer.

    At any point after initiation of a Jingle session, either entity MAY send an informational message to the other party, for example to inform the other party that a device is ringing.

    @@ -1146,12 +1146,12 @@ PENDING o-----------------------+ | initiator* - The full JID of the entity that has initiated the session flow. When the Jingle action is "session-initiate", the &JINGLE; element SHOULD possess an 'initiator' attribute that explicitly specifies the full JID of the initiating entity; for all other actions, the &JINGLE; element SHOULD NOT possess an 'initiator' attribute and the recipient of the message SHOULD ignore the value if provided. The value of the 'initiator' attribute MAY be different from the 'from' address on the IQ-set of the session-initiate message (e.g., to handle certain interactions involving call managers, soft switches, and media relays). This usage shall be defined in other specifications, for example, in &xep0251;. However, in all cases if the 'initiator' and 'from' values differ then the responder MUST NOT interact with the 'initiator' JID unless it trusts the 'initiator' JID or trusts that the 'from' JID is allowed to authorize the 'initiator' JID to act on the 'from' JID's behalf. In the absence of explicit rules for handling this case, the responder SHOULD simply ignore the 'initiator' attribute and treat the 'from' JID as the initiating entity. After sending acknowledgement of the session-initiate message, the responder MUST send all future commmunications about the Jingle session to the initiator (whether the initiator is considered the 'from' JID or the 'initiator' JID). + The full JID of the entity that has initiated the session flow. When the Jingle action is "session-initiate", the &JINGLE; element SHOULD possess an 'initiator' attribute that explicitly specifies the full JID of the initiating entity; for all other actions, the &JINGLE; element SHOULD NOT possess an 'initiator' attribute and the recipient of the message SHOULD ignore the value if provided. The value of the 'initiator' attribute MAY be different from the 'from' address on the IQ-set of the session-initiate message (e.g., to handle certain interactions involving call managers, soft switches, and media relays). This usage shall be defined in other specifications, for example, in &xep0251;. However, in all cases if the 'initiator' and 'from' values differ then the responder MUST NOT interact with the 'initiator' JID unless it trusts the 'initiator' JID or trusts that the 'from' JID is allowed to authorize the 'initiator' JID to act on the 'from' JID's behalf. In the absence of explicit rules for handling this case, the responder SHOULD simply ignore the 'initiator' attribute and treat the 'from' JID as the initiating entity. After sending acknowledgement of the session-initiate message, the responder MUST send all future commmunications about the Jingle session to the initiator (whether the initiator is considered the 'from' JID or the 'initiator' JID). RECOMMENDED for session-initiate, NOT RECOMMENDED otherwise responder* - The full JID of the entity that has replied to the initiation, which can be different from the 'to' address on the IQ-set. When the Jingle action is "session-accept", the &JINGLE; element SHOULD possess a 'responder' attribute that explicitly specifies the full JID of the responding entity; for all other actions, the &JINGLE; element SHOULD NOT possess a 'responder' attribute and the recipient of the message SHOULD ignore the value if provided. The value of the 'responder' attribute MAY be different from the 'from' address on the IQ-set of the session-accept message, where the logic for handling any difference between the 'responder' JID and the 'from' JID follows the same logic as for session-initiate messages (see above). After sending acknowledgement of the session-accept message, the initiator MUST send all future commmunications about this Jingle session to the responder (whether the responder is considered the 'from' JID or the 'responder' JID). + The full JID of the entity that has replied to the initiation, which can be different from the 'to' address on the IQ-set. When the Jingle action is "session-accept", the &JINGLE; element SHOULD possess a 'responder' attribute that explicitly specifies the full JID of the responding entity; for all other actions, the &JINGLE; element SHOULD NOT possess a 'responder' attribute and the recipient of the message SHOULD ignore the value if provided. The value of the 'responder' attribute MAY be different from the 'from' address on the IQ-set of the session-accept message, where the logic for handling any difference between the 'responder' JID and the 'from' JID follows the same logic as for session-initiate messages (see above). After sending acknowledgement of the session-accept message, the initiator MUST send all future commmunications about this Jingle session to the responder (whether the responder is considered the 'from' JID or the 'responder' JID). RECOMMENDED for session-accept, NOT RECOMMENDED otherwise @@ -1546,7 +1546,7 @@ PENDING o-----------------------+ | The name of the application format. A natural-language summary of the application format. - Whether the media can be sent over a "streaming" transport, + Whether the media can be sent over a "streaming" transport, a "datagram" transport, or "both". The document in which the application format is specified. @@ -1561,7 +1561,7 @@ PENDING o-----------------------+ | The name of the transport method. A natural-language summary of the transport method. - Whether the transport method can be "streaming", "datagram", + Whether the transport method can be "streaming", "datagram", or "both". The document in which this transport method is specified. @@ -1590,13 +1590,13 @@ PENDING o-----------------------+ | - - @@ -1673,7 +1673,7 @@ PENDING o-----------------------+ | - diff --git a/xep-0167.xml b/xep-0167.xml index 7cf3e59f..98cbfbdc 100644 --- a/xep-0167.xml +++ b/xep-0167.xml @@ -605,9 +605,9 @@ delivery-method=inline; configuration=somebase16string;

    An example follows.

    - @@ -1164,9 +1164,9 @@ Romeo Juliet - @@ -1245,9 +1245,9 @@ Romeo Juliet - @@ -1717,7 +1717,7 @@ Romeo Juliet rtp - Jingle sessions that support media exchange + Jingle sessions that support media exchange via the Real-time Transport Protocol. datagram @@ -1748,17 +1748,17 @@ Romeo Juliet - - - - @@ -1793,9 +1793,9 @@ Romeo Juliet - @@ -1804,7 +1804,7 @@ Romeo Juliet

    An example follows.

    ]]>
    @@ -205,22 +205,22 @@ 10 - 5 - -1 - ]]> @@ -236,8 +236,8 @@ - @@ -254,8 +254,8 @@ - @@ -272,8 +272,8 @@ - @@ -292,8 +292,8 @@ -1 - diff --git a/xep-0169.xml b/xep-0169.xml index f5160d96..4c4eb601 100644 --- a/xep-0169.xml +++ b/xep-0169.xml @@ -81,7 +81,7 @@

    The children were nestled all snug in their beds,

    @@ -99,7 +99,7 @@

    While visions of sugar-plums danced in their heads.

    @@ -121,7 +121,7 @@

    Had just settled down for a long winter's nap.

    @@ -146,9 +146,9 @@

    But a miniature sleigh, and eight tiny rein-deer,

    @@ -165,7 +165,7 @@ ]]> @@ -188,68 +188,68 @@

    And he whistled, and shouted, and called them by name;

    Now, Dasher! - Now, Dancer! - Now, Prancer and Vixen! - + - On, Comet! - On, Cupid! - On, Donder and Blitzen! - To the top of the porch! - To the top of the wall! - Now dash away! - Dash away! - Dash away all! @@ -261,9 +261,9 @@

    With the sleigh full of toys, and St. Nicholas too.

    @@ -280,7 +280,7 @@ ]]> @@ -303,9 +303,9 @@

    Down the chimney St. Nicholas came with a bound.

    @@ -357,7 +357,7 @@

    And I laughed when I saw him in spite of myself;

    @@ -376,7 +376,7 @@

    Soon gave me to know I had nothing to dread.

    @@ -394,9 +394,9 @@

    He spoke not a word, but went straight to his work,

    @@ -431,9 +431,9 @@

    And giving a nod, up the chimney he rose.

    @@ -450,7 +450,7 @@ ]]> @@ -471,9 +471,9 @@

    And away they all flew, like the down of a thistle.

    @@ -508,16 +508,16 @@

    But I heard him exclaim, ere he drove out of sight --

    Happy Christmas to all, and to all a good night. ]]> ]]> @@ -543,9 +543,9 @@

    This document assumes the following architecture:

    In addition, we assume that the twas-the-night.lit server is running a virtual pubsub service for each account it hosts (in accordance with XEP-0163) and that the users "narrator", "mama", and "child" publish information to personal pubsub nodes related to mood (XEP-0107), activity (XEP-0108), and physical location (XEP-0112).

    * Because millions of people track the movements and activities of Santa, northpole.lit runs a highly scalable, standalone pubsub service instead of PEP at Santa's bare JID.

    diff --git a/xep-0172.xml b/xep-0172.xml index 08eca5d3..73458671 100644 --- a/xep-0172.xml +++ b/xep-0172.xml @@ -188,8 +188,8 @@

    In order for a user to modify his or her nickname and notify contacts of that change, it is RECOMMENDED for clients to use &xep0163; (a.k.a. PEP).

    @@ -201,7 +201,7 @@ ]]> @@ -222,9 +222,9 @@ ]]>

    If a XEP-0163-compliant personal eventing service is not available, a client SHOULD use a standalone &xep0060; service.

    @@ -236,7 +236,7 @@ ]]> diff --git a/xep-0174.xml b/xep-0174.xml index b11f1461..b97d7c8d 100644 --- a/xep-0174.xml +++ b/xep-0174.xml @@ -167,7 +167,7 @@ @@ -181,25 +181,25 @@ _presence._tcp.local. PTR juliet@pronto._presence._tcp.local.

    Other people at the hotspot can also advertise similar DNS records for use on the local link. Essentially, the mDNS daemons running on all of the machines at the hotspot collectively manage the ".local." domain, which has meaning only at the hotspot (not across the broader Internet). Queries and responses for services on the local link occur via multicast DNS over UDP port 5353 instead of via normal DNS unicast over UDP port 53. When a new machine joins the local link, it can send out queries for any number of service types, to which the other machines will reply. For the purpose of serverless messaging we are interested only in the "presence" service, but many other services could exist on the local link (see dns-sd.org for a complete list).

    Now let us imagine that a fine young gentleman named Romeo joins the hotspot and that his chat client (actually his mDNS daemon) sends out multicast DNS queries for services of type "presence". To do this, his client essentially reverses the order of DNS record publication (explained above) by asking for pointers to presence services (i.e., PTR records that match "_presence._tcp.local."), querying each service for its service instance and port (i.e., SRV record), mapping each service instance to an IP address (i.e., A record), and finding out additional information about the entity using the service (i.e., TXT record parameters). As explained in the DNS-SD specification, these queries might all be returned in the same answer. As a result, Romeo's client will discover any number of local presence services, among them a service named "juliet@pronto" (with some intriguing TXT record parameters) at IP address 10.2.1.187 and port 5562. Being a romantic fellow, he then initiates a chat with you by opening an XML stream to the advertised IP address and port.

    -Your client then responds with a response stream header.

    - Bonjour - Apple Computer's implementation of zero-configuration networking, formerly known as Rendezvous. See <http://www.apple.com/macosx/features/bonjour/>. + Apple Computer's implementation of zero-configuration networking, formerly known as Rendezvous. See <http://www.apple.com/macosx/features/bonjour/>. DNS-SD - A convention for naming and structuring DNS SRV records such that a client can dynamically discover a domain for a service using only standard DNS queries. See draft-cheshire-dnsext-dns-sd. For a full list of registered DNS-SD records, see <http://www.dns-sd.org/ServiceTypes.html>. + A convention for naming and structuring DNS SRV records such that a client can dynamically discover a domain for a service using only standard DNS queries. See draft-cheshire-dnsext-dns-sd. For a full list of registered DNS-SD records, see <http://www.dns-sd.org/ServiceTypes.html>. Multicast DNS (mDNS) @@ -259,7 +259,7 @@ ver=QgayPKawpkPSDYmwT/WM94uAlu0= Zero-configuration networking - A set of technologies that enable the use of the Internet Protocol for local or wide-area communications. See <http://www.zeroconf.org/>. + A set of technologies that enable the use of the Internet Protocol for local or wide-area communications. See <http://www.zeroconf.org/>. @@ -282,7 +282,7 @@ machine.local. A ip-address
  • An SRV record of the following form:

    SRV port-number machine.local. +user@machine._presence._tcp.local SRV port-number machine.local. ]]>
  • @@ -313,11 +313,11 @@ ver=entity-capabilities-identity

    The IPv4 and IPv6 addresses associated with a machine might vary depending on the local network to which the machine is connected. For example, on an Ethernet connection the physical address might be "192.168.0.100" but when the machine is connected to a wireless network the physical address might change to "10.10.1.187". See RFC 3927 for details.

    -

    If the machine name asserted by a client is already taken by another machine on the network, the client MUST assert a different machine name, which SHOULD be formed by adding the character "-" and digit "1" to the end of the machine name string (e.g., "pronto-1"), adding the character "-" and digit "2" if the resulting machine name is already taken (e.g., "pronto-2"), and similarly incrementing the digit until a unique machine name is constructed.

    -

    If the username asserted by a client is already taken by another application on the machine, the client MUST assert a different username, which SHOULD be formed by adding the character "-" and digit "1" to the end of the username string (e.g., "juliet-1"), adding the character "-" and digit "2" if the resulting username is already taken (e.g., "juliet-2"), and similarly incrementing the digit until a unique username is constructed.

    +

    If the machine name asserted by a client is already taken by another machine on the network, the client MUST assert a different machine name, which SHOULD be formed by adding the character "-" and digit "1" to the end of the machine name string (e.g., "pronto-1"), adding the character "-" and digit "2" if the resulting machine name is already taken (e.g., "pronto-2"), and similarly incrementing the digit until a unique machine name is constructed.

    +

    If the username asserted by a client is already taken by another application on the machine, the client MUST assert a different username, which SHOULD be formed by adding the character "-" and digit "1" to the end of the username string (e.g., "juliet-1"), adding the character "-" and digit "2" if the resulting username is already taken (e.g., "juliet-2"), and similarly incrementing the digit until a unique username is constructed.

    DNS-SD enables service definitions to include a TXT record that specifies parameters to be used in the context of the relevant service type. The name of the TXT record is the same as that of the SRV record (i.e., "user@machine._presence._tcp.local."). The value of the TXT record is one or more strings, where each string is a parameter that usually takes the form of a key-value pair.

    In the context of serverless messaging, the following rules apply:

    @@ -352,7 +352,7 @@ juliet@pronto._presence._tcp.local. IN TXT

    In order to discover other users, a client sends an mDNS request for PTR records that match "_presence._tcp.local.". The client then receives replies from all machines that advertise support for serverless messaging. The replies will include a record corresponding to the client itself; the client MUST filter out this result. In accordance with Section 13 of the DNS-SD specification, these replies can include the SRV, A/AAAA, and TXT records in the Additional Section of the DNS message (subject to the size limits described in Section 19 of the Multicast DNS specification).

    -

    The client MAY then find out detailed information about each machine by sending SRV and TXT queries These questions MAY all be sent in one DNS query packet. to "user@machine.local." for each machine; however, to preserve bandwidth, the client SHOULD NOT send these queries unless it is about to initiate communication with the other user, and it MUST cancel the queries after it has received a response). +

    The client MAY then find out detailed information about each machine by sending SRV and TXT queries These questions MAY all be sent in one DNS query packet. to "user@machine.local." for each machine; however, to preserve bandwidth, the client SHOULD NOT send these queries unless it is about to initiate communication with the other user, and it MUST cancel the queries after it has received a response).

    @@ -365,8 +365,8 @@ juliet@pronto._presence._tcp.local. IN TXT

    First, the initiator opens a TCP connection at the IP address and port discovered via the DNS lookup for an entity and opens an XML stream to the recipient, which SHOULD include 'to' and 'from' address:

    -

    The recipient then responds with a stream header as well:

    -

    Unfortunately, full stream negotiation (including TLS and SASL if appropriate) can require a large number of packets. Therefore, as an optimization, it is RECOMMENDED for the receiving entity in a serverless XML stream negotiation to include its disco#info data (including node) as a stream feature, as shown in the following examples.

    - ]]> - The name of the parameter as used a key-value pair. A natural-language description of the parameter. - The requirements status of the record. Should be one of: + The requirements status of the record. Should be one of: - required - - recommended + - recommended - optional - deprecated - obsolete @@ -576,7 +576,7 @@ _presence._tcp.local. IN NULL raw-binary-data-here email - The email address of the user; can contain a space-separated list + The email address of the user; can contain a space-separated list of more than one email address. optional @@ -585,8 +585,8 @@ _presence._tcp.local. IN NULL raw-binary-data-here ext - A space-separated list of extensions; the value of this record MUST - be the same as that provided via normal XMPP presence (if applicable) + A space-separated list of extensions; the value of this record MUST + be the same as that provided via normal XMPP presence (if applicable) in the 'ext' attribute specified in Entity Capabilities (XEP-0115). optional @@ -595,7 +595,7 @@ _presence._tcp.local. IN NULL raw-binary-data-here hash - The hashing algorithm used to generated the 'ver' attribute in + The hashing algorithm used to generated the 'ver' attribute in Entity Capabilities (XEP-0115) and therefore the ver parameter in Link-Local Messaging. @@ -605,7 +605,7 @@ _presence._tcp.local. IN NULL raw-binary-data-here jid - The Jabber ID of the user; can contain a space-separated list of + The Jabber ID of the user; can contain a space-separated list of more than one JID. recommended @@ -620,7 +620,7 @@ _presence._tcp.local. IN NULL raw-binary-data-here msg - Natural-language text describing the user's state. This is + Natural-language text describing the user's state. This is equivalent to the XMPP <status/>; element. optional @@ -635,8 +635,8 @@ _presence._tcp.local. IN NULL raw-binary-data-here node - A unique identifier for the application; the value of this record MUST - be the same as that provided via normal XMPP presence (if applicable) + A unique identifier for the application; the value of this record MUST + be the same as that provided via normal XMPP presence (if applicable) in the 'node' attribute specified in Entity Capabilities (XEP-0115). recommended @@ -645,12 +645,12 @@ _presence._tcp.local. IN NULL raw-binary-data-here phsh - The SHA-1 hash of the user's avatar icon or photo. This SHOULD be - requested using mDNS in unicast mode by sending a DNS query to the + The SHA-1 hash of the user's avatar icon or photo. This SHOULD be + requested using mDNS in unicast mode by sending a DNS query to the mDNS multicast address (224.0.0.251 or its IPv6 equivalent FF02::FB). - The client SHOULD keep a local cache of icons keyed by hash. If the - phsh value is not in the cache, the client SHOULD fetch the unknown - icon and then cache it. Implementations SHOULD also include logic for + The client SHOULD keep a local cache of icons keyed by hash. If the + phsh value is not in the cache, the client SHOULD fetch the unknown + icon and then cache it. Implementations SHOULD also include logic for expiring avatar icons. optional @@ -660,8 +660,8 @@ _presence._tcp.local. IN NULL raw-binary-data-here port.p2pj The port for serverless communication. This MUST be the same as the - value provided for SRV lookups. Clients MUST use the port discovered - via SRV lookups and MUST ignore the value of this parameter. However, + value provided for SRV lookups. Clients MUST use the port discovered + via SRV lookups and MUST ignore the value of this parameter. However, clients SHOULD advertise this parameter if it is important to ensure backwards-compatibility with some existing implementations. (Note: In some existing implementations this value was hardcoded to "5298".) @@ -672,10 +672,10 @@ _presence._tcp.local. IN NULL raw-binary-data-here status - The presence availability of the user. Allowable values are "avail", - "away", and "dnd", which map to mere XMPP presence (the user is - available) and the XMPP <show/> values of "away" and "dnd", - respectively; if the status record is not included, the status SHOULD + The presence availability of the user. Allowable values are "avail", + "away", and "dnd", which map to mere XMPP presence (the user is + available) and the XMPP <show/> values of "away" and "dnd", + respectively; if the status record is not included, the status SHOULD be assumed to be "avail". recommended @@ -684,7 +684,7 @@ _presence._tcp.local. IN NULL raw-binary-data-here txtvers - The version of the TXT record supported by the client. For backwards + The version of the TXT record supported by the client. For backwards compatibility this is hardcoded at "1". This parameter SHOULD be the first one provided, in accordance with the DNS-SD specification. @@ -694,17 +694,17 @@ _presence._tcp.local. IN NULL raw-binary-data-here vc - A flag advertising the user's ability to engage in audio or video - conferencing. If the user is able to engage in audio conferencing, - the string MUST include the "A" character. If the user is able to - engage in video conferencing, the string MUST include the "V" - character. If the user is able to engage in conferencing with more - than one participant, the string MUST include the "C" character. If - the user is not currently engaged in an audio or video conference, - the string MUST include the "!" character. The order of characters + A flag advertising the user's ability to engage in audio or video + conferencing. If the user is able to engage in audio conferencing, + the string MUST include the "A" character. If the user is able to + engage in video conferencing, the string MUST include the "V" + character. If the user is able to engage in conferencing with more + than one participant, the string MUST include the "C" character. If + the user is not currently engaged in an audio or video conference, + the string MUST include the "!" character. The order of characters in the string is immaterial. NOTE: This flag is included only for - backwards-compatibility; implementations SHOULD use the node, ver, - and ext parameters for more robust capabilities discovery as described + backwards-compatibility; implementations SHOULD use the node, ver, + and ext parameters for more robust capabilities discovery as described in the Discovering Capabilities section of XEP-0174. optional @@ -713,10 +713,10 @@ _presence._tcp.local. IN NULL raw-binary-data-here ver - A hashed string that defines the XMPP service discovery (XEP-0030) - identity of the application and the XMPP service discovery features - supported by the application; the value of this record MUST be the - same as that provided via normal XMPP presence (if applicable) in + A hashed string that defines the XMPP service discovery (XEP-0030) + identity of the application and the XMPP service discovery features + supported by the application; the value of this record MUST be the + same as that provided via normal XMPP presence (if applicable) in the 'ver' attribute specified in Entity Capabilities (XEP-0115). recommended diff --git a/xep-0175.xml b/xep-0175.xml index 5100e151..2544e5ce 100644 --- a/xep-0175.xml +++ b/xep-0175.xml @@ -82,21 +82,21 @@
  • Client initiates stream to server.

    ]]>
  • Server replies with stream header.

    ]]>
  • diff --git a/xep-0176.xml b/xep-0176.xml index 01e7795a..87f66e15 100644 --- a/xep-0176.xml +++ b/xep-0176.xml @@ -668,7 +668,7 @@ INITIATOR NAT RESPONDER -

    The session flow is as follows.

    +

    The session flow is as follows.

    urn:ietf:rfc:3264 - Signals support for the SDP offer / answer model + Signals support for the SDP offer / answer model described in RFC 3264 XEP-0176 @@ -957,9 +957,9 @@ Romeo Gateway Juliet ice-udp - A method for negotiation of out-of-band UDP connections - with built-in NAT and firewall traversal, equivalent to - the IETF's Interactive Connectivity Establishment (ICE) + A method for negotiation of out-of-band UDP connections + with built-in NAT and firewall traversal, equivalent to + the IETF's Interactive Connectivity Establishment (ICE) methodology when resulting in the use of UDP as the transport protocol. @@ -991,15 +991,15 @@ Romeo Gateway Juliet - - diff --git a/xep-0177.xml b/xep-0177.xml index 50b8c4f8..9c29ca91 100644 --- a/xep-0177.xml +++ b/xep-0177.xml @@ -411,7 +411,7 @@ INITIATOR RESPONDER - diff --git a/xep-0178.xml b/xep-0178.xml index 63942a03..89551aa7 100644 --- a/xep-0178.xml +++ b/xep-0178.xml @@ -112,23 +112,23 @@
  • Client initiates stream to server.

    ]]>
  • Server replies with stream header.

    ]]>
  • @@ -160,23 +160,23 @@
  • Server and client successfully complete the TLS negotiation and client initiates a new initial stream header to server over the encrypted TCP connection.

    ]]>
  • Server replies with response stream header.

    ]]>
  • @@ -198,21 +198,21 @@
  • If the client certificate contains only one JID, then the client MAY include an authorization identity, but only if it desires to be authorized as a JID other than the address in the client certificate; else it MUST NOT include an authorization identity (this is shown in the following example by setting the XML character data of the <auth/> element to "=").

    = ]]>
  • If the client certificate contains more than one JID, then the client MUST include an authorization identity so that the server can determine which JID to use (this is shown in the following example by setting the XML character data of the <auth/> element to "anVsaWV0QGV4YW1wbGUuY29t", which is the base 64 encoding for "juliet@example.com").

    anVsaWV0QGV4YW1wbGUuY29t ]]>
  • If the client certificate does not contain a JID, then the client MAY include an authorization identity, but only if it desires to be authorized as a JID other than the address specified during SASL negotiation; else it MUST NOT include an authorization identity (this is shown in the following example by setting the XML character data of the <auth/> element to "=").

    = ]]>
  • @@ -274,22 +274,22 @@
  • Server1 initiates stream to server2.

    ]]>
  • Server2 replies with stream header.

    ]]> @@ -328,11 +328,11 @@
  • Else Server2 completes successful TLS negotiation and Server1 sends a new initial stream header to Server2 over the encrypted TCP connection.

    ]]>
  • @@ -341,11 +341,11 @@
  • Server2 replies with stream header.

    ]]> @@ -363,7 +363,7 @@
  • Server1 considers EXTERNAL to be its preferred SASL mechanism. For server-to-server authentication, the <auth/> element MAY include an authorization identity, however a future version of this specification might disallow use of the authorization identity in server-to-server authentication (in the following example, Server1 includes an empty response of "=" as shown in RFC 6120).

    = ]]>

    Interoperability Note: Previous versions of this specification stated that the receiving server always relied on the connecting server's inclusion of the authorization identity. Even though this is no longer required, the connecting server SHOULD include the authorization identity for backward compability.

    diff --git a/xep-0179.xml b/xep-0179.xml index 5ca9fc04..4d93bce1 100644 --- a/xep-0179.xml +++ b/xep-0179.xml @@ -90,7 +90,7 @@ action='session-initiate' initiator='romeo@montague.net/orchard' sid='a73sjjvkla37jfea'> - + @@ -130,10 +130,10 @@ action='transport-accept' initiator='juliet@capulet.com/balcony' sid='a73sjjvkla37jfea'> - @@ -144,7 +144,7 @@

    The syntax and semantics informational message payloads specific to the IAX transport method will be defined in a future version of this specification.

    -
    + @@ -157,7 +157,7 @@

    IAX is a native protocol of the Asterisk PBX. When using the IAX protocol we could easily connect with an Asterisk PBX. There are two scenarios:

    1. We want to reach an internal extension directly (or go to PSTN line through Asterisk). in that case we need a user and password with rights into the PBX and setup into the Jabber client (the Jabber client will act like a softphone). This information has to be given for the final user to the entity. The idea in this scenario isn't so clear because if the jabber client acts like a softphone and we need to call an extension, we coudl just dial the extension without using Jingle.

    2. -
    3. The Asterisk PBX accept incoming calls from IAX. In that case just call the Asterisk like other peer and the Asterisk MUST be properly configured for accepting the 'anonymous' (not an internal user of the PBX) incoming call.

    4. +
    5. The Asterisk PBX accept incoming calls from IAX. In that case just call the Asterisk like other peer and the Asterisk MUST be properly configured for accepting the 'anonymous' (not an internal user of the PBX) incoming call.

    In both cases, the Asterisk PBX has to be logged into the Jabber network and implement the Jingle extension like a channel (Asterisk terminology).

    diff --git a/xep-0181.xml b/xep-0181.xml index 97740614..b808bf4c 100644 --- a/xep-0181.xml +++ b/xep-0181.xml @@ -174,7 +174,7 @@ to='juliet@capulet.com/balcony' type='error'> - @@ -186,7 +186,7 @@ to='juliet@capulet.com/balcony' type='error'> - @@ -198,7 +198,7 @@ to='juliet@capulet.com/balcony' type='error'> - diff --git a/xep-0182.xml b/xep-0182.xml index 61a7e22e..ab43a689 100644 --- a/xep-0182.xml +++ b/xep-0182.xml @@ -66,7 +66,7 @@ ]]> -

    Although the inclusion of application-specific error conditions introduces a great deal of flexibility, it may also lead to confusion regarding possible conditions. Therefore, this document defines a registry of application-specific error conditions, to be maintained by the ®ISTRAR;. In addition, this document registers a namespace of 'urn:xmpp:errors' as a fallback namespace for generalized error conditions that are not specific to a particular protocol (e.g., <stanza-too-big/> as a particular form of the ¬acceptable; condition).

    +

    Although the inclusion of application-specific error conditions introduces a great deal of flexibility, it may also lead to confusion regarding possible conditions. Therefore, this document defines a registry of application-specific error conditions, to be maintained by the ®ISTRAR;. In addition, this document registers a namespace of 'urn:xmpp:errors' as a fallback namespace for generalized error conditions that are not specific to a particular protocol (e.g., <stanza-too-big/> as a particular form of the ¬acceptable; condition).

    diff --git a/xep-0183.xml b/xep-0183.xml index c5876131..d2f0045d 100644 --- a/xep-0183.xml +++ b/xep-0183.xml @@ -49,14 +49,14 @@

    This &TRANSPORT; element MUST include one and only one &CANDIDATE; element per channel specifying the parameters that the initiator believes will be most likely to succeed for that channel. (Note: You have to believe.) This is not necessarily the initiator's preferred address for spiritual communication, but instead is the "address most likely to succeed", i.e., the address that is assumed to be reachable by the vast majority of target entities. (Establishing direct spiritual communication is hard enough as it is.) Here is an example:

    - @@ -81,8 +81,8 @@

    To definitively accept the telepathy transport method, the receiver MUST send a &JINGLE; element with an action of 'transport-accept', specifying the transport method desired.

    - @@ -125,7 +125,7 @@ telepathy - A method for the negotiation of Extra-Sensory Perception (ESP) streams. + A method for the negotiation of Extra-Sensory Perception (ESP) streams. XEP-0183 diff --git a/xep-0185.xml b/xep-0185.xml index 6e55e524..0412586f 100644 --- a/xep-0185.xml +++ b/xep-0185.xml @@ -82,14 +82,14 @@

    In particular, the following algorithm is RECOMMENDED:

    key = HMAC-SHA256 - ( - SHA256(Secret), - { - Receiving Server, ' ', - Originating Server, ' ', - Stream ID - } - ) + ( + SHA256(Secret), + { + Receiving Server, ' ', + Originating Server, ' ', + Stream ID + } + )

    Note the following:

      @@ -137,16 +137,16 @@ key = HMAC-SHA256 ]]>

      The Originating Server now generates a dialback key to be sent to the Receiving Server:

      -key = HMAC-SHA256( - SHA256(secret), +key = HMAC-SHA256( + SHA256(secret), { Receiving server, ' ', Originating server, ' ', Stream ID} ) - = HMAC-SHA256( - SHA256('s3cr3tf0rd14lb4ck'), + = HMAC-SHA256( + SHA256('s3cr3tf0rd14lb4ck'), { 'xmpp.example.com', ' ', 'example.org', ' ', 'D60000229F' } ) - = HMAC-SHA256( - 'a7136eb1f46c9ef18c5e78c36ca257067c69b3d518285f0b18a96c33beae9acc', + = HMAC-SHA256( + 'a7136eb1f46c9ef18c5e78c36ca257067c69b3d518285f0b18a96c33beae9acc', 'xmpp.example.com example.org D60000229F' ) = '37c69b1cf07a3f67c04a5ef5902fa5114f2c76fe4a2686482ba5b89323075643' @@ -170,16 +170,16 @@ key = HMAC-SHA256( ]]>

      The Authoritative Server calculates the valid key for this verify request, using data supplied in the packet and the secret shared with the Originating Server.

      -key = HMAC-SHA256( - SHA256(secret), +key = HMAC-SHA256( + SHA256(secret), { Receiving Server, ' ', Authoritative Server, ' ', Stream ID } ) - = HMAC-SHA256( - SHA256('s3cr3tf0rd14lb4ck'), + = HMAC-SHA256( + SHA256('s3cr3tf0rd14lb4ck'), { 'xmpp.example.com', ' ', 'example.org', ' ', 'D60000229F' } ) - = HMAC-SHA256( - 'a7136eb1f46c9ef18c5e78c36ca257067c69b3d518285f0b18a96c33beae9acc', + = HMAC-SHA256( + 'a7136eb1f46c9ef18c5e78c36ca257067c69b3d518285f0b18a96c33beae9acc', 'xmpp.example.com example.org D60000229F' ) = '37c69b1cf07a3f67c04a5ef5902fa5114f2c76fe4a2686482ba5b89323075643' diff --git a/xep-0192.xml b/xep-0192.xml index ebc833ae..98147fee 100644 --- a/xep-0192.xml +++ b/xep-0192.xml @@ -296,7 +296,7 @@ S2: - Wherefore art thou? -S: +S: Wherefore art thou? diff --git a/xep-0199.xml b/xep-0199.xml index d08f2db5..6d0289c6 100644 --- a/xep-0199.xml +++ b/xep-0199.xml @@ -160,9 +160,9 @@

      Pings can also be used for client-to-client (i.e., end-to-end) pings.

      @@ -171,14 +171,14 @@

      If the pinged entity supports the ping namespace, it SHOULD return an IQ-result:

      ]]>

      If the pinged entity does not support the ping namespace, it MUST return a &unavailable; error:

      @@ -194,7 +194,7 @@ diff --git a/xep-0202.xml b/xep-0202.xml index c0f8d07d..96642434 100644 --- a/xep-0202.xml +++ b/xep-0202.xml @@ -75,7 +75,7 @@
      • The 'jabber:iq:time' namespace specified in XEP-0090 requires communication of time only in UTC. While this is useful for UTC synchronization (e.g., if a client wants to synchronize with its server), it does not enable one entity to know the other entity's offset from UTC.

      • The timezone may be specified in a natural language (English) name via the <tz/> element, but not in a numeric offest. The name may be not understood by the requesting entity since there is no reliable and canonical list of timezone names A list of English-language time zone names and abbreviations is located at <http://www.timeanddate.com/library/abbreviations/timezones/>, but it is not a canonical list and there are no such localized lists for all languages. and in practice the XML character data of the <tx/> element is effectively useless.

      • -
      • The responding entity may provide a user-friendly datetime format via the <display/> element, but this too is effectively useless since datetime formats vary widely by culture and nation.

      • +
      • The responding entity may provide a user-friendly datetime format via the <display/> element, but this too is effectively useless since datetime formats vary widely by culture and nation.

      • The 'jabber:iq:time' namespace specified in XEP-0090 (first developed in 1999 or 2000) is not consistent with the recommended date and time profiles for XMPP protocols defined in &xep0082; (written in 2003).

      To overcome these limitations, this document defines a replacement for XEP-0090 which enables communication of an entity's UTC time and numeric time zone offset while adhering to XEP-0082.

      diff --git a/xep-0204.xml b/xep-0204.xml index 30125b6f..95d6df63 100644 --- a/xep-0204.xml +++ b/xep-0204.xml @@ -86,16 +86,16 @@

      - While the value of IM and Multi-user chat is obvious to anyone reading this JEP, the potential for ambiguity and miscommunication - (particularly in a structured data environment) may not be. There are several domains where text communication is accompanied - by a need to exchange structured data, e.g.: a help desk dealing with trouble tickets; a financial institution dealing with trades (buy and sell orders), - an emergency scenario with first responders. The purpose of this JEP is to define a set of Collaborative Data Object (CDO) protocols - that support the exchange of structured data objects. These data objects are explicitly described by a declarative language, instantiated as - structured XML, and transported as extended XMPP stanzas. This JEP defines a protocol for exchanging these structured CDOs as + While the value of IM and Multi-user chat is obvious to anyone reading this JEP, the potential for ambiguity and miscommunication + (particularly in a structured data environment) may not be. There are several domains where text communication is accompanied + by a need to exchange structured data, e.g.: a help desk dealing with trouble tickets; a financial institution dealing with trades (buy and sell orders), + an emergency scenario with first responders. The purpose of this JEP is to define a set of Collaborative Data Object (CDO) protocols + that support the exchange of structured data objects. These data objects are explicitly described by a declarative language, instantiated as + structured XML, and transported as extended XMPP stanzas. This JEP defines a protocol for exchanging these structured CDOs as part of a session conversation (either IM or Multi-User Chat) based around a strict synchronization model. In a strict synchronization model, participants will receive every change made to a CDO. An alternative synchronization model, a lazy synchronization - model is also described to support users who either do not wish, or are not able because of infrastructure limitations, to receive the CDO stanzas + model is also described to support users who either do not wish, or are not able because of infrastructure limitations, to receive the CDO stanzas in real time and wish to explicitly request them.

      @@ -105,8 +105,8 @@
      1. Determine the ability for clients and servers to support and exchange collaborative data objects
      2. Enable the exchange of structured data objects between clients
      3. -
      4. Define a protocol that supports the synchronization of structure data among participating clients. Currently - the protocol is based on a strict synchronization model where users will receive every change made to a CDO. +
      5. Define a protocol that supports the synchronization of structure data among participating clients. Currently + the protocol is based on a strict synchronization model where users will receive every change made to a CDO. Future versions of the protocol may contain a lazy synchronization model that may relax the current approach.
      6. Operate in both private and group chat
      7. @@ -207,11 +207,11 @@

        - Lazy synchronization is a proposed alternate synchronization scheme that is appropriate for entities who either do - not wish, or are not able because of infrastructure limitations, to receive the CDO stanzas in real time and wish to - explicitly request them. Under lazy synchronization, entities are only notified that CDOs have been created, retired or - that the existing CDOs that they keep track of have been updated and are now outdated. The details behind these - events are not transmitted. Explicit action is required to resynchronized to the current state for any specific CDO identifier or + Lazy synchronization is a proposed alternate synchronization scheme that is appropriate for entities who either do + not wish, or are not able because of infrastructure limitations, to receive the CDO stanzas in real time and wish to + explicitly request them. Under lazy synchronization, entities are only notified that CDOs have been created, retired or + that the existing CDOs that they keep track of have been updated and are now outdated. The details behind these + events are not transmitted. Explicit action is required to resynchronized to the current state for any specific CDO identifier or change to the strict synchronization scheme. Lazy synchronization is set per endpoint (groupchat room).

        @@ -259,10 +259,10 @@ <body> element.

        - This is a new meeting @@ -446,7 +446,7 @@
        • 0 or unbounded (0..*) - <attribute> elements. + <attribute> elements. The name attribute corresponds to the name of the attribute in the CDO-DL. Note: All attributes are sent as part of an item, even those not changed when using the updateStyle exclusive.

          @@ -554,19 +554,19 @@ A CDO client can query the server to determine the specific state of a particula - - Bob, Jim, Mike, Added Dave - + @@ -585,15 +585,15 @@ A CDO client can query the server to determine the specific state of a particula - - ... @@ -612,11 +612,11 @@ If desired, Client A can then query the Server for the details on the state of a from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - Technical Exchange Meeting @@ -626,7 +626,7 @@ If desired, Client A can then query the Server for the details on the state of a ]]>

          Here client A, has created a packetID and set event=create in both <data-sync> and <item>. The version MUST be set to zero

          -Next, the message is intercepted by Server X. Server X is the IM server that both clients are connected to. When the server receives +Next, the message is intercepted by Server X. Server X is the IM server that both clients are connected to. When the server receives the message, it MUST increment the version number and assign a uuid for both the <data-sync> and <item>. Once processed Server X MUST send a copy of the message back to client A as a receipt that the message has been processed by Server X and forward the message to client B

          @@ -636,16 +636,16 @@ Server X MUST send a copy of the message back to client A as a receipt that the from='joe@mitre.org/Desktop' type='chat' xml:lang='en'> - - Technical Exchange Meeting @@ -658,16 +658,16 @@ Server X MUST send a copy of the message back to client A as a receipt that the from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - - Technical Exchange Meeting @@ -684,11 +684,11 @@ Server X MUST send a copy of the message back to client A as a receipt that the from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - Meeting @@ -698,7 +698,7 @@ Server X MUST send a copy of the message back to client A as a receipt that the ]]>

          Here client A, has set event=update on the <data-sync> and event=create on the new <item>. The version MUST be set to zero on the new item. -The message is intercepted by Server X. Server X is the IM server that both clients are connected to. When the server receives the message, it MUST increment +The message is intercepted by Server X. Server X is the IM server that both clients are connected to. When the server receives the message, it MUST increment the version number and assign a uuid for the new <item>

          @@ -710,11 +710,11 @@ Next, Server X MUST send a copy of the message back to client A as a receipt tha from='joe@mitre.org/Desktop' type='chat' xml:lang='en'> - Meeting @@ -728,11 +728,11 @@ Next, Server X MUST send a copy of the message back to client A as a receipt tha from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - Meeting @@ -750,15 +750,15 @@ Next, Server X MUST send a copy of the message back to client A as a receipt tha from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - - 2006-07-24T14:55:00 @@ -766,11 +766,11 @@ Next, Server X MUST send a copy of the message back to client A as a receipt tha ]]>

          -Here client A, has set event=update on the <data-sync> and event=update on the changed <item>. Note the version is set to the current +Here client A, has set event=update on the <data-sync> and event=update on the changed <item>. Note the version is set to the current version being edited, in this case 1, and both the <item> and <data-sync> have an existing uuid.

          -The message is intercepted by Server X. Server X is the IM server that both clients are connected to. When the server receives the message, it +The message is intercepted by Server X. Server X is the IM server that both clients are connected to. When the server receives the message, it MUST increment the version number and assign a uuid for the new <item>

          @@ -782,18 +782,18 @@ Next, Server X MUST send a copy of the message back to client A as a receipt tha from='joe@mitre.org/Desktop' type='chat' xml:lang='en'> - - 2006-07-24T14:55:00 - + ]]> @@ -803,32 +803,32 @@ Next, Server X MUST send a copy of the message back to client A as a receipt tha from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - - 2006-07-24T14:55:00 - + ]]>

          Once this is completed, both clients have a synchronized CDO message with an updated item. The updated item has the version number incremented.

          - There are two types of behaviors associated with an item update: inclusive and exclusive. For an inclusive update, the content of the item element - in the CDO data synchronization packet is considered to be fully representative of the value that item will have at the end of the update operation. - This behavior results in previously set values for an item being destroyed if they are not repeated for each item update. For an exclusive update, the - content of the item element in the CDO data synchronization packet is considered to contain only the values to be modified as a result of the update + There are two types of behaviors associated with an item update: inclusive and exclusive. For an inclusive update, the content of the item element + in the CDO data synchronization packet is considered to be fully representative of the value that item will have at the end of the update operation. + This behavior results in previously set values for an item being destroyed if they are not repeated for each item update. For an exclusive update, the + content of the item element in the CDO data synchronization packet is considered to contain only the values to be modified as a result of the update operation. This behavior results in previously set values for an item being carried over if they are not explicitly contradicted in each subsequent item update.

          - Assume that client A has created a CDO cdo_1. This CDO has an item item_1 with the attribute named attr_1 set. If A wants to update item_1 with a value + Assume that client A has created a CDO cdo_1. This CDO has an item item_1 with the attribute named attr_1 set. If A wants to update item_1 with a value for the attribute named attr_2 without destroying the previously set value for attr_1, the following data synchronization packets are equivalent:

          - - ]]>

          -Here client A, has set event=update on the <data-sync> and event=delete on the changed <item>. Note the version is set to the current +Here client A, has set event=update on the <data-sync> and event=delete on the changed <item>. Note the version is set to the current version being deleted, in this case 2, and both the <item> and <data-sync> have an existing uuid.

          -The message is intercepted by Server X. Server X is the IM server that both clients are connected to. Server X MUST send a copy of the message +The message is intercepted by Server X. Server X is the IM server that both clients are connected to. Server X MUST send a copy of the message back to client A as a receipt that the message has been processed by Server X and forward the message to client B

          - - - + + ]]> @@ -914,17 +914,17 @@ back to client A as a receipt that the message has been processed by Server X an from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - - - + ]]> @@ -943,11 +943,11 @@ When client A wishes to retire an entire existing CDO, he sends the following in from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - @@ -956,7 +956,7 @@ When client A wishes to retire an entire existing CDO, he sends the following in Here client A, has set event=retire on the <data-sync>.

          -The message is intercepted by Server X. Server X is the IM server that both clients are connected to. Server X MUST send a copy of the +The message is intercepted by Server X. Server X is the IM server that both clients are connected to. Server X MUST send a copy of the message back to client A as a receipt that the message has been processed by Server X and forward the message to client B:

          - @@ -980,11 +980,11 @@ message back to client A as a receipt that the message has been processed by Ser from='bob@mitre.org/Laptop' type='chat' xml:lang='en'> - @@ -994,30 +994,30 @@ message back to client A as a receipt that the message has been processed by Ser

          -The error reporting mechanism for this specification follows the recommendations as set forth in the XMPP Core RFC. As such, when an error condition is detected, -a stanza-related error must be generated and returned to sending entity. The error condition should be described using an XMPP general condition and CDO specific +The error reporting mechanism for this specification follows the recommendations as set forth in the XMPP Core RFC. As such, when an error condition is detected, +a stanza-related error must be generated and returned to sending entity. The error condition should be described using an XMPP general condition and CDO specific condition. Further amplification to the error condition should be provided by including the applicable subset of the data-sync message which caused the error.

          -Error types other than continue (cancel, modify, wait) disrupt the normal processing of CDO data-synch messages and only the associate error message +Error types other than continue (cancel, modify, wait) disrupt the normal processing of CDO data-synch messages and only the associate error message will be issued by a supporting server.

          -Addition of only the applicable subset of the data-sync message in an error stanza is meant to assist the sending entity in isolating what directive in the message caused the error. -Most CDO specific conditions include sufficient metadata to enable the sender to isolate the cause, but it is possible for the sender to generate messages in which this metadata is +Addition of only the applicable subset of the data-sync message in an error stanza is meant to assist the sending entity in isolating what directive in the message caused the error. +Most CDO specific conditions include sufficient metadata to enable the sender to isolate the cause, but it is possible for the sender to generate messages in which this metadata is not present. In this case, it may not be possible for the sender to determine the message subset causing the error unless that subset is included in the error.

          - Winterfair preparation - Imperial waltz @@ -1029,10 +1029,10 @@ The first potential cause for an error in a data syonchronization packet is the

          - @@ -1041,18 +1041,18 @@ The first potential cause for an error in a data syonchronization packet is the ]]>

          - The second potential cause for an error is a child item element. For an item of event type create, the sender is not required to nominate a UUID for the item. If multiple items are used - in this fashion, it is not possible for the item related to the error to be identified by reference. The only way to indicate to the sender the item related to the error is by isolating that + The second potential cause for an error is a child item element. For an item of event type create, the sender is not required to nominate a UUID for the item. If multiple items are used + in this fashion, it is not possible for the item related to the error to be identified by reference. The only way to indicate to the sender the item related to the error is by isolating that item in the error stanza. As a result, the subset for this case is the data-sync element with all child item elements removed except the item related to the error.

          - - Imperial waltz @@ -1452,7 +1452,7 @@ The first potential cause for an error in a data syonchronization packet is the

          - The CDO specific condition "invalid-constraint" enables the server to indicate logical invalidity of a data-sync packet. The use of a single condition for this purpose provides a consistent + The CDO specific condition "invalid-constraint" enables the server to indicate logical invalidity of a data-sync packet. The use of a single condition for this purpose provides a consistent reporting mechanism to the sender, but the invalidity must be described with the "type" attribute as follows:

          @@ -1584,9 +1584,9 @@ The first potential cause for an error in a data syonchronization packet is the

          -It is possible for a notional conflict to exist between two clients attempting to update a CDO instance. In this case, two separate clients submit data sync packets -containing at least one overlapping item. When this occurs, the first packet to arrive at the framework is executed, but the error information -reported back to the client of the second packet MAY be extended to describe the notional conflict. This additional error information is meant to facilitate +It is possible for a notional conflict to exist between two clients attempting to update a CDO instance. In this case, two separate clients submit data sync packets +containing at least one overlapping item. When this occurs, the first packet to arrive at the framework is executed, but the error information +reported back to the client of the second packet MAY be extended to describe the notional conflict. This additional error information is meant to facilitate collaboration between the clients.

          The additional error information provide includes:

          @@ -1609,8 +1609,8 @@ collaboration between the clients.

          - To properly handle the protocol described in this JEP. A server side service will need to be able to process CDO packets and IQ messages. - This means at a minimum, the service will need to be able to: + To properly handle the protocol described in this JEP. A server side service will need to be able to process CDO packets and IQ messages. + This means at a minimum, the service will need to be able to:

          1. Filter for data-sync and IQ protocol extentions as described above
          2. @@ -1618,7 +1618,7 @@ collaboration between the clients.
          3. Provide an underlying framework that can manage versioning of data-sync messages. If designed accordingly, it may be possible for this framework to be re-used by clients as well.

          - Additionally, a server MUST ignore any 'to' address on a cdo related IQ "set", and MUST treat any cdo IQ "set" as applying to the sender. + Additionally, a server MUST ignore any 'to' address on a cdo related IQ "set", and MUST treat any cdo IQ "set" as applying to the sender.

          @@ -1631,17 +1631,17 @@ collaboration between the clients.
        • Provide the ability to construct data-sync related IQ messages
        • - Additionally, a client SHOULD check the "from" address of a cdo query (incoming IQ of type "result" containing a cdo type) to ensure that it is - from a trusted source; specifically, the stanza MUST either have no 'from' attribute (i.e., implicitly from the server) or have a 'from' attribute whose - value matches the user's bare JID (of the form <user@domain>) or full JID (of the form <user@domain/resource>); otherwise, the client - SHOULD ignore the cdo query result. + Additionally, a client SHOULD check the "from" address of a cdo query (incoming IQ of type "result" containing a cdo type) to ensure that it is + from a trusted source; specifically, the stanza MUST either have no 'from' attribute (i.e., implicitly from the server) or have a 'from' attribute whose + value matches the user's bare JID (of the form <user@domain>) or full JID (of the form <user@domain/resource>); otherwise, the client + SHOULD ignore the cdo query result.

          - No form of authentication or authorization is defined by this specification. However, if required, RFC 3920 describes channel encryption and + No form of authentication or authorization is defined by this specification. However, if required, RFC 3920 describes channel encryption and strong authentication via TLS and SASL that may fulfill this requirement.

          @@ -1664,7 +1664,7 @@ collaboration between the clients. - - - @@ -1727,9 +1727,9 @@ collaboration between the clients. - @@ -1757,15 +1757,15 @@ collaboration between the clients. - @@ -1792,9 +1792,9 @@ collaboration between the clients. - @@ -1831,10 +1831,10 @@ collaboration between the clients. The pattern associated with this restriction - is intended to model a simple XPath statement - restricted only to element names. The included - regular expression is not fully representative - of all legal XML element names and should be + is intended to model a simple XPath statement + restricted only to element names. The included + regular expression is not fully representative + of all legal XML element names and should be extended. diff --git a/xep-0205.xml b/xep-0205.xml index 225cf4bf..03dda302 100644 --- a/xep-0205.xml +++ b/xep-0205.xml @@ -185,7 +185,7 @@

          This entire document is about security.

          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          The ®ISTRAR; includes <resource-limit-exceeded/> and <too-many-stanzas/> in its registry of application-specific error conditions (see &APPERRORS;), where the element is qualified by the 'urn:xmpp:errors' namespace as described in &xep0182;.

          @@ -203,7 +203,7 @@ urn:xmpp:errors too-many-stanzas - A connected client has attempted to send multiple stanzas to + A connected client has attempted to send multiple stanzas to too many different intended recipients in a given time period. XEP-0205 diff --git a/xep-0206.xml b/xep-0206.xml index e4c0c7f1..f74e0651 100644 --- a/xep-0206.xml +++ b/xep-0206.xml @@ -168,7 +168,7 @@ Content-Length: 231 - biwsbj1qdWxpZXQscj1vTXNUQUF3QUFBQU1BQUFBTlAwVEFBQUFBQUJQVTBBQQ== @@ -355,15 +355,15 @@ Content-Length: 68 - - - diff --git a/xep-0209.xml b/xep-0209.xml index 5dcdd0e9..1fb8a296 100644 --- a/xep-0209.xml +++ b/xep-0209.xml @@ -71,7 +71,7 @@ ]]> - +

          The result of the query will list the metacontact membership for roster entries belonging to the queried account.

          diff --git a/xep-0211.xml b/xep-0211.xml index ba8137c7..355315e5 100644 --- a/xep-0211.xml +++ b/xep-0211.xml @@ -120,9 +120,9 @@

          This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          -

          This document requires no interaction with the ®ISTRAR;.

          +

          This document requires no interaction with the ®ISTRAR;.

          diff --git a/xep-0212.xml b/xep-0212.xml index 452bfe34..a783e27a 100644 --- a/xep-0212.xml +++ b/xep-0212.xml @@ -115,9 +115,9 @@

          This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          -

          This document requires no interaction with the ®ISTRAR;.

          +

          This document requires no interaction with the ®ISTRAR;.

          diff --git a/xep-0213.xml b/xep-0213.xml index 6b36e8a2..3139fe92 100644 --- a/xep-0213.xml +++ b/xep-0213.xml @@ -113,9 +113,9 @@

          This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          -

          This document requires no interaction with the ®ISTRAR;.

          +

          This document requires no interaction with the ®ISTRAR;.

          diff --git a/xep-0214.xml b/xep-0214.xml index cbdd47b1..e4acfe30 100644 --- a/xep-0214.xml +++ b/xep-0214.xml @@ -300,7 +300,7 @@ ]]>

          The Item ID is set to 1, signifying the first revision for this file. Subsequent revisions/items will have incremented ID values, like one would see in a versioning system such as CVS or SVN. Implementations MAY follow this convention, but are not required to do so. For example, a given implementation may instead mark revisions using version numbers ("Beta 1", "6.2", etc) or use other arbitrary strings. However, no two revisions of a given file may share the same ID.

          -

          Node IDs MAY take the form of "path/to/file.ext", rather than the randomized string "a6190c5d38e22452041d1c5798eff3f5" provided in the above use case. For example, Juliet's sonnet MAY instead use a Node ID of "juliets_sonnets/sonnet.txt", as long as this ID is unique within the PubSub server. Randomized strings are used in this document to illustrate that Node IDs SHOULD NOT be used for providing information about files.

          +

          Node IDs MAY take the form of "path/to/file.ext", rather than the randomized string "a6190c5d38e22452041d1c5798eff3f5" provided in the above use case. For example, Juliet's sonnet MAY instead use a Node ID of "juliets_sonnets/sonnet.txt", as long as this ID is unique within the PubSub server. Randomized strings are used in this document to illustrate that Node IDs SHOULD NOT be used for providing information about files.

          Here is a listing of the possible metadata in a file revision (Item), each field is OPTIONAL:

          @@ -399,9 +399,9 @@ - +

          Juliet has revised her sonnet and wishes to publish the new version, while still leaving the original copy available for retrieval. To do this, she inserts a new Item, representing her new revision, into the file's Node:

          - +

          Since PubSub is used for the File Listing, the access models described in &xep0060; and &xep0248; MUST be followed. Users MUST NOT be able to view or control information in the File Listing to which they do not have access.

          - +

          If user access to files is restricted, the Mirror servers and the PubSub server MUST be able to synchronize these restrictions between them. See Security Considerations.

          diff --git a/xep-0215.xml b/xep-0215.xml index 1a088a5c..98f1694e 100644 --- a/xep-0215.xml +++ b/xep-0215.xml @@ -228,12 +228,12 @@ transport='udp' type='turn' username='auu98sjl2wk3e9fjdsl7'/> - @@ -280,18 +280,18 @@ This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          -

          This document requires no interaction with the ®ISTRAR;.

          +

          This document requires no interaction with the ®ISTRAR;.

          diff --git a/xep-0219.xml b/xep-0219.xml index d5c99580..a2e8d999 100644 --- a/xep-0219.xml +++ b/xep-0219.xml @@ -92,7 +92,7 @@ from='juliet@capulet.lit/balcony' to='capulet.lit' id='check1'> - ]]>
          @@ -102,7 +102,7 @@ from='capulet.lit' to='montague.lit' id='check2'> - @@ -113,19 +113,19 @@ from='montague.lit' to='juliet@capulet.lit' id='check2'> - - - @@ -136,23 +136,23 @@ from='capulet.lit' to='juliet@capulet.lit/balcony' id='check1'> - - - - @@ -169,7 +169,7 @@ from='sender' to='respondent' id='foo'> - @@ -195,12 +195,12 @@ from='respondent' to='sender' id='foo'> - @@ -245,7 +245,7 @@ -

          Trust levels vary. The administrator of a server may have complete trust in the server they run. A user of a friend's server may have significant trust in the server. A user of a server in a military environment may have no choice of server and may trust that their superiors are doing the right thing. And so on. While the trust that a user places in a server may or may not be warranted, this document uses the level of trust that exists to bootstrap greater trust in the entire communications path.

          +

          Trust levels vary. The administrator of a server may have complete trust in the server they run. A user of a friend's server may have significant trust in the server. A user of a server in a military environment may have no choice of server and may trust that their superiors are doing the right thing. And so on. While the trust that a user places in a server may or may not be warranted, this document uses the level of trust that exists to bootstrap greater trust in the entire communications path.

          Even if all the hops are encrypted, the traffic may still be available in cleartext to a representative of an Internet Service Provider ("Isaac"), a representative of the justice system ("Justin"), or a malicious attacker ("Mallory") that has gained access to any of the servers along the communications path. The protocol described herein is decidedly NOT a substitute for end-to-end encryption technologies such as &xep0116;.

          @@ -253,7 +253,7 @@
          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          diff --git a/xep-0221.xml b/xep-0221.xml index 49ef18ba..b59f418a 100644 --- a/xep-0221.xml +++ b/xep-0221.xml @@ -118,7 +118,7 @@ -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          diff --git a/xep-0224.xml b/xep-0224.xml index 644ce35c..3b12aa03 100644 --- a/xep-0224.xml +++ b/xep-0224.xml @@ -103,7 +103,7 @@

          If an entity wishes to receive the attention extension, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of "urn:xmpp:attention:0":

          @@ -111,7 +111,7 @@ ]]> diff --git a/xep-0225.xml b/xep-0225.xml index ee214036..03c13fd0 100644 --- a/xep-0225.xml +++ b/xep-0225.xml @@ -65,7 +65,7 @@
        • The 'from' address of the initial stream header SHOULD be the "default" hostname of the component.
        • The JID asserted by the end entity (in this case a component) during STARTTLS negotiation and SASL negotiation MUST be of the form <domain> in conformance with the definition of a domain identifier from XMPP Core.
        • If a "simple user name" is included in accordance with the chosen SASL mechanism, it MUST be of the form <domain> in conformance with the definition of a domain identifier from XMPP Core.
        • - +

          The protocol defined in XEP-0114 depended on use of the 'to' address in the stream header to specify the hostname of the component. By contrast, client-to-server connections use stream establishment is followed by binding of a resource to the stream (in fact multiple resources can be bound to the stream). This protocol emulates client-to-server connections by using a hostname binding process that is similar to the resource binding process specified in XMPP Core.

          @@ -127,7 +127,7 @@ S: ]]>
          -

          This protocol improves upon the earlier component protocol defined in XEP-0114 by specifying the use of Transport Layer Security (TLS) for channel encryption and the Simple Authentication and Security Layer (SASL) for authentication. Because this protocol re-uses the XML stream establishment processes defined in XMPP Core, the security considerations from RFC 3920 and RFC 6120 apply to this protocol as well.

          +

          This protocol improves upon the earlier component protocol defined in XEP-0114 by specifying the use of Transport Layer Security (TLS) for channel encryption and the Simple Authentication and Security Layer (SASL) for authentication. Because this protocol re-uses the XML stream establishment processes defined in XMPP Core, the security considerations from RFC 3920 and RFC 6120 apply to this protocol as well.

          This document requires no interaction with &IANA;.

          diff --git a/xep-0227.xml b/xep-0227.xml index 5aa40e7c..db9c0eeb 100644 --- a/xep-0227.xml +++ b/xep-0227.xml @@ -127,7 +127,7 @@

          An importing server MAY automatically adjust its list of virtual hosts to fit the ones present in the data being imported. If it does not, it SHOULD notify the operator about any mismatch.

          - @@ -136,7 +136,7 @@ [ ... ] - + ]]> @@ -177,7 +177,7 @@ - + ]]> @@ -204,7 +204,7 @@ - + ]]> @@ -223,7 +223,7 @@ - + ]]> @@ -240,7 +240,7 @@ - + ]]> @@ -271,7 +271,7 @@ - + ]]> @@ -294,7 +294,7 @@ from='mercutio@montague.net'/> - + ]]>
          diff --git a/xep-0229.xml b/xep-0229.xml index 124a8e8b..7fa4f44e 100644 --- a/xep-0229.xml +++ b/xep-0229.xml @@ -45,7 +45,7 @@
          -

          If the receiving entity (server) supports the LZW algorithm, it MUST include a <method/> element whose XML character data is "lzw" in the compression stream feature, as follows.

          +

          If the receiving entity (server) supports the LZW algorithm, it MUST include a <method/> element whose XML character data is "lzw" in the compression stream feature, as follows.

          diff --git a/xep-0230.xml b/xep-0230.xml index d1438116..d3a6998d 100644 --- a/xep-0230.xml +++ b/xep-0230.xml @@ -124,8 +124,8 @@ ]]>

          When the requesting entity goes offline, the responding entity will receive unavailable presence.

          ]]>

          The responding entity then MUST NOT send further notifications.

          @@ -136,11 +136,11 @@
          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          -

          This document requires no interaction with the ®ISTRAR;.

          +

          This document requires no interaction with the ®ISTRAR;.

          diff --git a/xep-0231.xml b/xep-0231.xml index ca0b623a..1b7075bc 100644 --- a/xep-0231.xml +++ b/xep-0231.xml @@ -166,7 +166,7 @@ id='get-data-1' to='ladymacbeth@shakespeare.lit/castle' type='get'> - ]]> @@ -176,7 +176,7 @@ id='get-data-1' to='doctor@shakespeare.lit/pda' type='result'> - @@ -226,7 +226,7 @@

          The following example illustrates the format (line endings are provided for readability only).

          @@ -272,7 +272,7 @@
          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          diff --git a/xep-0232.xml b/xep-0232.xml index 56262cf7..32b67e2c 100644 --- a/xep-0232.xml +++ b/xep-0232.xml @@ -131,7 +131,7 @@ -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          diff --git a/xep-0234.xml b/xep-0234.xml index 5119f2e8..60b4e0a6 100644 --- a/xep-0234.xml +++ b/xep-0234.xml @@ -320,7 +320,7 @@ test.txt 2015-07-26T21:46:00 6144 - w0mcJylzCn+AfvuGdqkty2+KP48= ]]>
          @@ -440,7 +440,7 @@ Initiator Responder test.txt 6144 - w0mcJylzCn+AfvuGdqkty2+KP48= @@ -490,7 +490,7 @@ Initiator Responder test.txt 6144 - w0mcJylzCn+AfvuGdqkty2+KP48= @@ -541,7 +541,7 @@ Initiator Responder - w0mcJylzCn+AfvuGdqkty2+KP48= @@ -589,7 +589,7 @@ Initiator Responder second-file.txt text/plain 6144 - w0mcJylzCn+AfvuGdqkty2+KP48= @@ -637,7 +637,7 @@ Initiator Responder - w0mcJylzCn+AfvuGdqkty2+KP48= @@ -674,7 +674,7 @@ Initiator Responder action='session-terminate' sid='a73sjjvkla37jfea'> - + ]]>
          @@ -689,7 +689,7 @@ Initiator Responder sid='a73sjjvkla37jfea'> - + ]]> @@ -713,7 +713,7 @@ Initiator Responder action='session-terminate' sid='a73sjjvkla37jfea'> - + ]]> @@ -743,7 +743,7 @@ a=file-range:-<(offset + length) | *>]]>
          test.txt 2015-07-26T21:46:00 6144 - w0mcJylzCn+AfvuGdqkty2+KP48= @@ -766,8 +766,8 @@ a=file-range:1024-*]]>
          - ]]> @@ -785,11 +785,11 @@ a=file-range:1024-*]]> - - w0mcJylzCn+AfvuGdqkty2+KP48= @@ -804,12 +804,12 @@ a=file-range:1024-*]]> - - kHp5RSzW/h7Gm1etSf90Mr5PC/k= diff --git a/xep-0237.xml b/xep-0237.xml index 760ae30a..2c35e3ec 100644 --- a/xep-0237.xml +++ b/xep-0237.xml @@ -307,7 +307,7 @@ S: -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          diff --git a/xep-0238.xml b/xep-0238.xml index 33d1b3aa..5464cf59 100644 --- a/xep-0238.xml +++ b/xep-0238.xml @@ -512,7 +512,7 @@

          The type4.lit service understands the server dialback protocol but since it requires STARTTLS at this point in the stream negotiation it returns a stream error to the type1.lit service, which should be <not-authorized/>.

          - @@ -581,7 +581,7 @@

          The type5.lit service understands the server dialback protocol but since it requires STARTTLS at this point in the stream negotiation it returns a stream error to the type1.lit service, which should be <not-authorized/>.

          - @@ -649,7 +649,7 @@

          The type6.lit service does not accept dialback negotiations so it returns a ¬authorized; stream error and closes the stream.

          - @@ -3769,15 +3769,15 @@
          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          -

          This document requires no interaction with the ®ISTRAR;.

          +

          This document requires no interaction with the ®ISTRAR;.

          -

          Thanks to Philipp Hancke, Norman Rasmussen, and Tomasz Sterna for their feedback.

          +

          Thanks to Philipp Hancke, Norman Rasmussen, and Tomasz Sterna for their feedback.

          diff --git a/xep-0240.xml b/xep-0240.xml index d66cbdfc..37d0ef9c 100644 --- a/xep-0240.xml +++ b/xep-0240.xml @@ -43,7 +43,7 @@

          The RECOMMENDED format is as follows.

          ]]> diff --git a/xep-0241.xml b/xep-0241.xml index 42fa9da8..b69acc30 100644 --- a/xep-0241.xml +++ b/xep-0241.xml @@ -386,7 +386,7 @@ @@ -396,7 +396,7 @@ diff --git a/xep-0242.xml b/xep-0242.xml index 40b112c1..06aae58d 100644 --- a/xep-0242.xml +++ b/xep-0242.xml @@ -88,9 +88,9 @@

          This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          -

          This document requires no interaction with the ®ISTRAR;.

          +

          This document requires no interaction with the ®ISTRAR;.

          diff --git a/xep-0243.xml b/xep-0243.xml index 238b9080..dac5d394 100644 --- a/xep-0243.xml +++ b/xep-0243.xml @@ -95,9 +95,9 @@

          This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

          -

          This document requires no interaction with &IANA;.

          +

          This document requires no interaction with &IANA;.

          -

          This document requires no interaction with the ®ISTRAR;.

          +

          This document requires no interaction with the ®ISTRAR;.

          diff --git a/xep-0244.xml b/xep-0244.xml index 4dd74de6..b3fcad1e 100644 --- a/xep-0244.xml +++ b/xep-0244.xml @@ -90,7 +90,7 @@

          &xep0050; became a popular and widespread XMPP Protocol Extension to execute functions on a remote systems. It is supported by many XMPP client and service implementations. To date almost all of its implementations rely on &xep0004; to be the data container. However Ad-Hoc Commands is explicitly designed and mentioned to be used in combination with other data containers, too. This applies for the cases where the Data Forms specification does not fit the needs, for example the Data Forms can be too restrictive on strong typing of data (see Section 1.2).

          The intention of the present XEP is to define a data container for the cases where Data Forms is not applicable or not optimal. The data container defined herein (IO Data) is very generic and discoverable. It is intended to be used for other purposes than Data Forms.

          - +

          The Data Forms data container has certain restrictive limitations:

            @@ -100,7 +100,7 @@

          The limitations of Data Forms are not bad. They are good for the special use case a client has to render a graphical representation of the service. In HTML the correlative is a HTML form. For a chat client developer this makes it plain and simple to develop a generic graphical client implementation with some simple text-input fields.

          - +

          According to current standards it is not supported to encapsulate more complex data in the Data Forms data container. For example it is not possible to encapsulate a complete XML Document - the real "generic" data container - in the Data Forms data container, unless you encode the XML Document as xs:string – which would be considered bad practice.

          However specialized clients are developed to make use of the service oriented architecture of XMPP. An example is given here: a XMPP client implementation reflects an Application Programming Interface (API) with an XMPP services by making use of Ad-Hoc Commands.

          @@ -113,29 +113,29 @@ function = service.getFunction("getXmlFile"); // Check if this Ad-Hoc Command supports the IO Data XEP? if (function instanceof IoDataFunction) { - + // Discover the input and output XML Schemata - required only once! schemata = function.getIoSchemata(); - + // Dynamically marshal an API for the input and output - required only once! inputOutputFactory = new IoFactory( schemata ); - + // Create and set the input input1 = inputOutputFactory.createInputObject(); input1.setFileName("doc-ID-011021"); - + // Invoke the function and get the output result1 = function.invoke(input1); output1 = inputOutputFactory.getOutputObject(result1); title1 = output1.getDocumentTitle(); - + // Next document input2 = inputOutputFactory.createInputObject(); input2.setFileName("doc-ID-833423"); result2 = function.invoke(input2); output2 = inputOutputFactory.getOutputObject(result2); title2 = output1.getDocumentTitle(); - + ... }]]>

          The limitations of Data Forms make it impossible to define and handshake these actions clearly and precisely and without confusing existing and future implementations for the following reasons:

          @@ -149,7 +149,7 @@ if (function instanceof IoDataFunction) {

          However, Jabber-RPC and SOAP over XMPP lack certain functionality that is important for flexible, simple and robust Web Services. Because of the limited expressiveness of XML-RPCs data types the Jabber-RPC is not suitable for complex functionality, similar to the limitations of Data Forms. While SOAP over XMPP supports complex data types it lacks an obvious mechanism for asynchronous usage. For example it has no default stateful design: there is no sessionid like in Ad-Hoc Commands. Beside this SOAP brings in severe complexity (XML associated abstractions) that was required for the primary transport layer HTTP. This complexity is not required because XMPP does already implement the required XML associated abstractions. In addition to that there are other issues that argument against SOAP. For example to date most HTTP SOAP implemented services are only compatible with a subset of SOAP libraries.

          In contrast Ad-Hoc Commands comprises simple, clean and optionally stateful Web Service mechanisms by default. In addition to that asynchronous client notification can be achieved with a <message>, as indicated in Ad-Hoc Commands and as realized in some unofficial implementations.

          - +

          In conclusion and as already suggested in Ad-Hoc Commands we describe an alternative data container. This data container is more generic in the way it can be used:

            @@ -157,7 +157,7 @@ if (function instanceof IoDataFunction) {
          1. This "Schemata Discovery" is separated from the data transaction. This reduces the amount of unnecessary traffic.
          2. The Field Types of the described data container are on the one hand clearly defined (there is only description, input, output, error, and status) and on the other hand straightforward. Thus any kind of XML data (XML Document with namespaces that represent any imaginable data object) can be submitted.
          -

          It is important to note that this XEP does not intent to replace or extent Data Forms. Also it does not break any current Ad-Hoc implementations. It just intends to offer another data container that fits much better under some circumstances where no GUI is rendered around an Ad-Hoc Command service.

          +

          It is important to note that this XEP does not intent to replace or extent Data Forms. Also it does not break any current Ad-Hoc implementations. It just intends to offer another data container that fits much better under some circumstances where no GUI is rendered around an Ad-Hoc Command service.

          @@ -179,7 +179,7 @@ if (function instanceof IoDataFunction) { ]]> - + @@ -218,7 +218,7 @@ if (function instanceof IoDataFunction) {
          -
          - + @@ -257,7 +257,7 @@ if (function instanceof IoDataFunction) {
          Transaction Type
          - +

          <desc> -- a textual description of the IO Data data container (xs:string).

          <in> -- contains the input. Valid for Transaction Type 'input' and 'io-schemata-result' only. May contain any XML data (XML Schema, XML Document ...).

          @@ -265,7 +265,7 @@ if (function instanceof IoDataFunction) {

          <error> -- describes the error raised by the procedure invocation. This element is optional and valid for Transaction Type 'error' and 'io-schemata-result' only. May contain any XML data (XML Schema, XML Document ...).

          <status> -- describes the status of the procedure. This element is optional and valid for Transaction Type 'status' only.

          - +

          <elapsed> -- an integer value of the time in milliseconds that elapsed since the procedure was invoked (xs:integer).

          <remaining> -- an integer value of the (estimated) time in milliseconds till the procedure will finish (xs:integer).

          @@ -342,7 +342,7 @@ if (function instanceof IoDataFunction) { result was delivered, procedure terminated - +
          1. If a service can return the output immediately, it MAY respond with status='completed' and return the output (IO Data type='output'). This behavior is NOT RECOMMENDED for procedures that need more than 5 seconds to complete or that are cost-intensive.
          2. @@ -375,8 +375,8 @@ if (function instanceof IoDataFunction) { - - + +

            The requester can query for disco information on the command (Ad-Hoc Command) node to find out if it supports IO Data based commands.

            ]]>

            To indicate support for IO Data it MUST include <feature var='urn:xmpp:tmp:io-data'/>. Of course the node can still provide <feature var='jabber:x:data'/> if this is supported, too.

            - - + +

            The 'in' and 'out' elements may each have any valid XML encoded elements as children. From a XML document style type of view <in/> and <out/> may be seen as root elements. Therefore it is required to "discover" the XML Schemata of the "dynamic children" of <in/> and <out/> (IO Schemata). This way a requester can marshal an API for the input and output of a certain service.

            Beside the 'in' and 'out' elements an 'error' element is optionally allowed and would be discovered in exactly the same. It is not included in the example to keep it simple.

            @@ -429,7 +429,7 @@ if (function instanceof IoDataFunction) { This service returns 3D atomic coordinates for the input structure. The input and output is encoded using the - Chemical Markup Language (CML). + Chemical Markup Language (CML). @@ -449,8 +449,8 @@ if (function instanceof IoDataFunction) { ]]>

            This service example requires the content of <in/> and <out/> to be Chemical Markup Language The Chemical Markup Language: <http://www.xml-cml.org/>. by requiring input with the namespace 'http://www.xml-cml.org/schema'. Additionally, it also defines the returned output to be Chemical Markup Language.

            - - + +

            To keep the example simple the children of the 'in' and 'out' elements just contain strings (the protein name and protein sequence). However in real use cases it is likely that the children of 'in' and 'out' contain very complex XML documents with many different valid elements, namespaces, or values.

            The requester transmits the input to the service (responder) by setting the type of the IO Data element to 'input'.

            @@ -516,7 +516,7 @@ if (function instanceof IoDataFunction) { action='execute'> - [ ... base64-encoded-audio ... ] @@ -618,7 +618,7 @@ if (function instanceof IoDataFunction) { status='completed'> - [ ... base64-encoded-audio ... ] @@ -659,7 +659,7 @@ if (function instanceof IoDataFunction) { - [ ... base64-encoded-audio ... ] @@ -762,7 +762,7 @@ if (function instanceof IoDataFunction) {
            -

            This document requires no interaction with &IANA;.

            +

            This document requires no interaction with &IANA;.

            @@ -826,7 +826,7 @@ if (function instanceof IoDataFunction) { - + @@ -836,7 +836,7 @@ if (function instanceof IoDataFunction) { - + -

            This document requires no interaction with &IANA;.

            +

            This document requires no interaction with &IANA;.

            -

            This document requires no interaction with the ®ISTRAR;.

            +

            This document requires no interaction with the ®ISTRAR;.

            diff --git a/xep-0246.xml b/xep-0246.xml index 27f2d74d..a755354d 100644 --- a/xep-0246.xml +++ b/xep-0246.xml @@ -56,8 +56,8 @@

            The initiator and recipient essentially follow the process defined in RFC 6120 to establish XML streams between themselves.

            First, the initiator opens an XML stream to the recipient over the negotiated transport.

            If the initiator supports stream features and the other stream-related aspects of XMPP 1.0 as specified in RFC 6120, then it SHOULD include the version='1.0' flag as shown in the previous example.

            The recipient then responds with a stream header as well:

            -

            This document requires no interaction with &IANA;.

            +

            This document requires no interaction with &IANA;.

            -

            This document requires no interaction with the ®ISTRAR;.

            +

            This document requires no interaction with the ®ISTRAR;.

            diff --git a/xep-0247.xml b/xep-0247.xml index f72bc9cc..d512cd6b 100644 --- a/xep-0247.xml +++ b/xep-0247.xml @@ -141,8 +141,8 @@

            The clients can then begin to exchange XMPP data over the in-band bytestream. Because the transport is an in-band bytestream, the XMPP data is prepared as described in &xep0047; (i.e., Base64-encoded).

            First the initiator sends an initial stream header to the responder.

            Note: In accordance with &xmppim;, the initial stream header SHOULD include the 'to' and 'from' attributes, which SHOULD specify the full JIDs of the clients. If the initiator supports stream features and the other stream-related aspects of XMPP 1.0 as specified in RFC 3920, then it SHOULD include the version='1.0' flag as shown in the previous example.

            @@ -164,13 +164,13 @@ ]]>

            The responder then sends a response stream header back to the initiator (because this stream header is sent in the other direction, the IBB 'seq' attribute has a value of zero, not 1).

            PHN0cmVhbTpzdHJlYW0geG1sbnM9J2phYmJlcjpjbGllbnQnIHhtbG5zOnN0cmVh @@ -190,7 +190,7 @@ - @@ -202,7 +202,7 @@ ]]> @@ -216,7 +216,7 @@ ]]>

            The responder could then send a reply.

            @@ -228,7 +228,7 @@ PG1lc3NhZ2UgZnJvbT0nanVsaWV0QGNhcHVsZXQubGl0L2JhbGNvbnknIHRvPSdy @@ -237,7 +237,7 @@ - @@ -249,14 +249,14 @@ PC9zdHJlYW06c3RyZWFtPg== - diff --git a/xep-0249.xml b/xep-0249.xml index e9643996..ce630c8a 100644 --- a/xep-0249.xml +++ b/xep-0249.xml @@ -94,7 +94,7 @@ -

            &xep0045; defines a protocol for groupchat over XMPP. That specification includes a method for inviting a contact to a room, where the invitation is mediated by the room itself: the user sends the invitation to the room, which in turn sends it to the contact. Unfortunately, a mediated invitation might not be delivered to the contact, for example if the contact blocks communication with entities not in its roster as specified in &xep0016;. As privacy lists have become more common, MUC invitations have been increasingly blocked at the server side, resulting in an undesirable user experience. Therefore, this specification defines a method for sending an invitation directly from the user to the contact, which re-uses the original 'jabber:x:conference' namespace in use before XEP-0045 was written (with the addition of 'reason', 'continue', and 'thread' attributes for feature parity with mediated invitations).

            +

            &xep0045; defines a protocol for groupchat over XMPP. That specification includes a method for inviting a contact to a room, where the invitation is mediated by the room itself: the user sends the invitation to the room, which in turn sends it to the contact. Unfortunately, a mediated invitation might not be delivered to the contact, for example if the contact blocks communication with entities not in its roster as specified in &xep0016;. As privacy lists have become more common, MUC invitations have been increasingly blocked at the server side, resulting in an undesirable user experience. Therefore, this specification defines a method for sending an invitation directly from the user to the contact, which re-uses the original 'jabber:x:conference' namespace in use before XEP-0045 was written (with the addition of 'reason', 'continue', and 'thread' attributes for feature parity with mediated invitations).

            @@ -168,7 +168,7 @@ -

            This document requires no interaction with &IANA;.

            +

            This document requires no interaction with &IANA;.

            diff --git a/xep-0251.xml b/xep-0251.xml index e634984d..73b01366 100644 --- a/xep-0251.xml +++ b/xep-0251.xml @@ -532,7 +532,7 @@ Caller Attendant Callee -

            This document requires no interaction with &IANA;.

            +

            This document requires no interaction with &IANA;.

            diff --git a/xep-0253.xml b/xep-0253.xml index f3422b24..793fec91 100644 --- a/xep-0253.xml +++ b/xep-0253.xml @@ -62,7 +62,7 @@ to='weatherbot@consumer.tld' type='set' xml:lang='en'> -
            @@ -74,7 +74,7 @@ to='admin@consumer.tld/client' type='result' xml:lang='en'> - @@ -109,7 +109,7 @@ to='weatherbot@consumer.tld' type='submit' xml:lang='en'> - @@ -136,7 +136,7 @@ to='admin@consumer.tld/client' type='result' xml:lang='en'> - @@ -161,8 +161,8 @@

            When a chaining node delivers a notification to its subscribers, it SHOULD include an &xep0033; header of "ofrom" to specify the chained node or service that generated the notification (note: this header is not yet defined in XEP-0033).

            @@ -188,7 +188,7 @@
            -

            This document requires no interaction with &IANA;.

            +

            This document requires no interaction with &IANA;.

            diff --git a/xep-0254.xml b/xep-0254.xml index bc9b8a92..0c9c0abf 100644 --- a/xep-0254.xml +++ b/xep-0254.xml @@ -72,7 +72,7 @@ - @@ -101,7 +101,7 @@ - @@ -160,7 +160,7 @@ ]]>

            The item is published to one of the subscribers.

            @@ -189,7 +189,7 @@ ]]>

            In the context of a queue node, the service MUST treat a delete request from a subscriber that received the item as if the sender were a publisher; i.e., it MUST delete the item from the queue and notify only this subscriber that the item has been deleted.

            @@ -252,7 +252,7 @@ ]]>

            The service then MUST unlock the item and notify only this subscriber that the item has been unlocked.

            @@ -350,7 +350,7 @@
            -

            This document requires no interaction with &IANA;.

            +

            This document requires no interaction with &IANA;.

            diff --git a/xep-0255.xml b/xep-0255.xml index e4fd6f3f..04de8f1c 100644 --- a/xep-0255.xml +++ b/xep-0255.xml @@ -156,10 +156,10 @@

            The basic principle behind this XMPP extension is as follows: An XMPP clients collects characteristics about its current location that is not directly suitable for presentation to a human user, but from which human readable location information can be derived. The client sends this information to a location server that derives this information and returns it to the querying client. Here "location server" means a XMPP server application that supports the <locationquery/> payload defined in this document. It can either be an integral part of the XMPP server, or run as a component on the same or a different machine from the XMPP server itself.

            57.0501862 @@ -170,10 +170,10 @@ ]]> 1599-10-23T01:56:05Z @@ -190,10 +190,10 @@ ]]> @@ -205,10 +205,10 @@ ]]> 1599-10-23T01:56:05Z @@ -222,10 +222,10 @@ ]]> @@ -245,10 +245,10 @@ ]]> 1599-10-23T01:56:05Z @@ -265,10 +265,10 @@ ]]> 1599-10-23T01:55:21Z @@ -315,18 +315,18 @@ ]]> ]]> @@ -771,27 +771,27 @@ cell - A cell tower address, formatted as "MCC:MNC:LAC:CID" (where MCC is - the mobile country code, MNC is the network carrier code, LAC is the + A cell tower address, formatted as "MCC:MNC:LAC:CID" (where MCC is + the mobile country code, MNC is the network carrier code, LAC is the area code, and CID is the cell ID). ip - An Internet Protocol (IP) address possessed by or assigned to the + An Internet Protocol (IP) address possessed by or assigned to the client. nic - The link layer (Media Access Control) address of one of the Network - Interface Controllers (NICs) associated with the client sending the - request. Most commonly, this will take the form of a 48-bit Ethernet - address formatted in six colon-separated groups of two hexadecimal - digits, in transmission order. Some location servers might be able to - use this information to query network elements through which the client + The link layer (Media Access Control) address of one of the Network + Interface Controllers (NICs) associated with the client sending the + request. Most commonly, this will take the form of a 48-bit Ethernet + address formatted in six colon-separated groups of two hexadecimal + digits, in transmission order. Some location servers might be able to + use this information to query network elements through which the client is connected to deduce location data. @@ -812,7 +812,7 @@ wimax - The device address as determined by Worldwide Inter-operability for + The device address as determined by Worldwide Inter-operability for Microwave Access technologies. @@ -824,53 +824,53 @@ - - - - - - - - - - diff --git a/xep-0259.xml b/xep-0259.xml index 132a28a7..379f90af 100644 --- a/xep-0259.xml +++ b/xep-0259.xml @@ -102,7 +102,7 @@ order to allow for potential server optimizations.

            - @@ -111,7 +111,7 @@ diff --git a/xep-0260.xml b/xep-0260.xml index 2ebd6857..4c8ab6bc 100644 --- a/xep-0260.xml +++ b/xep-0260.xml @@ -129,7 +129,7 @@

            The basic flow is as follows.

            - - - - - - + @@ -664,17 +664,17 @@ Romeo Juliet - - - - - - diff --git a/xep-0261.xml b/xep-0261.xml index a3d96ac7..481836f2 100644 --- a/xep-0261.xml +++ b/xep-0261.xml @@ -212,9 +212,9 @@ Initiator Responder

            Now the initiator can begin sending IBB packets using an IQ-set for each chunk as described in XEP-0047, where the responder will acknowledge each IQ-set in accordance with &xmppcore;.

            qANQR1DBwU4DX7jmYZnncmUQB/9KuKBddzQH+tZ1ZywKK0yHKnq57kWq+RFtQdCJ @@ -226,9 +226,9 @@ Initiator Responder ]]> ]]>
            @@ -271,7 +271,7 @@ Initiator Responder id='us71g45j' to='juliet@capulet.com/balcony' type='set'> - ]]>
            @@ -280,7 +280,7 @@ Initiator Responder + type='result'/> ]]>
            @@ -393,14 +393,14 @@ Initiator Responder - - - diff --git a/xep-0262.xml b/xep-0262.xml index 6f4dceab..269b67e8 100644 --- a/xep-0262.xml +++ b/xep-0262.xml @@ -185,7 +185,7 @@ a=zrtp-hash:1.10 fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46d

            If an entity supports the use of ZRTP in Jingle as described in this document, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of "urn:xmpp:jingle:apps:rtp:zrtp:1":

            @@ -193,7 +193,7 @@ a=zrtp-hash:1.10 fe30efd02423cb054e50efd0248742ac7a52c8f91bc2df881ae642c371ba46d ]]> diff --git a/xep-0263.xml b/xep-0263.xml index 4b9fd13b..ead2eca0 100644 --- a/xep-0263.xml +++ b/xep-0263.xml @@ -68,7 +68,7 @@
          3. In XMPP, presence is closely tied to XML streams (e.g., when a client closes its stream, the server automatically sends an unavailable presence stanza on behalf of the client). Once we get rid of presence, we can also get rid of XML streams and, indeed, XML itself (all that extensibility is a lavish extravagance). This radical simplification of XMPP will result in a technology called Simple Messaging Protocol or SMP.

          4. Once XML streams are removed, entities need a way to transfer messages among themselves. Therefore we need to add some special message transfer semantics, resulting in a technology called Simple Message Transfer Protocol or SMTP. However, because XML has also been removed, we no longer need to support extensible messages and can use plain old mail messages instead. This enables us to reuse and recycle an existing Internet technology called Simple Mail Transfer Protocol (also SMTP), as defined in &rfc0822;. (Yes, more modern versions of SMTP have been defined, but they include unnecessary extensions; back to basics and RFC 822!)

          5. The transfer semantics of SMTP are mainly for server-to-server communication. For client-to-server communication, an XMPP client can use &xep0013;, which provides semantics similar to Post Office Protocol Version 3 (POP3) and thus enables a client to log in and retrieve messages, then quickly log off again to save energy. But why stop there? Instead of using XEP-0013, it makes sense to use POP3 itself as defined in &rfc1939;, or even the original Post Office Protocol defined in &rfc0918; (there never was a need to define more than a thousand RFCs, so we suggest that specifications after RFC 999 SHOULD be ignored).

          6. -
          +

      Thus instead of using fancy real-time technologies like XMPP, it is time to return to an older, simpler time and just use SMTP and POP for communication over the Internet.

      diff --git a/xep-0264.xml b/xep-0264.xml index d60ff088..5c47d7e6 100644 --- a/xep-0264.xml +++ b/xep-0264.xml @@ -80,7 +80,7 @@ Added missing namespace on thumnail elements.

      -

      When offering a Jingle session, it can be helpful to provide a small preview of the offered content to help the session responder decide whether to accept or reject the session.

      +

      When offering a Jingle session, it can be helpful to provide a small preview of the offered content to help the session responder decide whether to accept or reject the session.

      This is particularly useful for file transfer content (especially image files), but can also be used for things such as video (e.g. using a still frame from the stream as the preview thumbnail), and even audio by using a small image of album cover art.

      diff --git a/xep-0267.xml b/xep-0267.xml index 3d1cfd2a..71c5f888 100644 --- a/xep-0267.xml +++ b/xep-0267.xml @@ -124,7 +124,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -136,7 +136,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -162,7 +162,7 @@ to='shakespeare.lit' type='set' xml:lang='en'> - @@ -182,7 +182,7 @@ to='bard@shakespeare.lit/globe' type='result' xml:lang='en'> - @@ -218,7 +218,7 @@ -

      This document requires no interaction with &IANA;.

      +

      This document requires no interaction with &IANA;.

      diff --git a/xep-0268.xml b/xep-0268.xml index ae120f8c..2c63651a 100644 --- a/xep-0268.xml +++ b/xep-0268.xml @@ -364,7 +364,7 @@ -

      This document might require interaction with &IANA; to register various IODEF extensions, in accordance with draft-ietf-mile-template.

      +

      This document might require interaction with &IANA; to register various IODEF extensions, in accordance with draft-ietf-mile-template.

      diff --git a/xep-0269.xml b/xep-0269.xml index b6b85db0..c7fa634c 100644 --- a/xep-0269.xml +++ b/xep-0269.xml @@ -55,7 +55,7 @@

      In this scenario, Romeo initiates a voice chat with Juliet using a transport method of ICE-UDP. There is a gateway between Romeo and Juliet, and the gateway functions as an application server by returning early media to Romeo (perhaps some late medieval hold music or an old-fashioned IVR interaction). To simplify the flow, we have left out any ringing notifications generated by Juliet.

      -

      The session flow is as follows.

      +

      The session flow is as follows.

      - @@ -228,7 +228,7 @@ Romeo Gateway Juliet action='content-accept' initiator='romeo@montague.lit/orchard' sid='a73sjjvkla37jfea'> - diff --git a/xep-0270.xml b/xep-0270.xml index cfc4dda9..e630d969 100644 --- a/xep-0270.xml +++ b/xep-0270.xml @@ -173,9 +173,9 @@

      This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

      -

      This document requires no interaction with &IANA;.

      +

      This document requires no interaction with &IANA;.

      -

      This document requires no interaction with the ®ISTRAR;.

      +

      This document requires no interaction with the ®ISTRAR;.

      diff --git a/xep-0271.xml b/xep-0271.xml index 028cb5b0..c0a550a6 100644 --- a/xep-0271.xml +++ b/xep-0271.xml @@ -62,7 +62,7 @@ from='romeo@montague.net/orchard' to='mim.shakespeare.lit' id='info3'> - ]]> diff --git a/xep-0272.xml b/xep-0272.xml index 92b093e2..9e2fb989 100644 --- a/xep-0272.xml +++ b/xep-0272.xml @@ -252,11 +252,11 @@

      - When scaling to conferences with a big number of participants + When scaling to conferences with a big number of participants it's no longer viable for all participants to have direct connections. - On connections where upstream bandwidth is the limiting factor, an RTP + On connections where upstream bandwidth is the limiting factor, an RTP relay which is able to relay the stream to multiple participants on the behalf of the clients and which forwards the streams of other participants back to the client can be used. diff --git a/xep-0273.xml b/xep-0273.xml index 73138d68..066e6eef 100644 --- a/xep-0273.xml +++ b/xep-0273.xml @@ -172,7 +172,7 @@

    1. Make it possible for a client to disable receipt of various inbound stanzas (presence notifications, subscription-related presence stanzas, message stanzas, IQ stanzas) while still receiving other kinds of stanzas.
    2. Make it possible for a client to "sift" based on all senders, local vs. remote senders, or other senders vs. oneself.
    3. Make it possible for a client to "sift" based on whether the recipient is the user's bare JID or the particular client's full JID.
    4. -
    5. Enable future extensibility based on regular expressions, XPath expressions, etc.
    6. +
    7. Enable future extensibility based on regular expressions, XPath expressions, etc.
    @@ -256,7 +256,7 @@

    A client can discover if its server supports SIFT by sending a disco#info request.

    @@ -266,7 +266,7 @@

    If a server supports the SIFT protocol, it MUST advertise that fact in its responses to "disco#info" requests by returning a feature of "urn:xmpp:sift:2" &VNOTE;. The server MUST also specify which features it supports.

    In the following reply, the server indicates that it supports a minimal subset of SIFT features merely for the sake of presence blocking.

    @@ -278,7 +278,7 @@ ]]>

    In the following reply, the server indicates that it supports a wider range of SIFT features.

    @@ -392,7 +392,7 @@

    When a client indicates that it wishes to receive messages, the server SHOULD deliver to the client all messages in the offline message queue and MUST deliver to the client any subsequent messages that would normally be delivered to the client in accordance with the rules defined in &xmppcore; and XMPP-IM.

    -

    If the client subsequently indicates that it wants the server to intercept inbound messages (and there are no other connected or available resources that have expressed interest in receiving inbound messages), the server SHOULD treat messages as if there were no connected or available resources (e.g., storing them offline for later delivery); if the client then indicates again that it wishes to receive inbound messages, the server SHOULD send those queued messages to the client so that it can get back in sync regarding messages received from its contacts.

    +

    If the client subsequently indicates that it wants the server to intercept inbound messages (and there are no other connected or available resources that have expressed interest in receiving inbound messages), the server SHOULD treat messages as if there were no connected or available resources (e.g., storing them offline for later delivery); if the client then indicates again that it wishes to receive inbound messages, the server SHOULD send those queued messages to the client so that it can get back in sync regarding messages received from its contacts.

    When the client indicates that it wishes to receive inbound presence notifications, the server SHOULD send outbound presence probes on the client's behalf. Responses to these presence probes are addressed to the bare JID of the account and then broadcasted to all of the resources that have expressed interest in receiving inbound presence notifications.

    @@ -460,7 +460,7 @@ -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    @@ -489,21 +489,21 @@ - - - - @@ -512,12 +512,12 @@ - - - @@ -227,7 +227,7 @@ -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    diff --git a/xep-0277.xml b/xep-0277.xml index 7cce1247..09b3d932 100644 --- a/xep-0277.xml +++ b/xep-0277.xml @@ -116,7 +116,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0

    The post content itself can be either text (content element without "type" attribute or with "type" attribute with "text" value) or XHTML ("content" element "type" attribute with "xhtml" value). If Romeo publishes XHTML content, his client MUST publish two "content" elements: a text one, and a XHTML one. For XHTML publishing, see &xep0060;.

    Note: Publishing via HTTP, AtomPub, SMS, or IM bot is simpler for the client (e.g., because the client does not need to generate an Item ID).

    @@ -138,7 +138,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0

    It's possible to insert some rich content in the post or comment. It can be some text formatting, images, etc. Only "xhtml" content type is supported for the moment by this document but possibly it will be extended later. Also, it is RECOMMENDED for the client to restrict XHTML content to the XHTML-IM subset (&xep0071;).

    @@ -195,7 +195,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0

    Note: Inclusion of the "thr:in-reply-to" element defined in &rfc4685; indicates the post to which the user is replying. This reply includes two such elements (one pointing to the HTTP URL for the post and the other pointing to the XMPP URI for the post.

    Note: The post can be a reply to more than the only one another.

    @@ -456,7 +456,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0

    This section will describe most used aggregator usecases but the list is not exhaustive.

    There are two different things that carry a similar sense: the XMPP pubsub Item ID and the "atom:id" element. This section is devoted to make a separation between them.

    -

    The pubsub Item ID MUST be used when linking to an entry with an XMPP channel (i.e. by including it in the URI with the "xmpp" schema). the Atom entry ID MUST be built according to &rfc4287; and used in aggregators with the aim of revealing of post duplicates, reposts, mentions, syndications, etc.

    +

    The pubsub Item ID MUST be used when linking to an entry with an XMPP channel (i.e. by including it in the URI with the "xmpp" schema). the Atom entry ID MUST be built according to &rfc4287; and used in aggregators with the aim of revealing of post duplicates, reposts, mentions, syndications, etc.

    Note that the rules of comparing, building and security notes for "atom:id" are listed in the &rfc4287;.

    diff --git a/xep-0278.xml b/xep-0278.xml index c4043bfd..c7814aaf 100644 --- a/xep-0278.xml +++ b/xep-0278.xml @@ -114,7 +114,7 @@ All signalling, request, response and publishing is done via XMPP, not requiring type='result'> - + ]]>
    @@ -262,7 +262,7 @@ All signalling, request, response and publishing is done via XMPP, not requiring expire - The maximum amount of seconds that the channel can stay without receiving packets, without being deactivated and closed. + The maximum amount of seconds that the channel can stay without receiving packets, without being deactivated and closed. REQUIRED @@ -301,7 +301,7 @@ All signalling, request, response and publishing is done via XMPP, not requiring policy The policy of the service. If the service is public, MUST be 'public' if it is restricted to roster, MUST be 'roster'. REQUIRED - + address For Relay and Tracker Services the JID. For STUN Service the IP or Host address. @@ -309,7 +309,7 @@ All signalling, request, response and publishing is done via XMPP, not requiring protocol - The protocol supported by the retrieved service. + The protocol supported by the retrieved service. REQUIRED @@ -318,7 +318,7 @@ All signalling, request, response and publishing is done via XMPP, not requiring REQUIRED for STUN entries -
    +

    To advertise its support for the Jingle Nodes support, when replying to &xep0030; information requests an entity MUST return URNs for any version of this protocol that the entity supports -- e.g., "http://jabber.org/protocol/jinglenodes" for this version&VNOTE;.

    @@ -419,18 +419,18 @@ All signalling, request, response and publishing is done via XMPP, not requiring - - - + + maxOccurs='unbounded'/> diff --git a/xep-0281.xml b/xep-0281.xml index 8bfae739..f2f8a908 100644 --- a/xep-0281.xml +++ b/xep-0281.xml @@ -369,7 +369,7 @@ ]]> -

    The source then delivers that presence stanza to its local users. (Note: The shadow needs to send only one presence stanza to the source, thus reducing the number of stanzas sent over the server-to-server link between the peerhost and the firsthost.)

    +

    The source then delivers that presence stanza to its local users. (Note: The shadow needs to send only one presence stanza to the source, thus reducing the number of stanzas sent over the server-to-server link between the peerhost and the firsthost.)

    @@ -421,7 +421,7 @@ ]]> -

    The source then delivers that presence stanza to its local users. (Note: The shadow needs to send only one presence stanza to the source, thus reducing the number of stanzas sent over the server-to-server link between the peerhost and the firsthost.)

    +

    The source then delivers that presence stanza to its local users. (Note: The shadow needs to send only one presence stanza to the source, thus reducing the number of stanzas sent over the server-to-server link between the peerhost and the firsthost.)

    @@ -449,7 +449,7 @@ Message 4. ]]> -

    The source then delivers that message stanza to its local users. (Note: The shadow needs to send only one message stanza to the source, thus reducing the number of stanzas sent over the server-to-server link between the peerhost and the firsthost.)

    +

    The source then delivers that message stanza to its local users. (Note: The shadow needs to send only one message stanza to the source, thus reducing the number of stanzas sent over the server-to-server link between the peerhost and the firsthost.)

    @@ -467,11 +467,11 @@
    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    -

    This document requires no interaction with the ®ISTRAR;.

    +

    This document requires no interaction with the ®ISTRAR;.

    diff --git a/xep-0282.xml b/xep-0282.xml index 7e7402b5..9288c30c 100644 --- a/xep-0282.xml +++ b/xep-0282.xml @@ -101,50 +101,50 @@ BigCheese ----> vesa.yeggmaex.irc ----> wallops MUC ----> killrc.oulubox.irc --- --> - -

    Most of the examples in this document use the scenario of the 1990 war that split the Internet Relay Chat into several incompatible networks. The battlefield is represented here by the "wallops@channel.avalon.irc" chatroom. The characters are as follows:

    - - - - - - - - - - - - - - - - - + +

    Most of the examples in this document use the scenario of the 1990 war that split the Internet Relay Chat into several incompatible networks. The battlefield is represented here by the "wallops@channel.avalon.irc" chatroom. The characters are as follows:

    +
    Room NicknameFull JIDRole
    Wumpusargl@killrc.oulubox.irc/laptopModerator
    Valdisvaldis@killrc.oulubox.irc/desktopParticipant
    + + + + + + + + + + + + + + + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - -
    Room NicknameFull JIDRole
    Wumpusargl@killrc.oulubox.irc/laptopModerator
    Valdisvaldis@killrc.oulubox.irc/desktopParticipant
    Phaedrusphaedrus@killrc.oulubox.irc/phoneParticipant
    phaedrus@killrc.oulubox.irc/phoneParticipant
    WiZsquit@eris.dclxvii.irc/jupiterModerator
    WiZsquit@eris.dclxvii.irc/jupiterModerator
    Troytroy@eris.dclxvii.irc/screwdriverModerator
    BigCheeserubenro@vesa.yeggmaex.irc/shaverParticipant
    Efchenmsa@vesa.yeggmaex.irc/bicycleParticipant
    + Troy + troy@eris.dclxvii.irc/screwdriver + Moderator + + + BigCheese + rubenro@vesa.yeggmaex.irc/shaver + Participant + + + Efchen + msa@vesa.yeggmaex.irc/bicycle + Participant + +

    In our example we are presuming that three slaves from three hosts have registered with the master for traffic redistribution. They are doing so using slave@host jids, but they could be using any temporary jid the implementor finds useful to choose.

    @@ -176,35 +176,35 @@ BigCheese ----> vesa.yeggmaex.irc ----> wallops MUC ----> killrc.oulubox.irc ---

    After the creation of a new slave, the master must send the room roster (which at that time only consists of remote participants) to the slave:

    - - - - @@ -216,7 +216,7 @@ BigCheese ----> vesa.yeggmaex.irc ----> wallops MUC ----> killrc.oulubox.irc --- -->
    -

    After the creation of a new slave, the master MAY also send the discussion history to the slave. The slave shall store this and deliver it to entering participants.

    +

    After the creation of a new slave, the master MAY also send the discussion history to the slave. The slave shall store this and deliver it to entering participants.

    from=masterjid to=slavejid?

    @@ -474,42 +474,42 @@ BigCheese ----> vesa.yeggmaex.irc ----> wallops MUC ----> killrc.oulubox.irc --- ]]>

    The slave sends presence from existing occupants to new occupant:

    - - - - - @@ -655,7 +655,7 @@ BigCheese ----> vesa.yeggmaex.irc ----> wallops MUC ----> killrc.oulubox.irc ---

    Careful with channel overtakes :-)

    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    This document requires no interaction with the ®ISTRAR;.

    diff --git a/xep-0283.xml b/xep-0283.xml index 0347905f..05f33b9a 100644 --- a/xep-0283.xml +++ b/xep-0283.xml @@ -92,12 +92,12 @@

    There are a variety of reasons why a user may wish to change their JID. For example, a surname change because of marriage or simply - an easier JID to remember. + an easier JID to remember.

    -

    This XEP defines an approach for communicating that your JID has +

    This XEP defines an approach for communicating that your JID has moved to a new JID, extending the existing subscription protocol documented - in &xmppim;. The steps outlined here may be done either through a client + in &xmppim;. The steps outlined here may be done either through a client or automated by a server.

    @@ -109,10 +109,10 @@
    -

    In this scenario user@example.com moves to user2@example2.com. +

    In this scenario user@example.com moves to user2@example2.com. Both the user@example.com and user2@example2.com accounts have been created and still exist. The roster for user@example2.com is empty - and the user wants to populate it with their entries from + and the user wants to populate it with their entries from user@example.com.

    @@ -128,20 +128,20 @@ -

    Because the original JID is no longer going to be used, the user SHOULD +

    Because the original JID is no longer going to be used, the user SHOULD unsubscribe from all the outbound subscriptions user@example.com had. - These can be identified as those in the 'to' or 'ask' states as + These can be identified as those in the 'to' or 'ask' states as defined in the 'jabber:iq:roster' protocol in RFC 6121.

    -

    To unsubscribe all outbound subscriptions for the original JID send an - unsubscribe &PRESENCE; stanza to all the old contacts with a &MOVED; +

    To unsubscribe all outbound subscriptions for the original JID send an + unsubscribe &PRESENCE; stanza to all the old contacts with a &MOVED; element containing the new JID.

    -

    There is the potential for other users to send a malicious unsubscribe - containing a spoofed &MOVED; JID. Therefore, clients SHOULD NOT +

    There is the potential for other users to send a malicious unsubscribe + containing a spoofed &MOVED; JID. Therefore, clients SHOULD NOT automatically subscribe to the JID contained in the &MOVED; stanza when receiving a subscribe &PRESENCE; stanza without displaying the &MOVED; - JID to the user. See the Security Considerations section for + JID to the user. See the Security Considerations section for details.

    -

    Because the original JID is no longer going to be used, the user SHOULD - unsubscribe from all contacts the user@example.com had an inbound - subscription from. These can be identified as those in the 'from' - subscription state as defined in in the 'jabber:iq:roster' protocol +

    Because the original JID is no longer going to be used, the user SHOULD + unsubscribe from all contacts the user@example.com had an inbound + subscription from. These can be identified as those in the 'from' + subscription state as defined in in the 'jabber:iq:roster' protocol in RFC 6121.

    -

    To unsubscribe all inbound subscriptions send an unsubscribed - &PRESENCE; stanza to all the old contacts with a &MOVED; element +

    To unsubscribe all inbound subscriptions send an unsubscribed + &PRESENCE; stanza to all the old contacts with a &MOVED; element containing the new JID.

    -

    There is the potential for other users to send a malicious unsubscribed - containing a spoofed &MOVED; JID. Therefore, clients SHOULD NOT - automatically subscribe to the JID contained in the &MOVED; stanza - without displaying the &MOVED; JID to the user. See the Security +

    There is the potential for other users to send a malicious unsubscribed + containing a spoofed &MOVED; JID. Therefore, clients SHOULD NOT + automatically subscribe to the JID contained in the &MOVED; stanza + without displaying the &MOVED; JID to the user. See the Security Considerations section for details.

    @@ -181,27 +181,27 @@
    -

    Once the new JID has been created on a server it is possible for the new JID to subscribe to the contacts they had on the original JID's - roster. This is done by sending a new subscription request with a + roster. This is done by sending a new subscription request with a &MOVED; element containing the new JID.

    The new subscription MUST come from the new JID's server.

    There is the potential for other users to send a malicious subscribe - request and spoof the content of the &MOVED; element identifying an - original JID. Therefore, clients SHOULD NOT automatically unsubscribe - an existing roster entry if is listed as the target in the &MOVED; - element when a subscribe is received. See the Security + request and spoof the content of the &MOVED; element identifying an + original JID. Therefore, clients SHOULD NOT automatically unsubscribe + an existing roster entry if is listed as the target in the &MOVED; + element when a subscribe is received. See the Security Consideration section for details.

    Clients accepting the moved subscription SHOULD indicate to the - user that that this subscription request was the result of a move - operation and because of potential malicious behavior SHOULD NOT + user that that this subscription request was the result of a move + operation and because of potential malicious behavior SHOULD NOT auto-accept the subscription without displaying the &MOVED; JID to the user.

    @@ -215,44 +215,44 @@
    - - -

    RFC 6120 clarifies that an incoming subscribe &PRESENCE; stanza - MUST be preserved by the server and &PRESENCE; stanzas of type - unsubscribe and unsubscribed are not preserved on the server. - Therefore, for a contact who is offline, their servers MAY have - automatically removed the original roster entry when seeing the - unsubscribe and unsubscribed stanzas. At the time of writing this XEP, - NOT saving and forwarding the presence stanzas will be the default +

    RFC 6120 clarifies that an incoming subscribe &PRESENCE; stanza + MUST be preserved by the server and &PRESENCE; stanzas of type + unsubscribe and unsubscribed are not preserved on the server. + Therefore, for a contact who is offline, their servers MAY have + automatically removed the original roster entry when seeing the + unsubscribe and unsubscribed stanzas. At the time of writing this XEP, + NOT saving and forwarding the presence stanzas will be the default behavior of most servers.

    - -

    What this means is that a contact coming online after the rename - outlined above MAY only see the &PRESENCE; of type 'subscribe' with + +

    What this means is that a contact coming online after the rename + outlined above MAY only see the &PRESENCE; of type 'subscribe' with the &MOVED; element. Clients should be aware of this behavior.

    -

    In following the principle of least surprise, it is considered good - practice to send the subscribe stanza after the unsubscribe and unsubscribed +

    In following the principle of least surprise, it is considered good + practice to send the subscribe stanza after the unsubscribe and unsubscribed stanzas.

    One of the side effects of this scheme is the potential for a contact - to lose the groups to which it had organized the original JID. Clients + to lose the groups to which it had organized the original JID. Clients aware of the &MOVED; element can mitigate this with the following rules.

      -
    • If the contacts client receives an unsubscribed with a &MOVED; - element, remove the subscription but initiate a roster push for the - original JID with the subscription set to 'none'. When the new - subscription is received the new JID MAY be placed into the roster - in the same groups as the original JID and the original JID can then be +
    • If the contacts client receives an unsubscribed with a &MOVED; + element, remove the subscription but initiate a roster push for the + original JID with the subscription set to 'none'. When the new + subscription is received the new JID MAY be placed into the roster + in the same groups as the original JID and the original JID can then be removed from the roster.
    • @@ -261,7 +261,7 @@
    -

    As discussed in 'Contacts Offline at the Time the Rename Occurs', a +

    As discussed in 'Contacts Offline at the Time the Rename Occurs', a server MAY automatically handle the unsubscribe and unsubscribed stanzas. If this occurs it will be impossible to preserve the original groups.

    @@ -271,10 +271,10 @@

    If the original JID, user@example.com, had only an inbound subscription - (from or pending in), then the contact will only receive an - unsubscribed &PRESENCE; stanza. The contact's client, knowing the - state of the subscription (which is 'to' or 'none' with 'ask='subscribe' - from the contact's perspective), at that point MAY choose to prompt the + (from or pending in), then the contact will only receive an + unsubscribed &PRESENCE; stanza. The contact's client, knowing the + state of the subscription (which is 'to' or 'none' with 'ask='subscribe' + from the contact's perspective), at that point MAY choose to prompt the user to subscribe to the new JID listed in the &MOVED; element.

    Because of the ability to spoof the &MOVED; element, the client SHOULD @@ -284,11 +284,11 @@ -

    If the original JID, user@example.com, had only an outbound - subscription (to or ask), then the contact SHOULD only receive an - unsubscribe &PRESENCE; stanza. The contact's client, knowing the - state of the subscription (which is 'from' from the contact's perspective), - at that point MAY choose to prompt +

    If the original JID, user@example.com, had only an outbound + subscription (to or ask), then the contact SHOULD only receive an + unsubscribe &PRESENCE; stanza. The contact's client, knowing the + state of the subscription (which is 'from' from the contact's perspective), + at that point MAY choose to prompt the user to subscribe to the new JID listed in the &MOVED; element.

    Because of the ability to spoof the &MOVED; element, the client SHOULD @@ -296,7 +296,7 @@ - +
    @@ -376,9 +376,9 @@

    It is not intended for servers to strip any &MOVED; elements from &PRESENCE; stanzas sent in from a client. This allows clients as well as servers to implement these same procedures.

    - -

    In order to prevent other users from maliciously altering contacts - the client SHOULD NOT automatically subscribe to a &MOVED; JID when it + +

    In order to prevent other users from maliciously altering contacts + the client SHOULD NOT automatically subscribe to a &MOVED; JID when it receives an unsubscribe and SHOULD NOT automatically unsubscribe to a &MOVED; JID when it receives a subscribe.

    @@ -386,10 +386,10 @@
    1. userA@example.com subscribes to userB@example.com
    2. -
    3. The userB@example.com automatically accepts the subscription from - userA@example.com. (Automatically done by the client using a simple +
    4. The userB@example.com automatically accepts the subscription from + userA@example.com. (Automatically done by the client using a simple domain trust).
    5. -
    6. userA@example.com unsubscribes with the &MOVED; 'new' JID set to +
    7. userA@example.com unsubscribes with the &MOVED; 'new' JID set to companyCEO@example.com.
    8. The previous steps can be repeated and have userB@example.com subscribe to a large number of people.
    9. @@ -406,19 +406,19 @@ Subscribe to me! -]]> +]]>
    10. If userB's client automatically accepted the subscription without displaying at prompt to userB showing the new JID to be hacker@example.com, then the user has no idea that hacker@example.com was just added to - the roster. + the roster.
    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    @@ -426,8 +426,8 @@
    • urn:xmpp:moved:0
    -

    Upon advancement of this specification from a status of Experimental - to a status of Draft, the ®ISTRAR; shall add the foregoing namespace +

    Upon advancement of this specification from a status of Experimental + to a status of Draft, the ®ISTRAR; shall add the foregoing namespace to the registry located at &NAMESPACES;, as described in Section 4 of &xep0053;.

    @@ -461,6 +461,6 @@ ]]>
    -

    The author wishes to thank Doug Abbink, Mikhail Belov, Peter Saint-Andre, and Peter Sheu for their feedback.

    +

    The author wishes to thank Doug Abbink, Mikhail Belov, Peter Saint-Andre, and Peter Sheu for their feedback.

    diff --git a/xep-0284.xml b/xep-0284.xml index c8744bfc..e8fdcdca 100644 --- a/xep-0284.xml +++ b/xep-0284.xml @@ -261,8 +261,8 @@

    Before connecting to a session, a party MUST determine the &xep0030; identity and supported features of the host. In many situations the party already knows this information (e.g., if the host is the initiator of the Jingle session). In other situations the party will need to send a service discovery information request to the host.

    type='get'> @@ -297,7 +297,7 @@

    In order to synchronize its local state with the existing state of the edited object, an entity sends a connection request to the host. The identity learned through service discovery determines what kind of message the joining party sends (e.g., type='groupchat' if the host is a MUC room).

    To connect to a session, the joiner MUST send an SXE <connect/> element to the host.

    @@ -316,7 +316,7 @@

    The state offer MUST contain the <description/> element or elements that were included in the Jingle session-initiate request.

    The joiner accepts a state offer by sending an <accept-state/> element to one of the entities that offer to send the state. The joiner MUST store all the <sxe/> elements it receives after the <state-offer/> element it decides to accept. It MUST also abort the negotiation with the other users that offered to send the state.

    Once the other entity receives the <accept-state/> element it MUST proceed sending the state as described in the next section.

    If a multiple state offers were received, one should be accepted and the others should be refused by sending a <refuse-state/> element.

    The state can be sent in any number of <sxe/> elements but the user sending the state MUST NOT send any new <sxe/> elements between sending the <document-begin/> (i.e. taking the snapshot) and the <document-end/> element.

    The state SHOULD include a version of each element that was synchronized, and hence won't be undone, as well as all the later versions. In practice this can often be impossible to know in a session without a specialized MUC component so it may be safest to send version 0 and all the later edits to each element. Version 0 is implied if the version element is missing.

    If the session is already in progress, the entity sends the snapshot.

    -

    Once a participant has received initial state, he can participate in the editing session.

    Here is another edit in the session.

    Changes to the records can be divided into two categories: commutative and non-commutative edits.

    Commutative edits are commutative with all edits and are never "undone" so keeping a history of them is NOT REQUIRED. Edits that add or remove records are commutative.

    -

    An edit that changes an existing record is called non-commutative because it may not be commutative with edits that change the same record. Hence these changes may need to be undone so keeping a history of the changes caused by such edits is REQUIRED. The breadth of this required history depends on the role of the entity and on whether the session works through a server component:

    +

    An edit that changes an existing record is called non-commutative because it may not be commutative with edits that change the same record. Hence these changes may need to be undone so keeping a history of the changes caused by such edits is REQUIRED. The breadth of this required history depends on the role of the entity and on whether the session works through a server component:

    Server state Client state (jabber:iq:roster)
    @@ -789,7 +789,7 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - +

    A client can add a new node to the document by adding a record with the <new/> element.

    @@ -850,7 +850,7 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    - + ]]>

    To process a <new/> element the client MUST create a new record with the values of the attributes stored in the corresponding fields.

    A client can remove any node in the document by removing the corresponding record with the <remove/> element.

    - + @@ -883,11 +883,11 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    AttributeREQUIRED and MUST be the record id of the node to be removed.
    - +

    A client MUST NOT send a <remove/> element that removes a node that has child nodes without explicitly removing the records of those nodes first.

    The <set/> element is used to modify an existing record.

    - + @@ -955,12 +955,12 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - +
    Attributereplacen replace n characters. OPTIONAL but only allowed if 'chdata' and 'replacefrom' attributes are also included. MUST be a non-negative integer.
    - + - N/A + N/A &kdz; 0.3 @@ -32,13 +32,13 @@ kdz

    Change title, and clarify in text, that this is an encapulating digital signature approach, an alternative to the encapulated digitial signatures proposal.

    -
    + 0.2 2010-09-29 kdz

    Minor changes (editorial, cleanup, etc.).

    -
    + 0.1 2010-09-15 @@ -224,7 +224,7 @@ application-specific error condition element of <bad-timestamp/> as shown below:

    @@ -241,7 +241,7 @@ error condition element of <bad-signature/> as shown below:

    diff --git a/xep-0290.xml b/xep-0290.xml index 7ae47e0f..685a4c27 100644 --- a/xep-0290.xml +++ b/xep-0290.xml @@ -122,7 +122,7 @@ + type='chat'> ... ... @@ -168,7 +168,7 @@ + type='chat'> ... ... @@ -182,7 +182,7 @@ a detached signature, and replaces the empty Signature element with it. Finally, the signer inserts the Signature element into stanza and forwards the stanza as it normally would.

    - + type='chat'> ... ... diff --git a/xep-0292.xml b/xep-0292.xml index 904405bd..400df880 100644 --- a/xep-0292.xml +++ b/xep-0292.xml @@ -225,7 +225,7 @@ https://stpeter.im/ - More information about me is located on my + More information about me is located on my personal website: https://stpeter.im/ @@ -317,7 +317,7 @@

    Note: There is no payload, because this is a pure notification (the receiver needs to retrieve the vCard using an IQ-get as described earlier).

    - + @@ -509,7 +509,7 @@

    If an XMPP client or server supports the vCard4 namespace, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of "urn:ietf:params:xml:ns:vcard-4.0":

    @@ -517,7 +517,7 @@ ]]> @@ -552,14 +552,14 @@

    The vcard-temp specification defined a <DESC/> element. This element was not part of the vCard3 schema. Mapping the vcard-temp <DESC/> element to the vCard4 NOTE property is appropriate.

    - More information about me is located on my + More information about me is located on my personal website: https://stpeter.im/ ]]> - More information about me is located on my + More information about me is located on my personal website: https://stpeter.im/ @@ -695,28 +695,28 @@ property-key = element key { Copyright (c) 1999 - 2017 XMPP Standards Foundation -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, subject to the +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice -shall be included in all copies or substantial portions +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> @@ -727,9 +727,9 @@ OR OTHER DEALINGS IN THE SOFTWARE. - @@ -739,7 +739,7 @@ OR OTHER DEALINGS IN THE SOFTWARE. - @@ -821,7 +821,7 @@ OR OTHER DEALINGS IN THE SOFTWARE. - @@ -839,7 +839,7 @@ OR OTHER DEALINGS IN THE SOFTWARE. xmpp: - @@ -981,7 +981,7 @@ OR OTHER DEALINGS IN THE SOFTWARE. - @@ -1110,15 +1110,15 @@ OR OTHER DEALINGS IN THE SOFTWARE. - @@ -1393,7 +1393,7 @@ rLuMVIV/ - More information about me is located on my + More information about me is located on my personal website: https://stpeter.im/ @@ -1641,7 +1641,7 @@ rLuMVIV/ -More information about me is located on my +More information about me is located on my personal website: https://stpeter.im/ diff --git a/xep-0293.xml b/xep-0293.xml index 55786667..dea85a8b 100644 --- a/xep-0293.xml +++ b/xep-0293.xml @@ -80,12 +80,12 @@
  • Map these parameters to Session Description Protocol (SDP; see &rfc4566;) to enable interoperability.
  • -
    +

    This specification defines two new elements, <rtcp-fb/> and <rtcp-fb-trr-int/>, that can be inserted in the - <description/> or the <payload-type/> elements of + <description/> or the <payload-type/> elements of &xep0167;. The presence of any of these elements in a content's description means that the RTP/AVPF profile should be used for the whole content. If any of these elements are inside the @@ -145,7 +145,7 @@ milliseconds for this media session. It corresponds to the 0 to MAXUINT (default to 0) - + @@ -205,7 +205,7 @@ milliseconds for this media session. It corresponds to the

    Another reply to the same request where the responder wishes to stay in the AVPF profile but rejects all specific feedback messages by using the <rtcp-fb-trr-int/> with the default value.

    - + @@ -294,7 +294,7 @@ milliseconds for this media session. It corresponds to the - + ]]>
    @@ -373,10 +373,10 @@ milliseconds for this media session. It corresponds to the - + diff --git a/xep-0294.xml b/xep-0294.xml index 53792fb1..b91a4b7b 100644 --- a/xep-0294.xml +++ b/xep-0294.xml @@ -73,7 +73,7 @@
  • Map these parameters to Session Description Protocol (SDP; see &rfc4566;) to enable interoperability.
  • - +

    This specification defines a new element, <rtp-hdrext/>, @@ -112,7 +112,7 @@ parameters in the a=b form can embed <parameter/> elements to describe it. Any other form of parameter can be stored as the 'key' attribute in a parameter element with an empty value.

    -
    +

    RTP header extensions are negotiated along the codecs. They @@ -152,7 +152,7 @@ describe it. Any other form of parameter can be stored as the 'key' attribute in ]]> - +

    Example reply where the responder accepts the timestamp offset and the 56-bit synchronisation metadata header extensions.

    @@ -169,7 +169,7 @@ describe it. Any other form of parameter can be stored as the 'key' attribute in ]]>

    Another reply to the same request where the responder accepts only the synchronisation data header extension with the 64-bit format.

    - + - + diff --git a/xep-0297.xml b/xep-0297.xml index e53a3713..daa89201 100644 --- a/xep-0297.xml +++ b/xep-0297.xml @@ -101,7 +101,7 @@ ]]> - +

    To forward this to Mercutio, Romeo would send a new message with a <forwarded/> payload of namespace 'urn:xmpp:forward:0'.

    @@ -155,7 +155,7 @@ ]]>

    Senders SHOULD NOT forward messages using this protocol to recipients that have not indicated support for it. However they may still - format the forward as plain text inside the <body> of a standard message stanza for compatibility with clients lacking support. + format the forward as plain text inside the <body> of a standard message stanza for compatibility with clients lacking support. Such a plain text version SHOULD NOT be included in a stanza using this extension (e.g. as a 'fallback'), as receiving entities are expected to display the <body> of a message as well as any forwarded stanza therein.

    diff --git a/xep-0301.xml b/xep-0301.xml index e8631c87..ccc41f63 100644 --- a/xep-0301.xml +++ b/xep-0301.xml @@ -72,7 +72,7 @@ 0.8 2013-04-08 MDR -

    Several clarifications made to several sections. +

    Several clarifications made to several sections. Removed references to proprietary products. New "Processing Rules" section added. Set a default <rtt/> event attribute value of 'edit', if no event attribute is specified.

    @@ -88,7 +88,7 @@ 2012-07-28 MDR

    Changes and improvements in preparation for advance to Draft. Unified - <e/> element (Erase Text) to handle all possible text deletions. + <e/> element (Erase Text) to handle all possible text deletions. Clarify the Unicode terminology used in this specification, and move section 4.5.4 downwards to section 4.7 to improve reading order.

    @@ -380,7 +380,7 @@ Note: This action element is the minimum support REQUIRED for sender clients (i.e., speech transcription, chat bots, and Simple Real-Time Text are still possible without supporting additional action elements).

    text]]>

    Inserts specified text at position 'p' in the message text.

    - + @@ -676,7 +676,7 @@ ELLO ]]>
    - +

    The example above sends the misspelled "HLL", then <e/><e/> backspaces 2 times, then sends "HELLO".

    @@ -687,7 +687,7 @@ ELLO ]]>
    - +

    The example above shows that <e n='2'/> does the same thing as <e/><e/>.

    @@ -708,7 +708,7 @@ ELLO ]]> - +

    The example above splits the same real-time text over multiple <message/> stanzas, which would occur if the typing was occurring more slowly, over several Transmission Interval cycles.

    @@ -723,48 +723,48 @@ Hello - + Alice Hello Alice - - + + This i - + s Bob This is Bob - - + + How a - + re yo - + u? How are you? ]]> - +

    The example above represents moderate typing speed during a normal Transmission Interval, such as 700 milliseconds between <message/> stanzas for continuous typing. It illustrates the following RTT Attributes:

    @@ -784,14 +784,14 @@ ]]> - +

    Final result of real-time message: "Hello, this is Alice!"
    This example outputs "Hello Bob, this is Alice!" then <e n='4' p='9'/> erases 4 characters before character position index 9. The Element <e/> – Erase Text removes the text " Bob" including the preceding space character.

    - + @@ -800,7 +800,7 @@ Bob ]]> - +

    Final result of real-time message: "Hello Bob, this is Alice!"
    @@ -814,7 +814,7 @@ this ]]> - +

    Final result of real-time message: "Hello Bob, this is Alice!"
    @@ -833,7 +833,7 @@ there, ]]> - +

    Resulting real-time message: "Hello there, World", completed in the following series of action elements:

    @@ -1000,7 +1000,7 @@ RFC 5194: Framework for Real-Time Text over IP Using the Session Initiation Protocol (SIP) <http://tools.ietf.org/html/rfc5194>. and ITU-T T.140. Clients that run on multiple networks, might need to utilize multiple real-time text technologies. To interoperate between incompatible real-time text technologies, gateway servers can transcode between different real-time text technologies, along with other media such as audio and video. This can include TTY and textphones.

    In the SIP environment, real-time text is specified in RFC 4103 and ITU-T T.140. SIP is a popular real-time session control protocol, and there are many implementations of real-time text controlled by SIP. This includes emergency services in some regions.

    -

    Interoperability considerations include addressing translation, media negotiation and translation, and media transcoding. Transcoding is straightforward between this specification and T.140 / RFC 4103, except for editing in the middle of messages. Text insertions or deletions, occurring far back in the message, can cause a large number of erase operations in T.140 that consume time and bandwidth. T.140 specifies the use of ISO 6429 control codes for presentation characteristics, such as text color, that are not supported by this specification. During transcoding, these control codes needs to be filtered off in order to not disturb the presentation of text. Guidance on address translation and conveyance between XMPP and SIP can be found in &stoxcore;.

    +

    Interoperability considerations include addressing translation, media negotiation and translation, and media transcoding. Transcoding is straightforward between this specification and T.140 / RFC 4103, except for editing in the middle of messages. Text insertions or deletions, occurring far back in the message, can cause a large number of erase operations in T.140 that consume time and bandwidth. T.140 specifies the use of ISO 6429 control codes for presentation characteristics, such as text color, that are not supported by this specification. During transcoding, these control codes needs to be filtered off in order to not disturb the presentation of text. Guidance on address translation and conveyance between XMPP and SIP can be found in &stoxcore;.

    According to ITU-T Rec. F.703, the “Total Conversation” standard defines the simultaneous use of audio, video, and real-time text. For convenience, real-time communication applications can be designed to have automatic negotiation of as many as possible of the three media preferred by the users.

    diff --git a/xep-0302.xml b/xep-0302.xml index 5bf54086..ed4e6a71 100644 --- a/xep-0302.xml +++ b/xep-0302.xml @@ -187,10 +187,10 @@

    This document introduces no additional security considerations above and beyond those defined in the documents on which it depends.

    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    -

    This document requires no interaction with the ®ISTRAR;.

    +

    This document requires no interaction with the ®ISTRAR;.

    Thanks to Dave Cridland, Waqas Hussain, Kevin Smith, and Matthew Wild for their feedback.

    diff --git a/xep-0304.xml b/xep-0304.xml index 7ca449e9..4421c6f4 100644 --- a/xep-0304.xml +++ b/xep-0304.xml @@ -58,29 +58,29 @@

    During the stream negotiation process, the server can advertise this feature. The feature is negotiated after the resource binding. (See &xep0170; regarding the recommended order of stream feature negotiation.)

    - -C: S: - + ]]>
    -

    Client negotiates the keepalive feature by providing an interval value based on server limits and its own condition. The interval SHOULD be a positive interger, and zero is invalid.

    +

    Client negotiates the keepalive feature by providing an interval value based on server limits and its own condition. The interval SHOULD be a positive interger, and zero is invalid.

    @@ -137,7 +137,7 @@ S: targetNamespace='urn:xmpp:keepalive:0' xmlns='urn:xmpp:keepalive:0' elementFormDefault='unqualified'> - + diff --git a/xep-0305.xml b/xep-0305.xml index 2304423b..ae30e3da 100644 --- a/xep-0305.xml +++ b/xep-0305.xml @@ -418,7 +418,7 @@ Content-Length: 674

    Because pipelining does not skip any channel encryption or authentication steps, but merely packs them into a smaller number of TCP packets or HTTP request/response pairs, it is unlikely that the foregoing quickstart methods introduce security vulnerabilities. However, the server needs to be careful not to send stream features that it would not otherwise send before a security context is established.

    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    This specification defines the following XML namespace:

    diff --git a/xep-0306.xml b/xep-0306.xml index 94953062..c3be39e1 100644 --- a/xep-0306.xml +++ b/xep-0306.xml @@ -175,7 +175,7 @@
    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    diff --git a/xep-0307.xml b/xep-0307.xml index c74d7f98..c18a6f3b 100644 --- a/xep-0307.xml +++ b/xep-0307.xml @@ -38,7 +38,7 @@ -

    &xep0045; defines the protocol for groupchat in XMPP. In some situations, the room creator may want to request a unique room name before attempting to create the room (e.g., to avoid the possibility of a room conflict). Naturally, one way to do so is for the creator's client to generate a globally unique identifier, for example as defined in &rfc4122;. Another way is for the client to ask the MUC service for a unique room ID (which the service will thus reserve for that user).

    +

    &xep0045; defines the protocol for groupchat in XMPP. In some situations, the room creator may want to request a unique room name before attempting to create the room (e.g., to avoid the possibility of a room conflict). Naturally, one way to do so is for the creator's client to generate a globally unique identifier, for example as defined in &rfc4122;. Another way is for the client to ask the MUC service for a unique room ID (which the service will thus reserve for that user).

    @@ -66,7 +66,7 @@

    The service MAY use any algorithm that ensures the creation of a room name that will be permanently unique in the context of the service (e.g., a cryptographic hash of the requesting JID, datetime, and random salt), or simply use a UUID as defined by RFC 4122.

    The room creator would then use the XML character data of the <unique/> element as the node identifier portion of the room JID it requests:

    diff --git a/xep-0309.xml b/xep-0309.xml index 51244117..d6d58a35 100644 --- a/xep-0309.xml +++ b/xep-0309.xml @@ -299,7 +299,7 @@ Directory Service
    -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    diff --git a/xep-0311.xml b/xep-0311.xml index 51c153b9..a20ecf5e 100644 --- a/xep-0311.xml +++ b/xep-0311.xml @@ -129,7 +129,7 @@ ]]>

    When the room does not send the full history of all messages that the client has not received, it MUST (prior to sending any history and subsequent to sending presence) send a message stanza with a payload whose name is 'presence-session' and namespace is "urn:xmpp:presence-session:0" with an attribute named "type" whose value is "truncated". This lets the client know that it is missing history and it could choose to display this to the user in some way.

    - +
    diff --git a/xep-0312.xml b/xep-0312.xml index ac53b20a..93e8edd2 100644 --- a/xep-0312.xml +++ b/xep-0312.xml @@ -108,7 +108,7 @@ -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    @@ -126,7 +126,7 @@ http://jabber.org/protocol/pubsub#since - The pubsub or PEP service sends interim notifications upon receiving + The pubsub or PEP service sends interim notifications upon receiving initial presence containing the subscriber's last logout time. XEP-0312 diff --git a/xep-0313.xml b/xep-0313.xml index 8001dd42..447fae94 100644 --- a/xep-0313.xml +++ b/xep-0313.xml @@ -133,7 +133,7 @@ -

    An archive contains a collection of messages relevant to a particular XMPP address, e.g. a user, MUC, pubsub node, server. Note: while a service might have many "archives" as defined here (one per JID capable of being queried) this is a conceptual distinction, +

    An archive contains a collection of messages relevant to a particular XMPP address, e.g. a user, MUC, pubsub node, server. Note: while a service might have many "archives" as defined here (one per JID capable of being queried) this is a conceptual distinction, and a server is not bound to any particular implementation or arrangement of data stores.

    Exactly which messages a server archives is up to implementation and deployment policy, but it is expected that all messages that hold meaningful content, rather than state changes such as Chat State Notifications, would be archived. Rules are specified later in this document.

    @@ -510,7 +510,7 @@ - + diff --git a/xep-0314.xml b/xep-0314.xml index 3b5a52af..eaf4c95e 100644 --- a/xep-0314.xml +++ b/xep-0314.xml @@ -429,7 +429,7 @@ And by opposing end them? -]]> +]]>
    @@ -820,7 +820,7 @@ And by opposing end them? - + @@ -829,7 +829,7 @@ And by opposing end them? - + ]]> @@ -852,7 +852,7 @@ And by opposing end them? - + ]]> diff --git a/xep-0315.xml b/xep-0315.xml index 2418b891..a5b37100 100644 --- a/xep-0315.xml +++ b/xep-0315.xml @@ -94,7 +94,7 @@ -

    This document requires no interaction with &IANA;.

    +

    This document requires no interaction with &IANA;.

    diff --git a/xep-0316.xml b/xep-0316.xml index 219e57e9..f90f9c6a 100644 --- a/xep-0316.xml +++ b/xep-0316.xml @@ -62,7 +62,7 @@ - @@ -83,7 +83,7 @@ - @@ -102,7 +102,7 @@ - @@ -211,7 +211,7 @@

    If a chatroom supports MEP, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning an identity of "pubsub/mep" and the relevant pubsub features:

    @@ -219,7 +219,7 @@ ]]> @@ -271,7 +271,7 @@ mep - A MUC eventing service that supports the + A MUC eventing service that supports the publish-subscribe subset defined herein. XEP-0316 diff --git a/xep-0317.xml b/xep-0317.xml index 599762b0..330f81c5 100644 --- a/xep-0317.xml +++ b/xep-0317.xml @@ -113,7 +113,7 @@ to='physicsforpoets@courses.example.edu' type='set' xml:lang='en'> - @@ -125,7 +125,7 @@ to='professor@example.edu/office' type='result' xml:lang='en'> - @@ -157,7 +157,7 @@ to='physicsforpoets@courses.example.edu' type='set' xml:lang='en'> - @@ -180,7 +180,7 @@ to='professor@example.edu/office' type='result' xml:lang='en'> - @@ -196,7 +196,7 @@ to='physicsforpoets@courses.example.edu' type='set' xml:lang='en'> - @@ -219,7 +219,7 @@ to='professor@example.edu/office' type='result' xml:lang='en'> - diff --git a/xep-0318.xml b/xep-0318.xml index 704fa49e..3c2b4727 100644 --- a/xep-0318.xml +++ b/xep-0318.xml @@ -51,13 +51,13 @@

    According to &rfc6121;, contacts a client doesn't have presence information on, are expected to be offline and server aren't mandated to explicitly send offline presence to the client for offline users.

    In addition, clients in constrained environments (i.e. mobile clients), could explicitly tell the server to filter out presence stanzas of certain kind, to keep communication to a minimum. One such protocol is &xep0273;.

    This causes presence information to be outdated and any information, that might have been attached to the offline presence, i.e. &xep0203;, to be missing at client side.

    -

    Sending presence probes from the client should be based on human request, i.e. opening a chat dialog to an offline contact when messing full presence information for that contact. Clients MUST NOT send presence probes to all contacts that they think are offline after login.

    +

    Sending presence probes from the client should be based on human request, i.e. opening a chat dialog to an offline contact when messing full presence information for that contact. Clients MUST NOT send presence probes to all contacts that they think are offline after login.

    This section describes two major use cases of the described protocol, client initiated presence probes.

    In some situations, after login, the client has incomplete presence information for offline contacts. The user might be interested in status text of the offline presence of a contact or when a contact went offline. This information can be requested, i.e. when the user opens a chat dialog to an offline user, using a client initiated presence probe and is described in the following two examples.

    -

    Initialilly a client requests the current presence information of a contact by sending out a presence probe.

    +

    Initialilly a client requests the current presence information of a contact by sending out a presence probe.

    ]]>

    The other side's server, in this example montague.com, then responds with the last known presence of the user, including &xep0203; and other information provided by the user.

    diff --git a/xep-0320.xml b/xep-0320.xml index dd908bd9..72cbbdda 100644 --- a/xep-0320.xml +++ b/xep-0320.xml @@ -238,7 +238,7 @@ a=setup:role

    If an entity supports establishing a Secure Real-time Transport Protocol security context using the Datagram Transport Layer Security protocol, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of "urn:xmpp:jingle:apps:dtls:0":

    @@ -246,7 +246,7 @@ a=setup:role ]]> diff --git a/xep-0323.xml b/xep-0323.xml index 31b46c9d..3cfa27c2 100644 --- a/xep-0323.xml +++ b/xep-0323.xml @@ -498,7 +498,7 @@ - + @@ -519,14 +519,14 @@ id='S0002'> - + - + @@ -548,7 +548,7 @@ id='S0003'> - + - + - + - + - + - + - - - + + + - + - + - + - + ... - + - + @@ -685,31 +685,31 @@ - + - + - + - + - + @@ -742,21 +742,21 @@ - + - + - - + + @@ -775,21 +775,21 @@ id='S0007'> - + - + - + - + - + - - - - + + + + @@ -1414,7 +1414,7 @@ targetNamespace='urn:xmpp:iot:sensordata' xmlns='urn:xmpp:iot:sensordata' elementFormDefault='qualified'> - + @@ -1443,7 +1443,7 @@ - + @@ -1460,32 +1460,32 @@ - + - + - + - + - + @@ -1520,7 +1520,7 @@ - + @@ -1541,13 +1541,13 @@ - + - + @@ -1556,13 +1556,13 @@ - + - + @@ -1579,7 +1579,7 @@ - + @@ -1588,7 +1588,7 @@ - + @@ -1596,7 +1596,7 @@ - + @@ -1604,7 +1604,7 @@ - + @@ -1612,7 +1612,7 @@ - + @@ -1620,7 +1620,7 @@ - + @@ -1628,7 +1628,7 @@ - + @@ -1637,7 +1637,7 @@ - + @@ -1645,7 +1645,7 @@ - + @@ -1653,7 +1653,7 @@ - + @@ -1661,7 +1661,7 @@ - + ]]>
    diff --git a/xep-0324.xml b/xep-0324.xml index 7174577a..9fd52b7e 100644 --- a/xep-0324.xml +++ b/xep-0324.xml @@ -129,12 +129,12 @@ communication between Things is done using the XMPP protocol.

    - Note has to be taken, that this XEP, and other Internet of Things-related XEP's, are designed for implementation in small devices, many of which have very limited - amount of memory (both RAM and ROM) or resources (processing power). Therefore, simplicity is of utmost importance. Furthermore, Internet of Things networks can + Note has to be taken, that this XEP, and other Internet of Things-related XEP's, are designed for implementation in small devices, many of which have very limited + amount of memory (both RAM and ROM) or resources (processing power). Therefore, simplicity is of utmost importance. Furthermore, Internet of Things networks can become huge, easily containing millions or billions of devices in peer-to-peer networks.

    - An added complexity in the provisioning case is that Things (small sensors for example) often have very limited user interface options. Therefore, this document + An added complexity in the provisioning case is that Things (small sensors for example) often have very limited user interface options. Therefore, this document explains how provisioning can be done efficiently using a trusted third party with more power and options when it comes to user interface design and storage.

    @@ -195,7 +195,7 @@ XEP-0323 Provides the underlying architecture, basic operations and data structures for sensor data communication over XMPP networks. - It includes a hardware abstraction model, removing any technical detail implemented in underlying technologies. This XEP is used by all other + It includes a hardware abstraction model, removing any technical detail implemented in underlying technologies. This XEP is used by all other Internet of Things XEPs. @@ -386,7 +386,7 @@

    - The most basic use case in sensor networks is to read out sensor data from a sensor. However, since protecting end-user integrity and system security is vital, access + The most basic use case in sensor networks is to read out sensor data from a sensor. However, since protecting end-user integrity and system security is vital, access rights and user privileges have to be imposed on the network.

    @@ -470,7 +470,7 @@ - + ... @@ -487,7 +487,7 @@ - + ... @@ -507,7 +507,7 @@ id='3'> - + BASE-64 ENCODED PUBLIC X.509 CERTIFICATE - + BASE-64 ENCODED CHALLENGE - + BASE-64 ENCODED RESPONSE - + BASE-64 encoded challenge - + - + - + - + - + - +

    - Note: This use case is an extension of the use case 'Read-out rejected' in the XEP-0323 + Note: This use case is an extension of the use case 'Read-out rejected' in the XEP-0323 Internet of Things - Sensor Data.

    @@ -858,21 +858,21 @@ id='11'> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + BASE-64 ENCODED PUBLIC X.509 CERTIFICATE - + BASE-64 ENCODED CHALLENGE - + BASE-64 ENCODED RESPONSE - + - + - + - + - + - + ]]> @@ -1472,21 +1472,21 @@ - + - + - + ]]> @@ -1506,7 +1506,7 @@ - + - + - + - + - + - + - + ]]>

    @@ -1658,7 +1658,7 @@ very many sensors containing many fields have to be read, as is documented in Internet of Things - Concentrators Internet of Things - Concentrators. In such cases, a node may have to be specified using two or perhaps even three ID's: a sourceId identifying the data source controlling the device, a possible cacheType narrowing down the search to - a specific kind of node, and the common nodeId. For more information about this, see + a specific kind of node, and the common nodeId. For more information about this, see Internet of Things - Concentrators.

    @@ -1727,36 +1727,36 @@ xmlns='urn:xmpp:iot:provisioning' xmlns:sn='urn:xmpp:iot:sensordata' elementFormDefault='qualified'> - + - + - + - + - + - + - + - + - + @@ -1776,14 +1776,14 @@ - + - + @@ -1791,7 +1791,7 @@ - + @@ -1799,20 +1799,20 @@ - + - + - + @@ -1821,11 +1821,11 @@ - + - + @@ -1833,7 +1833,7 @@ - + @@ -1841,11 +1841,11 @@ - + - + @@ -1854,7 +1854,7 @@ - + @@ -1875,7 +1875,7 @@ - + @@ -1883,13 +1883,13 @@ - + - + @@ -1897,7 +1897,7 @@ - + @@ -1915,7 +1915,7 @@ - + @@ -1923,7 +1923,7 @@ - + @@ -1931,59 +1931,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1996,13 +1996,13 @@ - + - + - + ]]> diff --git a/xep-0325.xml b/xep-0325.xml index 6180e5d2..3a43a016 100644 --- a/xep-0325.xml +++ b/xep-0325.xml @@ -326,7 +326,7 @@ .

    - If the device is a concentrator, as defined in Internet of Things - Concentrators, + If the device is a concentrator, as defined in Internet of Things - Concentrators, an handles multiple nodes behind it, which node(s) to control is defined using node elements. If not a concentrator, the use of node elements is not necessary, and control commands are sent directly to the device itself.

    @@ -363,7 +363,7 @@ - +

    Note: An empty setResponse element means that the control command was executed as provided in the request. Sometimes, the device - can restrict the command to a subset of nodes and/or parameters. In such cases, the setResponse element will contain what nodes and/or parameters + can restrict the command to a subset of nodes and/or parameters. In such cases, the setResponse element will contain what nodes and/or parameters were finally used to perform the command. For examples of this, see &xep0324;.

    @@ -395,7 +395,7 @@ - + - + - @@ -660,8 +660,8 @@ and only the corresponding actions taken.

    - All parameters in the form MUST also have validation rules defined according to XEP-0122, - specifically validation data types and ranges where appropriate. This to give type information to the client, which the client later can use to send + All parameters in the form MUST also have validation rules defined according to XEP-0122, + specifically validation data types and ranges where appropriate. This to give type information to the client, which the client later can use to send typed control commands directly, without the need to get and send data forms to the device to control it.

    @@ -670,7 +670,7 @@ MUST also be ordered in a way so that when set in that order using the typed commands, the corresponding control actions can be successfully executed.

    - Note: There's a difference between node parameters, as described in XEP-0326 + Note: There's a difference between node parameters, as described in XEP-0326 Internet of Things - Concentrators, and control parameters as described in this document. For more information about this, please see Difference between node parameters and node control parameters. @@ -688,7 +688,7 @@ id='4'> - + - +

    - A device can reject a control form submission. It does this returning an error iq stanza. If there are errors in the form, details are listed + A device can reject a control form submission. It does this returning an error iq stanza. If there are errors in the form, details are listed using paramError elements in the response, as is shown in the following example:

    @@ -766,7 +766,7 @@
    - + - +

    - A client can get a control form containing available control parameters common between a set of nodes controlled by the concentrator. This is done + A client can get a control form containing available control parameters common between a set of nodes controlled by the concentrator. This is done adding a sequence of node elements to a getForm command sent to the concentrator, as is shown in the following example:

    @@ -874,13 +874,13 @@
    - + - @@ -906,7 +906,7 @@

    - A device can reject a control form request. It does this returning an error iq stanza. The following example shows the device rejecting + A device can reject a control form request. It does this returning an error iq stanza. The following example shows the device rejecting a control form request, because it does not support the handling of common parameters between multiple nodes:

    @@ -922,7 +922,7 @@ - + - +

    - A device can reject a control form submission. It does this returning an error iq stanza. The following example shows the device rejecting a + A device can reject a control form submission. It does this returning an error iq stanza. The following example shows the device rejecting a control form submission because one of the control parameters, even though it exists on all nodes, is not of the same type on all nodes.

    @@ -1001,7 +1001,7 @@
    - + Depending on the reason for rejecting a control request, different XMPP errors can be returned, according to the description in the following table. The table also lists recommended error type for each error. Error stanzas may also include paramError child elements to provide additional textual error information that - corresponds to a particular control parameter provided in the request. Any custom error message not related to control parameters is returned in a text + corresponds to a particular control parameter provided in the request. Any custom error message not related to control parameters is returned in a text element.

    @@ -1479,7 +1479,7 @@
  • - For control actions requiring multiple control parameters, devices should strive to publish default values for all parameters involved. + For control actions requiring multiple control parameters, devices should strive to publish default values for all parameters involved. These default values should then be used by the device if a client happens to write only a subset of the control parameters required for a control action. The default value could be the current state of the parameter.

    @@ -1496,7 +1496,7 @@ having the same parameterGroup belong together and should be written together.

    - Note: If used, the server must not include a parameter in more than one parameter group at a time. The form may contain multiple group, but each + Note: If used, the server must not include a parameter in more than one parameter group at a time. The form may contain multiple group, but each parameter must only have at most one parameterGroup element.

    @@ -1510,13 +1510,13 @@ id='12'> - + - @@ -1615,7 +1615,7 @@

    - If control interaction is performed in a context of delegated trust, as defined in the Sensor Network Provisioning XEP-0324 &xep0324;, + If control interaction is performed in a context of delegated trust, as defined in the Sensor Network Provisioning XEP-0324 &xep0324;, tokens should always be included in all calls. This to allow devices to check privileges with provisioning servers.

    @@ -1640,9 +1640,9 @@

    Most examples in this document have been simplified examples where a few devices containing a few control parameters have been used. However, in many cases large subsystems with very many actuators containing many different control actions have to be controlled, as is documented in - Internet of Things - Concentrators. - In such cases, a node may have to be specified using two or perhaps even three ID's: a sourceId identifying the data source controlling the device, a possible - cacheType narrowing down the search to a specific kind of node, and the common nodeId. For more information about this, see + Internet of Things - Concentrators. + In such cases, a node may have to be specified using two or perhaps even three ID's: a sourceId identifying the data source controlling the device, a possible + cacheType narrowing down the search to a specific kind of node, and the common nodeId. For more information about this, see Internet of Things - Concentrators.

    @@ -1720,12 +1720,12 @@ xmlns:xdv="http://jabber.org/protocol/xdata-validate" xmlns:xdl="http://jabber.org/protocol/xdata-layout" elementFormDefault='qualified'> - + - + @@ -1745,7 +1745,7 @@ - + @@ -1754,9 +1754,9 @@ - + - + @@ -1765,29 +1765,29 @@ - + - + - + - + - + @@ -1795,7 +1795,7 @@ - + @@ -1803,7 +1803,7 @@ - + @@ -1811,7 +1811,7 @@ - + @@ -1819,7 +1819,7 @@ - + @@ -1827,7 +1827,7 @@ - + @@ -1835,7 +1835,7 @@ - + @@ -1843,7 +1843,7 @@ - + @@ -1851,7 +1851,7 @@ - + @@ -1859,7 +1859,7 @@ - + @@ -1867,7 +1867,7 @@ - + @@ -1875,17 +1875,17 @@ - + - + - + ]]> diff --git a/xep-0326.xml b/xep-0326.xml index 925acac3..80e87b81 100644 --- a/xep-0326.xml +++ b/xep-0326.xml @@ -435,7 +435,7 @@ id='1'> - + - + - + - + - + - + - + - +

    Note: The parameters and messages attributes can be used to retrieve parameter and status message information - about the nodes in event messages sent from the concentrator. Note that the xml:lang may be used to select the language used in such events, + about the nodes in event messages sent from the concentrator. Note that the xml:lang may be used to select the language used in such events, if the concentrator supports localization of strings.

    @@ -757,7 +757,7 @@ id='60'> - + ]]>

    - The subscribe command has a set of optional attributes, one for each event type available, and with the same names (nodeAdded, + The subscribe command has a set of optional attributes, one for each event type available, and with the same names (nodeAdded, nodeUpdated, nodeStatusChanged, nodeRemoved, nodeMovedUp and nodeMovedDown), that the client can use to subscribe to individual events, but not to others. They have the default value of true implying that if not provided, the default action is to subscribe to those events. The attributes parameters and messages can also be used to specify @@ -785,7 +785,7 @@ - + - + - + - + - + ... Sequence of event messages sent from concentrator to client.]]>

    @@ -902,7 +902,7 @@ id='73'> - + - + - + - + - ]]> @@ -1019,17 +1019,17 @@ - + - - - ]]> @@ -1050,13 +1050,13 @@ id='11'> - + - @@ -1089,13 +1089,13 @@ - + - @@ -1106,7 +1106,7 @@ - @@ -1117,7 +1117,7 @@ - @@ -1147,19 +1147,19 @@ id='13'> - + - - - - ]]> @@ -1177,13 +1177,13 @@ id='14'> - + - @@ -1194,7 +1194,7 @@ - @@ -1205,7 +1205,7 @@ - @@ -1216,7 +1216,7 @@ - @@ -1239,15 +1239,15 @@ Namespace.BaseClass1 - + - - ]]> @@ -1268,13 +1268,13 @@ Namespace.BaseClass1 - + - @@ -1285,7 +1285,7 @@ - @@ -1317,7 +1317,7 @@ id='17'> - + - + - ]]> @@ -1373,13 +1373,13 @@ id='19'> - + - @@ -1406,15 +1406,15 @@ id='20'> - + - - ]]> @@ -1432,13 +1432,13 @@ id='21'> - + - @@ -1449,7 +1449,7 @@ - @@ -1476,7 +1476,7 @@ id='22'> - + - + - ]]> @@ -1528,16 +1528,16 @@ from='client@example.org/client' to='concentrator@example.org' id='24'> - - + - @@ -1562,15 +1562,15 @@ - + - - ]]> @@ -1591,19 +1591,19 @@ - + - - @@ -1625,7 +1625,7 @@ id='27'> - + - + - - - - - - - - - ]]> @@ -1696,7 +1696,7 @@ id='53'> - + - + - + - + - + - @@ -1976,13 +1976,13 @@ - + - @@ -2043,7 +2043,7 @@ - +

    - Important: A parameter that exists in multiple nodes, but has different parameter values among the nodes, will be marked with the - notSame element, according to XEP-0336. Clients using this command MUST + Important: A parameter that exists in multiple nodes, but has different parameter values among the nodes, will be marked with the + notSame element, according to XEP-0336. Clients using this command MUST support the extensions defined in XEP-0336.

    @@ -2086,14 +2086,14 @@ - + - @@ -2203,13 +2203,13 @@ - + - @@ -2220,7 +2220,7 @@ - @@ -2231,7 +2231,7 @@ - @@ -2252,7 +2252,7 @@

    Important: A parameter that exists in multiple nodes, but has different parameter values among the nodes, will be marked with the - notSame element, according to XEP-0336. Such parameters MUST NOT be sent back to the server + notSame element, according to XEP-0336. Such parameters MUST NOT be sent back to the server unless they have explicitly been edited or signed by the end-user. The value sent back to the server will be set in all nodes.

    @@ -2284,7 +2284,7 @@
    - + - + - - Internal clock is offset more than 7 seconds. - + ]]>

    @@ -2400,13 +2400,13 @@ id='35'> - + - @@ -2416,7 +2416,7 @@ - Internal clock is offset more than 7 seconds. ]]> @@ -2437,7 +2437,7 @@ id='36'> - + - - + - @@ -2508,7 +2508,7 @@ from='client@example.org/client' to='concentrator@example.org' id='38'> - @@ -2523,13 +2523,13 @@ - + - @@ -2556,7 +2556,7 @@ from='client@example.org/client' to='concentrator@example.org' id='39'> - @@ -2571,7 +2571,7 @@ - + - + - + - + - - - ]]>

    - There are three types of commands available: Simple, Parameterized and Query. Simple commands - take no parameters, and are therefore simpler to execute. Parameterized commands require the client to get a set of parameters for the corresponding + There are three types of commands available: Simple, Parameterized and Query. Simple commands + take no parameters, and are therefore simpler to execute. Parameterized commands require the client to get a set of parameters for the corresponding command before it can be executed. Query commands also require a set of parameters to be executed, but return a response after (or during) execution - in an asynchronous fashion. Queries can also be aborted during execution. A Query with an empty parameter set is considered to be a simple query, not requiring a + in an asynchronous fashion. Queries can also be aborted during execution. A Query with an empty parameter set is considered to be a simple query, not requiring a parameter dialog to be shown.

    @@ -2692,7 +2692,7 @@ id='44'> - + - - + - @@ -2761,7 +2761,7 @@ from='client@example.org/client' to='concentrator@example.org' id='46'> - @@ -2776,7 +2776,7 @@ - + - @@ -2813,7 +2813,7 @@ - +

    - Executing a Node Query also requires the client to get a set of parameters for the query. This is done in the same way as for parametrized commands, + Executing a Node Query also requires the client to get a set of parameters for the query. This is done in the same way as for parametrized commands, as is shown in the following example:

    @@ -2835,17 +2835,17 @@ from='client@example.org/client' to='concentrator@example.org' id='74'> - - + - @@ -2902,18 +2902,18 @@ - + - + ...]]>

    - After the successful execution of a query command, a sequence of query events will follow. These events will include a queryId + After the successful execution of a query command, a sequence of query events will follow. These events will include a queryId attribute to identify to which query the corresponding events correspond. See section about Query Events for more information about this.

    @@ -2950,7 +2950,7 @@ - + - - + ]]>

    - Note: The execution of a query is an asynchronous process, with a small delay between the compilation and transmission of + Note: The execution of a query is an asynchronous process, with a small delay between the compilation and transmission of query events and the reception of them by a client. A client may thinkt a query is still active when asking to abort it, when the query might actually have been finished and removed on the query side. Therefore, clients should be aware of this when receiving NotFound responses from a concentrator, that the query might already have been finished. @@ -3010,17 +3010,17 @@ - + - - @@ -3047,7 +3047,7 @@ - + - + - @@ -3149,7 +3149,7 @@ - + - + - +

    - Executing a Node Query on multiple nodes also requires the client to get a set of parameters for the query common to all nodes. + Executing a Node Query on multiple nodes also requires the client to get a set of parameters for the query common to all nodes. This is done in the same way as for parametrized commands, as is shown in the following example:

    @@ -3282,14 +3282,14 @@
    - + - @@ -3351,14 +3351,14 @@ - + - + ...]]>

    @@ -3406,7 +3406,7 @@ - + - + - +

    - During the processing of a query, the query might want to report a message of some kind. This is done using the queryMessage + During the processing of a query, the query might want to report a message of some kind. This is done using the queryMessage query event.

    @@ -3774,15 +3774,15 @@

    - The nodeAdded event is sent when a node has been added to a data source which the client subscribes to. The following example + The nodeAdded event is sent when a node has been added to a data source which the client subscribes to. The following example shows how such an event message may look like:

    - ]]> @@ -3790,8 +3790,8 @@ - @@ -3817,8 +3817,8 @@ - ]]>
    @@ -3850,8 +3850,8 @@ - ]]> @@ -3859,8 +3859,8 @@ - @@ -3881,8 +3881,8 @@ - ]]> @@ -3890,8 +3890,8 @@ - @@ -3971,8 +3971,8 @@

    A concentrator can often store data from sensors locally (or remotely but controlled locally). Storage is done in field databases. A concentrator with - only communicative abilities will publish zero such field databases (and support for none of the field database commands), while a pure metering database will publish - one or many field databases, but none of the nodes available in any of the different data sources are readable or writable. The nodes in this latter case only acts as + only communicative abilities will publish zero such field databases (and support for none of the field database commands), while a pure metering database will publish + one or many field databases, but none of the nodes available in any of the different data sources are readable or writable. The nodes in this latter case only acts as placeholders for the data that the concentrator is storing or controlling.

    @@ -3990,7 +3990,7 @@ id='64'> - + - + - @@ -4252,9 +4252,9 @@

    Once the parameter form has been filled out, a database readout can be started using the startDatabaseReadout command. - Data read from the concentrator will follow the same flow of sensor data as that described in &xep0323;. The only difference is that the + Data read from the concentrator will follow the same flow of sensor data as that described in &xep0323;. The only difference is that the read-out is started with the startDatabaseReadout command instead of the req - command of the sensor data namespace. + command of the sensor data namespace.

    The following diagram shows the flow of messages when requesting a readout from a database: @@ -4377,14 +4377,14 @@ - + - + ... Readout messages follow.]]> @@ -4407,7 +4407,7 @@ - + - + - + - + ... - + - + false

  • @@ -4645,7 +4645,7 @@

    (***) Note that cacheType is optional. In some data sources it might be necessary to include a cache type to allow for IDs that are not unique - within the source. In these cases, it concentrator must include the cacheType attribute for nodes in the corresponding data source, and clients must use the corresponding + within the source. In these cases, it concentrator must include the cacheType attribute for nodes in the corresponding data source, and clients must use the corresponding cacheType value when referencing the node. But if such a separation of IDs within a source is not required, the concentrator may ignore the cacheType attribute. In these instances clients may also ignore the cacheType attribute when referencing the nodes in the corresponding data source, or use the empty string as value for the cacheType value. The server must ignore empty cacheType values for data sources not using a cache type separation mechanism. @@ -4765,7 +4765,7 @@ ... - + successString

    @@ -4840,7 +4840,7 @@

    - Nodes can be in different states. Even though nodes are free to publish any amount of states as parameters, there are a set of states that are so crucial to the + Nodes can be in different states. Even though nodes are free to publish any amount of states as parameters, there are a set of states that are so crucial to the concept of a node state, that they are published using a separate attribute and separate events. These node states are as follows:

    If the children of the node have an intrinsic order (true), or if the order is not important (false). If the order is not important, the client can present the order as it wishes, for example sorted on Node ID or any other parameter available on the child nodes. However, if the children have an - intrinsic order, it's important for the client to refresh the child list when necessary whenever the order is unknown, such as after a nodeAdded event or + intrinsic order, it's important for the client to refresh the child list when necessary whenever the order is unknown, such as after a nodeAdded event or a nodeRemoved event.
    optional - Could be presented to end-users (if available) if a command is successfully executed. It provides the client with an optionally localized string giving some context + Could be presented to end-users (if available) if a command is successfully executed. It provides the client with an optionally localized string giving some context to the message. A delete command might have a successString saying 'Current item successfully deleted.'.
    @@ -5101,8 +5101,8 @@ The concentrator can restrict friendships to trusted friends, and then assign access rights internally to the approved contacts.
  • - The concentrator can use a provisioning server (see &xep0324;) - to delegate trust to a third party responsible for controlling who can get access to the concentrator (isFriend or canAccess commands), + The concentrator can use a provisioning server (see &xep0324;) + to delegate trust to a third party responsible for controlling who can get access to the concentrator (isFriend or canAccess commands), and what items can be viewed (hasPrivilege or downloadPrivileges commands).
  • @@ -5166,7 +5166,7 @@ Not that privileges for all parameters needs to be checked in every call. And if lost from the cache, a new request needs to be made to the provisioning server.
  • - The conversion of a Parameter ID (and Page) to a Privilege ID should be performed according to rules defined in + The conversion of a Parameter ID (and Page) to a Privilege ID should be performed according to rules defined in xep-0000-IoT-Interoperability.
  • @@ -5213,24 +5213,24 @@ xmlns:xdv="http://jabber.org/protocol/xdata-validate" xmlns:xdl="http://jabber.org/protocol/xdata-layout" elementFormDefault='qualified'> - + - + - + - + - + - + @@ -5241,10 +5241,10 @@ - + - + @@ -5255,13 +5255,13 @@ - + - + - + @@ -5271,22 +5271,22 @@ - + - + - + - + - + - + @@ -5297,10 +5297,10 @@ - + - + @@ -5313,10 +5313,10 @@ - + - + @@ -5329,7 +5329,7 @@ - + @@ -5343,10 +5343,10 @@ - + - + @@ -5359,23 +5359,23 @@ - + - + - + - + - + @@ -5388,7 +5388,7 @@ - + @@ -5409,10 +5409,10 @@ - + - + @@ -5423,7 +5423,7 @@ - + @@ -5437,7 +5437,7 @@ - + @@ -5458,19 +5458,19 @@ - + - + - + - + - + @@ -5483,7 +5483,7 @@ - + @@ -5494,7 +5494,7 @@ - + @@ -5505,7 +5505,7 @@ - + @@ -5515,7 +5515,7 @@ - + @@ -5528,11 +5528,11 @@ - + - + @@ -5547,10 +5547,10 @@ - + - + @@ -5565,7 +5565,7 @@ - + @@ -5680,7 +5680,7 @@ - + @@ -5695,7 +5695,7 @@ - + @@ -5710,7 +5710,7 @@ - + @@ -5722,13 +5722,13 @@ - + - + @@ -5739,7 +5739,7 @@ - + @@ -5747,7 +5747,7 @@ - + @@ -5755,7 +5755,7 @@ - + @@ -5763,7 +5763,7 @@ - + @@ -5772,7 +5772,7 @@ - + @@ -5780,38 +5780,38 @@ - + - + - + - + - + - + - + @@ -5820,23 +5820,23 @@ - + - + - + - + - + @@ -5844,21 +5844,21 @@ - + - + - + @@ -5866,11 +5866,11 @@ - + - + @@ -5880,7 +5880,7 @@ - + @@ -5888,7 +5888,7 @@ - + @@ -5896,7 +5896,7 @@ - + @@ -5906,7 +5906,7 @@ - + @@ -5916,12 +5916,12 @@ - + - + @@ -5951,7 +5951,7 @@ - + @@ -5959,12 +5959,12 @@ - + - + @@ -5972,7 +5972,7 @@ - + @@ -5980,7 +5980,7 @@ - + @@ -5988,7 +5988,7 @@ - + @@ -5996,7 +5996,7 @@ - + @@ -6004,7 +6004,7 @@ - + @@ -6012,7 +6012,7 @@ - + @@ -6020,7 +6020,7 @@ - + @@ -6028,7 +6028,7 @@ - + @@ -6036,7 +6036,7 @@ - + @@ -6046,20 +6046,20 @@ - + - + - + @@ -6067,14 +6067,14 @@ - + - + @@ -6083,11 +6083,11 @@ - + - + @@ -6098,7 +6098,7 @@ - + @@ -6106,14 +6106,14 @@ - + - + @@ -6121,7 +6121,7 @@ - + @@ -6132,13 +6132,13 @@ - + - + @@ -6146,14 +6146,14 @@ - + - + @@ -6164,14 +6164,14 @@ - + - + @@ -6179,12 +6179,12 @@ - + - + @@ -6192,7 +6192,7 @@ - + ]]> @@ -6214,7 +6214,7 @@
  • - A presentation giving an overview of all extensions related to Internet of Things can be found here: + A presentation giving an overview of all extensions related to Internet of Things can be found here: http://prezi.com/esosntqhewhs/iot-xmpp/.

  • diff --git a/xep-0328.xml b/xep-0328.xml index 757f8d01..b8ab1682 100644 --- a/xep-0328.xml +++ b/xep-0328.xml @@ -144,7 +144,7 @@ jidprep - A server component that offers a JID prepping + A server component that offers a JID prepping and normalization service to constrained clients. XEP-0328 diff --git a/xep-0331.xml b/xep-0331.xml index c6c53847..12172c08 100644 --- a/xep-0331.xml +++ b/xep-0331.xml @@ -80,8 +80,8 @@ Editing color values as color components or encoded strings is both impractical and unintuitive.

    - This document proposes a method to publish color field parameters in a way that allows clients to show a color picker dialog for the parameter - instead of forcing the user to enter an encoded color value. For clients not supporting this extensions, the color value will still be editable + This document proposes a method to publish color field parameters in a way that allows clients to show a color picker dialog for the parameter + instead of forcing the user to enter an encoded color value. For clients not supporting this extensions, the color value will still be editable as an encoded color string.

    @@ -106,7 +106,7 @@ ]]>

    - The color value is represented by a string consisting of six case-insensitive hexadecimal digits. The first two represent the red component, + The color value is represented by a string consisting of six case-insensitive hexadecimal digits. The first two represent the red component, the next two the green component and the last two the blue component.

    @@ -146,7 +146,7 @@ transparent and FF means completely opaque.

    - As with the xdc:Color type defined above, if the client does not support XEP-0122 (Data Form Validation), it will interpret the field as a + As with the xdc:Color type defined above, if the client does not support XEP-0122 (Data Form Validation), it will interpret the field as a normal text-single field. It is up to the server to validate user input. But the user can still enter a color.

    @@ -184,7 +184,7 @@ xdc:Color - a color value represented as an RGB value, expressed using 6 hexadecimal digits, with each pair of + a color value represented as an RGB value, expressed using 6 hexadecimal digits, with each pair of the hexadecimal digits representing the values of the Red, Green and Blue channel, respectively basic regex N/A @@ -201,7 +201,7 @@ xdc:ColorAlpha - a color value represented as an RGBA value, expressed using 8 hexadecimal digits, with each pair of + a color value represented as an RGBA value, expressed using 8 hexadecimal digits, with each pair of the hexadecimal digits representing the values of the Red, Green, Blue and Alpha channel, respectively basic regex N/A @@ -219,19 +219,19 @@ targetNamespace='urn:xmpp:xdata:color' xmlns='urn:xmpp:xdata:color' elementFormDefault='qualified'> - + - + - + ]]> diff --git a/xep-0333.xml b/xep-0333.xml index a853abd2..d8498387 100644 --- a/xep-0333.xml +++ b/xep-0333.xml @@ -81,13 +81,13 @@ -

    The concept of delivery and read receipts has been popularised by other messaging services such as iMessage, Google Hangouts and Blackberry Messenger. - These services provide a visual indication of when a message has been delivered to any of the recipients resources and (optionally) when it has been read. - These visual indications (referred to herein as "Chat Markers") are synced between all of the sender's - and recipient's resources automatically, so the state of a chat is always consistent. +

    The concept of delivery and read receipts has been popularised by other messaging services such as iMessage, Google Hangouts and Blackberry Messenger. + These services provide a visual indication of when a message has been delivered to any of the recipients resources and (optionally) when it has been read. + These visual indications (referred to herein as "Chat Markers") are synced between all of the sender's + and recipient's resources automatically, so the state of a chat is always consistent. If one or more of the resources is not connected, it can fetch Chat Markers from the Message Archive upon reconnecting.

    -

    &xep0184; currently provides delivery receipts on a per message basis, - but it does not provide any mechanism for the user to indicate that they have read or acknowledged the message. +

    &xep0184; currently provides delivery receipts on a per message basis, + but it does not provide any mechanism for the user to indicate that they have read or acknowledged the message. As delivery receipts are sent on a per message basis it would require multiple messages to "sync up" up delivery receipts between resources.

    Moreover by using &xep0085; you could infer that a message has been read by the recipient, if they become active at any point after the message has been delivered, but again it would require multiple messages to "sync up" chat states between resources.

    This XEP outlines an efficient message based protocol to provide this functionally using Chat Markers.

    @@ -166,9 +166,9 @@

    The Chat Marker MUST have an 'id' which is the 'id' of the message being marked.

    The Chat Marker message stanza MUST have a 'thread' child element if the message has been received, displayed or acknowledged in the context of a thread.

    A Chat Marker Indicates that all messages up to and including that message 'id' have been marked. If a thread is supplied, a Chat Marker is only valid in the context of that thread.

    - + -If recipient does not support the Chat Markers protocol it SHOULD NOT return an error.

    - sleeping - ]]> @@ -212,7 +212,7 @@ -

    Less Significant Chat Markers SHOULD only be sent if they are later than the more significant Chat Marker i.e. if a Message has been marked as displayed, +

    Less Significant Chat Markers SHOULD only be sent if they are later than the more significant Chat Marker i.e. if a Message has been marked as displayed, a received Chat Marker should only be sent if it has a later timestamp than the displayed Chat Marker.

    To avoid sending redundant Chat Markers while retrieving archived messages, Chat Markers SHOULD only be sent after retrieving the most recent message for a chat.

    Only Messages that can be displayed in a chat SHOULD be markable.

    @@ -233,7 +233,7 @@

    A user may not wish to disclose that they have received, displayed or acknowledge a message.

    -

    It is possible for a sender to leak its presence when updating Chat Markers; +

    It is possible for a sender to leak its presence when updating Chat Markers; therefore, a sender SHOULD NOT send Chat Markers to recipients who are not otherwise authorized to view its presence.

    @@ -252,18 +252,18 @@ - - + The protocol documented by this schema is defined in XEP-0333: http://xmpp.org/extensions/xep-0333.html - + @@ -282,7 +282,7 @@ - + @@ -292,8 +292,8 @@ - - + + @@ -303,7 +303,7 @@ - + ]]> diff --git a/xep-0336.xml b/xep-0336.xml index a4854019..8abe0b62 100644 --- a/xep-0336.xml +++ b/xep-0336.xml @@ -183,7 +183,7 @@
  • Wizards order their pages linearly, in a one-dimensional array of pages. Navigation is only performed using prev and next actions, and completed with the execute or - complete actions. This might work sufficiently well where page output only is based on input from the previous page. But as soon as the input depends on more pages, + complete actions. This might work sufficiently well where page output only is based on input from the previous page. But as soon as the input depends on more pages, navigation becomes unnecessarily cumbersome. For example a dialog with country, region, city, area, street, building, apartment. To change the country parameter when you are on the apartment page, requires you to back through many pages, while in the dynamic form you just change the parameter directly, since all are visible in the same form. @@ -317,7 +317,7 @@ Current location Select your current location to continue. @@ -388,7 +388,7 @@ to='formclient@example.org/client' id='1'> Current location Select your current location to continue. @@ -439,23 +439,23 @@

    Note: Server post-back should be made after the user is done editing a post-back field, but before actually navigating to the - next field. It should not be done while the user is editing the field. For check boxes or list boxes, it is easy for the application - to decide when the field has been edited, since the application can react to the controls click event. But for text edit boxes, you - cannot perform a server post-back only just because the text property of the control has changed. You need to wait until the user - leaves the control or something similar. However, as new fields can be added to the form, the client should wait for the response + next field. It should not be done while the user is editing the field. For check boxes or list boxes, it is easy for the application + to decide when the field has been edited, since the application can react to the controls click event. But for text edit boxes, you + cannot perform a server post-back only just because the text property of the control has changed. You need to wait until the user + leaves the control or something similar. However, as new fields can be added to the form, the client should wait for the response before deciding which control is the next control to go to.

    Read-only fields should be laid out on the form just as a similar but editable field would, except editing should be disabled. Together with - post-back fields, this option allows the form to enable/disable fields depending on user input. Read-only fields are declared as normal fields + post-back fields, this option allows the form to enable/disable fields depending on user input. Read-only fields are declared as normal fields in a form, except they also have the xdd:readOnly flag present in the declaration, as is shown in the following example:

    Object properties @@ -493,7 +493,7 @@

    There are many cases where you want to flag a control as having an undefined value or an - uncertain value, instead of simply a missing value. This permits the form client to display the + uncertain value, instead of simply a missing value. This permits the form client to display the control in a specific way (for instance greyed), and omit the field when submitting the form back to the server, to avoid errors.

    @@ -507,13 +507,13 @@ the corresponding attributes are left as-is.

    - Fields with undefined or uncertain values are declared as normal fields in a form, except they also have the + Fields with undefined or uncertain values are declared as normal fields in a form, except they also have the xdd:notSame flag present in the declaration, as is shown in the following example:

    Communication properties @@ -562,7 +562,7 @@ Expression @@ -588,17 +588,17 @@ an error message that can be displayed to the user in an appropriate way.

    - Note: If a field is flagged with an error, and the user starts editing it, the client should remove the error + Note: If a field is flagged with an error, and the user starts editing it, the client should remove the error flag of the field. The field can be flagged again with a new error flag during the next post-back.

    The Data Forms XEP provides a mechanism to cancel forms, by submitting the - form using type='cancel'. The Data Forms XEP stipulates that - fields should not be included when using the form type cancel. However dynamic forms, i.e. forms containing post-back fields, will need - the fields, since any dynamic form session will be identified using hidden fields in the form. So, to cancel a dynamic form, the - xdd:cancel element with the entire submitted form should be sent to the form server using an IQ set stanza, as is shown + form using type='cancel'. The Data Forms XEP stipulates that + fields should not be included when using the form type cancel. However dynamic forms, i.e. forms containing post-back fields, will need + the fields, since any dynamic form session will be identified using hidden fields in the form. So, to cancel a dynamic form, the + xdd:cancel element with the entire submitted form should be sent to the form server using an IQ set stanza, as is shown in the following example:

    @@ -618,7 +618,7 @@ ]]>

    - After receiving the cancel request the form server returns an empty response if the form was found (and therefore cancelled), or an + After receiving the cancel request the form server returns an empty response if the form was found (and therefore cancelled), or an IQ error stanza with an item-not-found error if the form was not found. The following example shows a response where the form was found and cancelled:

    @@ -635,7 +635,7 @@ makes sure the form is cancelled in all instances on the form server.

    - Note 2: If the dynamic form is invoked from a specific operation that includes its own cancel procedure, like + Note 2: If the dynamic form is invoked from a specific operation that includes its own cancel procedure, like Ad-hoc command sessions, the dynamic form is automatically and implicitly cancelled if the corresponding operation is cancelled. There is no need to explicitly cancel the dynamic form as explained in this section in such cases.

    @@ -644,7 +644,7 @@

    It might happen that the form server does not find the dynamic form posted by the form client during a post back. Reasons for this can be that the form does not include a post-back field, or that a form session timeout has occurred and the form server has discarded the dynamic - form to avoid memory leaks. Regardless of the reason, the form server responds using an IQ error stanza with the item-not-found + form to avoid memory leaks. Regardless of the reason, the form server responds using an IQ error stanza with the item-not-found error, when the client posts a form that is not found back.

    @@ -690,24 +690,24 @@

    Examples can include a control form showing control parameters. While the server is trying to retrieve the current values it presents the control form with undefined values, and later when values are received by the server, it sends an update to the client with - actual values. + actual values.

    Another example can include a dialog containing information on items on the server in a multi-user environment (for instance a file system). Changes made by users can be displayed in open dialogs to other users as they change.

    - The client may have more than one form open at any given time. It might also be so that the form has been closed prior to receiving or handling the update message, + The client may have more than one form open at any given time. It might also be so that the form has been closed prior to receiving or handling the update message, and is therefore no longer visible. To be able to identify to which form the update corresponds, the updated element is required to include a sessionVariable attribute in which it identifies a unique identifying field in the form. When the client receives the update, it goes through all forms it has open. If a form has a field variable with a corresponding - name, and the field variable has a value equal to the value in the updated form, the form should be updated by the contents of the message. If no form is found, + name, and the field variable has a value equal to the value in the updated form, the form should be updated by the contents of the message. If no form is found, the update is simply ignored. If multiple forms are found, all should be updated.

    Control parameters @@ -728,7 +728,7 @@ to='client@example.org/client'> Control parameters @@ -751,12 +751,12 @@

    Note 2: The client should also provide the current user language in a xml:lang attribute in the updated - element, if available, as is shown in the example above. + element, if available, as is shown in the example above.

    -

    If an entity supports the protocol specified herein, regardless if the entity represents a form server or a form client; it MUST advertise +

    If an entity supports the protocol specified herein, regardless if the entity represents a form server or a form client; it MUST advertise that fact by returning a feature of "urn:xmpp:xdata:dynamic" in response to &xep0030; information requests.

    - Note: When submitting a dynamic form the normal way, any dynamic form session resources are also + Note: When submitting a dynamic form the normal way, any dynamic form session resources are also automatically released.

    @@ -859,7 +859,7 @@ If the user has edited the value the corresponding field, the value from the current form is used.
  • - If the user has edited the value of the corresponding field in the current form, but the value is the same as the value + If the user has edited the value of the corresponding field in the current form, but the value is the same as the value available in the updated form, the flag stating that user input has occurred in the field can be cleared.
  • @@ -905,30 +905,30 @@ xmlns='urn:xmpp:xdata:dynamic' xmlns:xd="jabber:x:data" elementFormDefault='qualified'> - + - + Flags a field as requiring server post-back after having been edited. - + Flags a field as being read-only. - + Flags a field as having an undefined or uncertain value. - + Flags a field as having an error. @@ -937,7 +937,7 @@ - + @@ -945,7 +945,7 @@ - + @@ -954,7 +954,7 @@ - + @@ -962,7 +962,7 @@ - + ]]>
    diff --git a/xep-0337.xml b/xep-0337.xml index 49e7eb8b..d74d5dc7 100644 --- a/xep-0337.xml +++ b/xep-0337.xml @@ -68,7 +68,7 @@ There are various event log packages available, but none yet defined for XMPP or using a well-defined and known XML format. Therefore, this document defines such an XML format. This format is able to store Syslog RFC-5424: The Syslog Protocol <https://tools.ietf.org/html/rfc5424> - compliant event information, even though the Syslog event model has been somewhat extended. + compliant event information, even though the Syslog event model has been somewhat extended. Also, in the use of the facility attribute, this XEP does not have the same restrictions compared to the Syslog specification.

    @@ -226,7 +226,7 @@ Object 10

    - The following example shows how module information can be provided in events to more easily be able to single out information + The following example shows how module information can be provided in events to more easily be able to single out information relating to the same application running on different machines.

    @@ -397,7 +397,7 @@ File2, Line2, ...

    Facility can be either a facility in the network sense or in the system sense. This document does not restrict its use to the possible choices defined by - other protocols such as Syslog, and leaves it open. However, it is left as a special attribute since + other protocols such as Syslog, and leaves it open. However, it is left as a special attribute since it is important in monitoring applications.

    @@ -427,7 +427,7 @@ File2, Line2, ...

    - If persisting received events in a database, care should be taken if normalized tables are used for storage of tags names and values, event IDs, objects, subjects, + If persisting received events in a database, care should be taken if normalized tables are used for storage of tags names and values, event IDs, objects, subjects, facilities and modules. If this is the case, the receiver should look for types of values that can be incompatible with normalized tables (such as floating point values or numbers in general, GUIDs, resource names in JIDs etc.) and replace them with some descriptive text and append the corresponding value in the message text instead. This to avoid problems with indexes in databases because of devices implemented by third parties. @@ -514,7 +514,7 @@ File2, Line2, ... targetNamespace='urn:xmpp:eventlog' xmlns='urn:xmpp:eventlog' elementFormDefault='qualified'> - + @@ -538,7 +538,7 @@ File2, Line2, ... - + @@ -551,7 +551,7 @@ File2, Line2, ... - + @@ -559,7 +559,7 @@ File2, Line2, ... - + ]]> diff --git a/xep-0338.xml b/xep-0338.xml index 0cb3a3f8..4f4e7134 100644 --- a/xep-0338.xml +++ b/xep-0338.xml @@ -89,7 +89,7 @@ a=group:LS voice webcam

    If an entity supports the grouping framework described in RFC 5888, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of 'urn:ietf:rfc:5888':

    @@ -97,7 +97,7 @@ a=group:LS voice webcam ]]> diff --git a/xep-0339.xml b/xep-0339.xml index 5c3a039f..5dc5f8a8 100644 --- a/xep-0339.xml +++ b/xep-0339.xml @@ -55,10 +55,10 @@ a=ssrc:<ssrc-id> <attribute>:<value> - + ]]>

    Each ssrc-id maps to a <source/> element whose 'ssrc' attribute is set to the ssrc-id. The associated attributes map to <parameter/> children with 'name' and 'value' attributes. If there is no value in the SDP, the value parameter shall be omitted.

    -

    An example follows:

    +

    An example follows:

    a=ssrc:1656081975 cname:Yv/wvbCdsDW2Prgd a=ssrc:1656081975 msid:MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIv MLTJKIHilGn71fNQoszkQ4jlPTuS5vJyKVIva0 @@ -124,7 +124,7 @@ a=ssrc:2613715171 cname:f83avsiw6n1m7vi

    If an entity supports source specific media attributes as described in RFC 5576, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of 'urn:ietf:rfc:5576':

    @@ -132,7 +132,7 @@ a=ssrc:2613715171 cname:f83avsiw6n1m7vi ]]> diff --git a/xep-0340.xml b/xep-0340.xml index 19e7fef5..42c82de0 100644 --- a/xep-0340.xml +++ b/xep-0340.xml @@ -309,7 +309,7 @@ SEND: - + ]]>

    @@ -336,32 +336,32 @@ SEND: - - - 99:...:F6 - - ... - ... @@ -431,18 +431,18 @@ RECV: - - - 08:...:C7 @@ -472,30 +472,30 @@ SEND: - - 99:...:F6 - - ... - ... @@ -507,14 +507,14 @@ RECV: - @@ -530,16 +530,16 @@ SEND: - - 99:..:F6 - - @@ -576,36 +576,36 @@ SEND: - - A9:...:2F - - D7:...:C2 - - diff --git a/xep-0343.xml b/xep-0343.xml index aee66b59..e8dd24a2 100644 --- a/xep-0343.xml +++ b/xep-0343.xml @@ -70,7 +70,7 @@

    This protocol requires the Stream Control Transmission Protocol (SCTP) to run within the security context of the Datagram Transport Layer Security (DTLS) protocol. As determined by RTCWeb Data Channels running SCTP on top of DTLS is preferred, as in this order the control messages are encrypted as well and the DTLS channel can be shared with several applications

    - +

    In order for the initiator in a Jingle exchange to start the negotiation, it sends a Jingle "session-initiate" stanza that includes at least one content type, as described in XEP-0166. If the initiator wishes to negotiate the SCTP transport method for an application format, it MUST include a &SCTPMAP; child element qualified by the 'urn:xmpp:jingle:transports:dtls-sctp:1' namespace &VNOTE;. The &TRANSPORT; element SHOULD in turn contain one &CANDIDATE; element for each of the initiator's higher-priority transport candidates as determined in accordance with the ICE methodology, but MAY instead be empty (with each candidate to be sent as the payload of a transport-info message).

    The traditional pattern is shown here:

    | Server) | | ----------------- | | [if necessary, | @@ -126,19 +126,19 @@ example example

    This traditional pattern involves the following protocol exchanges when dialback over TLS is used:

    ]]> @@ -154,19 +154,19 @@ example example ]]> ]]> @@ -209,7 +209,7 @@ example example

    This is particularly useful in cases where the dialback exchange is a subsequent exchange used in piggybacking, as it remains the only solution for piggybacking with strong authentication.

    This traditional pattern involves the following protocol exchanges when dialback over TLS is used:

    ]]> @@ -270,19 +270,19 @@ example example ]]> ]]> @@ -316,7 +316,7 @@ example example

    Essentially, this replaces the Dialback Key Validation step from &xep0185; with the somewhat more elaborate proof of posession of the private key associated with the certificate.

    | Server) | | ----------------- | | [if necessary, | @@ -356,19 +356,19 @@ example example

    This pattern involves the following protocol exchanges:

    ]]> @@ -384,19 +384,19 @@ example example ]]> ]]> diff --git a/xep-0347.xml b/xep-0347.xml index 13312214..55b24a6a 100644 --- a/xep-0347.xml +++ b/xep-0347.xml @@ -524,12 +524,12 @@

    If a Thing Registry is not preconfigured, one must be found. A Thing Registry can be hosted either as a server component using &xep0114; or as an XMPP Client accessible through - a JID. The following lists methods to obtaining the Component Address or JID for the Thing Registry. Note that the last one has security considerations + a JID. The following lists methods to obtaining the Component Address or JID for the Thing Registry. Note that the last one has security considerations that need to be taken into account, if implemented.

      @@ -633,7 +633,7 @@ - + - + - +

      If QR-codes are used to transfer Thing meta data for ownership claims, it must be generated as follows: To the string "IoTDisco" is appended all meta tags in order. - Each tag name is prefixed by a semi-colon (;), and if the tag is numeric, the tag is prefixed by an additional hash sign (#). Each tag value is prefixed by a colon (:). - If the meta value contains semi-colons or back-slashes, each one is prefixed by a back-slash. When decoding the string, this allows the decoder to correctly differ + Each tag name is prefixed by a semi-colon (;), and if the tag is numeric, the tag is prefixed by an additional hash sign (#). Each tag value is prefixed by a colon (:). + If the meta value contains semi-colons or back-slashes, each one is prefixed by a back-slash. When decoding the string, this allows the decoder to correctly differ between tag delimiters and characters belonging to tag values. A tag name must never contain colon, hash sign or white space characters.

      @@ -969,7 +969,7 @@ id='7'> - + ]]>

      - But if the owner is not the sender of the current message (i.e. owner is somebody else), or if the thing is not found at all, the server must report the node as + But if the owner is not the sender of the current message (i.e. owner is somebody else), or if the thing is not found at all, the server must report the node as not existing (i.e. not existing among the set of things claimed by the owner).

      @@ -1538,7 +1538,7 @@

      When receiving the acknowledgement from the Thing, the Thing is set as an unclaimed Thing in the Registry. Furthermore, all tags corresponding to the Thing are removed from the - registry, and a random KEY tag is added of sufficient complexity to make sure other clients cannot claim the Thing by guessing. Finally, an empty response is returned, to + registry, and a random KEY tag is added of sufficient complexity to make sure other clients cannot claim the Thing by guessing. Finally, an empty response is returned, to acknowledge that the Thing has been disowned, as follows:

      @@ -1581,7 +1581,7 @@
      ]]>

      - To search for a Thing Registry hosted as a component on an XMPP Server, you first request a list of available components, as follows: + To search for a Thing Registry hosted as a component on an XMPP Server, you first request a list of available components, as follows:

      There is no way to actually verify that the server is the server. This makes it possible to create a simple Man-in-the-middle attack.

    - For these reasons, it is not recommended that a Thing Registry service, publishing itself as a Jabber Server Component, does so from outside of the network. Instead, + For these reasons, it is not recommended that a Thing Registry service, publishing itself as a Jabber Server Component, does so from outside of the network. Instead, the Thing Registry should be installed on the same server or on a server in the same local area network, so that the Jabber Component protocol port is closed to the Internet.

    @@ -1825,8 +1825,8 @@

    If using predefined user names when searching for a Thing Registry or Provisioning Server, care must be taken to which XMPP Server things connect. - It might be possible for third parties to register these predefined account names, and pretend to be a Thing Registry or Provisioning Server and in this way hijack - unsuspecting Things. If installing things using this method of finding a Thing Registry or Provisioning Server, these accounts must be registered beforehand, to make + It might be possible for third parties to register these predefined account names, and pretend to be a Thing Registry or Provisioning Server and in this way hijack + unsuspecting Things. If installing things using this method of finding a Thing Registry or Provisioning Server, these accounts must be registered beforehand, to make sure the things cannot be hijacked.

    @@ -1922,18 +1922,18 @@ targetNamespace='urn:xmpp:iot:discovery' xmlns='urn:xmpp:iot:discovery' elementFormDefault='qualified'> - + - + - + @@ -1965,7 +1965,7 @@ - + @@ -1984,20 +1984,20 @@ - + - + - + @@ -2005,7 +2005,7 @@ - + @@ -2013,7 +2013,7 @@ - + @@ -2021,7 +2021,7 @@ - + @@ -2029,7 +2029,7 @@ - + @@ -2037,26 +2037,26 @@ - + - + - + - + - + @@ -2064,7 +2064,7 @@ - + @@ -2072,7 +2072,7 @@ - + ]]>
    @@ -2102,7 +2102,7 @@

    - Thanks to Eelco Cramer, Henrik Svedlund, Ivan Vučica, Joachim Lindborg, Joakim Eriksson, Joakim Ramberg, Johannes Hund, Karin Forsell, Kevin Smith, Lance Stout, Lars Åkerskog, + Thanks to Eelco Cramer, Henrik Svedlund, Ivan Vučica, Joachim Lindborg, Joakim Eriksson, Joakim Ramberg, Johannes Hund, Karin Forsell, Kevin Smith, Lance Stout, Lars Åkerskog, Olof Zandrén, Philipp Hancke, Steffen Larsen, Teemu Väisänen and Yusuke Doi for all valuable feedback.

    diff --git a/xep-0348.xml b/xep-0348.xml index d21eee62..c80e46fe 100644 --- a/xep-0348.xml +++ b/xep-0348.xml @@ -88,7 +88,7 @@ RFC-5849: The OAuth 1.0 Protocol <http://tools.ietf.org/html/rfc5849>. ) has been chosen in favor of a method where the user can select an authentication method from a list of available methods, modelled in the likeness of SASL. The main reason is - to avoid multiple callbacks during form signature. The idea is to make form signature possible without having to do any intermediate server callbacks, or having to change the original + to avoid multiple callbacks during form signature. The idea is to make form signature possible without having to do any intermediate server callbacks, or having to change the original request returning the form. The method is still extensible, allowing possible future extensions. The form signing algorithm to use is defined by the FORM_TYPE parameter in the form being signed.

    diff --git a/xep-0350.xml b/xep-0350.xml index e17bce43..673893e3 100644 --- a/xep-0350.xml +++ b/xep-0350.xml @@ -95,7 +95,7 @@

    All elements associated with location fields MUST be qualified by the 'http://jabber.org/protocol/geoloc' namespace. The use of namespace prefixes is RECOMMENDED for large forms, to reduce the data size. To maintain the highest level of compatibility, implementations sending the form using prefixes SHOULD use the namespace prefix "geo:", and SHOULD declare the namespace prefix mapping in the ancestor <x xmlns='jabber:x:data'/> element:

    The following example is provided only for the purpose of illustration; consult the specifications for using protocols (e.g. XEP-0080, XEP-0122) to see canonical examples.

    - @@ -149,7 +149,7 @@ - 45.44 @@ -165,16 +165,16 @@ - 12.33 ]]> - +

    The XMPP Registrar MAY include 'geo:' datatypes in its registry of Data Forms Validation Datatypes, which can be used with the 'text-single' field type from XEP-0004.

    - + geo:dms @@ -189,12 +189,12 @@ 52d18'24.4775"N 0d52'44.0625"W ]]>
    - + geo:mgrs Datatype for publishing a MGRS location - Military Grid Reference System, 'http://en.wikipedia.org/wiki/Military_grid_reference_system'. + Military Grid Reference System, 'http://en.wikipedia.org/wiki/Military_grid_reference_system'. ]]> 38SMB4484 ]]> - +
    diff --git a/xep-0355.xml b/xep-0355.xml index f411c33d..e335968f 100644 --- a/xep-0355.xml +++ b/xep-0355.xml @@ -40,7 +40,7 @@
  • fixed missing 'jabber:client' namespaces
  • <service-unavailable/> on managing entity &IQ; error
  • forwarding in client mode is now specified
  • -
  • removed wrong 'node' attribute in disco nesting example
  • +
  • removed wrong 'node' attribute in disco nesting example
  • disco extension explicitly need to be handled
  • minor typos/explanation improvments
  • @@ -389,7 +389,7 @@ ]]>
    -

    The managing entity can now manage the namespace in a similar way as in admin mode but with different rules:

    +

    The managing entity can now manage the namespace in a similar way as in admin mode but with different rules:

    1. if the stanza is directed to the delegating server (no 'to' attribute, or 'to' attribute with the server own JID), and the 'from' attribute belong to a managed entity (e.g. juliet@capulet.lit/balcony if juliet@capulet.lit is a managed entity) and the namespace of the stanza has been delegated by the managed entity, then the delegating server MUST forward it to the managing entity accepted by the managed entity, in the same way as in admin mode.
    2. if the stanza is directed to the bare jid (and only the bare jid) of the managed entity (e.g. the 'to' attribute is set to juliet@capulet.lit and the namespace has been delegated by the managed entity, then the server MUST forward it to the managing entity accepted by the managed entity, in the same way as in admin mode, for any 'from' attribute but the jid of the managing entity.
    3. diff --git a/xep-0356.xml b/xep-0356.xml index e96c76d0..8e5a9b9f 100644 --- a/xep-0356.xml +++ b/xep-0356.xml @@ -132,7 +132,7 @@ -

      Roster access is granted in the server configuration. Roster access can have 4 types:

      +

      Roster access is granted in the server configuration. Roster access can have 4 types:

      • none — the entity is not allowed to access managed entity roster at all. This is usually the default value.
      • get — the entity is allowed to send &IQ; stanzas of type 'get' for the namespace 'jabber:iq:roster'.
      • @@ -308,7 +308,7 @@

        Note: this permission should be given carefully, as it gives access to presence of potentially a lot of entities to the privileged entity (see security considerations).

        - +

        Server advertises roster "presence" permission in the same way as for other permissions, except that the 'access' attribute has the value of "presence", and the 'type' attribute has a value of "roster"

        The App Client sends the token to the App Server for later use.
    App Server | -| | | | -+-+--------^-+ +------------+ - |1 |4 - | | ++------------+ +------------+ +| | 5 | | +| App Client +----------> App Server | +| | | | ++-+--------^-+ +------------+ + |1 |4 + | | +-v--------+-+ 3 +---------------+ | <----------+ | | User Agent | | Push Service | @@ -136,13 +136,13 @@

    To send a push notification, the App Server sends the notification data to the Push Service along with the saved token.

    The XMPP client portion of the application is the new logical "App Client" XMPP Server | | | | | +-+--------^--+ +-------------+ |1 |4 - | | + | | +-v--------+-+ 3 +------------+-------------------+ | <----------+ | | | App Client | | App Server | XMPP Push Service | @@ -251,25 +251,25 @@ XMPP Server | -| | 5b | | -+------^------+ +-------------+ - |5a - | ++-------------+ +-------------+ +| | | | +| XMPP Client +---------> XMPP Server | +| | 5b | | ++------^------+ +-------------+ + |5a + | +------+-----+ 4 +--------------+---------------------+ | <----------+ | | | App Client | | App Server <-3-> XMPP Push Service | | +----------> | | +--+------^--+ 2 +--------------+---------------------+ - |1a |1d - | | -+--v------+--+ 1c +---------------+ -| <----------+ | -| User Agent | | Push Service | -| +----------> | -+------------+ 1b +---------------+ + |1a |1d + | | ++--v------+--+ 1c +---------------+ +| <----------+ | +| User Agent | | Push Service | +| +----------> | ++------------+ 1b +---------------+ ]]>

    For the last step, the App Client sends an IQ-set to the user's bare JID with an <enable /> element qualified by the 'urn:xmpp:push:0' namespace, which MUST contain a 'jid' attribute of the XMPP Push Service being enabled. It SHOULD contain a 'node' attribute which is set to the provisioned node specified by the App Server.

    @@ -385,20 +385,20 @@

    Once the notification has been published to the XMPP Push Service, it is left to the implementation how to deliver the notification to the user's device. However, the general flow for the process looks like so:

    - @@ -113,10 +113,10 @@ - @@ -131,10 +131,10 @@ - diff --git a/xep-0361.xml b/xep-0361.xml index 0016896b..406c4c82 100644 --- a/xep-0361.xml +++ b/xep-0361.xml @@ -8,8 +8,8 @@
    Zero Handshake Server to Server Protocol - This specification defines an approach for a pair of servers to eliminate initial handshakes and associated - data transfer when using the XMPP S2S Protocol. This approach may only be used with a priori agreement and configuration + This specification defines an approach for a pair of servers to eliminate initial handshakes and associated + data transfer when using the XMPP S2S Protocol. This approach may only be used with a priori agreement and configuration of the two servers involved. This is of significant benefit in high latency environments. &LEGALNOTICE; @@ -54,13 +54,13 @@

    This specification arose from work on deploying XMPP in high latency environments, with round trips of several second. Even with data transfer rates as low as 2400 bit per second, XMPP works well once connections are established as compressed messages are small and the protocols are fully asynchronous. However the combination of low data rate and high latency led to connection establishment times of several minutes. This was unworkable, particularly when connections were prone to failure.

    -

    +

    The solution set out here is to eliminate all the intial handshaking and to start the S2S communication as if the handshaking had been correctly completed. This cannot be used for communication between an arbitrary pair of servers, as in general the negotiation associated with the handshaking is vital for correctly determining a variety of parameters for use in the connection. However, a pair of servers may operate by locally configuring information that would have been negotiated. This enables the pair of servers to eliminate initial handshaking and data exchange.

    - This specification can be considered as a profile for server to server XMPP communication, to enable XMPP deployment over high latency links. This profile MUST only be used where its use has been pre-agreed and configured for both participating servers. + This specification can be considered as a profile for server to server XMPP communication, to enable XMPP deployment over high latency links. This profile MUST only be used where its use has been pre-agreed and configured for both participating servers.

    @@ -70,8 +70,8 @@ The solution set out here is to eliminate all the intial handshaking and to star

    - - + +

    In simple terms, this can be considered as operation of RFC 6121 communication between a pair of XMPP servers without the preliminary negotiation done in RFC 6120. It might be considered that the start point is the @@ -93,20 +93,20 @@ The solution set out here is to eliminate all the intial handshaking and to star

    The server will then associate one or more XMPP domains with this connection level identity.

    -

    +

    Connections may be opened by one server only or by either server. The choice is part of the a priori configured agreement. It is generally recommended to allow connections to be opened by either server. However policy or network constraints may require that the connection is initiated by one server only. When a server initiates a connection it will generally use this connection to send messages to the other server. The server opening a connection is responsible for closing it at the end of its use.

    Consider a scenario with two servers: server A and server B. - When a connection is opened by server A to server B, the server B MAY use this connection to send messages to server A or MAY open a connection to server A. It is recommended that only a single connection is used in this scenario and so in many cases this protocol will proceed with a single bidirectional TCP connection and messages flowing in both directions. In the event of both servers opening connections at the same time, both TCP connections SHOULD be used unidirectional with messages sent on the connection opened by the message sender only. + When a connection is opened by server A to server B, the server B MAY use this connection to send messages to server A or MAY open a connection to server A. It is recommended that only a single connection is used in this scenario and so in many cases this protocol will proceed with a single bidirectional TCP connection and messages flowing in both directions. In the event of both servers opening connections at the same time, both TCP connections SHOULD be used unidirectional with messages sent on the connection opened by the message sender only.

    Typically a pair of XMPP servers connecting using this protocl will communcicate with multiple domains (e.g., a base domain and a MUC domain). It is generally desirable to configure things so that all communications will share the same link, rather than establishing separate links for each domain, essentially piggy-backing multiple logical connections onto a single TCP connection. Two or more connections MAY be initiated from one server to the other but this is NOT RECOMMENDED.

    - + - +

    An XMPP server receiving data over such a link should appropriately validate to and from elements of stream child elements. The rules for this SHOULD be controlled by an priori agreement. An inbound connection will generally be associated with several peer domains. A RECOMMENDED approach is to consider each of these peers in turn and validate in the manner of a peer XMPP server connected using RFC 6020 for that domain. In the event that an inbound message is not considered to be valid, it should be handled in a manner that this invalid message would be handled if it arrived over standard S2S.

    @@ -128,12 +128,12 @@ The solution set out here is to eliminate all the intial handshaking and to star

    - + When TLS is not used, the only option available is for the responder to identify the initiator based on source IP address and port. This mechanism is prone to attacks, and so should be used with care. Where source IP address is checked, this may be done directly by match of IP address or by use of reverse DNS lookup to identify the connecting server. If reverse DNS Lookup is used, it is RECOMMENDED to use DNS SEC to mitigate against DNS attacks. - - + +

    diff --git a/xep-0362.xml b/xep-0362.xml index 0d09ccc0..763b0bd7 100644 --- a/xep-0362.xml +++ b/xep-0362.xml @@ -81,7 +81,7 @@

    Making databases or datastores available over the Internet has been the norm for many years. Databases containing PGP keys, certificates or other information can be found hosted by many different organizations. The problem with these systems is that as they become more critical to users, the impact of a server failing increases dramatically. For example, a server that provides a spam database that clients can verify email against, must be operational for those clients to be able to filter spam. Having a single server in this scenario is not acceptable; to provide redundancy there must be multiple servers.

    - +

    The problem then becomes how to keep the servers in sync. Raft partly solves this problem by providing the means to ensure the cluster maintains consensus i.e. maintains a consistent view of the data. As mentioned previously, it does not however provide a means for the nodes in the cluster to actually communicate with each other or clients.

    This is where being able to use Raft over XMPP would be highly beneficial. As it stands now, developers must implement their own transport and security, which although certainly possible, is not ideal. First, most developers are not security experts and a wealth of knowledge and experience is needed to properly design a secure system. Second, even with the required expertise, it takes a considerable amount of time and effort to actually implement and test any new implementation. Third, this extra work takes developers' focus away from the problem that they were trying to solve in the first place.

    @@ -93,9 +93,9 @@

    Lastly, integrating a Raft implementation with Raft over XMPP, would be relatively straight forward as Raft over XMPP defines and uses the same names as those provided by the Raft paper with few additions. This means that it could be much easier to get a Raft implementation up and running using Raft over XMPP than it would be to do so even with pure vanilla sockets.

    - - + +

    The author has designed Raft over XMPP with the following requirements in mind:

    @@ -123,7 +123,7 @@
    -

    This XEP defines a transport layer for Raft and not an actual implementation. That is, it does not seek to implement the Raft consensus algorithm within XMPP, but instead to simply define the means for Raft messages to be transported over XMPP. To facilitate this, both the message name used in the Raft spec (shown in camel case) and the corresponding element name are mentioned together where appropriate.

    +

    This XEP defines a transport layer for Raft and not an actual implementation. That is, it does not seek to implement the Raft consensus algorithm within XMPP, but instead to simply define the means for Raft messages to be transported over XMPP. To facilitate this, both the message name used in the Raft spec (shown in camel case) and the corresponding element name are mentioned together where appropriate.

    Node to Node communication is the back-bone of a Raft cluster. In operation, only the Leader or a Candidate will send messages. In all other cases, nodes will only reply to messages received. The two messages are AppendEntries and RequestVote.

    diff --git a/xep-0363.xml b/xep-0363.xml index 9bf1a5ce..9c16f8e2 100644 --- a/xep-0363.xml +++ b/xep-0363.xml @@ -39,7 +39,7 @@ 2017-01-08 XEP Editor: ssw

    Merge typo fixes suggested by an unnamed user.

    - + 0.2.4 2016-10-28 @@ -227,7 +227,7 @@ + content-type='image/jpeg' /> Only premium members are allowed to upload files @@ -236,7 +236,7 @@

    The actual upload of the file happens via HTTP-PUT and is out of scope of this document. The upload service MUST reject the file upload if the Content-Length does not match the size of the slot request. The service SHOULD reject the file if the Content-Type has been specified beforehand and does not match. The service MAY assume application/octet-stream as a Content-Type if it the client did not specify a Content-Type at all.

    -

    In addition to the Content-Length and Content-Type header the client MUST also include all additional headers that came with the slot assignment.

    +

    In addition to the Content-Length and Content-Type header the client MUST also include all additional headers that came with the slot assignment.

    There is no further XMPP communication required between the upload service and the client. A HTTP status Code of 201 means that the server is now ready to serve the file via the provided GET URL. If the upload fails for whatever reasons the client MAY request a new slot.

    diff --git a/xep-0365.xml b/xep-0365.xml index 2e5bd412..cbc8f889 100644 --- a/xep-0365.xml +++ b/xep-0365.xml @@ -47,28 +47,28 @@

    This specification arose from requirements to operate over HF Radio, which has exceedingly high latency (sometimes minutes) low data rates (down to 75 bits/second) and poor reliablity. STANAG 5066 STANAG 5066 C3B (EDITION 3): PROFILE FOR HF RADIO DATA COMMUNICATIONS <http://nso.nato.int/nso/zPublic/stanags/CURRENT/5066Ed03.pdf>. is a widely used link level protocol. Direct use of STANAG 5066 enables elimination of all extraneous end to end handshaking, which is important to optimize performance. It also enables use of STANAG 5066 flow control, which is important for reslience. - +

    -

    - The solution is based on &xep0361; and requires peer configuration to be established according to XEP-0361. The data exchanged between the XMPP servers follows exactly what is specified in XEP-0361. The data is transferred using STANAG 5066 rather than using TCP. - +

    + The solution is based on &xep0361; and requires peer configuration to be established according to XEP-0361. The data exchanged between the XMPP servers follows exactly what is specified in XEP-0361. The data is transferred using STANAG 5066 rather than using TCP. +

    - This specification can be considered as a profile for server to server XMPP communication, to enable XMPP deployment over HF Radio using STANAG 5066. This profile MUST only be used where its use has been pre-agreed and configured for both participating servers. + This specification can be considered as a profile for server to server XMPP communication, to enable XMPP deployment over HF Radio using STANAG 5066. This profile MUST only be used where its use has been pre-agreed and configured for both participating servers.

    An example scenario where this protocol is important is where two ships connected by HF Surface Wave communication only need to exchange XMPP messages. A reliable link (Soft Link) can be established using STANAG 5066 and XMPP communicated efficiently and reliably. - +

    - - + +

    Because of potentially very low bandwidth sending server MAY perform traffic optimisation, such as selective removal of stanzas that are not adding sufficient value, like CSNs, or strip selected elements such as xhtml-im.

    @@ -78,16 +78,16 @@

    - XEP-0361 transfer of data between a pair of XMPP servers is a byte stream flowing in each direction over TCP. There is no other protocol or hand shaking. - When carried instead over STANAG 5066, these byte streams are transmitted as a sequence of blocks transferred in order + XEP-0361 transfer of data between a pair of XMPP servers is a byte stream flowing in each direction over TCP. There is no other protocol or hand shaking. + When carried instead over STANAG 5066, these byte streams are transmitted as a sequence of blocks transferred in order Each block is an XML stanza, holding message, presence or iq. Essentially the stream is broken into blocks (stanzas) at natural boundaries XMPP boundaries, and then reassembled on reception into the original stream. - - + +

    &xep0198; MUST not be used over STANAG 5066, as reliability of stanza transfer is handled by use of STANAG 5066. Application-layer keepalives and timeout detection such as white-space pings and &xep0199; MUST NOT be used.

    - +
    @@ -100,7 +100,7 @@ -

    +

    The peer addressing of the STANAG 5066 end points will be configured as part of the XEP-0361 peer agreement.

    @@ -109,21 +109,21 @@

    The RCOP connection ID number will be set to a mutually agreed value. It is RECOMMENDED that 0 is used as the preferred value.

    -
    +

    - Security Considerations of XEP-0361 apply. STANAG 5066 will frequently be employed in conjunction with link level crypto devices, which SHOULD be done when appropriate to provide data confidentiality. + Security Considerations of XEP-0361 apply. STANAG 5066 will frequently be employed in conjunction with link level crypto devices, which SHOULD be done when appropriate to provide data confidentiality.

    - +

    This specification uses STANAG 5066 Edition 3 "PROFILE FOR HF RADIO DATA COMMUNICATIONS" (December 2010).

    STANAG 5066 is a NATO UNCLASSIFED (Releasable to the Public) document that may circulated freely. It is available on http://nso.nato.int/nso/zPublic/stanags/CURRENT/5066Ed03.pdf.

    - +

    Curtis King designed and validated the approach documented in this XEP. diff --git a/xep-0369.xml b/xep-0369.xml index 8ed72890..606109d5 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -259,7 +259,7 @@

    - MIX will enable a wide range of auxiliary services. The goal of the MIX specification is to set out the core capabilities needed for MIX. It is anticipated that additional XEPs will be written to extend the core MIX, and the core MIX specification notes some areas where this may happen. This approach will avoid the core MIX specification becoming unduly large. Profiles referencing sets of related MIX XEPs may be developed in the future. + MIX will enable a wide range of auxiliary services. The goal of the MIX specification is to set out the core capabilities needed for MIX. It is anticipated that additional XEPs will be written to extend the core MIX, and the core MIX specification notes some areas where this may happen. This approach will avoid the core MIX specification becoming unduly large. Profiles referencing sets of related MIX XEPs may be developed in the future.

    @@ -301,13 +301,13 @@ This approach enables flexible support of multiple clients for a MIX channel pa

      - +
    1. Messages from a MIX client to a MIX channel will go direct to the MIX service. They are relayed, but not modified, by the participant's server.
    2. Messages from a MIX channel to a MIX client are always sent to the MIX participants server (addressed by bare JID) and MUST be handled by the MIX participant's server.
    3. All messages received by the MIX participant's server MUST be stored using MAM.
    4. The MIX participant's server will only send messages to online clients and will discard messages if no clients are online. This means that a MIX client needs to resynchronize with the MIX service when it comes online. This message synchronization will happen between the MIX client and the MAM archive held on the MIX participant's server.
    5. - +
    6. The MIX client will generally send management and other messages directly to the MIX channel and this MUST be done except where specifically noted.
    7. The user's roster contains each MIX channel to which the user is subscribed and is sharing presence. To achieve this the user's server needs to manage the roster on behalf of the user. For this reason, MIX join and leave commands MUST be sent by a client to the user's server. This enables the user's server to correctly manage the roster on behalf of the user.
    @@ -334,7 +334,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa Private messages MAY be sent to channel participants if allowed by channel policy. Private messages are addressed to the user's bare proxy JID determined from the participants node, and routed by the MIX to the user's bare real JID, where standard distribution rules will apply.

    - +

    @@ -409,7 +409,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa There MUST always be at least one owner and "anyone" will always have role occupants. Other roles MAY NOT have any role occupants. Rights are defined in a strictly hierarchical manner, so that for example Owners will always have rights that Administrators have.

    - +

    Nodes MAY be archived and where this is done MAM MUST be used. Archiving of the Messages node MUST be done as part of the MIX specification. Archiving of other nodes is OPTIONAL. @@ -417,10 +417,10 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    - The Message node is used to distribute messages. The Messages node is a transient node and so no PubSub items are held. Messages MUST go to the associated MAM archive and history is retrieved by use of MAM. Users subscribe to this node to indicate that messages from the channel are to be sent to them. Private Messages are not distributed by the messages node. - + The Message node is used to distribute messages. The Messages node is a transient node and so no PubSub items are held. Messages MUST go to the associated MAM archive and history is retrieved by use of MAM. Users subscribe to this node to indicate that messages from the channel are to be sent to them. Private Messages are not distributed by the messages node. +

    - +
    @@ -475,7 +475,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa -

    The Information node holds information about the channel. The information node contains a single item with the current information. +

    The Information node holds information about the channel. The information node contains a single item with the current information. The information node is named by the date/time at which the item was created. The information node is accessed and managed using standard pubsub. The Information node is a permanent node with a maximum of one item. Users MAY subscribe to this node to receive information updates. The Information node item MAY contain the following attributes, each of which is OPTIONAL:

    @@ -485,7 +485,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa
    'Contact'The JID or JIDs of the person or role responsible for the channel.jid-multi--

    - Name and Description of the channel apply to the whole channel and are will usually be changed infrequently. + Name and Description of the channel apply to the whole channel and are will usually be changed infrequently.

    The name and description values MUST contain a "text" element and MAY contain additional text elements. Where multiple text elements are provided, each MUST posses an xml:lang attribute that describes the natural language of the element. The format of the Information node follows &xep0004;. This allows configuration to be updated by MIX defined commands and that the results of update commands are the same as the PubSub node. The following example shows the format of a item in the information node for the example coven@mix.shakespeare.example channel. @@ -501,7 +501,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa Witches Coven - A location not far from the blasted heath where + A location not far from the blasted heath where the three witches meet @@ -512,7 +512,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa ]]> - +

    This node represents a list of JIDs that are allowed to become participants. If the allowed node is not present, all JIDs are allowed. This node is accessed and managed using standard pubsub. The allowed list is always considered in conjunction with the banned list, stored in the banned node. Only Administrators and Owners have write permission to the allowed node and are also the only roles that are allows to subscribe to this node. The Allowed node is a permanent node. Each item contains a real bare JID. The following example shows how the allowed list can specify single JIDs and domains. @@ -549,7 +549,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa 'Message Node Subscription'Controls who can subscribe to messages node.list-single'participants'; 'allowed'; 'anyone''participants' 'Presence Node Subscription'Controls who can subscribe to presence node.list-single'participants'; 'allowed'; 'anyone''participants' 'Participants Node Subscription'Controls who can subscribe to participants node.list-single'participants'; 'allowed'; 'anyone'; 'nobody'; 'admins'; 'owners''participants' - + 'Information Node Subscription'Controls who can subscribe to the information node.list-single'participants'; 'allowed'; 'anyone''participants' 'Allowed Node Subscription'Controls who can subscribe to allowed node.list-single'participants'; 'allowed'; 'nobody'; 'admins'; 'owners' 'admins' 'Banned Node Subscription'Controls who can subscribe to banned node.list-single'participants'; 'allowed'; 'nobody'; 'admins'; 'owners' 'admins' @@ -616,7 +616,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    - An entity MAY discover a MIX service or MIX services by sending a Service Discovery items ("disco#items") request to its own server. + An entity MAY discover a MIX service or MIX services by sending a Service Discovery items ("disco#items") request to its own server.

    Witches Coven - A location not far from the blasted heath where + A location not far from the blasted heath where the three witches meet @@ -831,9 +831,9 @@ This approach enables flexible support of multiple clients for a MIX channel pa to='romeo@montague.lit/14e8cb74-9082-4782-9275-8918ee5d8fcd/6983052d-3fdc-4e32-8221-79571a5210fe' type='get'> -
    - - + + +

    The default MIX model is that only channel participants are allowed to subscribe to nodes. A MIX channel MAY allow non-participant subscription. This will be handled by clients directly subscribing to the desired PubSub nodes.

    - +

    The user's server needs to make roster changes as part of the join functionality. Because of this, the join and leave operations need to operate indirectly. For this reason the initial join request is sent to the local server with the MIX channel specified as an attribute to the join.

    - + - @@ -880,11 +880,11 @@ This approach enables flexible support of multiple clients for a MIX channel pa
    ]]>
    - +

    - The user’s server will then pass the request to the MIX channel, with the request coming from the user's bare JID. + The user’s server will then pass the request to the MIX channel, with the request coming from the user's bare JID.

    - + ]]> - +

    The user's server will then send the join response back to the client that made the join request. The only change is that the incoming message is addressed to bare JID and the outgoing message is addressed to client's full JID. Prior to sending this response, the user's server will make roster modifications as set out in the next section.

    - +

    If a user cannot be subscribed to one or more of the requested nodes (e.g., because the node does not exist), but can be subscribed to some the response simply lists the nodes successfully subscribed. If none of the nodes requested are successfully subscribed to, an error response is sent indicating the reason that the first node requested was not subscribed to. This error response will also include other nodes requested where subscription failed for the same reason.

    - +

    The following response example shows a successful response to the initial request example where the participant is not be subscribed to all nodes associated with the channel (in this case only messages, participants, and information). This example shows the message from the MIX channel to the user's server, which will be modified and sent to the client. @@ -1090,7 +1090,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa urn:xmpp:mix:0 - - @@ -1158,8 +1158,8 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    Users generally remain in a channel for an extended period of time. In particular the user remains as a participant the channel does not change when the user goes offline as happens with &xep0045;. So, leaving the channel is a permanent action for a user across all clients, not just a matter of telling the channel that the user is not currently available or for a single client. In order to leave a channel, a user sends a MIX "leave" command to the channel. When a user leaves the channel, the user's server will remove the channel from the user's roster. Leave commands are sent indirectly through the user's server, to enable roster removal. Leaving is initiated by a client request, as

    - - + + ]]> - +

    The user's server will then generate a matching request to the MIX channel.

    - + ]]> - +

    The MIX channel will then remove the user from the channel, as described below. A response is sent to the user's server. -

    +

    ]]> - - + +

    After receiving the confirmation that the user has left the MIX channel, the user's server will remove the MIX channel entry from the user's roster. The user's server will then notify the client that requested to leave.

    - + @@ -1214,7 +1214,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa Deletion from the participants and presence functions as if the item (channel participant) had been deleted using the PubSub retract mechanism with notification set to true. Notification of the deletion is sent to clients subscribed to the participants PubSub nodes, as shown in the example below.

    @@ -1223,7 +1223,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa - @@ -1277,7 +1277,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    A nick MAY be associated with the user's bare JID. A user can register a nick with the MIX service. Nick registration can be used ensure that a user is able to use the same nick in all channels in the service and to prevent other users from using a registered nick. This can help achieve a consistent experience across a set of channels and prevent user confusion. Support for nick registration by a MIX service is OPTIONAL. Where nick registration is supported, nick registration MAY be OPTIONAL or MANDATORY. - Where a user has registered a Nick with the MIX service, it MAY be used by each channel according to policy for the channel. A channel MAY enforce use of a registered nick. A channel MUST NOT use a registered nick for any other participant. + Where a user has registered a Nick with the MIX service, it MAY be used by each channel according to policy for the channel. A channel MAY enforce use of a registered nick. A channel MUST NOT use a registered nick for any other participant.

    In order to determine if a Nick is allowed to be registered, the user MAY use disco to determine capabilities of the MIX service. @@ -1361,7 +1361,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    A user setting status is now used as an example. Unlike in &xep0045; where coming online is a special action, coming online in MIX is implicit when presence status is set. Going offline is a achieved by setting presence status to unavailable, which removes the client full JID entry from the presence node. When a user sets a presence status, the user's server sends updated presence to the MIX channel, and the MIX service then publishes the user's availability to the "urn:xmpp:mix:nodes:presence" node. If there is not an item named by the full JID of the client with updated presence status, this item is created.

    - dnd Making a Brew @@ -1515,9 +1515,9 @@ This approach enables flexible support of multiple clients for a MIX channel pa - - @@ -1769,8 +1769,8 @@ This approach enables flexible support of multiple clients for a MIX channel pa - - + +

    MIX does not standardize an access control model for creating and deleting MIX channels. The choice is left to the MIX implementer, and could be a very simple or complex approach. A client can determine if it has permission to create a channel on a MIX service, which MAY be used to control options presented to the user. This is achieved by a disco command on the MIX service. If the 'create-channel' feature is returned, the user is able to create a channel. @@ -1990,7 +1990,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa Witches Coven - A location not far from the blasted heath where + A location not far from the blasted heath where the three witches meet @@ -2092,7 +2092,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    Owners and Administrators are allowed to control which users can participate in a channel by use of Allowed and Banned lists using PubSub. These operations follow &xep0060; which sets out detailed protocol use and error handling. - Allowed and Banned lists MAY be read by PubSub get of the Banned and Allowed Nodes. This operation MAY be used by users as controlled by 'Allowed Node Subscription' and 'Banned Node Subscription' configuration node options (default Administrators). + Allowed and Banned lists MAY be read by PubSub get of the Banned and Allowed Nodes. This operation MAY be used by users as controlled by 'Allowed Node Subscription' and 'Banned Node Subscription' configuration node options (default Administrators).

    - Messages from a MIX channel will usually go to the participant's server. The only exception to this is where the MIX channel is responding directly to messages from the client. Messages and presence distributed but a MIX channel will always be sent to the participant's server and addressed to the user's bare JID. The participant's server will simply send on the messages from the channel to each of the user's online clients which advertise MIX capability. If there are no such clients activated, the message is dropped. + Messages from a MIX channel will usually go to the participant's server. The only exception to this is where the MIX channel is responding directly to messages from the client. Messages and presence distributed but a MIX channel will always be sent to the participant's server and addressed to the user's bare JID. The participant's server will simply send on the messages from the channel to each of the user's online clients which advertise MIX capability. If there are no such clients activated, the message is dropped.

    Messages sent to the participant's sever will always be addressed to the user's bare JID. The participant’s server will modify the recipient to the full JID of each client to which the message is forwarded. The participant's server MUST NOT make any other modifications to each message. The following example, repeated from earlier, shows a message distributed by a MIX channel and directed to the participant’s server with the participant's bare JID. @@ -2232,8 +2232,8 @@ This approach enables flexible support of multiple clients for a MIX channel pa Messages sent by a MIX channel participant to the MIX channel are always sent from a MIX client directly to the channel. The participant's server relays the message but does not modify the messages.

    - - + +

    Most interaction between a MIX client and a MIX channel is directly between the client channel. The participant's server relays the message but does not modify the messages. In particular configuration management and discovery is direct. Interaction will be direct, unless explicitly stated otherwise. @@ -2242,18 +2242,18 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    Channel Join and Leave functions operate indirectly through the participant's server. The reason for this is that where a channel shares user presence, the channel is included in the user's roster which is managed in the local server. The Join and Leave functions lead to roster changes and so they MUST go through the participant's server. This is included in each of the operations that work in this manner. The general mechanism to achieve this is illustrated by example in this section. - The client addresses indirect messages to the user's own bare JID, indicating the channel with the channel attribute. This is illustrated below. - + The client addresses indirect messages to the user's own bare JID, indicating the channel with the channel attribute. This is illustrated below. +

    - - + + - @@ -2287,38 +2287,38 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    - The participant's server is responsible for ensuring that MIX channels are correctly entered into the user's roster when user's join MIX channels and for removing them when they leave. + The participant's server is responsible for ensuring that MIX channels are correctly entered into the user's roster when user's join MIX channels and for removing them when they leave.

    The participant's server MUST ensure that only presence information from clients that advertize MIX capability is sent to the MIX channel. So, if a user has two online clients, but only one is MIX capable, then the channel will only receive presence information relating to the MIX client.

    - +
    - +

    It will be useful for a MIX client to know which roster members are MIX channels, as this will facilitate convenient presentation of subscribed MIX channels to the user. A standard roster item is encoded as follows.

    ]]> - +

    - MIX channels in the roster have an attribute 'channel' set to true. + MIX channels in the roster have an attribute 'channel' set to true.

    - + ]]> - +

    When sending roster information to a client that advertises MIX capability, the server MUST return all MIX channels and MUST use this encoding. Presence of MIX roster items MUST be set to offline (unavailable).

    - +

    Where a client does not advertize MIX capability, the server MAY choose to not return MIX channels as roster items. If this is done care needs to be taken, in particular around support of roster versioning &xep0237;.

    - +
    @@ -2431,7 +2431,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa

    &xep0045; defines a mechanism so that MUC moderators can control who is able to send messages to a MUC room using a "voice" mechanism. MIX does not provide an exact functional equivalent, although access control to channels enables some of the goals of voice control to be achieved in a different manner. - +

    diff --git a/xep-0370.xml b/xep-0370.xml index f5396aea..f61054b4 100644 --- a/xep-0370.xml +++ b/xep-0370.xml @@ -205,13 +205,13 @@ none - +

    See Upload Complete for signaling that the upload process has been completed.

    -

    A common case for using http-upload is to delegate the storage of the uploaded data to an external hosting service, which means that the receiver might not have the direct ability to know when the uploaded data is ready.

    +

    A common case for using http-upload is to delegate the storage of the uploaded data to an external hosting service, which means that the receiver might not have the direct ability to know when the uploaded data is ready.

    As such, when an upload transfer is used, the party uploading content SHOULD signal when the upload has completed by sending a Jingle transport-info event that specifies the content for which uploading has completed, and includes a <transport/> element qualified by the 'urn:xmpp:jingle:transports:http:upload:0' namespace, which in turn contains a <completed /> element.

    ]]> - +

    Once the upload is complete, she informs Romeo that she has completed the upload so that he knows he can access the data he requested.

  • -

    The session flow is as follows.

    +

    The session flow is as follows.

    urn:ietf:rfc:3264 - Signals support for the SDP offer / answer model + Signals support for the SDP offer / answer model described in RFC 3264 XEP-0176 @@ -844,9 +844,9 @@ Romeo Gateway Juliet ice - A method for negotiation of out-of-band UDP associations - or TCP connections with built-in NAT and firewall traversal - using the IETF's Interactive Connectivity Establishment (ICE) + A method for negotiation of out-of-band UDP associations + or TCP connections with built-in NAT and firewall traversal + using the IETF's Interactive Connectivity Establishment (ICE) methodology. datagram or streaming @@ -877,21 +877,21 @@ Romeo Gateway Juliet - - - diff --git a/xep-0375.xml b/xep-0375.xml index 9c6ca110..3df1231b 100644 --- a/xep-0375.xml +++ b/xep-0375.xml @@ -344,7 +344,7 @@

    This document requires no interaction with &IANA;.

    -

    This document requires no interaction with the ®ISTRAR;.

    +

    This document requires no interaction with the ®ISTRAR;.