subscription request
Click on the red underlined text to get to the source
...
o unsubscribed -- The subscription request has been denied or a
previously-granted subscription has been cancelled.
...
...
A subscription request is a presence stanza whose 'type' attribute
has a value of "subscribe ...
... presence stanza whose 'type' attribute
has a value of "subscribe". If the subscription request is being
sent to an instant messaging contact, the JID ...
... not merely the particular resource specified in the 'to' attribute.
A user's server MUST NOT automatically approve subscription requests
on the user's behalf. All subscription requests MUST be directed to
...
... A user's server MUST NOT automatically approve subscription requests
on the user's behalf. All subscription requests MUST be directed to
the user's client, specifically to one or more available resources
...
... client, specifically to one or more available resources
associated with the user. If there is no available resource
associated with the user when the subscription request is received by
the user's server, the user's server MUST keep a record of the
...
... by
the user's server, the user's server MUST keep a record of the
subscription request and deliver the request when the user next
creates an available resource, until the user either approves or
...
... creates an available resource, until the user either approves or
denies the request. If there is more than one available resource
associated with the user when the subscription request is received by
the user's server, the user's server MUST broadcast that subscription
request ...
... subscription request is received by
the user's server, the user's server MUST broadcast that subscription
request to all available resources in accordance with Server Rules
for Handling XML Stanzas (Section 11). (Note: If an active ...
...
has not provided initial presence, the server MUST NOT consider it to
be available and therefore MUST NOT send subscription requests to
it.) However, if the user receives a presence stanza of type
...
... the user's server SHOULD auto-reply on behalf of the user. In
addition, the user's server MAY choose to re-send an unapproved
pending subscription request to the contact based on an
implementation-specific algorithm (e.g., whenever a new resource
...
... becomes available for the user, or after a certain amount of time has
elapsed); this helps to recover from transient, silent errors that
may have occurred in relation to the original subscription request.
...
... subscribe".
Example: Sending a subscription request:
<presence to='juliet@example.com' type='subscribe ...
... Handling a Subscription Request ...
...
When a client receives a subscription request from another entity, it
MUST either approve the request by sending a presence stanza ...
... unsubscribed".
Example: Approving a subscription request:
<presence to='romeo@example.net' type='subscribed'/>
...
...
If a user would like to cancel a previously-granted subscription
request, it sends a presence stanza of type "unsubscribed".
...
... unsubscribed".
Example: Cancelling a previously granted subscription request:
<presence to='romeo@example.net' type='unsubscribed ...
... create a roster item before sending the
subscription request, the server MUST now create one on behalf of the
user, then send a roster push to all of the user's available
...
... to the contact, the contact's server MUST determine if there is
at least one available resource from which the contact has
requested the roster. If so, it MUST deliver the subscription
request to the contact (if not, the contact's server MUST store
the subscription request offline for delivery ...
... requested the roster. If so, it MUST deliver the subscription
request to the contact (if not, the contact's server MUST store
the subscription request offline for delivery when this condition
...
... roster items in that state to
the contact). No matter when the subscription request is
delivered, the contact must decide whether or not to approve it
(subject ...
... subject to the contact's configured preferences, the contact's
client MAY approve or refuse the subscription request without
presenting it to the contact). Here we assume the "happy path"
that the contact approves the subscription request ...
... subscription request without
presenting it to the contact). Here we assume the "happy path"
that the contact approves the subscription request (the alternate
flow of declining the subscription request ...
... subscription request (the alternate
flow of declining the subscription request is defined in Section
8.2.1). In this case, the contact's client (1) SHOULD perform a
...
... (if any); and (2) MUST send a presence stanza of type
"subscribed" to the user in order to approve the subscription
request.
<iq type='set' id='set2'>
...
... Alternate Flow: Contact Declines Subscription Request ...
... The above activity flow represents the "happy path" regarding the
user's subscription request to the contact. The main alternate flow
occurs if the contact refuses the user's subscription request ...
... subscription request to the contact. The main alternate flow
occurs if the contact refuses the user's subscription request, as
described below.
...
... 1. If the contact wants to create a mutual subscription, the contact
MUST send a subscription request to the user (subject to the
contact's configured preferences, the contact's client ...
... to the user, the user's server must determine if there is at
least one available resource for which the user has requested the
roster. If so, the user's server MUST deliver the subscription
request to the user (if not, it MUST store the subscription
request offline for delivery when this condition is next met). No
...
... least one available resource for which the user has requested the
roster. If so, the user's server MUST deliver the subscription
request to the user (if not, it MUST store the subscription
request offline for delivery when this condition is next met). No
matter when the subscription request ...
... subscription
request offline for delivery when this condition is next met). No
matter when the subscription request is delivered, the user must
then decide whether or not to approve it (subject to the user's
...
... configured preferences, the user's client MAY approve or refuse
the subscription request without presenting it to the user).
Here we assume the "happy path" that the user approves the
subscription request ...
... subscription request without presenting it to the user).
Here we assume the "happy path" that the user approves the
subscription request (the alternate flow of declining the
subscription request ...
... subscription request (the alternate flow of declining the
subscription request is defined in Section 8.3.1). In this case,
the user's client MUST send a presence stanza ...
... client MUST send a presence stanza of type
"subscribed" to the contact in order to approve the subscription
request.
<presence to='contact@example.org' type='subscribed'/>
...
... presence stanza of type "subscribed" it sent previously
(e.g., by tracking an 'id' attribute) and then choose to resend the
subscription request or revert the roster to its previous state by
sending a presence stanza ...
... Alternate Flow: User Declines Subscription Request ...
... The above activity flow represents the "happy path" regarding the
contact's subscription request to the user. The main alternate flow
occurs if the user refuses the contact's subscription request ...
... subscription request to the user. The main alternate flow
occurs if the user refuses the contact's subscription request, as
described below.
...
...
At any time after approving a subscription request from a user, a
contact MAY cancel that subscription. While the XML that the contact
...
...
2. "None + Pending Out" = contact and user are not subscribed to
each other, and user has sent contact a subscription request but
contact has not replied yet
...
...
3. "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 ...
... roster items in this state, but instead SHOULD wait until
contact has approved subscription request from user)
4. "None + Pending Out/In" = contact and user are not subscribed to
...
...
4. "None + Pending Out/In" = contact and user are not subscribed to
each other, contact has sent user a subscription request but user
has not replied yet, and user has sent contact a subscription
request but contact has not replied yet
...
... each other, contact has sent user a subscription request but user
has not replied yet, and user has sent contact a subscription
request but contact has not replied yet
5. "To" = user is subscribed to contact (one-way ...
...
6. "To + Pending In" = user is subscribed to contact, and contact
has sent user a subscription request but user has not replied yet
7. "From" = contact is subscribed to user (one-way ...
...
8. "From + Pending Out" = contact is subscribed to user, and user
has sent contact a subscription request but contact has not
replied yet
...
... unsubscribed" types).
When the user's server receives a subscription request for the user
from the contact (i.e., a presence stanza of type "subscribe ...
... MUST deliver that request to the user for approval if the user has
not already granted the contact access to the user's presence
information and if there is no pending inbound subscription request;
however, the user's server SHOULD NOT deliver the new request if
there is a pending inbound subscription request ...
... subscription request;
however, the user's server SHOULD NOT deliver the new request if
there is a pending inbound subscription request, since the previous
subscription request will have been recorded. If the user has
...
... there is a pending inbound subscription request, since the previous
subscription request will have been recorded. If the user has
already granted the contact access to the user's presence
information, the user's server SHOULD auto-reply to an inbound
...
... presence stanza of type "subscribe"
(i.e., a subscription request) or of type "subscribed",
"unsubscribe", or "unsubscribed ...
... state change notifications (and MUST
require acknowledgement in the case of subscription requests, i.e.,
presence stanzas of type "subscribe ...
... presence
stanzas of type "subscribe" until the user either approves or
denies the subscription request (see also Presence
Subscriptions (Section 5.1.6)).
...
