Tutorial:SIP Servlet Programming model
The SIP Servlet API is an specification developed by the communication industry in an attempt to standardize and speed up the development of services in SIP networks. Similar to the HTTP Servlet API, it is based on two key figures which are the SIP Servlet container and the SIP servlet.
The SIP Servlet container is an application server with a built in SIP stack that is placed in a SIP network and listens for incoming SIP messages. When an incoming message arrives it triggers one or more applications that will deal with the signalling to implement a certain service. Such applications are comprised of SIP Servlets among other resources.
SIP servlets, just like HTTP servlets, are pieces of java code contained and managed by the SIP Servlet Container. They perform SIP signalling answering incoming requests but also proxying them or even creating new ones. This is a key difference with the HTTP Servlet API where servlets can only answer HTTP request.
The container provides a set of signalling services to its managed servlets like Message creation reception and delivery,Transaction management,Dialog state management and Parallel Proxying as well as access to other container managed resources like Pooled database connections,SMTP sessions and Environment entries.
Inside the container the servlet is given an abstract, high level, vision of the SIP layer through a set of well defined interfaces that allow the developers to focus on the business logic since they can perform common signalling tasks easily and without requiring from them a deep knowledge of the protocol.
SIP and HTTP servlets are packaged together with other resources like libraries and other classes, static content(sound files, images,video,etc...) and some configuration files to create a converged application.