01: /**
02: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
03: * Unpublished - rights reserved under the Copyright Laws of the United States.
04: * Copyright © 2003 Sun Microsystems, Inc. All rights reserved.
05: * Copyright © 2005 BEA Systems, Inc. All rights reserved.
06: *
07: * Use is subject to license terms.
08: *
09: * This distribution may include materials developed by third parties.
10: *
11: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12: *
13: * Module Name : JSIP Specification
14: * File Name : RSeqHeader.java
15: * Author : Phelim O'Doherty
16: *
17: * HISTORY
18: * Version Date Author Comments
19: * 1.1 08/10/2002 Phelim O'Doherty Initial version, optional header to
20: * support RFC3262.
21: *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22: */package javax.sip.header;
23:
24: import javax.sip.InvalidArgumentException;
25:
26: /**
27: * This interface represents the RSeq header, as defined by
28: * <a href = "http://www.ietf.org/rfc/rfc3262.txt">RFC3262</a>, this
29: * header is not part of RFC3261.
30: * <p>
31: * The RSeq header is used in provisional responses in order to transmit them
32: * reliably. It contains a single numeric value from 1 to 2**32-1. The value of
33: * the RSeq in each subsequent reliable provisional response for the same request
34: * MUST be greater by exactly one. RSeq numbers MUST NOT wrap around. Because
35: * the initial one is chosen to be less than 2**31 - 1, but the maximum is
36: * 2**32 - 1, there can be up to 2**31 reliable provisional responses per
37: * request, which is more than sufficient. As the RSeq numbering space is within
38: * a single transaction. This means that provisional responses for different
39: * requests MAY use the same values for the RSeq number.
40: * <p>
41: * A server must ignore Headers that it does not understand. A proxy must not
42: * remove or modify Headers that it does not understand.
43: *
44: * @author BEA Systems, NIST
45: * @version 1.2
46: */
47:
48: public interface RSeqHeader extends Header {
49:
50: /**
51: * Sets the sequence number value of the RSeqHeader of the provisional
52: * response. The sequence number MUST be expressible as a 32-bit unsigned
53: * integer and MUST be less than 2**31.
54: *
55: * @param sequenceNumber - the new Sequence number of this RSeqHeader
56: * @throws InvalidArgumentException if supplied value is less than zero.
57: */
58: public void setSequenceNumber(int sequenceNumber)
59: throws InvalidArgumentException;
60:
61: /**
62: * Gets the sequence number of this RSeqHeader.
63: *
64: * @return the integer value of the Sequence number of the RSeqHeader
65: */
66: public int getSequenceNumber();
67:
68: /**
69: * Name of RSeqHeader
70: */
71: public final static String NAME = "RSeq";
72:
73: }
|