jain.protocol.ip.sip.message
Class Message

java.lang.Object
  |
  +--java.util.EventObject
        |
        +--jain.protocol.ip.sip.message.Message
Direct Known Subclasses:
RequestMessage, ResponseMessage

public abstract class Message
extends java.util.EventObject

This class represents a generic SIP Message. A Message is either a request from a client to a server (RequestMessage), or a response from a server to a client (ResponseMessage). A Message may contain a body(entity) which contains a session description in a format such as SDP (Session Description Protocol). It also contains various Headers which add to the meaning of the Message and the Message body.

Message extends java.util.EventObject, so it contains an event source - either a JainSipListener if the Message is destined for the network, or a JainSipProvider if the Message is coming from the network.

Version:
0.6
See Also:
RequestMessage, ResponseMessage, Header, Serialized Form

Constructor Summary
Message(java.lang.Object source, boolean isRequest, CallIdHeader callIdHeader, CSeqHeader cSeqHeader, FromHeader fromHeader, ToHeader toHeader, ViaHeader[] viaHeaders)
          Constructor of Message without body
Message(java.lang.Object source, boolean isRequest, CallIdHeader callIdHeader, CSeqHeader cSeqHeader, FromHeader fromHeader, ToHeader toHeader, ViaHeader[] viaHeaders, java.lang.Object body, ContentTypeHeader contentTypeHeader)
          Constructor of Message with body
 
Method Summary
 void addHeader(Header header, boolean top)
          Adds a Header to Message's Header list, either at the top or the bottom.
 void addHeaders(Header[] headers, boolean top)
          Adds an array of Headers to the top (or bottom) of Message's Header list.
 java.lang.Object clone()
           
 boolean equals(Message message)
           
 AcceptEncodingHeader[] getAcceptEncodingHeaders()
          Gets AcceptEncodingHeaders of Message.
 AcceptHeader[] getAcceptHeaders()
          Gets AcceptHeaders of Message.
 AcceptLanguageHeader[] getAcceptLanguageHeaders()
          Gets AcceptLanguageHeaders of Message.
 Header[] getAllHeaders()
          Gets an array of all Headers in Message's Header list.
 java.lang.Object getBody()
          Gets body of Message.
 CallIdHeader getCallIdHeader()
          Gets CallIdHeader of Message.
 ContactHeader[] getContactHeaders()
          Gets ContactHeaders of Message.
 ContentEncodingHeader[] getContentEncodingHeaders()
          Gets ContentEncodingHeaders of Message.
 ContentLengthHeader getContentLengthHeader()
          Gets ContentLengthHeader of Message.
 ContentTypeHeader getContentTypeHeader()
          Gets ContentTypeHeader of Message.
 CSeqHeader getCSeqHeader()
          Gets CSeqHeader of Message.
 DateHeader getDateHeader()
          Gets DateHeader of Message.
 EncryptionHeader getEncryptionHeader()
          Gets EncryptionHeader of Message.
 ExpiresHeader getExpiresHeader()
          Gets ExpiresHeader of Message.
 FromHeader getFromHeader()
          Gets FromHeader of Message.
 Header getHeader(java.lang.String headerType, boolean first)
          Gets first (or last) Header of specified type in Message's Header list
 Header[] getHeaders(java.lang.String headerType)
          Gets array of all Headers of specified type in Message's Header list.
 OrganizationHeader getOrganizationHeader()
          Gets OrganizationHeader of Message.
 RecordRouteHeader[] getRecordRouteHeaders()
          Gets RecordRouteHeaders of Message.
 RetryAfterHeader getRetryAfterHeader()
          Gets RetryAfterHeader of Message.
