programmable end system services using sip

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

Upload: avram-carrillo

Post on 01-Jan-2016

15 views

Category:

Documents


0 download

DESCRIPTION

Programmable End System Services Using SIP. Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002. Today’s Endpoints. Processing ability Graphical rendering Storage capacity Converged information Varied platforms Phones PCs PDAs. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Programmable End System Services Using SIP

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

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

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

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

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

Service Moderator

SIP stack

SIP CGIengine

CPLengine

ESMLengine

Servicemodule

Hardcodedservices

CPLScripts

Page 7: Programmable End System Services Using SIP

#! /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

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

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

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

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

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

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

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

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

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

Compare to other Compare to other languageslanguages

CPL SCML CCXML CPML, TML, CallXML

Page 18: Programmable End System Services Using SIP

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