NIST-SIP: The Reference Implementation for JAIN-SIP 1.2

gov.nist.javax.sip.stack
Class TLSMessageChannel

java.lang.Object
  extended by gov.nist.javax.sip.stack.MessageChannel
      extended by gov.nist.javax.sip.stack.ConnectionOrientedMessageChannel
          extended by gov.nist.javax.sip.stack.TLSMessageChannel
All Implemented Interfaces:
ParseExceptionListener, SIPMessageListener, RawMessageChannel, Runnable

public class TLSMessageChannel
extends ConnectionOrientedMessageChannel

This is sipStack for TLS connections. This abstracts a stream of parsed messages. The SIP sipStack starts this from the main SIPStack class for each connection that it accepts. It starts a message parser in its own thread and talks to the message parser via a pipe. The message parser calls back via the parseError or processMessage functions that are defined as part of the SIPMessageListener interface.

Version:
1.2 $Revision: 1.43 $ $Date: 2010-12-02 22:44:53 $
Author:
M. Ranganathan
See Also:
PipelinedMsgParser

Method Summary
 void close(boolean removeSocket)
          Close the message channel.
 boolean equals(Object other)
          Equals predicate.
 HandshakeCompletedListenerImpl getHandshakeCompletedListener()
           
 String getTransport()
          get the transport string.
 void handleException(ParseException ex, SIPMessage sipMessage, Class hdrClass, String header, String message)
          Exception processor for exceptions detected from the parser.
 boolean isSecure()
          TLS Is a secure protocol.
 void run()
          This gets invoked when thread.start is called from the constructor.
 void sendMessage(byte[] message, InetAddress receiverAddress, int receiverPort, boolean retry)
          Send a message to a specified address.
 void setHandshakeCompletedListener(HandshakeCompletedListener handshakeCompletedListenerImpl)
           
 
Methods inherited from class gov.nist.javax.sip.stack.ConnectionOrientedMessageChannel
cancelPingKeepAliveTimeoutTaskIfStarted, close, getKeepAliveTimeout, getKey, getPeerAddress, getPeerPacketSourceAddress, getPeerPacketSourcePort, getPeerPort, getPeerProtocol, getSIPStack, getViaHost, getViaPort, isReliable, processMessage, processMessage, rescheduleKeepAliveTimeout, sendMessage, sendSingleCLRF, setKeepAliveTimeout
 
Methods inherited from class gov.nist.javax.sip.stack.MessageChannel
getEncapsulatedClientTransaction, getHost, getHostPort, getKey, getKey, getMessageProcessor, getPeerHostPort, getPort, getRawIpSourceAddress, getViaHeader, getViaHostPort, logMessage, logResponse, sendMessage, sendMessage, setEncapsulatedClientTransaction
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

close

public void close(boolean removeSocket)
Close the message channel.


getTransport

public String getTransport()
get the transport string.

Specified by:
getTransport in class MessageChannel
Returns:
"tcp" in this case.

sendMessage

public void sendMessage(byte[] message,
                        InetAddress receiverAddress,
                        int receiverPort,
                        boolean retry)
                 throws IOException
Send a message to a specified address.

Parameters:
message - Pre-formatted message to send.
receiverAddress - Address to send it to.
receiverPort - Receiver port.
Throws:
IOException - If there is a problem connecting or sending.

handleException

public void handleException(ParseException ex,
                            SIPMessage sipMessage,
                            Class hdrClass,
                            String header,
                            String message)
                     throws ParseException
Exception processor for exceptions detected from the parser. (This is invoked by the parser when an error is detected).

Parameters:
sipMessage - -- the message that incurred the error.
ex - -- parse exception detected by the parser.
header - -- header that caused the error.
message - -- message where this header was detected.
Throws:
ParseException - Thrown if we want to reject the message.

equals

public boolean equals(Object other)
Equals predicate.

Overrides:
equals in class Object
Parameters:
other - is the other object to compare ourselves to for equals

isSecure

public boolean isSecure()
TLS Is a secure protocol.

Specified by:
isSecure in class MessageChannel

setHandshakeCompletedListener

public void setHandshakeCompletedListener(HandshakeCompletedListener handshakeCompletedListenerImpl)

getHandshakeCompletedListener

public HandshakeCompletedListenerImpl getHandshakeCompletedListener()
Returns:
the handshakeCompletedListener

run

public void run()
Description copied from class: ConnectionOrientedMessageChannel
This gets invoked when thread.start is called from the constructor. Implements a message loop - reading the tcp connection and processing messages until we are done or the other end has closed.

Specified by:
run in interface Runnable
Overrides:
run in class ConnectionOrientedMessageChannel

NIST-SIP: The Reference Implementation for JAIN-SIP 1.2

A product of the NIST/ITL Advanced Networking Technologies Division.
See conditions of use.
Submit a bug report or feature request.