A Container for SIP Applications
Jiplet is short for Java SIP Servlet. The Jiplet Container is an open-source container for server-side SIP applications. An application developer can create a SIP application written in Java using the Jiplet API and deploy the application in the container. The container provides a number of framework services including support for SIP message parsing and formatting, scoped variables, authentication and authorization, thread-pooling, logging, custom class loading, management interface, etc. It enables application developer to create server-side SIP applications using a component-based model similar to that envisioned by the J2EE architecture. In fact, it fits very well with the J2EE paradigm for software development and deployment. The jiplet container software can either be run as a standalone Java application or deployed as a service residing in a J2EE server. When running as a J2EE service, the jiplet container can access many of the features offered by the J2EE server. In addition, The jiplet container is built with the service provider model in mind. In this model, a service provider can host customized SIP applications from their customers in a secure manner similar to the servlet hosting offered by many service providers.
The jiplet container is very similar to a Java HTTP servlet container in concept. A Java HTTP servlet is a Java class that handles HTTP messages from web browsers. Similarly, a jiplet is a Java class that handles SIP messages from SIP user agents (SIP phones and SIP servers). A servlet container like Apache Tomcat can host one or more web applications (contexts), each consisting of one or more servlets. Similarly, the jiplet container can host one or more SIP applications (contexts) consisting of one or more jiplets. Similar to the servlet API authored by Sun Microsystems, the jiplet container provides a set of Java classes that jiplet applications extend or use. The services provided by these classes are very similar to those of the servlet API including scoped variables, request forwarding from one jiplet to another, etc. As in a servlet container, new jiplet applications, or contexts, can be deployed using a zipped file called spr (war is the Java servlet terminology). Since there are differences between the HTTP and SIP protocols, the servlet and the jiplet containers have some notable differences.
However, the jiplet is not a formal specification like the servlet specification. It is also not an implementation of the SIP servlet specification (JSR 116) authored by Sun and its community of users. There are many similarities between the jiplet and the SIP servlet in terms of features. If you are familiar with SIP servlets, you will feel right at home with the jiplet container.
We are planning to continue developing the jiplet container based on feedback provided by that the open-source community. We are hoping that open-source developers will extend this tool and the specification instead of a committee.
Some of the features of the Jiplet Container application include:
- Open-source API for developing server-side SIP applications. Based on the JAIN-SIP API.
- Offers component-based development model.
- Servlet-like development and runtime environment.
- Access to powerful JAIN-API from SIP applications.
- Built in proxy functionality.
- Support for multi-homed SIP server.
- JMX management interface for interfacing with management systems.
- Web-based user interface for managing jiplet applications.
- Support for scoped variables including application, session, request, transaction and dialog-scoped variables.
- Support for forwarding SIP messages from one jiplet to another.
- Container-managed authentication and authorization.
- Support for application timers.
- Support for signals from external entities.
- Support for naming and naming context.
- Can run as a standalone application or it can be integrated with JBOSS as a J2EE service.
- Comprehensive support for the service-provider model.
The above features are explained in more details in the features section of the Jiplet Container.