abstract  java.lang.String getStartLine()
           
 TimestampHeader getTimestampHeader()
          Gets TimestampHeader of Message.
 ToHeader getToHeader()
          Gets ToHeader of Message.
 UserAgentHeader[] getUserAgentHeaders()
          Gets UserAgentHeaders of Message.
 int getVersionMajor()
          Gets version major of Message.
 int getVersionMinor()
          Gets version minor of Message.
 ViaHeader[] getViaHeaders()
          Gets ViaHeaders of Message.
 boolean hasAcceptEncodingHeaders()
          Returns boolean value to indicate if Message has any AcceptEncodingHeaders.
 boolean hasAcceptHeaders()
          Returns boolean value to indicate if Message has any AcceptHeader.
 boolean hasAcceptLanguageHeaders()
          Returns boolean value to indicate if Message has any AcceptLanguageHeader.
 boolean hasBody()
          Returns boolean value to indicate if Message has body.
 boolean hasContactHeaders()
          Returns boolean value to indicate if Message has any ContactHeaders.
 boolean hasContentEncodingHeaders()
          Returns boolean value to indicate if Message has any ontentEncodingHeaders.
 boolean hasContentLengthHeader()
          Returns boolean value to indicate if Message has ContentLengthHeader.
 boolean hasContentTypeHeader()
          Returns boolean value to indicate if Message has ContentTypeHeader.
 boolean hasDateHeader()
          Returns boolean value to indicate if Message has DateHeader.
 boolean hasEncryptionHeader()
          Returns boolean value to indicate if Message has EncryptionHeader.
 boolean hasExpiresHeader()
          Returns boolean value to indicate if Message has ExpiresHeader.
 boolean hasHeaders(java.lang.String headerType)
          Returns boolean to indicate if any Headers of specified type exist in Message's Header list
 boolean hasOrganizationHeader()
          Returns boolean value to indicate if Message has OrganizationHeader.
 boolean hasRecordRouteHeaders()
          Returns boolean value to indicate if Message has any RecordRouteHeaders.
 boolean hasRetryAfterHeader()
          Returns boolean value to indicate if Message has RetryAfterHeader.
 boolean hasTimestampHeader()
          Returns boolean value to indicate if Message has TimestampHeader.
 boolean hasUserAgentHeaders()
          Returns boolean value to indicate if Message has any UserAgentHeaders.
 boolean isRequest()
          Returns boolean value to indicate if Message is a RequestMessage.
 void removeAcceptEncodingHeaders()
          Removes all AcceptEncodingHeaders from Message's Header list.
 void removeAcceptHeaders()
          Removes all AcceptHeaders from Message's Header list.
 void removeAcceptLanguageHeaders()
          Removes all AcceptLanguageHeaders from Message's Header list.
 void removeBody()
          Removes Message body (and associated EntityHeaders).
 void removeContactHeaders()
          Removes all ContactHeaders from Message's Header list.
 void removeContentEncodingHeaders()
          Removes all ContentEncodingHeaders from Message's Header list.
 void removeContentLengthHeader()
          Removes ContentLengthHeader from Message's Header list.
 void removeDateHeader()
          Removes DateHeader from Message's Header list.
 void removeEncryptionHeader()
          Removes EncryptionHeader from Message's Header list.
 void removeExpiresHeader()
          Removes ExpiresHeader from Message's Header list.
 void removeHeader(java.lang.String headerType, boolean first)
          Removes first (or last) Header of specified type from Message's Header list.
 void removeHeaders(java.lang.String headerType)
          Removes all Headers of specified type from Message's Header list.
 void removeOrganizationHeader()
          Removes OrganizationHeader from Message's Header list.
 void removeRecordRouteHeaders()
          Removes all RecordRouteHeaders from Message's Header list.
 void removeRetryAfterHeader()
          Removes RetryAfterHeader from Message's Header list.
 void removeTimestampHeader()
          Removes TimestampHeader from Message's Header list.
 void removeUserAgentHeaders()
          Removes all UserAgentHeaders from Message's Header list.
 void setAcceptEncodingHeaders(AcceptEncodingHeader[] acceptEncodingHeaders)
          Sets AcceptEncodingHeaders of Message.
 void setAcceptHeaders(AcceptHeader[] acceptHeaders)
          Sets AcceptHeaders of Message.
 void setAcceptLanguageHeaders(AcceptLanguageHeader[] acceptLanguageHeaders)
          Sets AcceptLanguageHeaders of Message.
 void setBody(java.lang.Object body, ContentTypeHeader contentTypeHeader)
          Sets body of Message (with ContentTypeHeader)
 void setCallIdHeader(CallIdHeader callIdHeader)
          Sets CallIdHeader of Message.
 void setContactHeaders(ContactHeader[] contactHeaders)
          Sets ContactHeaders of Message.
 void setContentEncodingHeaders(ContentEncodingHeader[] contentEncodingHeaders)
          Sets ContentEncodingHeaders of Message.
 void setContentLengthHeader(ContentLengthHeader contentLengthHeader)
          Sets ContentLengthHeader of Message.
 void setContentTypeHeader(ContentTypeHeader contentTypeHeader)
          Sets ContentTypeHeader of Message.
 void setCSeqHeader(CSeqHeader cSeqHeader)
          Sets CSeqHeader of Message.
 void setDateHeader(DateHeader dateHeader)
          Sets DateHeader of Message.
 void setEncryptionHeader(EncryptionHeader encryptionHeader)
          Sets EncryptionHeader of Message.
 void setExpiresHeader(ExpiresHeader expiresHeader)
          Sets ExpiresHeader of Message.
 void setFromHeader(FromHeader fromHeader)
          Sets FromHeader of Message.
 void setHeader(Header header, boolean first)
          Sets the first (or last) Header of header's type in Message's Header list.
 void setHeaders(Header[] headers, boolean top)
          Sets all Headers of specified type in Message's Header list.
 void setOrganizationHeader(OrganizationHeader organizationHeader)
          Sets OrganizationHeader of Message.
 void setRecordRouteHeaders(RecordRouteHeader[] recordRouteHeaders)
          Sets RecordRouteHeaders of Message.
 void setRetryAfterHeader(RetryAfterHeader retryAfterHeader)
          Sets RetryAfterHeader of Message.
 void setTimestampHeader(TimestampHeader timestampHeader)
          Sets TimestampHeader of Message.
 void setToHeader(ToHeader toHeader)
          Sets ToHeader of Message.
 void setUserAgentHeaders(UserAgentHeader[] userAgentHeaders)
          Sets UserAgentHeaders of Message.
 void setVersion(int versionMajor, int versionMinor)
          Sets version of Message.
 void setViaHeaders(ViaHeader[] viaHeaders)
          Sets ViaHeaders of Message.
 java.lang.String toString()
          Gets string representation of Message
 
