[jdev] Error in draft-ietf-xmpp-im-22.txt Section 7.4

JD Conley jconley at winfessor.com
Thu Jun 3 17:03:46 CDT 2004

I think this is a bit of a misunderstanding.  Both of the servers you mentioned were built before the XMPP specification and are not XMPP compliant.  Any server that claims to be XMPP compliant (which those do not) would need to send an ID with that set.  In Jabber the client didn't reply to the roster sets, but it is required in XMPP for consistency.

So, in your client, only send the result if an ID was specified in the set.


-----Original Message-----
From: Geir Ove Skjærvik [mailto:geiroves at online.no] 
Sent: Thursday, June 03, 2004 2:25 PM
To: jdev at jabber.org
Subject: [jdev] Error in draft-ietf-xmpp-im-22.txt Section 7.4


Below is an excerpt from draft-ietf-xmpp-im-22.txt Section 7.4.

(Seen from the Client Side:)
It states the following described in a scenario:

a) User Adds Item to Roster
b) Server Sends Roster via IQ-Set (and provides an id="someid")
c) Server send IQ-Result

NOW to the problem: IT states:

d) All receicing Users should send IQ-Result with the ID from the IQ-Set

Problem is: Neither Jabber 1.4.2 NOR Tipiq' Timp 1.1 sends ANY ID in the

I have tried sending an IQ-Result back, but that only results in error
messages from the Server. Not sending ANY response back at all works fine
for both servers, and looks like the logical thing to do.

Error message from server when sending IQ-Result as specified:
<iq id=4 to=gos at rexii/daisy type=error from=rexii >
  <error code=404 >Not Found</error></iq>

Excerpt from draft-ietf-xmpp-im-22.txt Section 7.4:

7.4 Adding a Roster Item

   At any time, a user MAY add an item to his or her roster.

   Example: Client adds a new item:

   <iq from='juliet at example.com/balcony' type='set' id='roster_2'>
     <query xmlns='jabber:iq:roster'>
       <item jid='nurse at example.com'

   The server MUST update the roster information in persistent storage,
   and also push the change out to all of the user's available resources
   that have requested the roster.  This "roster push" consists of an IQ
   stanza of type "set" from the server to the client and enables all
   available resources to remain in sync with the server-based roster

   Example: Server (1) pushes the updated roster information to all
   available resources that have requested the roster and (2) replies
   with an IQ result to the sending resource:

   <iq to='juliet at example.com/balcony'
     <query xmlns='jabber:iq:roster'>
       <item jid='nurse at example.com'

   <iq to='juliet at example.com/chamber'
     <query xmlns='jabber:iq:roster'>
       <item jid='nurse at example.com'

Saint-Andre             Expires October 11, 2004               [Page 31]

Internet-Draft                  XMPP IM                       April 2004


   <iq to='juliet at example.com/balcony' type='result' id='roster_2'/>

   As required by the semantics of the IQ stanza kind as defined in
   [XMPP-CORE], each resource that received the roster push MUST reply
   with an IQ stanza of type "result" (or "error").

   Example: Resources reply with an IQ result to the server:

   <iq from='juliet at example.com/balcony'
   <iq from='juliet at example.com/chamber'

Geir Ove Skjaervik


Phone: Int+907-48-869
Fax: Int+47-6988-5947
E-mail: objective.software at online.no
WEB: http://objective.bitfikler.com

jdev mailing list
jdev at jabber.org

More information about the JDev mailing list