Programmable End System Services Using SIP - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Programmable End System Services Using SIP

Description:

Basic call setup. Phone sends INVITE; acts as UAC. Alice's ... Basic call setup. Encoded audio packets sent over RTP. When either party hangs up BYE is sent ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 30
Provided by: xiaot1
Category:

less

Transcript and Presenter's Notes

Title: Programmable End System Services Using SIP


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
Basic call setup
  • Phone sends INVITE acts as UAC

INVITE sipalice_at_m2.home.com To
sipalice_at_home.com From Bob ltsipbob_at_office.com
gt cIN IP4 135.180.144.33 maudio 8000 RTP/AVP
0 5 8
office.com
alice
m2.home.com
bob
5
Basic call setup
  • Phone sends INVITE acts as UAC
  • Alices phone rings acts as a UAS

User agent server
SIP/2.0 180 Ringing
office.com
alice
m2.home.com
bob
home.com
6
Basic call setup
  • Phone sends INVITE acts as UAC
  • Alices phone rings acts as a UAS
  • When Alice picks up, call is accepted and bobs
    phone sends ACK to complete the setup

office.com
alice
m2.home.com
bob
home.com
SIP/2.0 200 OK cIN IP4 135.180.144.32 maudio
9000 RTP/AVP 0 8
7
Basic call setup
  • Encoded audio packets sent over RTP

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

BYE sipbob_at_office.com
office.com
alice
bob
home.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
Todays 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 sip1.2.3.4mobility"fixed"q0.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
14
SIP CGI contd.
  • Block _at_anonymous.com
  • if (defined ENVSIP_FROM
  • ENVSIP_FROM "sip_at_anonymous.com")
  • print "SIP/2.0 600 I can't talk right
    now\n\n"
  • Make calls from boss as urgent
  • if (defined ENVSIP_FROM
  • ENVSIP_FROM /sipboss_at_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

16
CPL contd.
  • lt?xml version"1.0" ?gt
  • lt!DOCTYPE cpl PUBLIC "-//IETF//DTD RFC2824 CPL
    1.0//EN" "cpl.dtd"gt
  • ltcplgt
  • ltincominggt
  • lttime-switchgt
  • lttime dtstart"20020830T140000Z"
  • dtend"20020830T150000Z"gt
  • ltreject status"reject" reasonBusy" /gt
  • lt/timegt
  • lt/time-switchgt
  • lt/incominggt
  • lt/cplgt

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
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
Existing techniques for Network Services are not
sufficient for End System Services
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
  • ltesml name"online_call"
  • require"generic presence ui"gt
  • ltnotification status"online"
  • priority"0.5"gt
  • ltaddress-switch field"origin"gt
  • ltaddress is"xyz_at_foo.com"gt
  • ltcall /gt
  • ltalert soundfoo.au"
  • text"Calling xyz_at_foo.com" /gt
  • lt/addressgt
  • lt/address-switchgt
  • lt/notificationgt
  • lt/esmlgt

26
ESML packages
email
web
im
conference
calendar
27
Extend generic to sip
  • ltxsschema targetNamespace"esmlsip"
  • xmlnssip"esmlsip"
  • xmlnsgeneric"esmlgeneric"
  • ..........
  • ltxscomplexType name"IncomingType"gt
  • ltxscomplexContentgt
  • ltxsextension
  • base"genericIncomingType"gt
  • ltxsattribute name"priority"
  • type"PriorityType"/gt
  • ..........
  • lt/xsextensiongt
  • lt/xscomplexContentgt
  • lt/xscomplexTypegt

28
ESML Service Creation
ESML editor
esml.xsl
service.esml (template)
xslif
address isvar
XSLT
configuration editor
service.html
translate.cgi
service_foo.esml
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)

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
    ESMLs 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, 1984The
    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.)
Write a Comment
User Comments (0)
About PowerShow.com