Methods inherited from class java.util.EventObject
getSource
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Message

public Message(java.lang.Object source,
               boolean isRequest,
               CallIdHeader callIdHeader,
               CSeqHeader cSeqHeader,
               FromHeader fromHeader,
               ToHeader toHeader,
               ViaHeader[] viaHeaders)
        throws java.lang.IllegalArgumentException
Constructor of Message without body
Parameters:
source - source of the Message
isRequest - indicates if Message is RequestMessage
callIdHeader - CallIdHeader
cSeqHeader - CSeqHeader
fromHeader - FromHeader
toHeader - ToHeader
viaHeaders - ViaHeaders
Throws:
java.lang.IllegalArgumentException - if any arguments are invalid

Message

public Message(java.lang.Object source,
               boolean isRequest,
               CallIdHeader callIdHeader,
               CSeqHeader cSeqHeader,
               FromHeader fromHeader,
               ToHeader toHeader,
               ViaHeader[] viaHeaders,
               java.lang.Object body,
               ContentTypeHeader contentTypeHeader)
Constructor of Message with body
Parameters:
source - source of the Message
isRequest - indicates if Message is RequestMessage
callIdHeader - CallIdHeader
cSeqHeader - CSeqHeader
fromHeader - FromHeader
toHeader - ToHeader
viaHeaders - ViaHeaders
viaHeaders - ViaHeaders
contentTypeHeader - ContentTypeHeader
Throws:
java.lang.IllegalArgumentException - if any arguments are invalid
Method Detail

addHeaders

public void addHeaders(Header[] headers,
                       boolean top)
                throws java.lang.IllegalArgumentException
Adds an array of Headers to the top (or bottom) of Message's Header list. Note that the Headers are added in the same order as in the array.
Parameters:
headers - array of Headers to be added
top - indicates if Headers are to be added at top (or bottom)
Throws:
java.lang.IllegalArgumentException - if headers is null or empty, or if any Header in headers is null

addHeader

public void addHeader(Header header,
                      boolean top)
               throws java.lang.IllegalArgumentException
Adds a Header to Message's Header list, either at the top or the bottom.
Parameters:
header - Header to be added
top - indicates if Header is to be added at top (or bottom)
Throws:
java.lang.IllegalArgumentException - if header is null

setHeaders

public void setHeaders(Header[] headers,
                       boolean top)
                throws java.lang.IllegalArgumentException
Sets all Headers of specified type in Message's Header list. Note that this method removes all existing Headers of the same type as the Headers in the array, and then adds the Headers in the array to the top (or bottom) of Message's Header list
Parameters:
headers - array of Headers to set
top - indicates if Headers are to be set at top (or bottom)
Throws:
java.lang.IllegalArgumentException - if headers is null or empty, or if any Header in headers is null, or if all Headers in headers are not of the same header type

setHeader

public void setHeader(Header header,
                      boolean first)
               throws java.lang.IllegalArgumentException
Sets the first (or last) Header of header's type in Message's Header list. Note that this method removes the first (or last) of any existing Headers of the same type as header, and then adds header to the top (or bottom) of Message's Header list
Parameters:
header - Header to set
first - indicates if first (or last) Header is to be set
Throws:
java.lang.IllegalArgumentException - if header is null

getAllHeaders

public Header[] getAllHeaders()
Gets an array of all Headers in Message's Header list. Note that the order of Headers in the array is the same as the order in Message's Header list
Returns:
array of all Headers in Message's Header list

getHeaders

public Header[] getHeaders(java.lang.String headerType)
                    throws HeaderNotSetException,
                           java.lang.IllegalArgumentException
