gov.nist.javax.sip
クラス SipStackImpl
java.lang.Object
gov.nist.javax.sip.stack.SIPMessageStack
gov.nist.javax.sip.stack.SIPTransactionStack
gov.nist.javax.sip.SipStackImpl
- すべての実装されたインタフェース:
- SIPTransactionEventListener, java.util.EventListener, javax.sip.SipStack
public class SipStackImpl
- extends SIPTransactionStack
- implements javax.sip.SipStack
Implementation of SipStack.
The JAIN-SIP stack is initialized by a set of properties (see the JAIN
SIP documentation for an explanation of these properties).
In addition to these, the following are meaningful properties for
the NIST SIP stack (specify these in the property array when you create
the JAIN-SIP statck).:
- gov.nist.javax.sip.TRACE_LEVEL = integer
Currently only 16 and 32 is meaningful.
If this is set to 16 or above, then incoming
valid messages are logged in SERVER_LOG. If you set this to 32 and
specify a DEBUG_LOG then vast amounts of trace information will be dumped
in to the specified DEBUG_LOG. The server log accumulates the signaling
trace.
This can be viewed using the trace viewer tool .
Please send us both the server log and debug log
when reporting non-obvious problems.
- gov.nist.javax.sip.SERVER_LOG = fileName
Log valid incoming messages here. If this is left null AND the
TRACE_LEVEL is above 16 then the messages are printed to stdout.
Otherwise messages are logged in a format that can later be viewed
using the trace viewer application which is located in
the tools/tracesviewer directory.
Mail this to us with bug reports.
- gov.nist.javax.sip.LOG_MESSAGE_CONTENT = true|false
Set true if you want to capture content into the log. Default is false.
A bad idea to log content if you are using SIP to push a lot of
bytes through TCP.
- gov.nist.javax.sip.BAD_MESSAGE_LOG = fileName
Messages that do not contain the required headers are dropped.
This file indicates where the bad (unprocessable) messages go.
Default is null (bad messages are not logged in their own file).
- gov.nist.javax.sip.DEBUG_LOG = fileName
Where the debug log goes.
Mail this to us with bug reports.
- gov.nist.javax.sip.MAX_MESSAGE_SIZE = integer
Maximum size of content that a TCP connection can read. Must be
at least 4K. Default is "infinity" -- ie. no limit.
This is to prevent DOS attacks launched by writing to a
TCP connection until the server chokes.
- gov.nist.javax.sip.MAX_SERVER_TRANSACTIONS = integer
Max number of open SERVER transactions in the transaction table - incoming
Requests that have the capability to create ServerTransactions will
not be processed if server transaction table exceeds this size
(default value is "infinity").
- gov.nist.javax.sip.CACHE_SERVER_CONNECTIONS = [true|false]
Default value is true. Setting this to true makes the Stack close the server socket after
a Server Transaction goes to the TERMINATED state. This allows a server to protectect against
TCP based Denial of Service attacks launched by clients (ie. initiate hundreds of client gransactions).
If false (default action), the stack will keep the socket open so as to maximize performance at
the expense of Thread and memory resources - leaving itself open to DOS attacks.
- gov.nist.javax.sip.CACHE_CLIENT_CONNECTIONS = [true|false]
Default value is true. Setting this to true makes the Stack
close the server socket aftera Client Transaction goes to the
TERMINATED state. This allows a client release any buffers
threads and socket connections associated with a client
transaction after the transaction has
terminated at the expense of performance.
- gov.nist.javax.sip.THREAD_POOL_SIZE = integer
Concurrency control for number of simultaneous active threads.
If unspecificed, the default is "infinity".
This feature is useful if you are trying to build a container.
-
- If this is not specified, and the listener is re-entrant,
each event delivered to the listener is run in the context of a
new thread.
- If this is specified and the listener is re-entrant,
then the stack will run the listener using a
thread from the thread pool. This allows you to manage the
level of concurrency to a fixed maximum. Threads are pre-allocated
when the stack is instantiated.
- If this is specified and the listener is not re-entrant,
then the stack will use the thread pool thread from this pool to
parse and manage the state machine but will run the listener in
its own thread.
- gov.nist.javax.sip.REENTRANT_LISTENER = true|false
Default is false. Set to true if the listener is re-entrant.
If the listener is re-entrant then the stack manages a thread pool
and synchronously calls the listener from the same thread which read the
message. Multiple transactions may concurrently receive messages and
this will result in multiple threads being active in the listener at
the same time. The listener has to be written with this in mind.
- gov.nist.javax.sip.MAX_CONNECTIONS = integer
Max number of simultaneous TCP connections handled by stack.
(Was mis-spelled - Documentation bug fix by Bob Johnson)
- gov.nist.javax.sip.READ_TIMEOUT = integer
This is relevant for incoming TCP connections to prevent starvation at
the server.
This defines the timeout in miliseconds between successive reads after the
first byte of a SIP message is read by the stack. All the sip headers
must be delivered in this interval and each successive buffer must be
of the content delivered in this interval.
Default value is -1 (ie. the stack is wide open to starvation attacks) and
the client can be as slow as it wants to be.
- gov.nist.javax.sip.NETWORK_LAYER = classpath
This is an EXPERIMENTAL property (still under active devlopment).
Defines a network layer that allows a client to have control over socket
allocations and monitoring of socket activity. A network layer should
implement gov.nist.core.net.NetworkLayer. The default implementation simply
acts as a wrapper for the standard java.net socket layer. This functionality
is still under active development (may be extended to support security and
other features).
- gov.nist.javax.sip.STRIP_ROUTE_HEADER = [ true| false ]
If set to true (default behavior),
stack will strip topmpost route header on an incoming request
if the route header matches the listening point on which it was received.
If set to false, the route header is passed up to the application and it is
the application layer's responsibility to strip the route header.
- javax.sip.AUTOMATIC_DIALOG_SUPPORT = [ true | false ]
This is a planned feature for the next version of the spec
if set to true JAIN-SIP provides automatic dialog suport
(this is the default). If set to true (default) the dialog is created
by the stack automatically when the request is handled statefully.
If set to false, the stack will not create a dialog for the application
implicitly. In this case the stack is responsible for creating and
associating the dialog.
- バージョン:
- JAIN-SIP-1.1 $Revision: 1.37 $ $Date: 2004/10/01 16:05:08 $
- 作成者:
- M. Ranganathan
This code is in the public domain.
コンストラクタの概要 |
SipStackImpl(java.util.Properties configurationProperties)
|
メソッドの概要 |
javax.sip.SipProvider |
createSipProvider()
Creates a new peer SipProvider on this SipStack on a specified
ListeningPoint and returns a reference to the newly created SipProvider
object. |
void |
deleteSipProvider(javax.sip.SipProvider sipProvider)
Deletes the specified peer SipProvider attached to this SipStack. |
void |
finalize()
Finalization -- stop the stack on finalization. |
java.lang.String |
getIPAddress()
Gets the IP Address that identifies this SipStack instance. |
java.util.Iterator |
getListeningPoints()
Returns an Iterator of existing ListeningPoints created by this
SipStackImpl. |
javax.sip.address.Router |
getRouter()
Gets the Router object that identifies the default
Routing policy of this
SipStack. |
java.util.Iterator |
getSipProviders()
Returns an Iterator of existing peer SipProviders that have been
created by this SipStackImpl. |
java.lang.String |
getStackName()
Gets the user friendly name that identifies this SipStack instance. |
boolean |
isRetransmissionFilterActive()
This method returns the value of the retransmission filter helper
function for User Agent Client and User Agent Server applications. |
クラス gov.nist.javax.sip.stack.SIPTransactionStack から継承されたメソッド |
addExtensionMethod, addTransaction, addTransaction, createClientTransaction, createDialog, createMessageChannel, createMessageChannel, createMessageChannel, createRawMessageChannel, createServerTransaction, findCancelTransaction, findPendingTransaction, findSubscribeTransaction, findTransaction, getDialog, getDialogs, hasResources, isDialogCreated, newSIPServerRequest, newSIPServerResponse, notifyPendingRecordScanner, putDialog, putPending, putPendingTransaction, removeDialog, removePending, removePendingTransaction, stopStack, transactionErrorEvent |
クラス gov.nist.javax.sip.stack.SIPMessageStack から継承されたメソッド |
addMessageProcessor, createMessageProcessor, getBadMessageLog, getDefaultRoute, getDefaultRouteHeader, getHostAddress, getLogWriter, getMaxMessageSize, getMessageProcessor, getMessageProcessors, getNextHop, getNextHop, getPort, getRouteHeader, getServerLog, isAlive, isTransportEnabled, isTransportEnabled, logBadMessage, logMessage, logStackTrace, removeMessageProcessor, setMaxConnections, setRouter, setSingleThreaded, setStackMessageFactory, setStackName, setThreadPoolSize |
クラス java.lang.Object から継承されたメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SipStackImpl
public SipStackImpl(java.util.Properties configurationProperties)
throws javax.sip.PeerUnavailableException
- 例外:
javax.sip.PeerUnavailableException
createSipProvider
public javax.sip.SipProvider createSipProvider()
throws javax.sip.ObjectInUseException
- Creates a new peer SipProvider on this SipStack on a specified
ListeningPoint and returns a reference to the newly created SipProvider
object. The newly created SipProvider is implicitly attached to this
SipStack upon execution of this method, by adding the SipProvider to the
SipStack.getSipProviders()
of this SipStack, once it has been
successfully created.
- パラメータ:
listeningPoint
- the ListeningPoint the SipProvider is to
be attached to in order to send and Receive messages.
- 戻り値:
- The peer SipProvider attached to this SipStack on the specified
ListeningPoint.
- 例外:
ListeningPointUnavailableException
- thrown if another
SipProvider is already using the ListeningPoint.
javax.sip.ObjectInUseException
deleteSipProvider
public void deleteSipProvider(javax.sip.SipProvider sipProvider)
throws javax.sip.ObjectInUseException
- Deletes the specified peer SipProvider attached to this SipStack. The
specified SipProvider is implicitly detached from this SipStack upon
execution of this method, by removing the SipProvider from the
SipStack.getSipProviders()
of this SipStack. Deletion of a
SipProvider does not automatically delete the ListeningPoint from the
SipStack.
- 定義:
- インタフェース
javax.sip.SipStack
内の deleteSipProvider
- パラメータ:
sipProvider
- the peer SipProvider to be deleted from
this SipStack.
- 例外:
javax.sip.ObjectInUseException
- thrown if the specified peer
SipProvider cannot be deleted because the peer SipProvider is currently
in use.
getIPAddress
public java.lang.String getIPAddress()
- Gets the IP Address that identifies this SipStack instance. Every Sip
Stack object must have an IP Address and only a single SipStack object
can service a single IP Address. This value is set using the Properties
object passed to the
SipFactory.createSipStack(Properties)
method upon
creation of the SIP Stack object.
- 定義:
- インタフェース
javax.sip.SipStack
内の getIPAddress
- 戻り値:
- a string identifing the IP Address
- 導入されたバージョン:
- v1.1
getListeningPoints
public java.util.Iterator getListeningPoints()
- Returns an Iterator of existing ListeningPoints created by this
SipStackImpl. All of the peer SipProviders of this SipStack will be
proprietary objects belonging to the same stack vendor.
- 戻り値:
- an Iterator containing all existing peer ListeningPoints created
by this SipStack. Returns an empty Iterator if no ListeningPoints exist.
isRetransmissionFilterActive
public boolean isRetransmissionFilterActive()
- This method returns the value of the retransmission filter helper
function for User Agent Client and User Agent Server applications. This
value is set using the Properties object passed to the
SipFactory.createSipStack(Properties)
method upon creation of the SIP Stack
object.
The default value of the retransmission filter boolean is false.
When retransmissions are handled by the SipProvider the application will
not receive Timeout.RETRANSMIT
notifications encapsulated in
TimeoutEvent
's. However an application will get
notified when a the underlying transaction expired with
Timeout.TRANSACTION
notifications encapsulated in a
TimeoutEvent
.
- 定義:
- インタフェース
javax.sip.SipStack
内の isRetransmissionFilterActive
- 戻り値:
- the value of the retransmission filter, true if the filter
is set false otherwise.
- 導入されたバージョン:
- v1.1
getRouter
public javax.sip.address.Router getRouter()
- Gets the Router object that identifies the default
Routing policy of this
SipStack. It also provides means to set an outbound proxy. This value is
set using the Properties object passed to the
SipFactory.createSipStack(Properties)
method upon
creation of the SIP Stack object.
- 定義:
- インタフェース
javax.sip.SipStack
内の getRouter
- オーバーライド:
- クラス
SIPMessageStack
内の getRouter
- 戻り値:
- a the Router object identifying the Router policy.
- 導入されたバージョン:
- v1.1
getSipProviders
public java.util.Iterator getSipProviders()
- Returns an Iterator of existing peer SipProviders that have been
created by this SipStackImpl. All of the peer SipProviders of this
SipStack will be proprietary objects belonging to the same stack vendor.
- 定義:
- インタフェース
javax.sip.SipStack
内の getSipProviders
- 戻り値:
- an Iterator containing all existing peer SipProviders created
by this SipStack. Returns an empty Iterator if no SipProviders exist.
getStackName
public java.lang.String getStackName()
- Gets the user friendly name that identifies this SipStack instance. This
value is set using the Properties object passed to the
SipFactory.createSipStack(Properties)
method upon creation of the SIP Stack
object.
- 定義:
- インタフェース
javax.sip.SipStack
内の getStackName
- オーバーライド:
- クラス
SIPMessageStack
内の getStackName
- 戻り値:
- a string identifing the stack instance
finalize
public void finalize()
- Finalization -- stop the stack on finalization.
Exit the transaction scanner and release all resources.
- オーバーライド:
- クラス
java.lang.Object
内の finalize