unsubscribe
Click on the red underlined text to get to the source
... presence.
o unsubscribed -- The subscription request has been denied or a
previously-granted subscription has been cancelled.
...
... sessions; indeed, it lasts until the
subscriber unsubscribes or the subscribee cancels the
previously-granted subscription. Subscriptions are managed within
XMPP ...
... "subscribed" or refuse the request by sending a presence stanza of
type "unsubscribed".
Example: Approving a subscription request ...
... presence subscription request:
<presence to='romeo@example.net' type='unsubscribed'/>
...
... If a user would like to cancel a previously-granted subscription
request, it sends a presence stanza of type "unsubscribed".
Example: Cancelling a previously granted subscription request ...
... subscription request:
<presence to='romeo@example.net' type='unsubscribed'/>
...
... Unsubscribing from Another Entity's Presence ...
...
If a user would like to unsubscribe from the presence of another
entity, it sends a presence stanza ...
... entity's presence:
<presence to='juliet@example.com' type='unsubscribe'/>
...
... subscribe" to the contact or "denying" it by
sending a presence stanza of type "unsubscribe" to the contact;
this step does not necessarily affect the subscription state (see
...
... client
MUST send a presence stanza of type "unsubscribed" to the user
(instead of the presence stanza of type "subscribed" sent in Step
...
... 6 of Section 8.2):
<presence to='user@example.com' type='unsubscribed'/>
2. As a result, the contact's server MUST route ...
... route the presence stanza
of type "unsubscribed" to the user, first stamping the 'from'
address as the bare JID ...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
Note: If the contact's server previously added the user to the
...
... 3. Upon receiving the presence stanza of type "unsubscribed"
addressed to the user, the user's server (1) MUST deliver that
presence stanza ...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<iq type='set'>
...
... 4. Upon receiving the presence stanza of type "unsubscribed", the
user SHOULD acknowledge receipt of that subscription state
...
... notification through either "affirming" it by sending a presence
stanza of type "unsubscribe" to the contact or "denying" it by
sending a presence stanza ...
... subscribe" to the user or "denying" it by sending
a presence stanza of type "unsubscribe" to the user; this step
does not necessarily affect the subscription state (see
...
... client MUST
send a presence stanza of type "unsubscribed" to the contact
(instead of the presence stanza of type "subscribed" sent in Step
...
... 3 of Section 8.3):
<presence to='contact@example.org' type='unsubscribed'/>
2. As a result, the user's server MUST route ...
... route the presence stanza of
type "unsubscribed" to the contact, first stamping the 'from'
address as the bare JID ...
... from='user@example.com'
to='contact@example.org'
type='unsubscribed'/>
3. Upon receiving ...
... 3. Upon receiving the presence stanza of type "unsubscribed"
addressed to the contact, the contact's server (1) MUST deliver
that presence stanza ...
... from='user@example.com'
to='contact@example.org'
type='unsubscribed'/>
<iq type='set'>
...
... 4. Upon receiving the presence stanza of type "unsubscribed", the
contact SHOULD acknowledge receipt of that subscription state
...
... notification through either "affirming" it by sending a presence
stanza of type "unsubscribe" to the user or "denying" it by
sending a presence stanza of type "subscribe ...
... Unsubscribing ...
... At any time after subscribing to a contact's presence information, a
user MAY unsubscribe. While the XML that the user sends to make this
happen is the same in all instances, the subsequent subscription
...
... state is different depending on the subscription state obtaining when
the unsubscribe "command" is sent. Both possible scenarios are
described below.
...
... Case #1: Unsubscribing When Subscription is Not Mutual ...
... mutual).
1. If the user wants to unsubscribe from the contact's presence
information, the user MUST send a presence stanza of type
...
... information, the user MUST send a presence stanza of type
"unsubscribe" to the contact:
<presence to='contact@example.org' type='unsubscribe ...
... unsubscribe" to the contact:
<presence to='contact@example.org' type='unsubscribe'/>
2. As a result, the user's server (1) MUST send a roster push to all
...
... route the presence stanza of type "unsubscribe" to the contact,
first stamping the 'from' address as the bare JID ...
... from='user@example.com'
to='contact@example.org'
type='unsubscribe'/>
3. Upon receiving ...
... 3. Upon receiving the presence stanza of type "unsubscribe"
addressed to the contact, the contact's server (1) MUST initiate
a roster push to all available resources associated with the
...
... 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 notification ...
... from='user@example.com'
to='contact@example.org'
type='unsubscribe'/>
4. Upon receiving ...
... 4. Upon receiving the presence stanza of type "unsubscribe", the
contact SHOULD acknowledge receipt of that subscription state
...
... notification through either "affirming" it by sending a presence
stanza of type "unsubscribed" to the user or "denying" it by
sending a presence stanza of type "subscribed" to the user; this
...
... 5. The contact's server then (1) MUST send a presence stanza of type
"unsubscribed" to the user; and (2) SHOULD send unavailable
presence from all of the contact's available resources to the
user:
...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<presence
...
... 6. When the user's server receives the presence stanzas of type
"unsubscribed" and "unavailable", it MUST deliver them to the
user:
...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<presence
...
... 7. Upon receiving the presence stanza of type "unsubscribed", the
user SHOULD acknowledge receipt of that subscription state
...
... notification through either "affirming" it by sending a presence
stanza of type "unsubscribe" to the contact or "denying" it by
sending a presence stanza of type "subscribe ...
... Case #2: Unsubscribing When Subscription is Mutual ...
... user's presence information (i.e., the subscription is mutual).
1. If the user wants to unsubscribe from the contact's presence
information, the user MUST send a presence stanza of type
...
... information, the user MUST send a presence stanza of type
"unsubscribe" to the contact:
<presence to='contact@example.org' type='unsubscribe ...
... unsubscribe" to the contact:
<presence to='contact@example.org' type='unsubscribe'/>
2. As a result, the user's server (1) MUST send a roster push to all
...
... route the presence stanza of type "unsubscribe" to the contact,
first stamping the 'from' address as the bare JID ...
... from='user@example.com'
to='contact@example.org'
type='unsubscribe'/>
3. Upon receiving ...
... 3. Upon receiving the presence stanza of type "unsubscribe"
addressed to the contact, the contact's server (1) MUST initiate
a roster push to all available resources associated with the
...
... 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 notification ...
... from='user@example.com'
to='contact@example.org'
type='unsubscribe'/>
4. Upon receiving ...
... 4. Upon receiving the presence stanza of type "unsubscribe", the
contact SHOULD acknowledge receipt of that subscription state
...
... notification through either "affirming" it by sending a presence
stanza of type "unsubscribed" to the user or "denying" it by
sending a presence stanza of type "subscribed" to the user; this
...
... 5. The contact's server then (1) MUST send a presence stanza of type
"unsubscribed" to the user; and (2) SHOULD send unavailable
presence from all of the contact's available resources to the
user:
...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<presence
...
... 6. When the user's server receives the presence stanzas of type
"unsubscribed" and "unavailable", it MUST deliver them to the
user:
...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<presence
...
... 7. Upon receiving the presence stanza of type "unsubscribed", the
user SHOULD acknowledge receipt of that subscription state
...
... notification through either "affirming" it by sending a presence
stanza of type "unsubscribe" to the contact or "denying" it by
sending a presence stanza of type "subscribe ...
... 1. If the contact wants to cancel the user's subscription, the
contact MUST send a presence stanza of type "unsubscribed" to the
user:
...
... user:
<presence to='user@example.com' type='unsubscribed'/>
2. As a result, the contact's server (1) MUST send a roster push to
...
... route
the presence stanza of type "unsubscribed" to the user, first
stamping the 'from' address as the bare JID ...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<presence
...
... 3. Upon receiving the presence stanza of type "unsubscribed"
addressed to the user, the user's server (1) MUST initiate a
roster push to all of the user's available resources that have
...
... roster item and send
that modified item the next time the user requests the roster);
(2) MUST deliver the "unsubscribed" state change notification to
...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<presence
...
... 4. Upon receiving the presence stanza of type "unsubscribed", the
user SHOULD acknowledge receipt of that subscription state
...
... notification through either "affirming" it by sending a presence
stanza of type "unsubscribe" to the contact or "denying" it by
sending a presence stanza of type "subscribe ...
... 1. If the contact wants to cancel the user's subscription, the
contact MUST send a presence stanza of type "unsubscribed" to the
user:
...
... user:
<presence to='user@example.com' type='unsubscribed'/>
2. As a result, the contact's server (1) MUST send a roster push to
...
... route
the presence stanza of type "unsubscribed" to the user, first
stamping the 'from' address as the bare JID ...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<presence
...
... 3. Upon receiving the presence stanza of type "unsubscribed"
addressed to the user, the user's server (1) MUST initiate a
roster push to all of the user's available resources that have
...
... roster item and send
that modified item the next time the user requests the roster);
and (2) MUST deliver the "unsubscribed" state change notification
...
... from='contact@example.org'
to='user@example.com'
type='unsubscribed'/>
<presence
...
... 4. Upon receiving the presence stanza of type "unsubscribed", the
user SHOULD acknowledge receipt of that subscription state
...
... notification through either "affirming" it by sending a presence
stanza of type "unsubscribe" to the contact or "denying" it by
sending a presence stanza of type "subscribe ...
... from='user@example.com'
to='contact@example.org'
type='unsubscribe'/>
<presence
...
... from='user@example.com'
to='contact@example.org'
type='unsubscribed'/>
<iq type='set'>
...
... Upon receiving the presence stanza of type "unsubscribe", the
contact's server (1) MUST initiate a roster push to all available
resources associated with the contact that have requested the roster,
...
... roster item and send that modified item the next time
the contact requests the roster); and (2) MUST also deliver the
"unsubscribe" state change notification to all of the contact's
...
... from='user@example.com'
to='contact@example.org'
type='unsubscribe'/>
Upon receiving ...
... Upon receiving the presence stanza of type "unsubscribed", the
contact's server (1) MUST initiate a roster push to all available
resources associated with the contact that have requested the roster,
...
... roster item and send that modified item the next time
the contact requests the roster); and (2) MUST also deliver the
"unsubscribe" state change notification to all of the contact's
...
... from='user@example.com'
to='contact@example.org'
type='unsubscribed'/>
Upon receiving ...
... or her subscription to the contact's presence information (via the
"subscribe" and "unsubscribe" types), and to manage the contact's
access to the user's presence information (via the "subscribed" and
"unsubscribed ...
... unsubscribe" types), and to manage the contact's
access to the user's presence information (via the "subscribed" and
"unsubscribed" types).
Because it is possible for the user's server and the contact's server
...
... presence stanzas of
type "subscribe" or "unsubscribe" to the contact so that the user is
able to resynchronize his or her subscription to the contact's
presence information if needed.
...
... route a presence stanza of type
"subscribed" or "unsubscribed" to the contact if the stanza does not
result in a subscription state change ...
... +----------------------------------------------------------------+
Table 2: Recommended handling of outbound "unsubscribed" stanzas
...
... subscribe" type), inform the user of
subscription-related actions taken by the contact (via the
"unsubscribe" type), or enable the contact to manage the user's
access to the contact's presence information (via the "subscribed"
and "unsubscribed ...
... unsubscribe" type), or enable the contact to manage the user's
access to the contact's presence information (via the "subscribed"
and "unsubscribed" types).
When the user's server receives a subscription request ...
... When the user's server receives a presence stanza of type
"unsubscribe" for the user from the contact, if the stanza results in
a subscription state change ...
... user's server SHOULD auto-reply by sending a presence stanza of type
"unsubscribed" to the contact on behalf of the user, MUST deliver the
"unsubscribe" stanza ...
... "unsubscribed" to the contact on behalf of the user, MUST deliver the
"unsubscribe" stanza to the user, and MUST change the state. If no
...
... summarized in the following table.
Table 4: Recommended handling of inbound "unsubscribe" stanzas
...
... +------------------------------------------------------------------+
* Server SHOULD auto-reply with "unsubscribed" stanza
...
... When the user's server receives a presence stanza of type
"unsubscribed" for the user from the contact, it MUST deliver the
stanza to the user and MUST change the subscription state ...
... rules are summarized in the following table.
Table 6: Recommended handling of inbound "unsubscribed" stanzas
...
... (i.e., a subscription request) or of type "subscribed",
"unsubscribe", or "unsubscribed" (i.e., a subscription state change
...
... subscription request) or of type "subscribed",
"unsubscribe", or "unsubscribed" (i.e., a subscription state change
notification ...
... +--------------------------------------------------+
| subscribe | subscribed | unsubscribed |
| subscribed | subscribe | unsubscribe ...
... unsubscribed | subscribed |
| unsubscribed | unsubscribe | subscribe |
+--------------------------------------------------+
...
...
Because a user's server MUST automatically generate outbound presence
stanzas of type "unsubscribe" and "unsubscribed" upon receiving a
...
... Because a user's server MUST automatically generate outbound presence
stanzas of type "unsubscribe" and "unsubscribed" upon receiving a
roster set with the 'subscription' attribute set to a value of
...
... presence stanzas of type "subscribe", "subscribed",
"unsubscribe", and "unsubscribed", the server MUST maintain a
record of the stanza ...
... subscribe", "subscribed",
"unsubscribe", and "unsubscribed", the server MUST maintain a
record of the stanza and deliver the stanza ...
... <xs:enumeration value='unavailable'/>
<xs:enumeration value='unsubscribe'/>
<xs:enumeration value='unsubscribed'/>
...
... <xs:enumeration value='unsubscribe'/>
<xs:enumeration value='unsubscribed'/>
</xs:restriction>
</xs:simpleType>
...
... <xs:enumeration value='unavailable'/>
<xs:enumeration value='unsubscribe'/>
<xs:enumeration value='unsubscribed'/>
...
... <xs:enumeration value='unsubscribe'/>
<xs:enumeration value='unsubscribed'/>
</xs:restriction>
</xs:simpleType>
...
