All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sip.header.SubscriptionStateHeader Maven / Gradle / Ivy

There is a newer version: 1.2.1.4
Show newest version
/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Unpublished - rights reserved under the Copyright Laws of the United States.
 * Copyright ? 2003 Sun Microsystems, Inc. All rights reserved.
 * Copyright ? 2005 BEA Systems, Inc. All rights reserved.
 *
 * Use is subject to license terms.
 *
 * This distribution may include materials developed by third parties. 
 *
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *
 * Module Name   : JSIP Specification
 * File Name     : SubscriptionStateHeader.java
 * Author        : Phelim O'Doherty
 *
 *  HISTORY
 *  Version   Date      Author              Comments
 *  1.1     13/12/2002  Phelim O'Doherty    Initial version, extension header to 
 *                                          support RFC3265
 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
package javax.sip.header;

import javax.sip.InvalidArgumentException;
import java.text.ParseException;

/**
  * This interface represents the Subscription State header, as 
 * defined by RFC3265, this 
 * header is not part of RFC3261.
 * 

* NOTIFY requests MUST contain SubscriptionState headers which indicate the * status of the subscription. The subscription states are: *

    *
  • active - If the SubscriptionState header value is "active", it means * that the subscription has been accepted and (in general) has been authorized. * If the header also contains an "expires" parameter, the subscriber SHOULD * take it as the authoritative subscription duration and adjust accordingly. * The "retry-after" and "reason" parameters have no semantics for "active". *
  • pending - If the SubscriptionState value is "pending", the * subscription has been received by the notifier, but there is insufficient * policy information to grant or deny the subscription yet. If the header also * contains an "expires" parameter, the subscriber SHOULD take it as the * authoritative subscription duration and adjust accordingly. No further * action is necessary on the part of the subscriber. The "retry-after" and * "reason" parameters have no semantics for "pending". *
  • terminated - If the SubscriptionState value is "terminated", the * subscriber should consider the subscription terminated. The "expires" * parameter has no semantics for "terminated". If a reason code is present, the * client should behave as described in the reason code defined in this Header. * If no reason code or an unknown reason code is present, the client MAY * attempt to re-subscribe at any time (unless a "retry-after" parameter is * present, in which case the client SHOULD NOT attempt re-subscription until * after the number of seconds specified by the "retry-after" parameter). *
* * @author BEA Systems, NIST * @version 1.2 */ public interface SubscriptionStateHeader extends Parameters, Header { /** * Sets the relative expires value of the SubscriptionStateHeader. The * expires value MUST be greater than zero and MUST be less than 2**31. * * @param expires - the new expires value of this SubscriptionStateHeader. * @throws InvalidArgumentException if supplied value is less than zero. */ public void setExpires(int expires) throws InvalidArgumentException; /** * Gets the expires value of the SubscriptionStateHeader. This expires value is * relative time. * * @return the expires value of the SubscriptionStateHeader. */ public int getExpires(); /** * Sets the retry after value of the SubscriptionStateHeader. The retry after value * MUST be greater than zero and MUST be less than 2**31. * * @param retryAfter - the new retry after value of this SubscriptionStateHeader * @throws InvalidArgumentException if supplied value is less than zero. */ public void setRetryAfter(int retryAfter) throws InvalidArgumentException; /** * Gets the retry after value of the SubscriptionStateHeader. This retry after * value is relative time. * * @return the retry after value of the SubscriptionStateHeader. */ public int getRetryAfter(); /** * Gets the reason code of SubscriptionStateHeader. * * @return the comment of this SubscriptionStateHeader, return null if no reason code * is available. */ public String getReasonCode(); /** * Sets the reason code value of the SubscriptionStateHeader. * * @param reasonCode - the new reason code string value of the SubscriptionStateHeader. * @throws ParseException which signals that an error has been reached * unexpectedly while parsing the reason code. */ public void setReasonCode(String reasonCode) throws ParseException; /** * Gets the state of SubscriptionStateHeader. * * @return the state of this SubscriptionStateHeader. */ public String getState(); /** * Sets the state value of the SubscriptionStateHeader. * * @param state - the new state string value of the SubscriptionStateHeader. * @throws ParseException which signals that an error has been reached * unexpectedly while parsing the state. */ public void setState(String state) throws ParseException; /** * Name of SubscriptionStateHeader */ public final static String NAME = "Subscription-State"; //Reason Code Constants /** * Reason Code: The reason why the subscription was terminated is Unknown. */ public final static String UNKNOWN = "Unknown"; /** * Reason Code: The subscription has been terminated, but the subscriber SHOULD retry * immediately with a new subscription. One primary use of such a status * code is to allow migration of subscriptions between nodes. The * "retry-after" parameter has no semantics for "deactivated". */ public final static String DEACTIVATED = "Deactivated"; /** * Reason Code: The subscription has been terminated, but the client SHOULD retry at * some later time. If a "retry-after" parameter is also present, the client * SHOULD wait at least the number of seconds specified by that parameter * before attempting to re-subscribe. */ public final static String PROBATION = "Probation"; /** * Reason Code: The subscription has been terminated due to change in authorization * policy. Clients SHOULD NOT attempt to re-subscribe. The "retry-after" * parameter has no semantics for "rejected". */ public final static String REJECTED = "Rejected"; /** * Reason Code: The subscription has been terminated because it was not refreshed before * it expired. Clients MAY re-subscribe immediately. The "retry-after" * parameter has no semantics for "timeout". */ public final static String TIMEOUT = "Timeout"; /** * Reason Code: The subscription has been terminated because the notifier could not * obtain authorization in a timely fashion. If a "retry-after" parameter * is also present, the client SHOULD wait at least the number of seconds * specified by that parameter before attempting to re-subscribe; otherwise, * the client MAY retry immediately, but will likely get put back into * pending state. */ public final static String GIVE_UP = "Give-Up"; /** * Reason Code: The subscription has been terminated because the resource state which was * being monitored no longer exists. Clients SHOULD NOT attempt to * re-subscribe. The "retry-after" parameter has no semantics for "noresource". */ public final static String NO_RESOURCE = "No-Resource"; // State constants /** * State: The subscription has been accepted and (in general) has been * authorized. */ public final static String ACTIVE = "Active"; /** * State: The subscription has been terminated, if a reason code is present, * the client should behave as described in the reason code. */ public final static String TERMINATED = "Terminated"; /** * State: The subscription has been received by the notifier, but there is * insufficient policy information to grant or deny the subscription yet. */ public final static String PENDING = "Pending"; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy