org.mobicents.servlet.sip.message
Class SipServletMessageImpl

java.lang.Object
  extended by org.mobicents.servlet.sip.message.SipServletMessageImpl
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, SipServletMessage
Direct Known Subclasses:
SipServletRequestImpl, SipServletResponseImpl

public abstract class SipServletMessageImpl
extends java.lang.Object
implements SipServletMessage, java.io.Externalizable

Implementation of SipServletMessage

Author:
mranga
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface javax.servlet.sip.SipServletMessage
SipServletMessage.HeaderForm
 
Field Summary
protected  java.util.Map<java.lang.String,java.lang.Object> attributes
           
protected  java.lang.String currentApplicationName
           
protected  javax.sip.Dialog dialog
           
protected  SipServletMessage.HeaderForm headerForm
           
protected  boolean isMessageSent
           
protected  javax.sip.message.Message message
           
protected  java.lang.String method
           
static java.lang.String REL100_OPTION_TAG
           
protected  java.net.InetAddress remoteAddr
           
protected  int remotePort
           
protected  SipSessionKey sessionKey
           
protected  SipFactoryImpl sipFactoryImpl
           
protected  MobicentsSipSession sipSession
           
protected  TransactionApplicationData transactionApplicationData
           
protected  java.lang.String transport
           
protected  java.security.Principal userPrincipal
           
 
Constructor Summary
  SipServletMessageImpl()
           
protected SipServletMessageImpl(javax.sip.message.Message message, SipFactoryImpl sipFactoryImpl, javax.sip.Transaction transaction, MobicentsSipSession sipSession, javax.sip.Dialog dialog)
           
 
Method Summary
 void addAcceptLanguage(java.util.Locale locale)
           
 void addAddressHeader(java.lang.String name, Address addr, boolean first)
           
 void addHeader(java.lang.String name, java.lang.String value)
           
 void addHeaderInternal(java.lang.String name, java.lang.String value, boolean bypassSystemHeaderCheck)
           
 void addParameterableHeader(java.lang.String name, Parameterable param, boolean first)
           
protected abstract  void checkMessageState()
           
abstract  void cleanUp()
           
protected  java.lang.Object clone()
           
protected  boolean containsRel100(javax.sip.message.Message message)
           
protected static Parameterable createParameterable(javax.sip.header.Header header, java.lang.String hName)
           
 java.util.Locale getAcceptLanguage()
           
 java.util.Iterator<java.util.Locale> getAcceptLanguages()
           
 Address getAddressHeader(java.lang.String name)
           
 java.util.ListIterator<Address> getAddressHeaders(java.lang.String name)
           
 SipApplicationSession getApplicationSession()
           
 SipApplicationSession getApplicationSession(boolean create)
           
 java.lang.Object getAttribute(java.lang.String name)
           
protected  java.util.Map<java.lang.String,java.lang.Object> getAttributeMap()
           
 java.util.Enumeration<java.lang.String> getAttributeNames()
           
 java.lang.String getCallId()
           
 java.lang.String getCharacterEncoding()
           
static java.lang.String getCompactName(java.lang.String headerName)
          This method tries to determine compact header name - if passed value is compact form it is returned, otherwise method tries to find compact name - if it is found, string rpresenting compact name is returned, otherwise null!!!
 java.lang.Object getContent()
           
 java.util.Locale getContentLanguage()
           
 int getContentLength()
           
 java.lang.String getContentType()
           
 java.lang.String getCorrectHeaderName(java.lang.String name)
           
protected static java.lang.String getCorrectHeaderName(java.lang.String name, SipServletMessage.HeaderForm form)
           
 java.lang.String getCurrentApplicationName()
           
 javax.sip.Dialog getDialog()
           
 int getExpires()
           
 Address getFrom()
           
protected static java.lang.String getFullHeaderName(java.lang.String headerName)
          This method tries to resolve header name - meaning if it is compact - it returns full name, if its not, it returns passed value.
 java.lang.String getHeader(java.lang.String name)
           
 SipServletMessage.HeaderForm getHeaderForm()
           
 java.util.Iterator<java.lang.String> getHeaderNames()
           
 java.util.ListIterator<java.lang.String> getHeaders(java.lang.String name)
           
 java.lang.String getInitialRemoteAddr()
          
 int getInitialRemotePort()
          
 java.lang.String getInitialTransport()
          
 java.lang.String getLocalAddr()
           
 int getLocalPort()
           
 javax.sip.message.Message getMessage()
           
 java.lang.String getMethod()
           
 Parameterable getParameterableHeader(java.lang.String name)
           
 java.util.ListIterator<Parameterable> getParameterableHeaders(java.lang.String name)
           
 java.lang.String getProtocol()
           
 byte[] getRawContent()
           
 java.lang.String getRemoteAddr()
           
 int getRemotePort()
           
 java.lang.String getRemoteUser()
           
 SipSession getSession()
           
 SipSession getSession(boolean create)
           
 MobicentsSipSession getSipSession()
          Retrieve the sip session implementation
 SipSessionKey getSipSessionKey()
           
 Address getTo()
           
 javax.sip.Transaction getTransaction()
           
 TransactionApplicationData getTransactionApplicationData()
           
 java.lang.String getTransport()
           
 java.security.Principal getUserPrincipal()
           
static boolean isAddressTypeHeader(java.lang.String headerName)
          This method checks if passed name is name of address type header - according to rfc 3261
static boolean isParameterable(java.lang.String header)
           
 boolean isSecure()
           
abstract  boolean isSystemHeader(java.lang.String headerName)
          Applications must not add, delete, or modify so-called "system" headers.
 boolean isUserInRole(java.lang.String role)
           
 void readExternal(java.io.ObjectInput in)
           
 void removeAttribute(java.lang.String name)
           
 void removeHeader(java.lang.String name)
           
 void removeHeaderInternal(java.lang.String name, boolean bypassSystemHeaderCheck)
           
abstract  void send()
           
 void setAcceptLanguage(java.util.Locale locale)
           
 void setAddressHeader(java.lang.String name, Address addr)
           
 void setAttribute(java.lang.String name, java.lang.Object o)
           
 void setCharacterEncoding(java.lang.String enc)
           
 void setContent(java.lang.Object content, java.lang.String contentType)
           
 void setContentLanguage(java.util.Locale locale)
           
 void setContentLength(int len)
           
 void setContentType(java.lang.String type)
           
 void setCurrentApplicationName(java.lang.String currentApplicationName)
           
 void setExpires(int seconds)
           
 void setHeader(java.lang.String name, java.lang.String value)
           
 void setHeaderForm(SipServletMessage.HeaderForm form)
           
 void setHeaderInternal(java.lang.String name, java.lang.String value, boolean bypassSystemHeaderCheck)
           
 void setParameterableHeader(java.lang.String name, Parameterable param)
           
 void setSipSession(MobicentsSipSession session)
           
 void setTransaction(javax.sip.Transaction transaction)
           
 void setTransport(java.lang.String transport)
           
 void setUserPrincipal(java.security.Principal principal)
           
 java.lang.String toString()
           
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.servlet.sip.SipServletMessage
isCommitted
 

Field Detail

REL100_OPTION_TAG

public static final java.lang.String REL100_OPTION_TAG
See Also:
Constant Field Values

message

protected javax.sip.message.Message message

sipFactoryImpl

protected SipFactoryImpl sipFactoryImpl

sessionKey

protected SipSessionKey sessionKey

sipSession

protected transient MobicentsSipSession sipSession

attributes

protected java.util.Map<java.lang.String,java.lang.Object> attributes

transactionApplicationData

protected TransactionApplicationData transactionApplicationData

headerForm

protected SipServletMessage.HeaderForm headerForm

remoteAddr

protected transient java.net.InetAddress remoteAddr

remotePort

protected transient int remotePort

transport

protected transient java.lang.String transport

currentApplicationName

protected java.lang.String currentApplicationName

userPrincipal

protected transient java.security.Principal userPrincipal

isMessageSent

protected boolean isMessageSent

dialog

protected transient javax.sip.Dialog dialog

method

protected transient java.lang.String method
Constructor Detail

SipServletMessageImpl

public SipServletMessageImpl()

SipServletMessageImpl

protected SipServletMessageImpl(javax.sip.message.Message message,
                                SipFactoryImpl sipFactoryImpl,
                                javax.sip.Transaction transaction,
                                MobicentsSipSession sipSession,
                                javax.sip.Dialog dialog)
Method Detail

addAcceptLanguage

public void addAcceptLanguage(java.util.Locale locale)
Specified by:
addAcceptLanguage in interface SipServletMessage

addAddressHeader

public void addAddressHeader(java.lang.String name,
                             Address addr,
                             boolean first)
                      throws java.lang.IllegalArgumentException
Specified by:
addAddressHeader in interface SipServletMessage
Throws:
java.lang.IllegalArgumentException

addHeaderInternal

public void addHeaderInternal(java.lang.String name,
                              java.lang.String value,
                              boolean bypassSystemHeaderCheck)

setHeaderInternal

public void setHeaderInternal(java.lang.String name,
                              java.lang.String value,
                              boolean bypassSystemHeaderCheck)

addHeader

public void addHeader(java.lang.String name,
                      java.lang.String value)
Specified by:
addHeader in interface SipServletMessage

addParameterableHeader

public void addParameterableHeader(java.lang.String name,
                                   Parameterable param,
                                   boolean first)
Specified by:
addParameterableHeader in interface SipServletMessage

getAcceptLanguage

public java.util.Locale getAcceptLanguage()
Specified by:
getAcceptLanguage in interface SipServletMessage

getAcceptLanguages

public java.util.Iterator<java.util.Locale> getAcceptLanguages()
Specified by:
getAcceptLanguages in interface SipServletMessage

getAddressHeader

public Address getAddressHeader(java.lang.String name)
                         throws ServletParseException
Specified by:
getAddressHeader in interface SipServletMessage
Throws:
ServletParseException

getAddressHeaders

public java.util.ListIterator<Address> getAddressHeaders(java.lang.String name)
                                                  throws ServletParseException
Specified by:
getAddressHeaders in interface SipServletMessage
Throws:
ServletParseException

getApplicationSession

public SipApplicationSession getApplicationSession()
Specified by:
getApplicationSession in interface SipServletMessage

getApplicationSession

public SipApplicationSession getApplicationSession(boolean create)
Specified by:
getApplicationSession in interface SipServletMessage

getAttribute

public java.lang.Object getAttribute(java.lang.String name)
Specified by:
getAttribute in interface SipServletMessage

getAttributeNames

public java.util.Enumeration<java.lang.String> getAttributeNames()
Specified by:
getAttributeNames in interface SipServletMessage

getCallId

public java.lang.String getCallId()
Specified by:
getCallId in interface SipServletMessage

getCharacterEncoding

public java.lang.String getCharacterEncoding()
Specified by:
getCharacterEncoding in interface SipServletMessage

getContent

public java.lang.Object getContent()
                            throws java.io.IOException,
                                   java.io.UnsupportedEncodingException
Specified by:
getContent in interface SipServletMessage
Throws:
java.io.IOException
java.io.UnsupportedEncodingException

getContentLanguage

public java.util.Locale getContentLanguage()
Specified by:
getContentLanguage in interface SipServletMessage

getContentLength

public int getContentLength()
Specified by:
getContentLength in interface SipServletMessage

getContentType

public java.lang.String getContentType()
Specified by:
getContentType in interface SipServletMessage

getExpires

public int getExpires()
Specified by:
getExpires in interface SipServletMessage

getFrom

public Address getFrom()
Specified by:
getFrom in interface SipServletMessage

getHeader

public java.lang.String getHeader(java.lang.String name)
Specified by:
getHeader in interface SipServletMessage

getHeaderForm

public SipServletMessage.HeaderForm getHeaderForm()
Specified by:
getHeaderForm in interface SipServletMessage

getHeaderNames

public java.util.Iterator<java.lang.String> getHeaderNames()
Specified by:
getHeaderNames in interface SipServletMessage

getHeaders

public java.util.ListIterator<java.lang.String> getHeaders(java.lang.String name)
Specified by:
getHeaders in interface SipServletMessage

getMethod

public final java.lang.String getMethod()
Specified by:
getMethod in interface SipServletMessage

getParameterableHeader

public Parameterable getParameterableHeader(java.lang.String name)
                                     throws ServletParseException
Specified by:
getParameterableHeader in interface SipServletMessage
Throws:
ServletParseException

getParameterableHeaders

public java.util.ListIterator<Parameterable> getParameterableHeaders(java.lang.String name)
                                                              throws ServletParseException
Specified by:
getParameterableHeaders in interface SipServletMessage
Throws:
ServletParseException

getProtocol

public java.lang.String getProtocol()
Specified by:
getProtocol in interface SipServletMessage

getRawContent

public byte[] getRawContent()
                     throws java.io.IOException
Specified by:
getRawContent in interface SipServletMessage
Throws:
java.io.IOException

getInitialRemoteAddr

public java.lang.String getInitialRemoteAddr()

Specified by:
getInitialRemoteAddr in interface SipServletMessage

getInitialRemotePort

public int getInitialRemotePort()

Specified by:
getInitialRemotePort in interface SipServletMessage

getInitialTransport

public java.lang.String getInitialTransport()

Specified by:
getInitialTransport in interface SipServletMessage

getRemoteAddr

public java.lang.String getRemoteAddr()
Specified by:
getRemoteAddr in interface SipServletMessage

getRemotePort

public int getRemotePort()
Specified by:
getRemotePort in interface SipServletMessage

getTransport

public java.lang.String getTransport()
Specified by:
getTransport in interface SipServletMessage

getRemoteUser

public java.lang.String getRemoteUser()
Specified by:
getRemoteUser in interface SipServletMessage

getSession

public SipSession getSession()
Specified by:
getSession in interface SipServletMessage

getSession

public SipSession getSession(boolean create)
Specified by:
getSession in interface SipServletMessage

getSipSession

public final MobicentsSipSession getSipSession()
Retrieve the sip session implementation

Returns:
the sip session implementation

setSipSession

public void setSipSession(MobicentsSipSession session)
Parameters:
session - the session to set

getSipSessionKey

public SipSessionKey getSipSessionKey()
Parameters:
session - the session to set

getTo

public Address getTo()
Specified by:
getTo in interface SipServletMessage

getUserPrincipal

public java.security.Principal getUserPrincipal()
Specified by:
getUserPrincipal in interface SipServletMessage

setUserPrincipal

public void setUserPrincipal(java.security.Principal principal)

isSecure

public boolean isSecure()
Specified by:
isSecure in interface SipServletMessage

isUserInRole

public boolean isUserInRole(java.lang.String role)
Specified by:
isUserInRole in interface SipServletMessage

removeAttribute

public void removeAttribute(java.lang.String name)
Specified by:
removeAttribute in interface SipServletMessage

removeHeader

public void removeHeader(java.lang.String name)
Specified by:
removeHeader in interface SipServletMessage

removeHeaderInternal

public void removeHeaderInternal(java.lang.String name,
                                 boolean bypassSystemHeaderCheck)

send

public abstract void send()
Specified by:
send in interface SipServletMessage

setAcceptLanguage

public void setAcceptLanguage(java.util.Locale locale)
Specified by:
setAcceptLanguage in interface SipServletMessage

setAddressHeader

public void setAddressHeader(java.lang.String name,
                             Address addr)
Specified by:
setAddressHeader in interface SipServletMessage

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object o)
Specified by:
setAttribute in interface SipServletMessage

setCharacterEncoding

public void setCharacterEncoding(java.lang.String enc)
                          throws java.io.UnsupportedEncodingException
Specified by:
setCharacterEncoding in interface SipServletMessage
Throws:
java.io.UnsupportedEncodingException

setContent

public void setContent(java.lang.Object content,
                       java.lang.String contentType)
                throws java.io.UnsupportedEncodingException
Specified by:
setContent in interface SipServletMessage
Throws:
java.io.UnsupportedEncodingException

checkMessageState

protected abstract void checkMessageState()

setContentLanguage

public void setContentLanguage(java.util.Locale locale)
Specified by:
setContentLanguage in interface SipServletMessage

