|
JAIN SIP API v1.1 - 23rd June 2003 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
This interface represents the management interface of a SIP stack implementing this specification and as such is the interface that defines the management/architectural view of the SIP stack. It defines the methods required to represent and provision a proprietary SIP protocol stack.
This SipStack interface defines the methods that are be used by an
application implementing the SipListener
interface to
control the architecture and setup of the SIP stack. These methods include:
SipProvider
's that represent
messaging objects that can be used by an application to send
Request
and Response
messages statelessly or statefully via Client and Server transactions.
ListeningPoint
's that represent
different ports and transports that a SipProvider can use to send and
receive messages.
SipStack Creation
An application must create a SipStack by invoking the
SipFactory.createSipStack(Properties)
method, ensuring the
SipFactory.setPathName(String)
is set. Following the naming
convention defined in SipFactory
, the implementation of
the SipStack interface must be called SipStackImpl. This specification also
defines a stack configuration mechanism using java.util.Properties,
therefore this constructor must also accept a properties argument:
The following table documents the static configuration properties which can be set for an implementation of a SipStack. This specification doesn't preclude additional values within a configuration properties object if understood by the underlying implementation. In order to change these properties after a SipStack has been initialized the SipStack must be deleted and recreated:
SipStack Property |
Description |
---|---|
javax.sip.IP_ADDRESS |
Sets the IP Address of the SipStack to the property value i.e 11.1.111.111. This property is mandatory. |
javax.sip.STACK_NAME |
Sets a user friendly name to identify the underlying stack implementation to the property value i.e. NISTv1.1. The stack name property should contain no spaces. This property is mandatory. |
javax.sip.OUTBOUND_PROXY |
Sets the outbound proxy of the SIP Stack. This property maps to the the outbound proxy parameter of the Router interface. The format of the outbound proxy parameter should be "ipaddress:port/transport" i.e. 129.1.22.333:5060/UDP. This property is optional. |
javax.sip.ROUTER_PATH |
Sets the fully qualified classpath to the application supplied Router object that determines how to route messages before a dialog is established i.e. com.sun.javax.sip.RouteImpl. An application defined router object must implement the javax.sip.Router interface. Different routing policies may be based on opertaion mode i.e. User Agent or Proxy. This property is optional. |
javax.sip.EXTENSION_METHODS |
This configuration value informs the underlying implementation of supported extension methods that create new dialog's. This configuration flag should only be used for dialog creating extension methods, other extension methods that don't create dialogs can be used using the method parameter on Request assuming the implementation understands the method. If more than one method is supported in this property each extension should be seprated with a colon for example "FOO:BAR". This property is optional. |
javax.sip.RETRANSMISSON_FILTER |
The default retransmission behaviour of this specification is dependent on the application core and is defined as follows:
|
SipFactory
,
SipProvider
Method Summary | |
ListeningPoint |
createListeningPoint(int port,
java.lang.String transport)
Creates a new ListeningPoint on this SipStack on a specified port and transport, and returns a reference to the newly created ListeningPoint object. |
SipProvider |
createSipProvider(ListeningPoint listeningPoint)
Creates a new peer SipProvider on this SipStack on a specified ListeningPoint and returns a reference to the newly created SipProvider object. |
void |
deleteListeningPoint(ListeningPoint listeningPoint)
Deletes the specified ListeningPoint attached to this SipStack. |
void |
deleteSipProvider(SipProvider sipProvider)
Deletes the specified peer SipProvider attached to this SipStack. |
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 SipStack. |
Router |
getRouter()
Gets the Router object that identifies the default Router information of this SipStack, including the outbound proxy. |
java.util.Iterator |
getSipProviders()
Returns an Iterator of existing SipProviders that have been created by this SipStack. |
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 applications. |
Method Detail |
public SipProvider createSipProvider(ListeningPoint listeningPoint) throws ObjectInUseException
listeningPoint
- the ListeningPoint the SipProvider is to be
attached to in order to send and receive messages.
ObjectInUseException
- if another SipProvider is
already using the ListeningPoint.public void deleteSipProvider(SipProvider sipProvider) throws ObjectInUseException
sipProvider
- the peer SipProvider to be deleted from this
SipStack.
ObjectInUseException
- if the specified SipProvider cannot be
deleted because the SipProvider is currently in use.public java.util.Iterator getSipProviders()
public ListeningPoint createListeningPoint(int port, java.lang.String transport) throws TransportNotSupportedException, InvalidArgumentException
port
- the port of the new ListeningPoint.transport
- the transport of the new ListeningPoint.
TansportNotSupportedException
- if the specified
transport is not supported by this SipStack.
InvalidArgumentException
- if the specified port is invalid.
TransportNotSupportedException
public void deleteListeningPoint(ListeningPoint listeningPoint) throws ObjectInUseException
listeningPoint
- the SipProvider to be deleted from this SipStack.
ObjectInUseException
- if the specified ListeningPoint cannot be
deleted because the ListeningPoint is currently in use.public java.util.Iterator getListeningPoints()
public java.lang.String getStackName()
SipFactory.createSipStack(Properties)
method upon creation of
the SipStack object.
public java.lang.String getIPAddress()
SipFactory.createSipStack(Properties)
method upon
creation of the SipStack object.
public Router getRouter()
SipFactory.createSipStack(Properties)
method upon creation of
the SipStack object.
public boolean isRetransmissionFilterActive()
SipFactory.createSipStack(Properties)
method upon creation of
the SipStack object.
The default value of the retransmission filter boolean is false.
When this value is set to true
, retransmissions of ACK's and
2XX responses to an INVITE transaction are handled
by the SipProvider, hence the application will not receive
Timeout.RETRANSMIT
notifications encapsulated in
TimeoutEvent
's, however an application will be
notified if the underlying transaction expires with a
Timeout.TRANSACTION
notification encapsulated in a TimeoutEvent.
true
if the
filter is set, false
otherwise.
|
JAIN SIP API v1.1 - 23rd June 2003 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |