Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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