SIP Servlets. SIP Summit 2001 5.01.01 SIP Servlets Problem Statement Want to enable construction of...
-
Upload
daniel-marsh -
Category
Documents
-
view
214 -
download
2
Transcript of SIP Servlets. SIP Summit 2001 5.01.01 SIP Servlets Problem Statement Want to enable construction of...
SIP Servlets
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
Problem Statement Want to enable construction of a wide variety of IP telephony
applications Traditional voice features IN features Converged applications – integration with IM, Web, Presence
Generic call model based APIs not sufficient! Don’t expose features of SIP needed for converged services Call model not central – other events drive apps!
API should appeal to a wide developer community
Want to support hosting model Developer is not the deployer
Carrier grade applications
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
Appealing to the Web Development Community
Number of web developers to telecom developers is on order of :1
Most CS graduates today know servlets, CGI, XML, and web development servers
Goal is to create lots of services by appealing to the masses Great ideas will come from two hackers in a garage
Therefore, Want a SIP services API that is familiar to web developers Leverage the HTTP servlet model
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
HTTP Servlets HTTP Java Servlets Widely Used in Web
Application Development
Applications Consist of Sets of HTTP Servlets, Each of Which Processes a Single Web Request in the Application
HTTP Servlets Return Web Pages to Display
HTTP Servlets Can Create “Session Data” e.g., shopping cart, that spans multiple
requests
“Container” Manages HTTP Servlet Lifecycles, Fault Tolerance, Session State
HTTP Servlets Collected into a War File – Web Archive
HTTP Servlets
Web Server
Developer
Deployer
War File
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
SIP Servlets Direct Application of HTTP
Servlet Model to SIP
Java-based API
Telecommunications application is a set of SIP (and HTTP!) servlets
SIP servlets process a particular SIP request or response
Lifecycle managed by container
SIP servlets can create and access session data, call data, transaction data
SIP servlet container provides same functions as http container
CAR file equivalent of WAR file
SIP Servlets Car File
SIP Server
Developer
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
What is a SIP Servlet? Java interface
Defines methods that are callbacks when certain events occur
doInvte() doBYE() doResponse()
Application writer implements servlet class, fills in methods with own code
Servlets don’t store state – domain objects are used (later)
Servlet can instruction container to Proxy a request Initiate a new request Forward a response Generate a response
Servlet engine handles the messy details of SIP Call-Ids, tags, retransmissions,
record-routes, vias…
Servlet has access to important fields of SIP messages To, From, Request-URI, Contact,
body
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
Example SIP Servlet
public class MyServlet implements SipServlet{ public void doInvite(SipServletRequest req, SipServletResponse res) { req.getProxy(true).proxy(“sip:user@host”); }}
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
Definition of Servlet Mappings Single server supports many
applications
When a SIP INVITE arrives, which one (or ones) process the request??
Servlet mappings are rules that create bindings from SIP messages to servlet classes Based on expression matching in
fields of message
Servlet mappings can be Set up by application deployer Set by application writer
RuleMatch
Class 1
Class 2
Class 3
Class 4
Rule DB
INVITE
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
Deployment Descriptors Third party model requires
information to be conveyed from writer to deployer beyond just code
Deployment descriptor fills this need Descriptive names and usage of
classes Name and usage of entire
application Servlet mappings Context parameters References to resources needed
by applications EJB Homes JNDI contexts
Session timeouts
Converged Archive (CAR) File JAR file with specific structure Used to package entire
application into one bundle Contains
Servlet classes Deployment descriptor Static content
HTTP Servlets use WAR file (Web Archive)
CAR file is superset of WAR
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
Storing application state In most applications, state is
distributed throughout the objects it uses
Troublesome for fault tolerance The data must be replicated Data might need to be distributed
across a set of homogeneous servers
The data might need to be stored on reliable media to ensure recovery
If data is distributed, container has no easy way to store and manage it for the application
Result: application needs to handle its own data management. Bad.
Alternative: container provides domain objects in which application can place all state All state in one place Container can easily manage fault
tolerance, reliability, etc.
In HTTP Servlets, the domain objects are Session and ServletContext Session are things like shopping
carts, span multiple HTTP requests
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
ApplicationSession
SIP Domain Objects
ServletContext
HttpSession
Unification
SipSessionSipTransaction
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
Relationship to JAIN SIP JAIN SIP is a generic, low-level
interface for accessing SIP services Can be used in
Clients Servers Gateways
Focuses purely on the protocol Complete access to SIP
capabilities Supports transactions only
SIP Servlet Container is a particular application of JAIN SIP
SIP Protocol
SIP ServletContainer
Ser
vlet
JAIN SIP
SIP Servlet API
Ser
vlet
www.dynamicsoft.comSIP Summit 2001 5.01.01SIP Servlets
Relationship to JAIN SIP Servlets focus on high volume
carrier grade servers
Add significant, non-SIP protocol functions Lifecycle management Domain objects Context and configuration Deployment descriptors Archive files Synchronization primitives Security
Add significant SIP protocol functions Construction of requests and
responses from domain objects
Hide many parts of JAIN SIP Direct access to many headers is
not provided Write access to most everything is
often restricted
Servlets should be defined to allow a SIP container to be built using JAIN SIP SIP Objects in Servlet API defined
with interfaces that match JAIN SIP signatures
Cannot directly expose JAIN SIP objects, though
Information Resource Jonathan [email protected]