org.mobicents.tools.sip.balancer
Class SIPBalancerForwarder

java.lang.Object
  extended by org.mobicents.tools.sip.balancer.SIPBalancerForwarder
All Implemented Interfaces:
java.util.EventListener, javax.sip.SipListener

public class SIPBalancerForwarder
extends java.lang.Object
implements javax.sip.SipListener

A transaction stateful UDP Forwarder that listens at a port and forwards to multiple outbound addresses. It keeps a timer thread around that pings the list of proxy servers and sends to the first proxy server. It uses double record routing to be able to listen on one transport and sends on another transport or allows support for multihoming.

Author:
M. Ranganathan, baranowb, Jean Deruelle

Field Summary
protected static javax.sip.address.AddressFactory addressFactory
           
protected static java.util.HashSet<java.lang.String> dialogCreationMethods
           
protected  javax.sip.header.RecordRouteHeader externalRecordRouteHeader
           
protected  javax.sip.SipProvider externalSipProvider
           
protected static javax.sip.header.HeaderFactory headerFactory
           
protected  javax.sip.header.RecordRouteHeader internalRecordRouteHeader
           
protected  javax.sip.SipProvider internalSipProvider
           
protected static javax.sip.message.MessageFactory messageFactory
           
protected  int myExternalPort
           
protected  java.lang.String myHost
           
protected  int myPort
           
protected  java.util.Properties properties
           
protected  NodeRegister register
           
protected  java.util.concurrent.atomic.AtomicLong requestsProcessed
           
protected  java.util.concurrent.atomic.AtomicLong responsesProcessed
           
static java.lang.String ROUTE_PARAM_NODE_HOST
           
static java.lang.String ROUTE_PARAM_NODE_PORT
           
protected  javax.sip.SipStack sipStack
           
 
Constructor Summary
SIPBalancerForwarder(java.util.Properties properties, NodeRegister register)
           
 
Method Summary
 long getNumberOfRequestsProcessed()
           
 long getNumberOfResponsesProcessed()
           
 void processDialogTerminated(javax.sip.DialogTerminatedEvent dialogTerminatedEvent)
           
 void processIOException(javax.sip.IOExceptionEvent exceptionEvent)
           
 void processRequest(javax.sip.RequestEvent requestEvent)
           
 void processResponse(javax.sip.ResponseEvent responseEvent)
           
 void processTimeout(javax.sip.TimeoutEvent timeoutEvent)
           
 void processTransactionTerminated(javax.sip.TransactionTerminatedEvent transactionTerminatedEvent)
           
 void start()
           
 void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dialogCreationMethods

protected static final java.util.HashSet<java.lang.String> dialogCreationMethods

ROUTE_PARAM_NODE_HOST

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

ROUTE_PARAM_NODE_PORT

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

internalSipProvider

protected javax.sip.SipProvider internalSipProvider

externalSipProvider

protected javax.sip.SipProvider externalSipProvider

myHost

protected java.lang.String myHost

myPort

protected int myPort

myExternalPort

protected int myExternalPort

addressFactory

protected static javax.sip.address.AddressFactory addressFactory

headerFactory

protected static javax.sip.header.HeaderFactory headerFactory

messageFactory

protected static javax.sip.message.MessageFactory messageFactory

sipStack

protected javax.sip.SipStack sipStack

register

protected NodeRegister register

properties

protected java.util.Properties properties

internalRecordRouteHeader

protected javax.sip.header.RecordRouteHeader internalRecordRouteHeader

externalRecordRouteHeader

protected javax.sip.header.RecordRouteHeader externalRecordRouteHeader

requestsProcessed

protected java.util.concurrent.atomic.AtomicLong requestsProcessed

responsesProcessed

protected java.util.concurrent.atomic.AtomicLong responsesProcessed
Constructor Detail

SIPBalancerForwarder

public SIPBalancerForwarder(java.util.Properties properties,
                            NodeRegister register)
                     throws java.lang.IllegalStateException
Throws:
java.lang.IllegalStateException
Method Detail

start

public void start()

stop

public void stop()

processDialogTerminated

public void processDialogTerminated(javax.sip.DialogTerminatedEvent dialogTerminatedEvent)
Specified by:
processDialogTerminated in interface javax.sip.SipListener

processIOException

public void processIOException(javax.sip.IOExceptionEvent exceptionEvent)
Specified by:
processIOException in interface javax.sip.SipListener

processRequest

public void processRequest(javax.sip.RequestEvent requestEvent)
Specified by:
processRequest in interface javax.sip.SipListener

processResponse

public void processResponse(javax.sip.ResponseEvent responseEvent)
Specified by:
processResponse in interface javax.sip.SipListener

processTimeout

public void processTimeout(javax.sip.TimeoutEvent timeoutEvent)
Specified by:
processTimeout in interface javax.sip.SipListener

processTransactionTerminated

public void processTransactionTerminated(javax.sip.TransactionTerminatedEvent transactionTerminatedEvent)
Specified by:
processTransactionTerminated in interface javax.sip.SipListener

getNumberOfRequestsProcessed

public long getNumberOfRequestsProcessed()
Returns:
the requestsProcessed

getNumberOfResponsesProcessed

public long getNumberOfResponsesProcessed()
Returns:
the requestsProcessed


Copyright © 2009. All Rights Reserved.