Download SIP Programming

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Cmpe 491 / 492
Graduate Project
Java Based SIP Agent
SIP Programming
By
Alp Eren YILMAZ
Serdar YALCINKAYA
SIP Programming:
Session Initiation Protocol, so called SIP, is designed to be end to end , client
server session signaling protocol and
by its nature it neither dictates network
configuration not product features or services. However any application that has a
notion of session most likely Internet telephoning or voice over IP application can be
implemented on SIP infrastructure. Since the applications heavily focus on sessions,
SIP primarily indicates session setup, termination and changes. Before going on the
arbitrary applications let’s focus on the existing Internet telephony applications
developed.
The applications implemented on basis of SIP can be grouped into two major
sub groups. The first group of applications run as end devices on user site and the
others are servant programs running on the network as SIP proxy, redirect or registrar
servers.
SIP follows HTTP programming model in order to allow the users or third
parties to program service applications like user agent clients, which are originating
calls, or
user agent servers, which listens the incoming calls. Service applications
can be implemented using well-defined generic application program interface (API)
provided by the JAIN. Before the API implementation is handled Internet Engineering
Task Force, IETF, suggest three mechanism for SIP programming. These three
mechanisms are Common Gateway Interface (CGI), Call Processing Language (CPI)
and Servlets respectively.
In the following paragraphs, a comparative analysis of each mechanism is
handled in detail to understand the costs and benefits of each approach. It is beneficial
to remember similarity in the SIP programming model with HTTP.
The first mechanism suggested by the IETF is a special purpose call process
language similar to XML that may be used by SIP servers. CPL provides the lowest
generality in case of the programming because only the CPL commands are allowed
to be executed. The users determine call processing logic at the server site and
implements the scripts in CPL by manually or a third party GUI tool. There is one
major disadvantage of CPL scripts. That is, CPL scripts need to be interpreted and
interpreting process
causes high processing delays. On the other hand the limited
scope of the scripting language makes sure that the server’s security and portability of
the services are satisfied.
The IETF suggest Common Getaway Interface (CGI) programming for SIP
applications .As SIP – CGI follows standard Web – CGI infrastructure, it also
supports proxy services and processes responses. The communication between the
client and server is through environment variables in order to keep state of each party.
The main advantage of the CGI programming is the language independency that gives
the users the highest generality in usage. On the other hand, since the CGI programs
are relatively unlimited in power, more risk involves on the server site.
The last approach for SIP programming rises from the Java site. The general
HTTP Servlet architecture is applicable in SIP programming which compromises the
power of CGI programs with the security & portability of CPL scripts. However the
security issue is left to the Java site where the Java Virtual Machine (JVM) is used to
protect server from the vulnerable scripts. A well-defined API is crucial in case of
SIP servlets implementation thus the implementation still continues under JAIN
initiative. The API supplied JAIN thought to be a generic one that is applicable to not
only SIP but also any signaling protocols (PSTN, H323 etc). This generic approach
focus on telephony and thus restricts SIP services from integration with web and email.
Beside the suggested mechanism, there exists half dozen of call control
application interfaces are being developed by third party initiatives which try to
combine the advantages of different the mainstream mechanism, like Parlay or
improve the existent ones such as JTAPI, CTI.
As a conclusion, a unique solution for the SIP service implementation does not
exists yet but there seems to be a huge interest & effort in creating and standardizing
the APIs. However as the arena becomes more and more crowded, the choice of
appropriate service creation mechanism depends on different scenarios and use cases
where security, reliability, performance, portability and have different roles of
importance.
References:

Sisalem D., Kuthan J, Understanding SIP, Tutorial
Http://iptel.org/sip/siptutorial.pdf

Rosenberg D.J, Shockey R., The Session Initiation Protocol (SIP) ,
ComputerTelephony , June 2000

IPTel organization web site – Http://iptel.com

The Source for Java Technology, Http://java.sun.com
JAIN API web site, http://java.sun.com/products/jain/
Java Servlet Technology site, http://java.sun.com/products/servlet/index.html