Gets array of all Headers of specified type in Message's Header list. Note that the order of Headers in the array is the same as the order in Message's Header list
Parameters:
headerType - type of Headers to return
Returns:
array of all Headers of specified type in Message's Header list
Throws:
HeaderNotSetException - if no Headers of specified type exist
java.lang.IllegalArgumentException - if headerType is null or zero-length

getHeader

public Header getHeader(java.lang.String headerType,
                        boolean first)
                 throws HeaderNotSetException,
                        java.lang.IllegalArgumentException
Gets first (or last) Header of specified type in Message's Header list
Parameters:
headerType - type of Header to return
first - indicates if the first (or last) Header of specified type is required
Returns:
first (or last) Header of specified type in Message's Header list
Throws:
HeaderNotSetException - if no Headers of specified type exist
java.lang.IllegalArgumentException - if headerType is null or zero-length

hasHeaders

public boolean hasHeaders(java.lang.String headerType)
                   throws java.lang.IllegalArgumentException
Returns boolean to indicate if any Headers of specified type exist in Message's Header list
Parameters:
headerType - type of Headers to return
Returns:
boolean to indicate if any Headers of specified type exist in Message's Header list
Throws:
java.lang.IllegalArgumentException - if headerType is null or zero-length

removeHeader

public void removeHeader(java.lang.String headerType,
                         boolean first)
                  throws java.lang.IllegalArgumentException
Removes first (or last) Header of specified type from Message's Header list. Note that if no Headers of specified type exist the method has no effect
Parameters:
headerType - type of Header to be removed
first - indicates if first (or last) Header of specified type is to be removed
Throws:
java.lang.IllegalArgumentException - if headerType is null or zero-length

removeHeaders

public void removeHeaders(java.lang.String headerType)
                   throws java.lang.IllegalArgumentException
Removes all Headers of specified type from Message's Header list. Note that if no Headers of specified type exist the method has no effect
Parameters:
headerType - type of Header to be removed
Throws:
java.lang.IllegalArgumentException - if headerType is null or zero-length

getCallIdHeader

public CallIdHeader getCallIdHeader()
                             throws HeaderNotSetException
Gets CallIdHeader of Message.
Returns:
CallIdHeader of Message
Throws:
HeaderNotSetException - if no CallIdHeader exists

setCallIdHeader

public void setCallIdHeader(CallIdHeader callIdHeader)
                     throws java.lang.IllegalArgumentException
Sets CallIdHeader of Message.
Parameters:
callIdHeader - CallIdHeader to set
Throws:
java.lang.IllegalArgumentException - if callIdHeader is null

getCSeqHeader

public CSeqHeader getCSeqHeader()
                         throws HeaderNotSetException
Gets CSeqHeader of Message.
Returns:
CSeqHeader of Message
Throws:
HeaderNotSetException - if no CSeqHeader exists

setCSeqHeader

public void setCSeqHeader(CSeqHeader cSeqHeader)
                   throws java.lang.IllegalArgumentException
Sets CSeqHeader of Message.
Parameters:
cSeqHeader - CSeqHeader to set
Throws:
java.lang.IllegalArgumentException - if cSeqHeader is null

getToHeader

public ToHeader getToHeader()
                     throws HeaderNotSetException
Gets ToHeader of Message.
Returns:
ToHeader of Message
Throws:
HeaderNotSetException - if no ToHeader exists

setToHeader

public void setToHeader(ToHeader toHeader)
                 throws java.lang.IllegalArgumentException
Sets ToHeader of Message.
Parameters:
toHeader - ToHeader to set
Throws:
java.lang.IllegalArgumentException - if toHeader is null

getFromHeader

public FromHeader getFromHeader()
                         throws HeaderNotSetException
Gets FromHeader of Message.
Returns:
FromHeader of Message
Throws:
HeaderNotSetException - if no FromHeader exists

setFromHeader

public void setFromHeader(FromHeader fromHeader)
                   throws java.lang.IllegalArgumentException
Sets FromHeader of Message.
Parameters:
fromHeader - FromHeader to set
Throws:
java.lang.IllegalArgumentException - if fromHeader is null

getViaHeaders

public ViaHeader[] getViaHeaders()
                          throws HeaderNotSetException
Gets ViaHeaders of Message.
Returns:
ViaHeaders of Message
Throws:
HeaderNotSetException - if no ViaHeaders exist

setViaHeaders

public void setViaHeaders(ViaHeader[] viaHeaders)
                   throws java.lang.IllegalArgumentException
Sets ViaHeaders of Message.
Parameters:
viaHeaders - ViaHeaders to set
Throws:
java.lang.IllegalArgumentException - if viaHeaders is null or empty, or if any ViaHeader in viaHeaders is null

getContentTypeHeader

