Me Self schrieb:
Can someone help me interpret this line from rfc 3921 section 8.2 6) that
explain how the contacts server stores a subscribe message offline if it
cannot be delivered to the contact:
"if not, the contact's server MUST store the subscription request offline
for delivery when this condition is next met; normally this is done by
adding a roster item for the contact to the user's roster, with a state of
"None + Pending In""
How can the contacts server add anything to the users roster which resides
on another server?
It seems like "user" and "contact" are mixed up in the last sentence.
That should probably have been: "normally this is done by adding a
roster item for the USER to the CONTACTS's roster".
If the roster item is meant to be stored in the contacts roster then that
brings me to my next question. How does the contacts server determine if it
can include a roster item in response to a "roster get"? Section 9.2 seems
to touch this:
""None + Pending In" = contact and user are not subscribed to each other,
and contact has sent user a subscription request but user has not replied
yet (note: contact's server SHOULD NOT push or deliver roster items in this
state, but instead SHOULD wait until contact has approved subscription
request from user) "
This is according to 9.2 from the users perspective so its talking about a
roster item in the users roster? I dont get this section either. If the
"owner" of a roster with a roster item in the subscription state "None +
Pending in" sends a "roster get" should the owners server then hide this
item? If thats the interpretation then if the owner had the same item in
state "None" before the request was sent to the owner, that means the item
went from visible to hidden without the owner doing anything other then
being offline when receiving a subscription request?
The user had created a roster item for the contact before the contact
subscribed the user? Hiding that item does not make sense, indeed.
I think the intended behaviour (not modifiyng the roster) is to deliver
the item with subscription=none and deliver the subscription request
from the contact after the roster result (see 3.1.3 rule 5 in -bis).
philipp