Iq option 60 second strategy

Iq option 60 second strategy casual concurrence

Iq Option 60 Seconds Trading Strategy - No Martiangle - 90% ITM GUARANTEED, time: 4:38

[

Differences Between Jabber IM Presence Protocols and XMPP Appendix D. The Extensible Messaging and Presence Protocol XMPP is a protocol for streaming XML Bray, T. Contributors Appendix E. XML elements in order to exchange messages and presence information in close to real time. The core features of XMPP are defined in Extensible Messaging and Presence Protocol XMPP Core Saint-Andre, P.Extensible Messaging and Presence Protocol XMPP Core, October 2004.

These features -- mainly XML streams, use of TLS and SASL, and the. Upon being so informed that session establishment is required and after completing resource bindingthe client MUST establish a session if it desires to engage in instant messaging and presence functionality; it completes this step by sending to the server an IQ stanza of type set containing an empty child element qualified by the urn ietf params xml ns xmpp-session namespace. Step 1 Client requests session with server.

Step 2 Server informs client that session has been created. Upon establishing a session, a connected resource in the terminology of XMPP CORE Saint-Andre, P. is said to be an active resource. For example, the server may encounter an internal condition that prevents it from creating the session, the username or authorization identity may lack permissions to create a session, or there may already be an active resource associated with a resource identifier of the same name.

If the username or resource is not allowed to create a session, the server MUST return an error e. If the server encounters an internal condition that prevents it from creating the session, it MUST return an error. Step 2 alt Server responds with error internal server error. Step 2 alt Server responds with error username or resource not allowed to create session.

If there is already an active resource of the same name, the server MUST either 1 terminate the active resource and allow the newly-requested session, or 2 disallow the newly-requested session and maintain the active resource. Which of these the server does is up to the implementation, although it is RECOMMENDED to implement case 1. In case 1, the server SHOULD send a stream error to the active resource, terminate the XML stream and underlying TCP connection for the active resource, and return a IQ stanza of type result indicating success to the newly-requested session.

In case 2, the iq option 60 second strategy SHOULD send a stanza error to the newly-requested session but maintain the XML stream for that connection so that the newly-requested session has an opportunity to negotiate a non-conflicting resource identifier before sending another request for session establishment. Step 2 alt Server informs newly-requested session of resource conflict case 2. After establishing a session, a client SHOULD send initial presence and request its roster as described below, although these actions are OPTIONAL.

Note Before allowing the creation of instant messaging and presence sessions, a server MAY require prior account provisioning. Possible methods for account provisioning include account creation by a server administrator as well as in-band account registration using the jabber iq register namespace; the latter method is out of scope for this memo, but is documented in JEP 0077 Saint-Andre, P.In-Band Registration, August 2004. Step 2 alt Server informs existing active resource of resource conflict case 1.

Exchanging Messages. Exchanging messages is a basic use of XMPP and is brought about when a user generates a message stanza that is addressed to another entity. As defined under Server Rules for Handling XML Stanzas Server Rules for Handling XML Stanzasthe sender s server is responsible for delivering the message to the intended recipient if the recipient is on the same server or for routing the message to the recipient s server if the recipient is on a different server. For information regarding the syntax of message stanzas as well as their defined attributes and child elements, refer to Message Syntax Message Syntax.

Specifying an Intended Recipient. An instant messaging client SHOULD specify an intended recipient for a message by providing the JID of an entity other than the sender in the to attribute of the stanza. If the message is being sent in reply to a message previously received from an address of the form e.within the context of a chat sessionthe value of the to address SHOULD be of the form rather than of the form unless the sender has knowledge via presence that the intended recipient s resource is no longer available.

If the message is being sent outside the context of any existing chat session or received message, the value of the to address SHOULD be of the form rather than of the form. Specifying a Message Type. As noted, it is RECOMMENDED for a message stanza to possess a type attribute whose value captures the conversational context if any of the message see Type Types of Message. The following example shows a valid value of the type attribute.

A message stanza MAY and often will contain a child element whose XML character data specifies the primary meaning of the message see Body Body. Example A message with a body. Specifying a Message Subject. Specifying a Message Body. Example A message of a defined type. A message stanza Iq option 60 second strategy contain one or more child elements specifying the topic of the message see Subject Subject.

Example A message with a subject. Specifying a Conversation Thread. A message stanza MAY contain a child element specifying the conversation thread in which the message is situated, for the purpose of tracking the conversation see Thread Thread. Example A threaded conversation. Exchanging Presence Information. Exchanging presence information is made relatively straightforward within XMPP by using presence stanzas. However, we see here a contrast to the handling of messages although a client MAY send directed presence information to another entity by including a to address, normally presence notifications i.presence stanzas with no type or of type unavailable and with no to address are sent from a client to its server and then broadcasted by the server to any entities that are subscribed to the presence of the sending entity in the terminology of RFC 2778 Day, M.Rosenberg, J.

Sugano, A Model for Presence and Instant Messaging, February 2000. IMP MODELthese entities are subscribers. Note While presence information MAY be provided on a user s behalf by an automated service, normally it is provided by the user s client. This broadcast model does not apply to subscription-related presence stanzas or presence stanzas of type errorbut to presence notifications only as defined above. For information regarding the syntax of presence stanzas as well as their defined attributes and child elements, refer to XMPP CORE Saint-Andre, P.

Client and Server Presence Responsibilities. Initial Presence. After establishing a session, a client SHOULD send initial presence to the server in order to signal its availability for communications. As defined herein, the initial presence stanza 1 MUST possess no to address signalling that it is meant to be broadcasted by the server on behalf of the client and 2 MUST possess no type attribute signalling the user s availability. After sending initial presence, an active resource is said to be an available resource.

Upon receiving initial presence from a client, the user s server MUST do the following if there is not already one or more available resources for the user if there is already one or more available resources for the user, the server obviously does not need to send the presence probes, since it already possesses the requisite information. Send presence probes i.presence stanzas whose type attribute is set to a value of probe from the full JID e.of the user to all contacts to which the user is subscribed in order to determine if they are available; such contacts are those for which a JID is present in the user s roster with the subscription attribute set to a value of to or both.

Note The user s server MUST NOT send presence probes to contacts from which the user is blocking inbound presence notifications, as described under Blocking Inbound Presence Notifications Blocking Inbound Presence Notifications. Broadcast initial presence from the full JID e. In addition, the user s server MUST broadcast initial presence from the user s new available resource to any of the user s existing available resources if any.of the user to all contacts that are subscribed to the user s presence information; such contacts are those for which a JID is present in the user s roster with the subscription attribute set to a value of from or both.

Note The user s server MUST NOT broadcast initial presence to contacts to which the user is blocking outbound presence notifications, as described under Blocking Outbound Presence Notifications Blocking Outbound Presence Notifications. Upon receiving initial presence from the user, the contact s server MUST deliver the user s presence stanza to the full JIDs associated with all of the contact s available resources, but only if the user is in the contact s roster with a subscription state of to or both and the contact has not blocked inbound presence notifications from the user s bare or full JID as defined under Blocking Inbound Presence Notifications Blocking Inbound Presence Notifications.

If the user s server receives a presence stanza of type error in response to the initial presence that it sent to a contact on behalf of the user, it SHOULD NOT send further presence updates to that contact until and unless it receives a presence stanza from the contact. Presence Broadcast. After sending initial presence, the user MAY update its presence information for broadcasting at any time during its session by sending a presence stanza with no to address and either no type attribute or a type attribute with a value of unavailable.

If the presence stanza lacks a type attribute i. Note A user s client SHOULD NOT send a presence update to broadcast information that changes independently of the user s presence and availability.expresses availabilitythe user s server MUST broadcast the full XML of that presence stanza to all contacts 1 that are in the user s roster with a subscription type of from or both2 to whom the user has not blocked outbound presence notifications, and 3 from whom the server has not received a presence error during the user s session as well as to any of the user s other available resources.

If the presence stanza has a type attribute set to a value of unavailablethe user s server MUST broadcast the full XML of that presence stanza to all entities that fit the above description, as well as to any entities to which the user has sent directed available presence during the user s session if the user has not yet sent directed unavailable presence to that entity. Presence Probes. Upon receiving iq option 60 second strategy presence probe from the user, the contact s server SHOULD reply as follows.

If the user is not in the contact s roster with a subscription state of FromFrom Pending Outor Both as defined under Subscription States Subscription Statesthe contact s server MUST return a presence stanza of type error in response to the presence probe however, if a server receives a presence probe from a subdomain of the server s hostname or another such trusted service, it MAY provide presence information about the user to that entity. Specifically if the user is in the contact s roster with a subscription state of NoneNone Pending Outor To or is not in the contact s roster at allthe contact s server MUST return a stanza error in response to the presence probe.

if the user is in the contact s roster with a subscription state of None Pending InNone Pending Out Inor To Pending Inthe contact s server MUST return a stanza error in response to the presence probe. Else, if the contact is blocking presence notifications to the user s bare JID or full JID using either a default list or active list as defined under Blocking Outbound Presence Notifications Blocking Outbound Presence Notificationsthe server MUST NOT reply to the presence probe.

Else, if the contact has no available resources, the server MUST either 1 reply to the presence probe by sending to the user the full XML of the last presence stanza of type unavailable received by the server from the contact, or 2 not reply at all. Else, if the contact has at least one available resource, the server MUST reply to the presence probe by sending to the user the full XML of the last presence stanza with no to attribute received by the server from each of the contact s available resources again, subject to privacy lists in force for each session.

Directed Presence. A user MAY send directed presence to another entity i.a presence stanza with a to attribute whose value is the JID of the other entity and with either no type attribute or a type attribute whose value is unavailable. There are three possible cases. If the user sends directed presence to a contact that is in the user s roster with a subscription type of from or both after having sent initial presence and before sending unavailable presence broadcast, the user s server MUST route or deliver the full XML of that presence stanza subject to privacy lists but SHOULD NOT otherwise modify the contact s status regarding presence broadcast i.it SHOULD include the contact s JID in any subsequent presence broadcasts initiated by the user.

If the user sends directed presence to an entity that is not in the user s roster with a subscription type of from or both after having sent initial presence and before sending unavailable presence broadcast, the user s server MUST route or deliver the full XML of that presence stanza to the entity but MUST NOT modify the contact s status regarding available presence broadcast i. If the user sends directed presence without first sending initial presence or after having sent unavailable presence broadcast i.

Unavailable Presence.the resource is active but not availablethe user s server MUST treat the entities to which the user sends directed presence in the same way that it treats the entities listed in case 2 above. Before ending its session with a server, a client SHOULD gracefully become unavailable by sending a final presence stanza that possesses no to attribute and that possesses a type attribute whose value is unavailable optionally, the final presence stanza MAY contain one or more elements specifying the reason why the user is no longer available.

However, the user s server MUST NOT depend on receiving final presence from an available resource, since the resource may become unavailable unexpectedly or may be timed out by the server. If one of the user s resources becomes unavailable for any reason either gracefully or ungracefullythe user s server MUST broadcast unavailable presence to all contacts 1 that are in the user s roster with a subscription type of from or both2 to whom the user has not blocked outbound presence, and 3 from whom the server has not received a presence error during the user s session; the user s server MUST also send that unavailable presence stanza to any of the user s other available resources, as well as to any entities to which the user has sent directed presence during the user s session for that resource if the user has not yet sent directed unavailable presence to that entity.

Any presence stanza with no type attribute and no to attribute that is sent after sending directed unavailable presence or broadcasted unavailable presence MUST be broadcasted by the server to all subscribers. Presence Subscriptions. A subscription request is a presence stanza whose type attribute has a value of subscribe.it MUST NOT include the entity s JID in any subsequent broadcasts of available presence initiated by the user ; however, if the available resource from which the user sent the directed presence become unavailable, the user s server MUST broadcast that unavailable presence to the entity if the user has not yet sent directed unavailable presence to that entity.

A user s server MUST NOT automatically approve subscription requests on the user s behalf. If the subscription request is being sent to an instant messaging contact, the JID supplied in the to attribute SHOULD be of the form rather thansince the desired result is normally for the user to receive presence from all of the contact s resources, not merely the particular resource specified in the to attribute. All subscription requests MUST be directed to the user s 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 subscription request and deliver the request when the user next creates an available resource, until the user either approves or denies the request. Note If an active resource has not provided initial presence, the server MUST NOT consider it to be available and therefore MUST NOT send subscription requests to it.

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 to all available resources in accordance with Server Rules for Handling XML Stanzas Server Rules for Handling XML Stanzas. However, if the user receives a presence stanza of type subscribe from a contact to whom the user has already granted permission to see the user s presence information e.in cases when the contact is seeking to resynchronize subscription statesthe 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.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.

Specifying Availability Status. A client MAY provide further information about its availability status by using the element see Show Show. Example Availability status. Specifying Detailed Status Information. Example Detailed status information. In conjunction with the element, a iq option 60 second strategy MAY provide detailed status information by using the element see Status Status. Specifying Presence Priority.

A client MAY provide a priority for its resource by using the. Example Presence priority. Presence Examples. The examples in this section illustrate the presence-related protocols described above. com subscription both and she has two available resources, one whose resource is chamber and another whose resource is balcony benvolio example. org subscription to mercutio example.

The user is romeo example. net, he has an available resource whose resource identifier is orchardand he has the following individuals in his roster. org subscription from. Example 1 User sends initial presence. Example 2 User s server sends presence probes to contacts with subscription to and subscription both on behalf of the user s available resource. Example 3 User s server sends initial presence to contacts with subscription from and subscription both on behalf of the user s available resource.

Example 4 Contacts servers reply to presence probe on behalf of all available resources. Example 5 Contacts servers deliver user s initial presence to all available resources or return error to user. Example 7 User sends updated available presence information for broadcasting. Example 6 User sends directed presence to another user not in his roster.

Example 8 User s server broadcasts updated presence information only to one contact not those from whom an error was received or to whom the user sent directed presence. Example 9 Contact s server delivers updated presence information to all of the contact s available resources. Example 11 Contact s server sends unavailable presence information to user. Example 12 User sends final presence. Example 10 One of the contact s resources broadcasts final presence.

Example 13 User s server broadcasts unavailable presence information to contact as well as to the person to whom the user sent directed presence. Managing Subscriptions. In order to protect the privacy of instant messaging users and any other entities, presence and availability information is disclosed only to other entities that the user has approved.

When a user has agreed that another entity may view its presence, the entity is said to have a subscription to the user s presence information. Subscriptions are managed within XMPP by sending presence stanzas containing specially-defined attributes. A subscription lasts across sessions; indeed, it lasts until the subscriber unsubscribes or the subscribee cancels the previously-granted subscription.

Note There are important interactions between subscriptions and rosters; these are defined under Integration of Roster Items and Presence Subscriptions Integration of Roster Items and Presence Subscriptionsand the reader must refer to that section for a complete understanding of presence subscriptions. Example Sending a subscription request. For client and server responsibilities regarding presence subscription requests, refer to Presence Subscriptions Presence Subscriptions.

Requesting a Subscription. 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 of type subscribed or refuse the request by sending a presence stanza of type unsubscribed. Example Approving a subscription request. Example Refusing a presence subscription request. Cancelling a Subscription from Another Entity. 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. Unsubscribing from Another Entity s Presence. A request to subscribe to another entity s presence is made by sending a presence stanza of type subscribe. If a user would like to unsubscribe from the presence of another entity, it sends a presence stanza of type unsubscribe.

Example Unsubscribing from an entity s presence. Roster Management. Iq option 60 second strategy 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. A user s roster is stored by the user s server on the user s behalf so that the user may access roster information from any resource.

Note There are important interactions between rosters and subscriptions; these are defined under Integration of Roster Items and Presence Subscriptions Integration of Roster Items and Presence Subscriptionsand the reader must refer to that section for a complete understanding of roster management. Syntax and Semantics. Rosters are managed using IQ stanzas, specifically by means of a child element qualified by the jabber iq roster namespace.

The element MAY contain one or more children, each describing a unique roster item or contact. The key or unique identifier for each roster item is a JID, encapsulated in the jid attribute of the element which is REQUIRED. The value of the jid attribute SHOULD be of the form if the item is associated with another human instant messaging user. The state of the presence subscription in relation to a roster item is captured in the subscription attribute of the element.

Allowable values for this attribute are. none -- the user does not have a subscription to the contact s presence information, and the contact does not have a subscription to the user s presence information to -- the user has a subscription to the contact s presence information, but the contact does not have a subscription to the user s presence information from -- the contact has a subscription to the user s presence information, but the user does not have a subscription to the contact s presence information both -- both the user and the contact have subscriptions to each other s presence information.

Each element MAY contain a name attribute, which sets the nickname to be associated with the JID, as determined by the user not the contact. The value of the name attribute is opaque. Each element MAY contain one or more child elements, for use in collecting roster items into various categories. The XML character data of the element is opaque.

Business Rules. A server MUST ignore any to address on a roster setand MUST treat any roster set as applying to the sender. For added safety, a 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 attribute i.

Retrieving One s Roster on Login.implicitly from the server or have a from attribute whose value matches the user s bare JID of the form or full JID of the form ; otherwise, the client SHOULD ignore the roster push. Upon connecting to the server and becoming an active resource, a client SHOULD request the roster before sending initial presence however, because receiving the roster may not be desirable for all resources, e.a connection with limited bandwidth, the client s request for the roster is OPTIONAL.

If an available resource does not request the roster during a session, the server MUST NOT send it presence subscriptions and associated roster updates. Example Client requests current roster from server. At any time, a user MAY add an item to his or her roster. Example Client receives roster from server. Adding a Roster Item. Example Client adds a new item. 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 information. 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. As required by the semantics of the IQ stanza kind as defined in XMPP CORE Saint-Andre, P.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. Updating a Roster Item. Updating an existing roster item e.changing the group is done in the same way as adding a new roster item, i.by sending the roster item in an IQ set to the server. Example User updates roster item added group. As with adding a roster item, when updating a roster item the server MUST update the roster information in persistent storage, and also initiate a roster push to all of the user s available resources that have requested the roster.

Deleting a Roster Item. At any time, a user MAY delete an item from his or her roster by sending an IQ set to the server and making sure that the value of the subscription attribute is remove a compliant server MUST ignore any other values of the subscription attribute when received from a client. Example Client removes an item. As with adding a roster item, when deleting a roster item the server MUST update the roster information in persistent storage, initiate a roster push to all of the user s available resources that have requested the roster with the subscription attribute set to a value of removeand send an IQ result to the initiating resource.

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 regarding the user s subscriptions to and from other contacts. This section describes the level of integration that MUST be supported within XMPP instant messaging applications. There are four primary subscription states.

None -- the user does not have a subscription to the contact s presence information, and the contact does not have a subscription to the user s presence information To -- the user has a subscription to the contact s presence information, but the contact does not have a subscription to the user s presence information From -- the contact has a subscription to the user s presence information, but the user does not have a subscription to the contact s presence information Both -- both the user and the contact have subscriptions to each other s presence information i.the union of from and to.

Each of these states is reflected in the roster of both the user and the contact, thus resulting in durable subscription states. 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 handling of all subscription states including pending states between the primary states listed above is provided in Subscription States Subscription States. The server MUST NOT send presence subscription requests or roster pushes to unavailable resources, nor to available resources that have not requested the roster. The from and to addresses are OPTIONAL in roster pushes; if included, their values SHOULD be the full JID of the resource for that session.

A client MUST acknowledge each roster push with an IQ stanza of type result for the sake of brevity, these stanzas are not shown in the following examples but are required by the IQ semantics defined in XMPP CORE Saint-Andre, P. User Subscribes to Contact. The process by which a user subscribes to a contact, including the interaction between roster items and subscription states, is described below.

In preparation for being able to render the contact in the user s client interface and for the server to keep track of the 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 element qualified by the jabber iq roster namespace, which in turn contains an element that defines the new roster item; the element MUST possess a jid attribute, MAY possess a name attribute, MUST NOT possess a subscription attribute, and MAY contain one or more child elements.

Note If the user did not 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 resources that have requested the roster, absent the name attribute and the child shown above. The user s server MUST also stamp the presence stanza of type subscribe with the user s bare JID i.as the from address if the user provided a from address set to the user s full JID, the server SHOULD remove the resource identifier.

If the contact is served by a different host than the user, the user s server MUST route the presence stanza to the contact s server for delivery to the contact this case is assumed throughout; however, if the contact is served by the same host, then the server can simply deliver the presence stanza directly. Note If the user s server receives a presence stanza of type error from the contact s server, it MUST deliver the error stanza to the user, whose client MAY determine that the error is in response to the outgoing presence stanza of type subscribe it sent previously e.by tracking an id attribute and then choose to resend the subscribe request or revert the roster to its previous state by sending a presence stanza of type unsubscribe to the contact.

Upon receiving the presence stanza of type subscribe addressed 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 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 as defined under Subscription States Subscription Stateshowever a server SHOULD NOT push or deliver 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 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 the alternate flow of declining the subscription request is defined in Section 8.

1 Alternate Flow Contact Declines Subscription Request. In this case, the contact s client 1 SHOULD perform a roster set specifying the desired nickname and group for the user if any ; and 2 MUST send a presence stanza of type subscribed to the user in order to approve the subscription request. Note If the contact s server receives a presence stanza of type error from the user s server, it MUST deliver the error stanza to the contact, whose client MAY determine that the error is in response to the outgoing presence stanza of type subscribed it sent previously e.by tracking an id attribute and then choose to resend the subscribed notification or revert the roster to its previous state by sending a presence stanza of type unsubscribed to the user.

If the contact is not in the user s roster with either of those states, the user s server MUST silently ignore the presence stanza of type subscribed i.it MUST NOT route it to the user, modify the user s roster, or generate a roster push to the user s available resources. If the contact is in the user s roster with either of those states, the user s server 1 MUST deliver the presence stanza of type subscribed from the contact to the user; 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 to ; and 3 MUST deliver the available presence stanza received from each of the contact s iq option 60 second strategy resources to each of the user s available resources.

From the perspective of the user, there now exists a subscription to the contact s presence information; from the perspective of the contact, there now exists a subscription from the user. 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, as described below. If the contact wants to refuse the request, the contact s 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 User Subscribes to Contact. Note If the contact s server previously added the user to the contact s roster for tracking purposes, it MUST remove the relevant item at this time.

Upon receiving the presence stanza of type unsubscribed addressed to the user, the user s server 1 MUST deliver that 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. Upon receiving the presence stanza of type subscribed addressed to the user, the user s server MUST first verify that the contact is in the user s roster with either of the following states a subscription none and ask subscribe or b subscription from and ask subscribe.

As a result of this activity, the contact is now in the user s roster with a subscription state of nonewhereas the user is not in the contact s roster at all. Creating a Mutual Subscription.a subscription of type both. The user and contact can build on the happy path described above to create a mutual subscription i. 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 MAY send this automatically.

Note If the contact s server receives a presence stanza of type error from the user s server, it MUST deliver the error stanza to the contact, whose client MAY determine that the error is in response to the outgoing presence stanza of type subscribe it sent previously e.by tracking an id attribute and then choose to resend the subscribe request or revert the roster to its previous state by sending a presence stanza of type unsubscribe to the user.

The process is described below. Upon receiving the presence stanza of type subscribe addressed 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. 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.

1 Alternate Flow User Declines Subscription Request. 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. Here we assume the happy path that the user approves the subscription request the alternate flow of declining the subscription request is defined in Section 8. In this case, the user s client MUST send a presence stanza of type subscribed to the contact in order to approve the subscription request.

Note If the user s server receives a presence stanza of type error from the contact s server, it MUST deliver the error stanza to the user, whose client MAY determine that the error is in response to the outgoing presence stanza of type subscribed it sent previously e.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 of type unsubscribed to the contact. Upon receiving the presence stanza of type subscribed addressed to the contact, the contact s server MUST first verify that the user is in the contact s roster with either of the following states a subscription none and ask subscribe or b subscription from and ask subscribe.

If the user is not in the contact s roster with either of those states, the contact s server MUST silently ignore the presence stanza of type subscribed i. If the user is in the contact s roster with either of those states, the contact s server 1 MUST deliver the presence stanza of type subscribed from the user to 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 received from each of the user s available resources to each of the contact s available resources.it MUST NOT route it to the contact, modify the contact s roster, or generate a roster push to the contact s available resources.

The user and the contact now have a mutual subscription to each other s presence -- i.the subscription is of type both. Alternate Flow User Declines Subscription Request. The main alternate flow occurs if the user refuses the contact s subscription request, as described below. The above activity flow represents the happy path regarding the contact s subscription request to the user. If the user wants to refuse the request, the user s 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 Creating a Mutual Subscription. As a result of this activity, there has been no change in the subscription state; i. At any time after subscribing to a contact s presence information, a user MAY unsubscribe.the contact is in the user s roster with a subscription state of to and the user is in the contact s roster with a subscription state of from. Both possible scenarios are described below. In the first case, the user has a subscription to the contact s presence information but the contact does not have a subscription to the user s presence information i.

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. Upon receiving the presence stanza of type unsubscribedthe 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 to the contact; this step does not necessarily affect the subscription state see Subscription States Subscription States for detailsbut instead lets the user s server know that it MUST no longer send notification of the subscription state change to the user see Section 9.the subscription is not yet mutual.

4 Server Delivery and Client Acknowledgement of Subscription Requests and State Change Notifications. If the user wants to unsubscribe from the contact s presence information, the user MUST send a presence stanza of type unsubscribe to the contact. In the second case, the user has a subscription to the contact s presence information and the contact also has a subscription to the user s presence information i.

Case 2 Unsubscribing When Subscription is Mutual.the subscription is mutual. 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. Case 1 Unsubscribing When Subscription is Not Mutual. 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 with subscription remove as defined under Removing a Roster Item and Cancelling All Subscriptions Removing a Roster Item and Cancelling All Subscriptions.

Cancelling a Subscription. At any time after approving a subscription request from a user, a contact MAY cancel that subscription. Case 1 Cancelling When Subscription is Not Mutual. While the XML that the contact 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 cancellation was sent.

If the contact wants to cancel the user s subscription, the contact MUST send a presence stanza of type unsubscribed to the user. Case 2 Cancelling When Subscription is Mutual. 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 cancel a mutual subscription and fully remove the roster item from the contact s roster, the contact should update the roster item with subscription remove as defined under Removing a Roster Item and Cancelling All Subscriptions Removing a Roster Item and Cancelling All Subscriptions.

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 for doing so. The process may be initiated no matter what the current subscription state is by sending a roster set containing an item for the contact with the subscription attribute set to a value of remove. When the user removes a contact from his or her roster by setting the subscription attribute to a value of removethe user s server 1 MUST automatically cancel any existing presence subscription 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 removal; 3 MUST inform the resource that initiated the removal of success; and 4 SHOULD send unavailable presence from all of the user s available resources to the contact.

Upon receiving the presence stanza of type unsubscribethe 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 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 change notification to all of the contact s available resources.

Upon receiving the presence stanza of type unsubscribedthe 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 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 change notification to all of the contact s available resources.

Upon receiving the presence stanza of type unavailable addressed to the contact, the contact s server MUST deliver the unavailable presence to all of the user s available resources. Note When the user removes the contact from the user s roster, the end state of the contact s roster is that the user is still in the contact s roster with a subscription 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 States. This section provides detailed information about subscription states and server handling of subscription-related presence stanzas i.presence stanzas of type subscribesubscribedunsubscribeand unsubscribed. Defined States. There are nine possible subscription states, which are described here from the user s not contact s perspective.

None contact and user are not subscribed to each other, and neither has requested a subscription from the other 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 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 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 To user is subscribed to contact one-way To Pending In user is subscribed to contact, and contact has sent user a subscription request but user has not replied yet From contact is subscribed to user one-way From Pending Out contact is subscribed to user, and user has sent contact a subscription request but contact has not replied yet Both user and contact are subscribed to each other two-way TOC.

Outbound presence subscription stanzas enable the user to manage his or her subscription to the contact s presence information via the subscribe and unsubscribe typesand 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 to lose synchronization regarding subscription states, the user s server MUST without exception route all outbound 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.

Server Handling of Outbound Presence Subscription Stanzas. The user s server SHOULD NOT route a presence stanza of type subscribed or unsubscribed to the contact if the stanza does not result in a subscription state change from the user s perspective, and MUST NOT make a state change. If the stanza results in a subscription state change, the user s server MUST route the stanza to the contact and MUST make the appropriate state change.

These rules are summarized in the following tables. Table 1 Recommended handling of outbound subscribed stanzas. Table 2 Recommended handling of outbound unsubscribed stanzas. Server Handling of Inbound Presence Subscription Stanzas. Inbound presence subscription stanzas request a subscription-related action from the user via the subscribe typeinform the user of subscription-related actions taken by the contact via the unsubscribe typeor 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 for the user from the contact i.a presence stanza of type subscribeit 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, 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 from the contact by sending a presence stanza of type subscribed to the contact on behalf of the user; this rule enables the contact to resynchronize the subscription state if needed. Table 3 Recommended handling of inbound subscribe stanzas. Server SHOULD auto-reply with subscribed stanza.

These rules are summarized in the following table. 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 from the user s perspective then the 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 to the user, and MUST change the state. If no subscription state change results, the user s server SHOULD NOT deliver the stanza and MUST NOT change the state.

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 subscribed for the user from the contact, it MUST NOT deliver the stanza to the user and MUST NOT change the subscription state if there is no pending outbound request for access to the contact s presence information. If there is a pending outbound request for access to the contact s presence information and the inbound presence stanza of type subscribed results in a subscription state change, the user s server MUST deliver the stanza to the user and MUST change the subscription state.

If the user already has access to the contact s presence information, the inbound presence stanza of type subscribed does not result in a subscription state change; therefore the user s server SHOULD NOT deliver the stanza to the user and MUST NOT change the subscription state. Table 5 Recommended handling of inbound subscribed stanzas. 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 if there is a pending outbound request for access to the contact s presence information or if the user currently has access to the contact s presence information.

Otherwise, the user s server SHOULD NOT deliver the stanza and MUST NOT change the subscription state. Table 6 Recommended handling of inbound unsubscribed stanzas. Server Delivery and Client Acknowledgement of Subscription Requests and State Change Notifications. When a server receives an inbound presence stanza of type subscribe i.a subscription request or of type subscribedunsubscribeor unsubscribed i.a subscription state change notificationin addition to sending the appropriate roster push or updated roster when the roster is next requested by an available resourceit MUST deliver the request or notification to the intended recipient at least once.

In order to require acknowledgement, a server SHOULD send the request or notification to the recipient each time the recipient logs in, until the recipient acknowledges receipt of the notification by affirming or denying the notification, as shown in the following table. A server MAY require the recipient to acknowledge receipt of all state change notifications and MUST require acknowledgement in the case of subscription requests, i.presence stanzas of type subscribe.

Table 7 Acknowledgement of subscription state change notifications. Obviously, given the foregoing subscription state charts, some of the acknowledgement stanzas will be routed to the contact and result in subscription state changes, while others will not. However, any such stanzas MUST result in the server s no longer sending the subscription state notification to the user.

IQ Option \, time: 7:52
more...

Coments:

em...

Categories