sip.header.RSeqHeader Maven / Gradle / Ivy
/**
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 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 : RSeqHeader.java
* Author : Phelim O'Doherty
*
* HISTORY
* Version Date Author Comments
* 1.1 08/10/2002 Phelim O'Doherty Initial version, optional header to
* support RFC3262.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
package javax.sip.header;
import javax.sip.InvalidArgumentException;
/**
* This interface represents the RSeq header, as defined by
* RFC3262, this
* header is not part of RFC3261.
*
* The RSeq header is used in provisional responses in order to transmit them
* reliably. It contains a single numeric value from 1 to 2**32-1. The value of
* the RSeq in each subsequent reliable provisional response for the same request
* MUST be greater by exactly one. RSeq numbers MUST NOT wrap around. Because
* the initial one is chosen to be less than 2**31 - 1, but the maximum is
* 2**32 - 1, there can be up to 2**31 reliable provisional responses per
* request, which is more than sufficient. As the RSeq numbering space is within
* a single transaction. This means that provisional responses for different
* requests MAY use the same values for the RSeq number.
*
* A server must ignore Headers that it does not understand. A proxy must not
* remove or modify Headers that it does not understand.
*
* @author BEA Systems, NIST
* @version 1.2
*/
public interface RSeqHeader extends Header {
/**
* Sets the sequence number value of the RSeqHeader of the provisional
* response. The sequence number MUST be expressible as a 32-bit unsigned
* integer and MUST be less than 2**31.
*
* @param sequenceNumber - the new Sequence number of this RSeqHeader
* @throws InvalidArgumentException if supplied value is less than zero.
*/
public void setSequenceNumber(int sequenceNumber) throws InvalidArgumentException;
/**
* Gets the sequence number of this RSeqHeader.
*
* @return the integer value of the Sequence number of the RSeqHeader
*/
public int getSequenceNumber();
/**
* Name of RSeqHeader
*/
public final static String NAME = "RSeq";
}