This package contains the main interfaces that model the JAIN SIP architectute
from both an application developer and a stack vendor view.
- Application Developer View:
The application developer is concerned with implementing the SipListener
interface. This Interface defines the methods required by applications
to receive and process messages from a vendors SIP stack. A SipProvider receives messages from the underlying SIP
network, which in turn encapsulates these messages as Events and passes
them to its registered SipListener. An application must register with
a SipProvider to listen for Events by implementing the SipListener interface.
A single SipListener interface is mandated in the JAIN SIP architecture.
- Stack Vendors View:
The stack vendor implements all the interfaces in the JAIN SIP specification
excluding the SIPListener interface, however the two most important interfaces
from the architecture point of view are the SipStack
and the SipProvider interfaces.
-
SipStack - This interface can be viewed as the management interface
of the JAIN SIP architecture and as such only one may exist per IP address.
The SipStack interface encapsulates the dynamic management characteristics
of the SIP stack, such as ListeningPoints which encapsulate port
and transport. As well as the central point for the creation and querying
of SipProviders in the architecture.
-
SipProvider - This interface can be viewed as the messaging
interface of the JAIN SIP architecture. Multiple SipProviders are allowed
within the architecture. This interface defines the methods that allow
an application implementing the SipListener to register with the SipProvider
to recieve incoming requests and responses. The methods defined to
send SIP messages are also defined within the SipProvider interface.
Messaging model:
The JAIN SIP architecture specifies that outgoing messages are sent via the
SipProvider and can either be of type Request
or Response. This action is initiated
by the application. Incoming messages
on the other hand are passed to an application registered to the SipProvider
and can either be of type RequestEvent or
ResponseEvent, each containing a Request
or Response message respectively. This architecture follows the Listener/Provider event
model, which is suitable for applications that are unsure when the next event will arrive i.e. the applications listens for it.