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

sip.header.RAckHeader 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     : RAckHeader.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;
import java.text.ParseException;

/**
 * This interface represents the RAck header, as defined by 
 * RFC3262, this 
 * header is not part of RFC3261.
 * 

* The PRACK messages contain an RAck header field, which indicates the * sequence number of the provisional response that is being acknowledged (each * provisional response is given a sequence number, carried in the RSeq header * field in the Provisional response). The acknowledgements are not cumulative, * and the specifications recommend a single outstanding provisional response at * a time, for purposes of congestion control. *

* The RAck header contains two numbers and a method tag. The first number is * the sequence number from the RSeqHeader in the provisional response that is * being acknowledged. The next number is the sequence number that is copied * from the CSeqHeader along with the method tag, from the response that is being * acknowledged. *

* For Example:
* RAck: 776656 1 INVITE *

* 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 RAckHeader extends Header { /** * Sets the method of RAckHeader, which correlates to the method of the * CSeqHeader of the provisional response being acknowledged. * * @param method - the new string value of the method of the RAckHeader * @throws ParseException which signals that an error has been reached * unexpectedly while parsing the method value. */ public void setMethod(String method) throws ParseException; /** * Gets the method of RAckHeader. * * @return method of RAckHeader. */ public String getMethod(); /** * Sets the sequence number value of the CSeqHeader of the provisional * response being acknowledged. The sequence number MUST be expressible as * a 32-bit unsigned integer and MUST be less than 2**31. * * @param cSeqNumber - the new cSeq number of this RAckHeader. * @throws InvalidArgumentException if supplied value is less than zero. */ public void setCSeqNumber(int cSeqNumber) throws InvalidArgumentException; /** * Gets the CSeq sequence number of this RAckHeader. * * @return the integer value of the cSeq number of the RAckHeader. */ public int getCSeqNumber(); /** * Sets the sequence number value of the RSeqHeader of the provisional * response being acknowledged. The sequence number MUST be expressible as * a 32-bit unsigned integer and MUST be less than 2**31. * * @param rSeqNumber - the new rSeq number of this RAckHeader. * @throws InvalidArgumentException if supplied value is less than zero. */ public void setRSeqNumber(int rSeqNumber) throws InvalidArgumentException; /** * Gets the RSeq sequence number of this RAckHeader. * * @return the integer value of the RSeq number of the RAckHeader. */ public int getRSeqNumber(); /** * Name of RAckHeader. */ public final static String NAME = "RAck"; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy