RFC 3921:Extensible Messaging and Presence Protoco...
RFC-Ref

roster item


Click on the red underlined text to get to the source

... Note: There are important interactions between subscriptions and rosters; these are defined under Integration of Roster Items and Presence Subscriptions (Section 8), and the reader must refer to that ...


... In XMPP, one's contact list is called a roster, which consists of any number of specific roster items, each roster item being identified by a unique JID ...
... XMPP, one's contact list is called a roster, which consists of any number of specific roster items, each roster item being identified by a unique JID (usually of the form <contact@domain ...
... Note: There are important interactions between rosters and subscriptions; these are defined under Integration of Roster Items and Presence Subscriptions (Section 8), and the reader must refer to ...
... query/> element MAY contain one or more <item/> children, each describing a unique roster item or "contact". The "key" or unique identifier ...
... The "key" or unique identifier for each roster item is a JID, encapsulated ...
... The state of the presence subscription in relation to a roster item is captured in the 'subscription' attribute of the <item/> element. ...
... group/> child elements, for use in collecting roster items into various categories. The XML character data of the <group/> element ...
... client SHOULD check the "from" address of a "roster push" (incoming IQ of type "set" containing a roster item) to ensure that it is from a trusted source; specifically, the stanza MUST either have no 'from' ...
... Adding a Roster Item ...
... Updating a Roster Item ...
... Updating an existing roster item (e.g., changing the group) is done in the same way as adding a new roster item ...
... roster item (e.g., changing the group) is done in the same way as adding a new roster item, i.e., by sending the roster item in an IQ set to the server. ...
... in the same way as adding a new roster item, i.e., by sending the roster item in an IQ set to the server. Example: User updates roster item ...
... roster item in an IQ set to the server. Example: User updates roster item (added group): ...
... </iq> As with adding a roster item, when updating a roster item the server MUST update ...
... As with adding a roster item, when updating a roster item the server MUST update the roster information in persistent storage, and also ...
... Deleting a Roster Item ...
... </iq> As with adding a roster item, when deleting a roster item the server MUST update ...
... As with adding a roster item, when deleting a roster item the server MUST update the roster information in persistent storage, initiate a ...
... For further information about the implications of this command, see Removing a Roster Item and Cancelling All Subscriptions (Section 8.6). ...


