/** * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * 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 : CallIdHeader.java * Author : Phelim O'Doherty * * HISTORY * Version Date Author Comments * 1.1 08/10/2002 Phelim O'Doherty *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ package javax.sip.header; import java.text.ParseException; /** * The Call-ID header field uniquely identifies a particular invitation or all * registrations of a particular client. A single multimedia conference can give rise to * several calls with different Call-IDs, for example, if a user invites a * single individual several times to the same (long-running) conference. * Call-IDs are case-sensitive and are simply compared byte-by-byte. * <p> * Call-ID is generated by the combination of a random string and the * softphone's host name or IP address. The combination of the To tag, * From tag, and Call-ID completely defines a peer-to-peer SIP relationship * between two users and is referred to as a dialog. It MUST be the same for * all requests and responses sent by either User Agent in a dialog. It SHOULD be the * same in each registration from a User Agent. * <p> * All SIP User Agents must have a means to guarantee that the Call-ID header fields * they produce will not be inadvertently generated by any other User Agent. Note * that when requests are retried after certain failure responses that solicit * an amendment to a request (for example, a challenge for authentication), * these retried requests are not considered new requests, and therefore do * not need new Call-ID header fields. * <p> * Use of cryptographically random identifiers in the generation of Call-IDs is * RECOMMENDED. Implementations MAY use the form "localid@host". * <p> * For Example:<br> * <code>Call-ID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6@jcp.org</code> * * @author BEA Systems, NIST * @version 1.2 * */ public interface CallIdHeader extends Header { /** * Sets the Call-Id of the CallIdHeader. The CallId parameter uniquely * identifies a serious of messages within a dialogue. * * @param callId - the string value of the Call-Id of this CallIdHeader. * @throws ParseException which signals that an error has been reached * unexpectedly while parsing the callId value. */ public void setCallId(String callId) throws ParseException; /** * Returns the Call-Id of CallIdHeader. The CallId parameter uniquely * identifies a series of messages within a dialogue. * * @return the String value of the Call-Id of this CallIdHeader */ public String getCallId(); /** * Compare this CallIdHeader for equality with another. This method * overrides the equals method in javax.sip.Header. This method specifies * object equality as outlined by * <a href = "http://www.ietf.org/rfc/rfc3261.txt">RFC3261</a>. * Call-IDs are case-sensitive and are simply compared byte-by-byte. * * @param obj the object to compare this CallIdHeader with. * @return <code>true</code> if <code>obj</code> is an instance of this class * representing the same CallIdHeader as this, <code>false</code> otherwise. * @since v1.2 */ public boolean equals(Object obj); /** * Name of CallIdHeader */ public final static String NAME = "Call-ID"; }