Programmable end system services using sip
Download
1 / 19

Programmable End System Services Using SIP - PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Programmable End System Services Using SIP' - avram-carrillo


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Programmable end system services using sip

Programmable End System Services Using SIP

Xiaotao Wu, Henning Schulzrinne

2nd New York Metro Area

Networking Workshop

September 3rd, 2002


Today s endpoints
Today’s Endpoints

  • Processing ability

  • Graphical rendering

  • Storage capacity

  • Converged information

  • Varied platforms

    • Phones

    • PCs

    • PDAs


Sip promotes end system services
SIP promotes end system services

  • 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.



Sip service interfaces
SIP service interfaces

<?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>

@ECHO OFF

IF %SIP_FROM%==sip:[email protected] GOTO BLOCK

GOTO EXIT

:BLOCK

echo SIP/2.0 486 Busy

:EXIT

  • CPL

  • SIP CGI

  • SIP Servlet

public boolean doInvite(SipRequest req) {

SipResponse res = req.createResponse();

res.setStatus(486);

res.send();

return true;

}


#! /usr/bin/env perl -w

# Reject messages whose 'From:' matches 'sip:[email protected]' 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:[email protected]") {

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";

}


Describe end system services
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 good for end system services.


Network services v s end system services
Network Services v.s. End System Services


Network services v s end system services1
Network Services v.s. End System Services

End System Service Language


End system service languages
End system service languages

  • 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


Endpoint service markup language esml
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


Esml example
ESML 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>


Esml packages

SIP user agent

SIP

Device agent

Presence

agent

Basic user agent

presence

Generic

Media

UI

x10

vcr

ESML packages

im

email

web

calendar

conference


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>



Compare to other languages
Compare to other languages

  • CPL

  • SCML

  • CCXML

  • CPML, TML, CallXML


Conclusion and future work
Conclusion and future work

  • Service partition between end system services and network services

  • Feature interaction


Thank you!

The End.


ad