public ContentTypeHeader getContentTypeHeader()
                                       throws HeaderNotSetException
Gets ContentTypeHeader of Message.
Returns:
ContentTypeHeader of Message
Throws:
HeaderNotSetException - if no ContentTypeHeader exists

setContentTypeHeader

public void setContentTypeHeader(ContentTypeHeader contentTypeHeader)
                          throws java.lang.IllegalArgumentException,
                                 BodyNotSetException
Sets ContentTypeHeader of Message.
Parameters:
contentTypeHeader - ContentTypeHeader to set
Throws:
java.lang.IllegalArgumentException - if contentTypeHeader is null
BodyNotSetException - if Message does not have body

hasContentTypeHeader

public boolean hasContentTypeHeader()
Returns boolean value to indicate if Message has ContentTypeHeader.
Returns:
boolean value to indicate if Message has ContentTypeHeader

getDateHeader

public DateHeader getDateHeader()
                         throws HeaderNotSetException
Gets DateHeader of Message.
Returns:
DateHeader of Message
Throws:
HeaderNotSetException - if no DateHeader exists

setDateHeader

public void setDateHeader(DateHeader dateHeader)
                   throws java.lang.IllegalArgumentException
Sets DateHeader of Message.
Parameters:
dateHeader - DateHeader to set
Throws:
java.lang.IllegalArgumentException - if dateHeader is null

hasDateHeader

public boolean hasDateHeader()
Returns boolean value to indicate if Message has DateHeader.
Returns:
boolean value to indicate if Message has DateHeader

removeDateHeader

public void removeDateHeader()
Removes DateHeader from Message's Header list. Note that if no DateHeader exists the method has no effect, and if multiple DateHeaders exist they are all removed

getEncryptionHeader

public EncryptionHeader getEncryptionHeader()
                                     throws HeaderNotSetException
Gets EncryptionHeader of Message.
Returns:
EncryptionHeader of Message
Throws:
HeaderNotSetException - if no EncryptionHeader exists

setEncryptionHeader

public void setEncryptionHeader(EncryptionHeader encryptionHeader)
                         throws java.lang.IllegalArgumentException
Sets EncryptionHeader of Message.
Parameters:
encryptionHeader - EncryptionHeader to set
Throws:
java.lang.IllegalArgumentException - if encryptionHeader is null

hasEncryptionHeader

public boolean hasEncryptionHeader()
Returns boolean value to indicate if Message has EncryptionHeader.
Returns:
boolean value to indicate if Message has EncryptionHeader

removeEncryptionHeader

public void removeEncryptionHeader()
Removes EncryptionHeader from Message's Header list. Note that if no EncryptionHeader exists the method has no effect, and if multiple EncryptionHeaders exist they are all removed

getUserAgentHeaders

public UserAgentHeader[] getUserAgentHeaders()
                                      throws HeaderNotSetException
Gets UserAgentHeaders of Message.
Returns:
UserAgentHeaders of Message
Throws:
HeaderNotSetException - if no UserAgentHeaders exist

setUserAgentHeaders

public void setUserAgentHeaders(UserAgentHeader[] userAgentHeaders)
                         throws java.lang.IllegalArgumentException
Sets UserAgentHeaders of Message.
Parameters:
userAgentHeaders - UserAgentHeaders to set
Throws:
java.lang.IllegalArgumentException - if userAgentHeaders is null or empty, or if any UserAgentHeader in userAgentHeaders is null

hasUserAgentHeaders

public boolean hasUserAgentHeaders()
Returns boolean value to indicate if Message has any UserAgentHeaders.
Returns:
boolean value to indicate if Message has any UserAgentHeaders

removeUserAgentHeaders

public void removeUserAgentHeaders()
Removes all UserAgentHeaders from Message's Header list. Note that if no UserAgentHeaders exist the method has no effect

getTimestampHeader

public TimestampHeader getTimestampHeader()
                                   throws HeaderNotSetException
Gets TimestampHeader of Message.
Returns:
TimestampHeader of Message
Throws:
HeaderNotSetException - if no TimestampHeader exists

setTimestampHeader

public void setTimestampHeader(TimestampHeader timestampHeader)
                        throws java.lang.IllegalArgumentException
Sets TimestampHeader of Message.
Parameters:
timestampHeader - TimestampHeader to set
Throws:
java.lang.IllegalArgumentException - if timestampHeader is null

hasTimestampHeader

public boolean hasTimestampHeader()
Returns boolean value to indicate if Message has TimestampHeader.
Returns:
boolean value to indicate if Message has TimestampHeader

removeTimestampHeader

public void removeTimestampHeader()
Removes TimestampHeader from Message's Header list. Note that if no TimestampHeader exists the method has no effect, and if multiple TimestampHeaders exist they are all removed

