From ebf4cabbff2f6df06ee68fbfaa52bb88fbb151b5 Mon Sep 17 00:00:00 2001 From: Peter Saint-Andre Date: Tue, 22 Apr 2008 18:39:11 +0000 Subject: [PATCH] corrected example git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1805 4b5297f7-1745-476d-ba37-a9c6900126ab --- xep-0115.xml | 49 ++++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/xep-0115.xml b/xep-0115.xml index 76a5cb7a..0f0762de 100644 --- a/xep-0115.xml +++ b/xep-0115.xml @@ -146,18 +146,18 @@ + ver='QgayPKawpkPSDYmwT/WM94uAlu0='/> ]]>

The 'node' attribute represents the client software Romeo is using. The 'ver' attribute is a specially-constructed string (called a "verification string") that represents the entity's service discovery identity (category and type as registered at &DISCOCATEGORIES;, as well as, optionally, xml:lang and name) and supported features (as registered at &DISCOFEATURES; as well as, optionally, extended service discovery information data registered at &FORMTYPES;).

-

At this point, your client has no idea what the capabilities are of someone with a version string 'SrFo9ar2CCk2EnOH4q4QANeuxLQ='. Your client therefore sends a service discovery query to Romeo, asking what his client can do.

+

At this point, your client has no idea what the capabilities are of someone with a version string 'QgayPKawpkPSDYmwT/WM94uAlu0='. Your client therefore sends a service discovery query to Romeo, asking what his client can do.

+ node='http://code.google.com/p/exodus#QgayPKawpkPSDYmwT/WM94uAlu0='/> ]]>

The response is:

@@ -167,21 +167,22 @@ to='juliet@capulet.lit/chamber' type='result'> + node='http://code.google.com/p/exodus#QgayPKawpkPSDYmwT/WM94uAlu0='> + ]]> -

At this point, your client knows that anyone advertising a version string of 'SrFo9ar2CCk2EnOH4q4QANeuxLQ=' has a client that can do &xep0045; and the other features returned by Romeo's client (the string can be relied upon because of how it is generated and checked, as explained later in this document). Your client remembers this information, so that it does not need to explicitly query the capabilities of a contact with the same version string. For example, your Nurse may use the same client that Romeo does:

+

At this point, your client knows that anyone advertising a version string of 'QgayPKawpkPSDYmwT/WM94uAlu0=' has a client that can do &xep0045; and the other features returned by Romeo's client (the string can be relied upon because of how it is generated and checked, as explained later in this document). Your client remembers this information, so that it does not need to explicitly query the capabilities of a contact with the same version string. For example, your Nurse may use the same client that Romeo does:

+ ver='QgayPKawpkPSDYmwT/WM94uAlu0='/> ]]>

Therefore you know that she also supports the same features that Romeo does.

@@ -191,7 +192,7 @@ + ver='q07IKJEyjvHSyhy//CH0CxmKi8w='/> ]]>

... or the following presence ...

