An End-to-End Approach to Globally Scalable Programmable Networking
Programmable End System Services Using SIP
-
Upload
avram-carrillo -
Category
Documents
-
view
15 -
download
0
description
Transcript of Programmable End System Services Using SIP
![Page 1: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/1.jpg)
Programmable End Programmable End System Services Using SIPSystem Services Using SIP
Xiaotao Wu, Henning Schulzrinne2nd New York Metro Area
Networking Workshop September 3rd, 2002
![Page 2: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/2.jpg)
Today’s EndpointsToday’s Endpoints
Processing ability Graphical rendering Storage capacity Converged information Varied platforms
Phones PCs PDAs
![Page 3: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/3.jpg)
SIP promotes end system SIP promotes end system servicesservices
Two SIP UAs can talk to each other directly.
Service-related information is explicitly contained in SIP headers.
The simplicity of SIP makes it easier for end system to perform services.
![Page 4: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/4.jpg)
SIP endpoints are more than SIP endpoints are more than IP-based POTS phonesIP-based POTS phones
![Page 5: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/5.jpg)
SIP service interfacesSIP service interfaces
CPL SIP CGI SIP Servlet@ECHO OFFIF %SIP_FROM%==sip:[email protected] GOTO BLOCKGOTO EXIT
:BLOCKecho SIP/2.0 486 Busy
:EXIT
<?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>
public boolean doInvite(SipRequest req) { SipResponse res = req.createResponse(); res.setStatus(486); res.send(); return true;}
![Page 6: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/6.jpg)
Service Moderator
SIP stack
SIP CGIengine
CPLengine
ESMLengine
Servicemodule
Hardcodedservices
CPLScripts
![Page 7: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/7.jpg)
#! /usr/bin/env perl -w
# Reject messages whose 'From:' matches 'sip:hgs@' by # responding with 486 Busy, redirect the others to voicemail
print "SIP/2.0 100 Wait\n\n";
if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ "sip:hgs@") { print "SIP/2.0 486 Don't disturb, I am working\n\n";} else { print "SIP/2.0 302 Redirect\n"; print "Contact: sip:xiaotaow\@voicemail.cs.columbia.edu\n\n";}
Service Moderator
SIP stack
SIP CGIengine
CPLengine
ESMLengine
Servicemodule
Hardcodedservices
![Page 8: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/8.jpg)
Describe end system Describe end system servicesservices
Users pay for a bad service because they do not understand why it is not good
Techniques for network services are not good for end system services.
![Page 9: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/9.jpg)
Network Services v.s. Network Services v.s. End System ServicesEnd System Services
Call
Connection Connection
Address1 Address2
Call
Address app1 app2 app3
a. Network service call model b. End system service call model
![Page 10: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/10.jpg)
Network Services v.s. Network Services v.s. End System ServicesEnd System Services
Network services
End system services
Developer Experienced developers
Non-programmers
Media and other end system applications
Indirect control
Direct control
User interaction
Indirect Direct
![Page 11: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/11.jpg)
End system service End system service languageslanguages 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
![Page 12: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/12.jpg)
Endpoint Service Markup Endpoint Service Markup Language (ESML)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
![Page 13: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/13.jpg)
ESML exampleESML example <esml name="online_call" require="generic presence ui"> <notification status="online" priority="0.5"> <address-switch field="origin"> <address is="[email protected]"> <call /> <alert sound=“foo.au" text="Calling [email protected]" /> </address> </address-switch> </notifying> </esml>
![Page 14: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/14.jpg)
Device agent
x10 vcr
SIP user agent
SIP
ESML packagesESML packages
Basic user agent
Generic Media UIPresence agent presence
conference
email web
calendar
im
![Page 15: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/15.jpg)
Extend ‘general’ to ‘sip’Extend ‘general’ to ‘sip’ <xs:schema targetNamespace="esml:sip" xmlns:sip="esml:sip" xmlns:generic="esml:generic" .......... <xs:complexType name="IncomingType"> <xs:complexContent> <xs:extension base="generic:IncomingType"> <xs:attribute name="priority" type="PriorityType"/> .......... </xs:extension> </xs:complexContent> </xs:complexType>
![Page 16: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/16.jpg)
ESML Service CreationESML Service CreationESML editorXML editor
service.esml(template)
Configurationeditor
service_foo.esml
ESMLdesigner
esml.xsl
XSLT
service.htmluser
translate.cgi
![Page 17: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/17.jpg)
Compare to other Compare to other languageslanguages
CPL SCML CCXML CPML, TML, CallXML
![Page 18: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/18.jpg)
Conclusion and future Conclusion and future workwork
Service partition between end system services and network services
Feature interaction
![Page 19: Programmable End System Services Using SIP](https://reader030.fdocuments.us/reader030/viewer/2022032612/56812f38550346895d94ca13/html5/thumbnails/19.jpg)