getContentEncodingHeaders

public ContentEncodingHeader[] getContentEncodingHeaders()
                                                  throws HeaderNotSetException
Gets ContentEncodingHeaders of Message.
Returns:
ContentEncodingHeaders of Message
Throws:
HeaderNotSetException - if no ContentEncodingHeaders exist

setContentEncodingHeaders

public void setContentEncodingHeaders(ContentEncodingHeader[] contentEncodingHeaders)
                               throws java.lang.IllegalArgumentException,
                                      BodyNotSetException
Sets ContentEncodingHeaders of Message.
Parameters:
contentEncodingHeaders - ContentEncodingHeaders to set
Throws:
java.lang.IllegalArgumentException - if contentEncodingHeaders is null or empty, or if any ContentEncodingHeader in contentEncodingHeaders is null
BodyNotSetException - if Message does not have body

hasContentEncodingHeaders

public boolean hasContentEncodingHeaders()
Returns boolean value to indicate if Message has any ontentEncodingHeaders.
Returns:
boolean value to indicate if Message has any ContentEncodingHeaders

removeContentEncodingHeaders

public void removeContentEncodingHeaders()
Removes all ContentEncodingHeaders from Message's Header list. Note that if no ContentEncodingHeaders exist the method has no effect

getContentLengthHeader

public ContentLengthHeader getContentLengthHeader()
                                           throws HeaderNotSetException
Gets ContentLengthHeader of Message.
Returns:
ContentLengthHeader of Message
Throws:
HeaderNotSetException - if no ContentLengthHeader exists

setContentLengthHeader

public void setContentLengthHeader(ContentLengthHeader contentLengthHeader)
                            throws java.lang.IllegalArgumentException,
                                   BodyNotSetException
Sets ContentLengthHeader of Message.
Parameters:
contentLengthHeader - ContentLengthHeader to set
Throws:
java.lang.IllegalArgumentException - if contentLengthHeader is null
BodyNotSetException - if Message does not have body

hasContentLengthHeader

public boolean hasContentLengthHeader()
Returns boolean value to indicate if Message has ContentLengthHeader.
Returns:
boolean value to indicate if Message has ContentLengthHeader

removeContentLengthHeader

public void removeContentLengthHeader()
Removes ContentLengthHeader from Message's Header list. Note that if no ContentLengthHeader exists the method has no effect, and if multiple ContentLengthHeaders exist they are all removed

getAcceptHeaders

public AcceptHeader[] getAcceptHeaders()
                                throws HeaderNotSetException
Gets AcceptHeaders of Message.
Returns:
AcceptHeaders of Message
Throws:
HeaderNotSetException - if no AcceptHeaders exist

setAcceptHeaders

public void setAcceptHeaders(AcceptHeader[] acceptHeaders)
                      throws java.lang.IllegalArgumentException,
                             SipException
Sets AcceptHeaders of Message.
Parameters:
acceptHeaders - AcceptHeaders to set
Throws:
java.lang.IllegalArgumentException - if acceptHeaders is null or empty, or if any AcceptHeader in acceptHeaders is null
SipException - if Message is AckMessage, ByeMessage, CancelMessage or ResponseMessage with status other than UNSUPPORTED_MEDIA_TYPE

hasAcceptHeaders

public boolean hasAcceptHeaders()
Returns boolean value to indicate if Message has any AcceptHeader.
Returns:
boolean value to indicate if Message has any AcceptHeader

removeAcceptHeaders

public void removeAcceptHeaders()
Removes all AcceptHeaders from Message's Header list. Note that if no AcceptHeaders exist the method has no effect

getAcceptEncodingHeaders

public AcceptEncodingHeader[] getAcceptEncodingHeaders()
                                                throws HeaderNotSetException
Gets AcceptEncodingHeaders of Message.
Returns:
AcceptEncodingHeaders of Message
Throws:
HeaderNotSetException - if no AcceptEncodingHeaders exist

setAcceptEncodingHeaders

public void setAcceptEncodingHeaders(AcceptEncodingHeader[] acceptEncodingHeaders)
                              throws java.lang.IllegalArgumentException,
                                     SipException
Sets AcceptEncodingHeaders of Message.
Parameters:
acceptEncodingHeaders - AcceptEncodingHeaders to set
Throws:
java.lang.IllegalArgumentException - if acceptEncodingHeaders is null or empty, or if any AcceptEncodingHeader in acceptEncodingHeaders is null
SipException - if Message is AckMessage, ByeMessage, CancelMessage or ResponseMessage with status other than UNSUPPORTED_MEDIA_TYPE

hasAcceptEncodingHeaders

public boolean hasAcceptEncodingHeaders()
Returns boolean value to indicate if Message has any AcceptEncodingHeaders.
Returns:
boolean value to indicate if Message has any AcceptEncodingHeaders