@@ -299,9 +300,9 @@
  • S = ''
  • Only one identity: "client/pc"
  • S = 'client/pc//Exodus 0.9.1<'
  • -
  • Sort the features: "http://jabber.org/protocol/disco#info", "http://jabber.org/protocol/disco#items", "http://jabber.org/protocol/muc".
  • -
  • S = 'client/pc//Exodus 0.9.1<http://jabber.org/protocol/disco#info<http://jabber.org/protocol/disco#items<http://jabber.org/protocol/muc<'
  • -
  • ver = SrFo9ar2CCk2EnOH4q4QANeuxLQ=
  • +
  • Sort the features: "http://jabber.org/protocol/caps", "http://jabber.org/protocol/disco#info", "http://jabber.org/protocol/disco#items", "http://jabber.org/protocol/muc".
  • +
  • S = 'client/pc//Exodus 0.9.1<http://jabber.org/protocol/caps<http://jabber.org/protocol/disco#info<http://jabber.org/protocol/disco#items<http://jabber.org/protocol/muc<'
  • +
  • ver = QgayPKawpkPSDYmwT/WM94uAlu0=
  • @@ -312,9 +313,10 @@ to='juliet@capulet.lit/chamber' type='result'> <query xmlns='http://jabber.org/protocol/disco#info' - node='http://psi-im.org#8lu+88MRxmKM7yO3MEzY7YmTsWs='> - <identity xml:lang='en' category='client' name='Psi 0.9.1' type='pc'/> - <identity xml:lang='el' category='client' name='Ψ 0.9.1' type='pc'/> + node='http://psi-im.org#q07IKJEyjvHSyhy//CH0CxmKi8w='> + <identity xml:lang='en' category='client' name='Psi 0.11' type='pc'/> + <identity xml:lang='el' category='client' name='Ψ 0.11' type='pc'/> + <feature var='http://jabber.org/protocol/caps'/> <feature var='http://jabber.org/protocol/disco#info'/> <feature var='http://jabber.org/protocol/disco#items'/> <feature var='http://jabber.org/protocol/muc'/> @@ -346,18 +348,15 @@
    1. S = ''
    2. Two identities: "client/pc/Psi" and "client/pc/Ψ"
    3. -
    4. S = 'client/pc/el/Ψ 0.9.1<client/pc/en/Psi 0.9.1<'
    5. +
    6. S = 'client/pc/el/Ψ 0.11<client/pc/en/Psi 0.11<'
    7. Sort the features: "http://jabber.org/protocol/caps", http://jabber.org/protocol/disco#info", "http://jabber.org/protocol/disco#items", "http://jabber.org/protocol/muc".
    8. -
    9. S = 'client/pc/el/Ψ 0.9.1<client/pc/en/Psi 0.9.1<http://jabber.org/protocol/caps<http://jabber.org/protocol/disco#info +
    10. S = 'client/pc/el/Ψ 0.11<client/pc/en/Psi 0.11<http://jabber.org/protocol/caps<http://jabber.org/protocol/disco#info
      <http://jabber.org/protocol/disco#items<http://jabber.org/protocol/muc'.
    11. Sort the extended service discovery forms by FORM_TYPE (there is only one: "urn:xmpp:dataforms:softwareinfo").
    12. -
    13. S = 'client/pc/el/Ψ 0.9.1<client/pc/en/Psi 0.9.1<http://jabber.org/protocol/caps<http://jabber.org/protocol/disco#info -
      <http://jabber.org/protocol/disco#items<http://jabber.org/protocol/muc<urn:xmpp:dataforms:softwareinfo<'
    14. +
    15. S = 'client/pc/el/Ψ 0.11<client/pc/en/Psi 0.11<http://jabber.org/protocol/caps<http://jabber.org/protocol/disco#info<http://jabber.org/protocol/disco#items<http://jabber.org/protocol/muc<urn:xmpp:dataforms:softwareinfo<'
    16. Sort the fields by var and append the value(s): "ip_version<ipv4<ipv6", "os<Mac", "os_version<10.5.1", "software<Psi", "software_version<0.11".
    17. -
    18. S = 'client/pc/el/Ψ 0.9.1<client/pc/en/Psi 0.9.1<http://jabber.org/protocol/caps -
      <http://jabber.org/protocol/disco#info<http://jabber.org/protocol/disco#items<http://jabber.org/protocol/muc -
      <urn:xmpp:dataforms:softwareinfo<ip_version<ipv4<ipv6<os<Mac<os_version<10.5.1<software<Psi<software_version<0.11<'
    19. -
    20. ver = 8lu+88MRxmKM7yO3MEzY7YmTsWs=
    21. +
    22. S = 'client/pc/el/Ψ 0.11<client/pc/en/Psi 0.11<http://jabber.org/protocol/caps<http://jabber.org/protocol/disco#info<http://jabber.org/protocol/disco#items<http://jabber.org/protocol/muc<urn:xmpp:dataforms:softwareinfo<ip_version<ipv4<ipv6<os<Mac<os_version<10.5.1<software<Psi<software_version<0.11<'
    23. +
    24. ver = q07IKJEyjvHSyhy//CH0CxmKi8w=
    @@ -396,7 +395,7 @@ + ver='QgayPKawpkPSDYmwT/WM94uAlu0='/> ]]>

    If the supported features change during a generating entity's presence session (e.g., a user installs an updated version of a client plugin), the application MUST recompute the verification string and SHOULD send a new presence broadcast.

    @@ -419,13 +418,13 @@ to='romeo@montague.lit/orchard' type='get'> + node='http://code.google.com/p/exodus#QgayPKawpkPSDYmwT/WM94uAlu0='/> ]]>

    The disco#info request is sent by the requesting entity to the generating entity. The value of the 'to' attribute MUST be the exact JID of the generating entity, which in the case of a client will be the full JID &LOCALFULL;.

    -

    The disco 'node' attribute MUST be included for backwards-compatibility. The value of the 'node' attribute SHOULD be generated by concatenating the value of the caps 'node' attribute (e.g., "http://code.google.com/p/exodus") as provided by the generating entity, the "#" character, and the value of the caps 'ver' attribute (e.g., "SrFo9ar2CCk2EnOH4q4QANeuxLQ=") as provided by the generating entity.

    +

    The disco 'node' attribute MUST be included for backwards-compatibility. The value of the 'node' attribute SHOULD be generated by concatenating the value of the caps 'node' attribute (e.g., "http://code.google.com/p/exodus") as provided by the generating entity, the "#" character, and the value of the caps 'ver' attribute (e.g., "QgayPKawpkPSDYmwT/WM94uAlu0=") as provided by the generating entity.

    The generating entity then returns all of the capabilities it supports.

    @@ -435,7 +434,7 @@ to='juliet@capulet.lit/balcony' type='result'> - node='http://code.google.com/p/exodus#SrFo9ar2CCk2EnOH4q4QANeuxLQ='> + node='http://code.google.com/p/exodus#QgayPKawpkPSDYmwT/WM94uAlu0='>