setContentLength

public void setContentLength(int len)
Specified by:
setContentLength in interface SipServletMessage

setContentType

public void setContentType(java.lang.String type)
Specified by:
setContentType in interface SipServletMessage

setExpires

public void setExpires(int seconds)
Specified by:
setExpires in interface SipServletMessage

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
Specified by:
setHeader in interface SipServletMessage

setHeaderForm

public void setHeaderForm(SipServletMessage.HeaderForm form)
Specified by:
setHeaderForm in interface SipServletMessage

setParameterableHeader

public void setParameterableHeader(java.lang.String name,
                                   Parameterable param)
Specified by:
setParameterableHeader in interface SipServletMessage

isSystemHeader

public abstract boolean isSystemHeader(java.lang.String headerName)
Applications must not add, delete, or modify so-called "system" headers. These are header fields that the servlet container manages: From, To, Call-ID, CSeq, Via, Route (except through pushRoute), Record-Route. Contact is a system header field in messages other than REGISTER requests and responses, 3xx and 485 responses, and 200/OPTIONS responses. Additionally, for containers implementing the reliable provisional responses extension, RAck and RSeq are considered system headers also. This method should return true if passed name - full or compact is name of system header in context of this message. Each subclass has to implement it in the manner that it conforms to semantics of wrapping class

Parameters:
headerName - - either long or compact header name
Returns:

isAddressTypeHeader

public static boolean isAddressTypeHeader(java.lang.String headerName)
This method checks if passed name is name of address type header - according to rfc 3261

Parameters:
headerName - - name of header - either full or compact
Returns:

getFullHeaderName

protected static java.lang.String getFullHeaderName(java.lang.String headerName)
This method tries to resolve header name - meaning if it is compact - it returns full name, if its not, it returns passed value.

Parameters:
headerName -
Returns:

getCompactName

public static java.lang.String getCompactName(java.lang.String headerName)
This method tries to determine compact header name - if passed value is compact form it is returned, otherwise method tries to find compact name - if it is found, string rpresenting compact name is returned, otherwise null!!!

Parameters:
headerName -
Returns:

getCorrectHeaderName

public java.lang.String getCorrectHeaderName(java.lang.String name)

getCorrectHeaderName

protected static java.lang.String getCorrectHeaderName(java.lang.String name,
                                                       SipServletMessage.HeaderForm form)

getTransaction

public javax.sip.Transaction getTransaction()

clone

protected java.lang.Object clone()
                          throws java.lang.CloneNotSupportedException
Overrides:
clone in class java.lang.Object
Throws:
java.lang.CloneNotSupportedException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getTransactionApplicationData

public TransactionApplicationData getTransactionApplicationData()

getMessage

public javax.sip.message.Message getMessage()

getDialog

public javax.sip.Dialog getDialog()

setTransaction

public void setTransaction(javax.sip.Transaction transaction)
Parameters:
transaction - the transaction to set

setTransport

public void setTransport(java.lang.String transport)

createParameterable

protected static Parameterable createParameterable(javax.sip.header.Header header,
                                                   java.lang.String hName)
                                            throws ServletParseException
Throws:
ServletParseException

isParameterable

public static boolean isParameterable(java.lang.String header)

getCurrentApplicationName

public java.lang.String getCurrentApplicationName()
Returns:
the currentApplicationName

setCurrentApplicationName

public void setCurrentApplicationName(java.lang.String currentApplicationName)
Parameters:
currentApplicationName - the currentApplicationName to set

getLocalAddr

public java.lang.String getLocalAddr()
Specified by:
getLocalAddr in interface SipServletMessage

getLocalPort

public int getLocalPort()
Specified by:
getLocalPort in interface SipServletMessage

containsRel100

protected boolean containsRel100(javax.sip.message.Message message)

cleanUp

public abstract void cleanUp()

getAttributeMap

protected java.util.Map<java.lang.String,java.lang.Object> getAttributeMap()

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Throws:
java.io.IOException
java.lang.ClassNotFoundException

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Throws:
java.io.IOException


Copyright © 2010. All Rights Reserved.