removeAcceptEncodingHeaders

public void removeAcceptEncodingHeaders()
Removes all AcceptEncodingHeaders from Message's Header list. Note that if no AcceptEncodingHeaders exist the method has no effect

getAcceptLanguageHeaders

public AcceptLanguageHeader[] getAcceptLanguageHeaders()
                                                throws HeaderNotSetException
Gets AcceptLanguageHeaders of Message.
Returns:
AcceptLanguageHeaders of Message
Throws:
HeaderNotSetException - if no AcceptLanguageHeaders exist

setAcceptLanguageHeaders

public void setAcceptLanguageHeaders(AcceptLanguageHeader[] acceptLanguageHeaders)
                              throws java.lang.IllegalArgumentException,
                                     SipException
Sets AcceptLanguageHeaders of Message.
Parameters:
acceptLanguageHeaders - AcceptLanguageHeaders to set
Throws:
java.lang.IllegalArgumentException - if acceptLanguageHeaders is null or empty, or if any AcceptLanguageHeader in acceptLanguageHeaders is null
SipException - if Message is AckMessage, or ResponseMessage with status other than UNSUPPORTED_MEDIA_TYPE

hasAcceptLanguageHeaders

public boolean hasAcceptLanguageHeaders()
Returns boolean value to indicate if Message has any AcceptLanguageHeader.
Returns:
boolean value to indicate if Message has any AcceptLanguageHeader

removeAcceptLanguageHeaders

public void removeAcceptLanguageHeaders()
Removes all AcceptLanguageHeaders from Message's Header list. Note that if no AcceptLanguageHeaders exist the method has no effect

getExpiresHeader

public ExpiresHeader getExpiresHeader()
                               throws HeaderNotSetException
Gets ExpiresHeader of Message.
Returns:
ExpiresHeader of Message
Throws:
HeaderNotSetException - if no ExpiresHeader exists

setExpiresHeader

public void setExpiresHeader(ExpiresHeader expiresHeader)
                      throws java.lang.IllegalArgumentException,
                             SipException
Sets ExpiresHeader of Message.
Parameters:
expiresHeader - ExpiresHeader to set
Throws:
java.lang.IllegalArgumentException - if expiresHeader is null
SipException - if Message is AckMessage, ByeMessage, CancelMessage, or OptionsMessage

hasExpiresHeader

public boolean hasExpiresHeader()
Returns boolean value to indicate if Message has ExpiresHeader.
Returns:
boolean value to indicate if Message has ExpiresHeader

removeExpiresHeader

public void removeExpiresHeader()
Removes ExpiresHeader from Message's Header list. Note that if no ExpiresHeader exists the method has no effect, and if multiple ExpiresHeaders exist they are all removed

getContactHeaders

public ContactHeader[] getContactHeaders()
                                  throws HeaderNotSetException
Gets ContactHeaders of Message.
Returns:
ContactHeaders of Message
Throws:
HeaderNotSetException - if no ContactHeaders exist

setContactHeaders

public void setContactHeaders(ContactHeader[] contactHeaders)
                       throws java.lang.IllegalArgumentException,
                              SipException
Sets ContactHeaders of Message.
Parameters:
contactHeaders - ContactHeaders to set
Throws:
java.lang.IllegalArgumentException - if contactHeaders is null or empty, or if any ContactHeader in contactHeaders is null
SipException - if Message is ByeMessage, CancelMessage, or ResponseMessage with status greater than or equal to BAD_REQUEST (but not AMBIGUOUS)

hasContactHeaders

public boolean hasContactHeaders()
Returns boolean value to indicate if Message has any ContactHeaders.
Returns:
boolean value to indicate if Message has any ContactHeaders

removeContactHeaders

public void removeContactHeaders()
Removes all ContactHeaders from Message's Header list. Note that if no ContactHeaders exist the method has no effect

getOrganizationHeader

public OrganizationHeader getOrganizationHeader()
                                         throws HeaderNotSetException
Gets OrganizationHeader of Message.
Returns:
OrganizationHeader of Message
Throws:
HeaderNotSetException - if no OrganizationHeader exists

setOrganizationHeader

public void setOrganizationHeader(OrganizationHeader organizationHeader)
                           throws java.lang.IllegalArgumentException,
                                  SipException
Sets OrganizationHeader of Message.
Parameters:
organizationHeader - OrganizationHeader to set
Throws:
java.lang.IllegalArgumentException - if organizationHeader is null
SipException - if Message is AckMessage, ByeMessage or CancelMessage

hasOrganizationHeader

public boolean hasOrganizationHeader()
Returns boolean value to indicate if Message has OrganizationHeader.
Returns:
boolean value to indicate if Message has OrganizationHeader

