Overview and goals

SipServlite is a lightweight SIP Servlet container. SIP servlets is a framework to make SIP applications in a way which should be somehow familiar to the HTTP Servlet developer. In a similiar way as the HTTP Servlet API, the SIP Servlet API hides the protocol details of SIP communications and focuses on making it easy to develop SIP applications.

Lightweight?

SipServlite is a lightweight container in the way it works. Instead of providing tight integration with a HTTP container as mandated by the SIP Servlet specification, it only provides a light integration. This has the benefit of getting up and running quickly, however at some cost.

  • Only services one "application" (application has different a meaning in the SIP Servlet API, but think of HTTP application) per container instance.
  • No deep integration with the HTTP Servlet container: ServletContexts are only partially merged.

Quick-to How does it work?

SipServlite works by embedding the container in a regular web application, and from there co-exist with the web application to provide converged services (the prime example of a converged service is Click To Dial).

In your web-app (.war) you put the sipervlite-x.x.x.jar into the lib folder together with its dependencies. In your web-app you define a listener which will bootstrap the SipServlite container:

<web-app>
  ...
  <listener>
    <listener-class>net.tanesha.sipservlite.bootstrap.SipServlitContextListener</listener-class>
  </listener>
  ...
</web-app>

Thats it! Your application is now SIP Servlet enabled! :-) When bootstrapping the SipServlite container, it will look for a file /WEB-INF/sip.xml which describes the SIP Servlets in your application. This file is required, so the container will stop if its not present in your application. It will also look for /WEB-INF/sipservlite.properties which contains configuration parameters for the container, however, there is a default sipservlite-default.properties already in the classpath which will be used if you have not provided a specific configuration. The configuration says for example which port(s) your SipServlite container should use for requests.