+ All Categories
Home > Documents > Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area...

Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area...

Date post: 14-Dec-2015
Category:
Upload: daphne-ficke
View: 215 times
Download: 1 times
Share this document with a friend
29
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
Transcript
Page 1: Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002.

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 Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002.

AgendaAgenda

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

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

SIP is …, SIP is not …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

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

office.comalice

bobm2.home.com

Basic call setupBasic call setup Phone sends INVITE; acts as UAC

INVITE sip:[email protected]

To: sip:[email protected]: “Bob”

<sip:[email protected]>…c=IN IP4 135.180.144.33m=audio 8000 RTP/AVP 0 5 8

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

home.com

office.comalice

bobm2.home.com

Basic call setupBasic call setup Phone sends INVITE; acts as UAC Alice’s phone rings; acts as a UAS

SIP/2.0 180 Ringing

User agent server

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

home.com

office.comalice

bobm2.home.com

Basic call setupBasic 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.32m=audio 9000 RTP/AVP 0 8

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

home.com

office.comalice

bob

Basic call setupBasic call setup Encoded audio packets sent over RTP

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

home.com

office.comalice

bob

Basic call setupBasic call setup Encoded audio packets sent over RTP When either party hangs up BYE is sent

BYE sip:[email protected]

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

SIP beyond audio callSIP beyond audio call

Presence extensions SUBSCRIBE to request notifications NOTIFY when event occurs

Instant messaging MESSAGE with text body

Device control

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

Today’s EndpointsToday’s Endpoints

Processing ability Graphical rendering Storage capacity Converged information

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

SIP endpoints are more than SIP endpoints are more than IP-based POTS phonesIP-based POTS phones

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

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. Contact:

sip:1.2.3.4;mobility="fixed";q=0.8 The simplicity of SIP makes it

easier for end system to perform services.

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

SIP CGISIP 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_FROMSIP_TOstdin

CGI-PROXY-REQUESTstdout

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

SIP CGI contd.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:[email protected]/) { foreach $reg (get_regs()) { print "CGI-PROXY-REQUEST $reg SIP/2.0\n"; print "Priority: urgent\n\n"; }}

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

CPLCPL 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

Callnot match

match

actions

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

CPL contd.CPL contd.<?xml version="1.0" ?><!DOCTYPE cpl PUBLIC "-//IETF//DTD RFC2824 CPL

1.0//EN" "cpl.dtd"> <cpl> <incoming> <time-switch> <time dtstart="20020830T140000Z" dtend="20020830T150000Z"> <reject status="reject" reason=“Busy" /> </time> </time-switch> </incoming></cpl>

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

SIP servletSIP 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; }}

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

Services in sipcServices in sipc

SIP messages

Service Moderator

SIP stack

SIP CGIengine

CPLengine

ESMLengine

Servicemodule

Hardcodedservices

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

Need a language for end Need a language for end system service creationsystem 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

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

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

Call

Connection Connection

Address1 Address2

Call

Address app1 app2 app3

a. Network service call model b. End system service call model

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

Existing techniques for Network Existing techniques for Network Services are not sufficient for End Services are not sufficient for End System ServicesSystem 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 22: Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002.

Requirement for an end Requirement for an end system service languagesystem 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

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

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 24: Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002.

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> </notification> </esml>

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

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 26: Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002.

Extend ‘generic’ to ‘sip’Extend ‘generic’ 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 27: Programmable End System Services Using SIP Xiaotao Wu, Henning Schulzrinne 2nd New York Metro Area Networking Workshop September 3rd, 2002.

ESML Service CreationESML Service Creation

xsl:if

ESML editor

service.esml(template)

XSLT

esml.xsl

configurationeditor

service.html

translate.cgi

service_foo.esml

address is=$var

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

Compare to other Compare to other languageslanguages 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 connection

address1 address2

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

Future workFuture work

Service partition between end system services and network services

Feature interaction


Recommended