The Rhino SLEE comes with a SIP RA and sample SIP applications (services and components) that use Session Initiation Protocol — RFC3261 (SIP).
As well as implementing some basic SIP services, these examples also demonstrate many SLEE features, such as:
-
deploying and undeploying components such as resource adaptors and services
-
service building blocks (SBBs) and container managed persistence (CMP) state
-
child SBBs and SBB local interfaces
-
shared state using null activities and activity-context attributes
-
storing subscriber data using profiles.
Below are descriptions of the examples and related files and directories.
Resource adaptor, service, and SBB examples
The example SIP components included with the Rhino SLEE are:
Component | What it does |
---|---|
SIP resource adaptor |
Provides the interface between SIP user agents and the SLEE. The SIP RA is responsible for sending and receiving SIP messages over the network. The SIP RA processes messages from the network and converts them to SLEE activities and events, for use by SLEE applications. The SIP RA must be installed in the SLEE before the other SIP applications can be used. |
SIP Registrar service |
An implementation of a SIP registrar as defined in RFC3261 section 10. This service handles SIP REGISTER requests, which SIP user agents send to register a binding from a user’s public address to the physical network address of their user agent. The registrar service updates records in a location service, which other SIP applications use. The registrar service is implemented by a single SBB component, which uses a location service child SBB to query and update location service records. |
SIP Stateful Proxy service |
Implements a stateful proxy as described in RFC3261 section 16. This proxy is responsible for routing requests to their correct destination, as given by contact addresses that have been registered with the location service. The proxy service is implemented by a single SBB component, which uses a location service child SBB to query location service records. |
SIP Find-me Follow-me service |
Provides an intelligent SIP proxy service, which lets a user profile specify alternative SIP addresses to contact if their primary contact address is not available. |
SIP Back-to-back User-Agent service |
An example of a back-to-back user agent (B2BUA). Behaves like the proxy service, but maintains SIP dialog state (call state) using dialog activities. |
AC-naming, Profile & JDBC Location-Service SBBs |
Provide alternate implementations of a SIP location service, which the proxy and registrar services use. The AC-naming location service uses the SLEE’s ActivityContext Naming Facility to store location information. The profile location service uses SLEE profiles, and the JDBC location service stores location information in an external database. |
SIP Presence service |
An implementation of a SIP Presence service, as described in RFC3856, RFC3863, and RFC3903. Allows a user to subscribe to the presence information of another user, and to update his or her own presence information for other users to see. This enables the "buddy list" feature of many SIP clients, which in turn may also enable their instant-messaging features. |
SIP example files and directories
The base directory for the SIP examples is $RHINO_HOME/rhino-connectivity/sip-2.3.0.0
. It contains:
File or directory | Description |
---|---|
build.xml |
Ant build script for SIP sample applications. Manages building and deployment of the examples. |
build.properties |
Properties for the Ant build script. |
sip.properties |
Properties for the SIP services. When the Ant build script runs, it substitutes these properties into the application deployment descriptors. |
README.txt |
Text file containing "quick start" instructions. |
CHANGELOG.txt |
Text file describing recent changes to the SIP RA and examples. |
docs/ |
Contains RA and API documentation. |
src/ |
Contains source code for sample SIP services. |
lib/ |
Contains SIP resource adaptor and RA-type jars, and required libraries. |
classes/ |
Directory where the build script writes compiled class files.{ctd} |
jars/ |
Directory where the build script writes jar files that are ready for deployment. |