Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002.

Similar presentations


Presentation on theme: "Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002."— Presentation transcript:

1 Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002

2 Agenda Brief introduction to SIP SIP endpoints can perform service functions Network service creation techniques are not good for end system services Endpoint Service Markup Language (ESML) Comparison between ESML and the other XML based solutions for service creation Future work

3 SIP is …, SIP is not … SIP = core protocol for establishing sessions in the Internet (peer-to-peer) Transports session description information from initiator (caller) to callee Allows change of parameters in mid-session Terminate session NOT for distribution of multimedia data NOT suitable for media gateway control

4 office.com alice bob m2.home.com Basic call setup Phone sends INVITE; acts as UAC INVITE sip:alice@m2.home.com … To: sip:alice@home.com From: “Bob” … c=IN IP4 135.180.144.33 m=audio 8000 RTP/AVP 0 5 8

5 home.com office.com alice bob m2.home.com Basic call setup Phone sends INVITE; acts as UAC Alice’s phone rings; acts as a UAS SIP/2.0 180 Ringing User agent server

6 home.com office.com alice bob m2.home.com Basic call setup Phone sends INVITE; acts as UAC Alice’s phone rings; acts as a UAS When Alice picks up, call is accepted and bob’s phone sends ACK to complete the setup SIP/2.0 200 OK … c=IN IP4 135.180.144.32 m=audio 9000 RTP/AVP 0 8

7 home.com office.com alice bob Basic call setup Encoded audio packets sent over RTP

8 home.com office.com alice bob Basic call setup Encoded audio packets sent over RTP When either party hangs up BYE is sent BYE sip:bob@office.com

9 SIP beyond audio call Presence extensions SUBSCRIBE to request notifications NOTIFY when event occurs Instant messaging MESSAGE with text body Device control

10 Today’s Endpoints Processing ability Graphical rendering Storage capacity Converged information

11 SIP endpoints are more than IP- based POTS phones

12 SIP promotes end system services Two SIP UAs can talk to each other directly. Service-related information is explicitly contained in SIP headers. Contact: sip:1.2.3.4;mobility="fixed";q=0.8 The simplicity of SIP makes it easier for end system to perform services.

13 SIP CGI Programming language independent Maintains state via an opaque token For SIP proxies and endpoints: call routing controlling forking call rejection call modification (Priority, Call-Info) RFC 3050 Priority.pl SIP_FROM SIP_TO stdin CGI-PROXY-REQUEST stdout

14 SIP CGI contd. Block *@anonymous.com: if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ "sip:*@anonymous.com") { print "SIP/2.0 600 I can't talk right now\n\n"; } Make calls from boss as urgent: if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ /sip:boss@mycompany.com/) { foreach $reg (get_regs()) { print "CGI-PROXY-REQUEST $reg SIP/2.0\n"; print "Priority: urgent\n\n"; }

15 CPL XML-based; interpreted Control Restricted to branching and subroutines no variables, no loops structured tree describing actions performed on call setup event Event incoming and outgoing events Switch address, language, time, priority Action Proxy, redirect, reject (busy) Graphical tools Protocol-independent SIP, H.323 Extensions CPL for presence Logging Email Call not match match actions

16 CPL contd. <time dtstart="20020830T140000Z" dtend="20020830T150000Z">

17 SIP servlet Java-based Runs in SIP server Receives SIP objects and processes them public class RejectServlet extends SipServletAdapter { public boolean doInvite(SipRequest req) { SipResponse res = req.createResponse(); res.setStatus(603); res.send(); return true; }

18 Services in sipc SIP messages Service Moderator SIP stack SIP CGI engine CPL engine ESML engine Service module Hardcoded services

19 Need a language for end system service creation CPL Cannot originate a call Cannot be activated through non-call events SIP CGI An interface, not a language Can do nearly anything Existing techniques for network services are not appropriate for end system service creation

20 Describe end system services Users pay for a bad service because they do not understand why it is not good Techniques for network services are not sufficient for end system services.

21 Existing techniques for Network Services are not sufficient for End System Services

22 Network services End system services DeveloperExperienced developers Non- programmers Media and other end system applications Indirect control Direct control User interactionIndirectDirect

23 Requirement for an end system service language Simple and easy to understand by non- programmers Platform neutral Express user interactions Control media and other end system applications Extensible to accommodate new services Restricted to certain class of services, not necessarily Turing-complete

24 Endpoint Service Markup Language (ESML) XML based language Platform and underlying programming language neutral Readable by non-programmers Defined as an XML schema Derivation of new types Pre-defined types Tree-like structure Use packages to group events and actions

25 ESML example <esml name="online_call" require="generic presence ui"> <notification status="online" priority="0.5"> <alert sound=“foo.au" text="Calling xyz@foo.com" />

26 Device agent x10vcr SIP user agent SIP ESML packages Basic user agent GenericMediaUI Presence agent presence conference emailweb calendar im

27 Extend ‘generic’ to ‘sip’ <xs:schema targetNamespace="esml:sip" xmlns:sip="esml:sip" xmlns:generic="esml:generic".......... <xs:extension base="generic:IncomingType"> <xs:attribute name="priority" type="PriorityType"/>..........

28 ESML Service Creation xsl:if ESML editor service.esml (template) XSLT esml.xsl configuration editor service.html translate.cgi service_foo.esml address is=$var

29 Compare to other languages CPL Not able to initiate a call Not able to handle non-call events SCML Developed by the JAIN forum Closely tied to the JAIN Java Call Control (JCC) API. and defined using an XML Schema. Object model of JCC CCXML Defined in W3C, for voice browser call control, such as VoiceXML The states and events for CCXML is in a lower level abstraction than those for ESML and CPL. (like the events call.CALL_CONNECTED, call.CALL_ACTIVE, connection.CONNECTION_ALERTING) call connection address1address2

30 Future work Service partition between end system services and network services Feature interaction

31 .NET “…… connectivity really in two parts. One is how you represent the information and the other is how do you exchange that information. The first is about information formats and schemas and the second is about a rich set of protocols.” SOAP and WSDL is not for telecommunication services How to share an ESML scripts among many endpoints fits in the.NET framework. However, how to represent the service logic in an endpoint is ESML’s own job. ESML: represent the service logic in an endpoint

32 Security consideration Follow the same security consideration of CPL. It is designed to allow services to be specified in a manner which prevents potentially hostile or mis- configured scripts from launching security attacks, including denial-of-service attacks. Because script runtime is strictly bounded by acyclicity, and because the number of possible script operations are strictly limited, scripts should not be able to inflict damage upon a CPL server.

33 End-to-end arguments “End-to-end Arguments in System Design”, Jerome H. Saltzer and David P. Reed and David D. Clark, ACM Transactions on Computer Systems, 1984 “The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system. Therefore, providing that questioned function as a feature of the communication system itself is not possible. (Sometimes an incomplete version of the function provided by the communication system may be useful as a performance enhancement.)”


Download ppt "Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002."

Similar presentations


Ads by Google