SIP Programming :

indexadjustmentInternet και Εφαρμογές Web

13 Νοε 2013 (πριν από 4 χρόνια)

84 εμφανίσεις

S
IP
Programming

:



SIP has texture encoding feature.
[1]



SIP allows third parties or user to program



SIP follows
HTTP

programming model






Programming Mechanisms:




In order to develop services programmers needs APIs


Three mechanisms suggested in IETF:
[2]



SIP Call Processing Language ( SIP


CPL )


SIP Common Gateway Interface ( SIP


CGI )


SIP Servlet



Other efforts


Parlay


JAIN™


Call Processing Language (CPL) :


Designed by the
IETF

to support sophisticated telephony services


May be used by both SIP or H.323.



XML

based scripting language for describing controlling call services
[3]


Simple

Syntax


Extendible


Easily edited by GUI tools



Scripts runs on network SIP signaling server to create end user services


Lightweight CPL interpreter is need to parser & validate scripts
.

CPL Example :


A

simple script that blocks anonymous callers

[4]
;


<?xml version="1.0" ?>

<!DOCTYPE cpl PUBLIC "
-
//IETF//DTD RFCxxxx CPL 1.0//EN" "cpl.dtd">

<cpl>



<incoming>





<address
-
switch field="origin" subfield="user">







<address is="anonymous">









<reject status="reject"











reason="I don't accept anonymous calls" />







</address>





</address
-
switch>



</incoming>

</cpl>


Common Gateway Interface (CGI) :


Almost identical to HTTP CGI
[
5
]



Language independent (
Perl, Tcl, C, C++
, ... )


Any binary may be executed as a separate program



Suitable for services that contains substantial web content



Passes message parameters through environmental variables to a
separate program.


More flexible but more risky



Feb. 1, 2001:
RFC 3050

(
Common Gateway Interface for SIP
)
published

[6]



Java Servlets :



Similar to HTTP servlets


I
nstead of using a separate process, messages are passed to
a class


The class runs within a JVM (Java Virtual Machine) on
server


Security provided by Java


Portable between OSs & servers



JAIN


SIP API:


Low level API that maps to IETF
-

RFC 2543


Interfaces for services across circuit switched and packet
networks


Three major objectives :



Service Portability


Write Once Run Anywhere


Network Converges


Any underlying network architecture





IP, ATM,Wireless,...


Service Provider Access by Anyone



Three SIP APIs under JAIN initiative;



JAIN


SIP API (JSR 32) :


Low level API for almost any signaling protocol ( SIP, H.323, ... )


Requires extensive knowledge of SIP.


Avaliable at Final Release,
http://jcp.org/jsr/stage/final.jsp



JAIN


SIP Lite :


High Level API for rapid application development


Especially User Agent development


Under development ,
http://jcp.org/jsr/detail/125.jsp




SIP Servlets :
[7]


API for SIP servlets


U
nder development,
http://jcp.org/jsr/detail/116.jsp




JAIN


SIP API: ( Cont.)

Conclusion:


As the arena become more & more crowded for service
providers, the choice of the appropriate service creation
mechanism inherently follows HTTP service creation
mechanisms and highly depends on different scenarios
where security,portability and performance have different
roles of importance.


References :


[1],[5] Sisalem D.,Kuthan J.,
Understanding SIP

,
Http://iptel.org/sip/siptutorial.pdf



[2] Programming SIP,
http://www.sipcenter.com/aboutsip/progsip.htm


[3]
Rosenberg D.J, Shockey R.,
The Session Initiation Protocol (SIP)

,
ComputerTelephony , June 2000


[4]
A Spotlight on Call Processing Language
,
http://www.ubiquity.net/cpl.html


[6] News,
http://www.cs.columbia.edu/~hgs/sip/


[7] Java Specification Request,JSR 116,SIP Servlet API,

http://jcp.org/jsr/detail/116.jsp