... Integration of Roster Items and Presence Subscriptions ...
... Some level of integration between roster items and presence subscriptions is normally expected by an instant messaging user ...
... Narrative explanations of how these subscription states interact with roster items in order to complete certain defined use cases are provided in the following sub-sections. Full details regarding server and client ...
... The process by which a user subscribes to a contact, including the interaction between roster items and subscription states, is described below. ...
... subscription, the user's client SHOULD perform a "roster set" for the new roster item. This request consists of sending an IQ stanza of type='set' containing a <query ...
... namespace, which in turn contains an <item/> element that defines the new roster item; the <item/> element MUST possess a 'jid' attribute, MAY possess a 'name' ...
... 2. As a result, the user's server (1) MUST initiate a roster push for the new roster item to all available resources associated with this user that have requested the roster, setting the 'subscription' attribute to a value of "none"; and (2) MUST reply ...
... state is denoted by the inclusion of the ask='subscribe' attribute in the roster item: <iq type='set'> ...
... Note: If the user did not create a roster item before sending the subscription request, the server MUST now create ...
... 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 ...
... state of "None + Pending In" as defined under Subscription States (Section 9), however a server SHOULD NOT push or deliver roster items in that state to the contact). No matter when the subscription request ...
... 7. As a result, the contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing a roster item for the user with the subscription state set to 'from' (the server MUST send this ...
... MUST initiate a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "to"; and (3) MUST deliver the available presence stanza ...
... presence stanza to the user and (2) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "none" and with no 'ask' attribute: ...
... state but with a pending 'to' subscription denoted by the inclusion of the ask='subscribe' attribute in the roster item; and (2) MUST route the presence stanza of type "subscribe ...
... 4. As a result, the user's server (1) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing a roster item for the contact with the 'subscription' attribute set to a value of "both"; (2) MUST route ...
... the contact; (2) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "both"; and (3) MUST deliver the available presence stanza ...
... roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "from" and with no 'ask' attribute: ...
... 2. As a result, the user's server (1) MUST send a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "none"; and (2) MUST route ...
... a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "none" (if the contact is unavailable or has not ...
... a value of "none" (if the contact is unavailable or has not requested the roster, the contact's server MUST modify the roster item and send that modified item the next time the contact requests the roster); and (2) MUST deliver the "unsubscribe" ...
... 2. As a result, the user's server (1) MUST send a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "from"; and (2) MUST route ...
... a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "to" (if the contact is unavailable or has not ...
... a value of "to" (if the contact is unavailable or has not requested the roster, the contact's server MUST modify the roster item and send that modified item the next time the contact requests the roster); and (2) MUST deliver the "unsubscribe" ...
... state change to the user (see Section 9.4). Note: Obviously this does not result in removal of the roster item from the user's roster, and the contact still has a subscription to the user's presence information. In order to both completely cancel ...
... a mutual subscription and fully remove the roster item from the user's roster, the user SHOULD update the roster item ...
... roster item from the user's roster, the user SHOULD update the roster item with subscription='remove' as defined under Removing ...
... subscription='remove' as defined under Removing a Roster Item and Cancelling All Subscriptions (Section 8.6). ...
... 2. As a result, the contact's server (1) MUST send a roster push to all of the contact's available resources that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "none"; (2) MUST route ...
... addressed to the user, the user's server (1) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "none" (if the user is unavailable ...
... "none" (if the user is unavailable or has not requested the roster, the user's server MUST modify the roster item and send that modified item the next time the user requests the roster); (2) MUST deliver the "unsubscribed ...
... 2. As a result, the contact's server (1) MUST send a roster push to all of the contact's available resources that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "to"; (2) MUST route ...
... addressed to the user, the user's server (1) MUST initiate a roster push to all of the user's available resources that have requested the roster, containing an updated roster item for the contact with the 'subscription' attribute set to a value of "from" (if the user is unavailable ...
... "from" (if the user is unavailable or has not requested the roster, the user's server MUST modify the roster item and send that modified item the next time the user requests the roster); and (2) MUST deliver the "unsubscribed ...
... state change to the user (see Section 9.4). Note: Obviously this does not result in removal of the roster item from the contact's roster, and the contact still has a subscription to the user's presence information. In order to both completely ...
... to the user's presence information. In order to both completely cancel a mutual subscription and fully remove the roster item from the contact's roster, the contact should update ...
... the contact's roster, the contact should update the roster item with subscription='remove' as defined under Removing ...
... subscription='remove' as defined under Removing a Roster Item and Cancelling All Subscriptions (Section 8.6). ...
... Removing a Roster Item and Cancelling All Subscriptions ...
... Because there may be many steps involved in completely removing a roster item and cancelling subscriptions in both directions, the roster management protocol includes a "shortcut" method ...
... between the user and the contact (both 'to' and 'from' as appropriate); (2) MUST remove the roster item from the user's roster and inform all of the user's available resources that have requested the roster of the roster item ...
... roster item from the user's roster and inform all of the user's available resources that have requested the roster of the roster item removal; (3) MUST inform the resource that initiated the removal of success; and (4) SHOULD send unavailable presence ...
... contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "to" (if the contact is unavailable ...
... unavailable or has not requested the roster, the contact's server MUST modify the roster item and send that modified item the next time the contact requests the roster); and (2) MUST also deliver the "unsubscribe ...
... contact's server (1) MUST initiate a roster push to all available resources associated with the contact that have requested the roster, containing an updated roster item for the user with the 'subscription' attribute set to a value of "none" (if the contact is unavailable ...
... unavailable or has not requested the roster, the contact's server MUST modify the roster item and send that modified item the next time the contact requests the roster); and (2) MUST also deliver the "unsubscribe ...
... state of "none"; in order to completely remove the roster item for the user, the contact needs to also send a roster removal request. ...


... 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 ...
... "remove" (see Removing a Roster Item and Cancelling All Subscriptions (Section 8.6)), the server MUST treat a roster remove request as ...


... presence stanzas (and corresponding generation of roster pushes) specified in Integration of Roster Items and Presence Subscriptions (Section 8). ...
... 9. If a change to the subscription state or roster group of a roster item defined in an active or default list occurs during a user's ...



Google
Web
RFC-Ref