001: /**
002: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
003: * Unpublished - rights reserved under the Copyright Laws of the United States.
004: * Copyright © 2003 Sun Microsystems, Inc. All rights reserved.
005: * Copyright © 2005 BEA Systems, Inc. All rights reserved.
006: *
007: * Use is subject to license terms.
008: *
009: * This distribution may include materials developed by third parties.
010: *
011: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
012: *
013: * Module Name : JSIP Specification
014: * File Name : RetryAfterHeader.java
015: * Author : Phelim O'Doherty
016: *
017: * HISTORY
018: * Version Date Author Comments
019: * 1.1 08/10/2002 Phelim O'Doherty
020: *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
021: */package javax.sip.header;
022:
023: import javax.sip.*;
024:
025: import java.text.ParseException;
026:
027: /**
028:
029: * The Retry-After header field identifies the time to retry the request after
030: * recipt of the response. It can be used with a 500 (Server Internal Error) or 503
031: * (Service Unavailable) response to indicate how long the service is
032:
033: * expected to be unavailable to the requesting client and with a 404
034:
035: * (Not Found), 413 (Request Entity Too Large), 480 (Temporarily Unavailable),
036:
037: * 486 (Busy Here), 600 (Busy), or 603 (Decline) response to indicate when the
038:
039: * called party anticipates being available again. The value of this field is
040:
041: * a positive integer number of seconds (in decimal) after the time of the
042:
043: * response.
044:
045: * <p>
046:
047: * An optional comment can be used to indicate additional information about the
048:
049: * time of callback. An optional "duration" parameter indicates how long the
050:
051: * called party will be reachable starting at the initial time of availability.
052:
053: * If no duration parameter is given, the service is assumed to be available
054:
055: * indefinitely.
056:
057: * <p>
058:
059: * For Examples:<br>
060:
061: * <code>Retry-After: 18000;duration=3600<br>
062:
063: * Retry-After: 120 (I'm in a meeting)</code>
064:
065: *
066:
067: * @see Parameters
068:
069: * @see Header
070: * @author BEA Systems, NIST
071: * @version 1.2
072:
073: */
074:
075: public interface RetryAfterHeader extends Header, Parameters {
076:
077: /**
078:
079: * Sets the retry after value of the RetryAfterHeader. The retry after value
080:
081: * MUST be greater than zero and MUST be less than 2**31.
082:
083: *
084:
085: * @param retryAfter - the new retry after value of this RetryAfterHeader
086:
087: * @throws InvalidArgumentException if supplied value is less than zero.
088:
089: */
090:
091: public void setRetryAfter(int retryAfter)
092: throws InvalidArgumentException;
093:
094: /**
095:
096: * Gets the retry after value of the RetryAfterHeader. This retry after
097:
098: * value is relative time.
099:
100: *
101:
102: * @return the retry after value of the RetryAfterHeader.
103:
104: */
105:
106: public int getRetryAfter();
107:
108: /**
109:
110: * Gets the comment of RetryAfterHeader.
111:
112: *
113:
114: * @return the comment of this RetryAfterHeader, return null if no comment
115:
116: * is available.
117:
118: */
119:
120: public String getComment();
121:
122: /**
123:
124: * Sets the comment value of the RetryAfterHeader.
125:
126: *
127:
128: * @param comment - the new comment string value of the RetryAfterHeader.
129:
130: * @throws ParseException which signals that an error has been reached
131:
132: * unexpectedly while parsing the comment.
133:
134: */
135:
136: public void setComment(String comment) throws ParseException;
137:
138: /**
139:
140: * Sets the duration value of the RetryAfterHeader. The retry after value
141:
142: * MUST be greater than zero and MUST be less than 2**31.
143:
144: *
145:
146: * @param duration - the new duration value of this RetryAfterHeader
147:
148: * @throws InvalidArgumentException if supplied value is less than zero.
149:
150: */
151:
152: public void setDuration(int duration)
153: throws InvalidArgumentException;
154:
155: /**
156:
157: * Gets the duration value of the RetryAfterHeader. This duration value
158:
159: * is relative time.
160:
161: *
162:
163: * @return the duration value of the RetryAfterHeader, return zero if not
164:
165: * set.
166:
167: */
168:
169: public int getDuration();
170:
171: /**
172:
173: * Name of RetryAfterHeader
174:
175: */
176:
177: public final static String NAME = "Retry-After";
178:
179: }
|