removeOrganizationHeader

public void removeOrganizationHeader()
Removes OrganizationHeader from Message's Header list. Note that if no OrganizationHeader exists the method has no effect, and if multiple OrganizationHeaders exist they are all removed

getRecordRouteHeaders

public RecordRouteHeader[] getRecordRouteHeaders()
                                          throws HeaderNotSetException
Gets RecordRouteHeaders of Message.
Returns:
RecordRouteHeaders of Message
Throws:
HeaderNotSetException - if no RecordRouteHeaders exist

setRecordRouteHeaders

public void setRecordRouteHeaders(RecordRouteHeader[] recordRouteHeaders)
                           throws java.lang.IllegalArgumentException,
                                  SipException
Sets RecordRouteHeaders of Message.
Parameters:
recordRouteHeaders - RecordRouteHeaders to set
Throws:
java.lang.IllegalArgumentException - if recordRouteHeaders is null or empty, or if any RecordRouteHeader in recordRouteHeaders is null
SipException - if Message is ResponseMessage with status less than OK, or status greater than or equal to MULTIPLE_CHOICES

hasRecordRouteHeaders

public boolean hasRecordRouteHeaders()
Returns boolean value to indicate if Message has any RecordRouteHeaders.
Returns:
boolean value to indicate if Message has any RecordRouteHeaders

removeRecordRouteHeaders

public void removeRecordRouteHeaders()
Removes all RecordRouteHeaders from Message's Header list. Note that if no RecordRouteHeaders exist the method has no effect

getRetryAfterHeader

public RetryAfterHeader getRetryAfterHeader()
                                     throws HeaderNotSetException
Gets RetryAfterHeader of Message.
Returns:
RetryAfterHeader of Message
Throws:
HeaderNotSetException - if no RetryAfterHeader exists

setRetryAfterHeader

public void setRetryAfterHeader(RetryAfterHeader retryAfterHeader)
                         throws java.lang.IllegalArgumentException,
                                SipException
Sets RetryAfterHeader of Message.
Parameters:
retryAfterHeader - RetryAfterHeader to set
Throws:
java.lang.IllegalArgumentException - if retryAfterHeader is null
SipException - if Message is AckMessage, ByeMessage, CancelMessage, InviteMessage or OptionsMessage

hasRetryAfterHeader

public boolean hasRetryAfterHeader()
Returns boolean value to indicate if Message has RetryAfterHeader.
Returns:
boolean value to indicate if Message has RetryAfterHeader

removeRetryAfterHeader

public void removeRetryAfterHeader()
Removes RetryAfterHeader from Message's Header list. Note that if no RetryAfterHeader exists the method has no effect, and if multiple RetryAfterHeaders exist they are all removed

getBody

public java.lang.Object getBody()
                         throws BodyNotSetException
Gets body of Message.
Returns:
body of Message
Throws:
BodyNotSetException - if no body exists

setBody

public void setBody(java.lang.Object body,
                    ContentTypeHeader contentTypeHeader)
             throws java.lang.IllegalArgumentException
Sets body of Message (with ContentTypeHeader)
Parameters:
body - body to set
contentTypeHeader - ContentTypeHeader
Throws:
java.lang.IllegalArgumentException - if body is null or empty, or if contentTypeHeader is null

hasBody

public boolean hasBody()
Returns boolean value to indicate if Message has body.
Returns:
boolean value to indicate if Message has body

removeBody

public void removeBody()
Removes Message body (and associated EntityHeaders). Note that if no Message body exists the method has no effect.

getVersionMajor

public int getVersionMajor()
Gets version major of Message.
Returns:
version major of Message

getVersionMinor

public int getVersionMinor()
Gets version minor of Message.
Returns:
version minor of Message

setVersion

public void setVersion(int versionMajor,
                       int versionMinor)
                throws java.lang.IllegalArgumentException
Sets version of Message. Note that the version defaults to 2.0. (i.e. version major of 2 and version minor of 0)
Parameters:
versionMajor - version major
versionMinor - version minor
Throws:
java.lang.IllegalArgumentException - if versionMajor or versionMinor are negative

isRequest

public boolean isRequest()
Returns boolean value to indicate if Message is a RequestMessage.
Returns:
boolean value to indicate if Message is a RequestMessage

getStartLine

public abstract java.lang.String getStartLine()

clone

public java.lang.Object clone()

equals

public boolean equals(Message message)

toString

public java.lang.String toString()
Gets string representation of Message
Overrides:
toString in class java.util.EventObject
Returns:
string representation of Message


If you have any comments or queries, please mail them to JAIN-SIP-interest@sun.com


Copyright - 2000 Sun Microsystems