A Gentle Introduction to SIP and CPL January 31, 2001

About This Presentation
Title:

A Gentle Introduction to SIP and CPL January 31, 2001

Description:

What is SIP and Why is it Important (10 min) SIP Architecture and Protocol (15 min) ... Make New Call. for Consultation 2001. SIP CPLSIP CPL. Page 31 ... –

Number of Views:296
Avg rating:3.0/5.0
Slides: 65
Provided by: cserg0Sit
Category:

less

Transcript and Presenter's Notes

Title: A Gentle Introduction to SIP and CPL January 31, 2001


1
A Gentle Introduction toSIP and CPL January
31, 2001
Session Initiation ProtocolCall Processing
Language
2
Outline
  • What is SIP and Why is it Important (10 min)
  • SIP Architecture and Protocol (15 min)
  • SIP Call Flow Examples (10 min)
  • The IETF Call Processing Language (15 min)
  • SIP Activities (10 min)
  • Discussion

3
What is SIP andWhy is it Important
  • Tom Gray
  • Strategic Technology

4
What SIP Is
  • SIP is a language and protocol for initiating,
    modifying and terminating interactive sessions
  • allows discovery of entities so that descriptions
    of sessions can be delivered
  • is explicitly designed for rendezvous with mobile
    users
  • is explicitly distributed with local user control
  • enables creation and sharing of information
  • maintains relationships over multiple
    interactions

5
What SIP Is
  • compatible with existing telephony features but
    also designed for new applications enabled by the
    Internet
  • example of highly personalized call control
  • with location, presence, alerts, notifications
    ...
  • one of a family of protocols and languages
  • pervasive (DTMF of the Internet)
  • based on SMTP and HTTP
  • set of building blocks to design services
  • lightweight and extensible

6
What SIP Is Not
  • a telephony protocol
  • a resource reservation protocol
  • a transfer protocol
  • a normative definition of any specific set of
    features
  • the AIN, Q.sig, H.323

7

CPL
8
SIP in Context
Coordination Space
SIP
SIP
Policy Agents
External Data Sources
SIP
Policies
Connection Control
Database
9
ACD Example
SIP
SIP
SIP
Call inFrench
Personal Agents
10
SIP Architecture and Protocol
  • Kathy Baker
  • Strategic Technology

Based on the IETF Draft ietf-sip-rfc2543bis-02.ps
(November 24, 2000)
11
SIP User Agents
12
SIP Servers
  • Proxy
  • Stateless Proxy
  • forgets about SIP request/response once it has
    been forwarded
  • Stateful Proxy
  • maintains record of SIP transaction
  • e.g. Outbound Proxy (located near client acts as
    firewall)
  • Redirect Server
  • does not issue SIP requests, only redirect
    responses
  • Registrar
  • allows user agents to register location
    information
  • typically co-located with Outbound Proxy

13
SIP Architecture example
Stateful Proxy
CALLER
CALLEE
Redirect Server
Stateless Proxy
14
SIP Messages
  • Can either be Request or Response message
  • Request From Client to Server
  • Response From Server to Client
  • Can be passed
  • from user agent to user agent
  • from SIP network server to user agent or vice
    versa
  • from SIP network server to SIP network server
  • Each SIP Message contains
  • Request Line or Status Line
  • Header
  • Message (CPL, SDP, encrypted code, text or
    nothing)

15
Addressing
  • SIP-URL sipuser_at_host
  • sipKathy_Baker_at_mitel.com
  • sipextension1640_at_mitel.com
  • sipRamiro_Liscano_at_voicemail.mitel.com
  • Can accept parameters
  • sipTom_Gray_at_cell.mitel.compriorityurgent
  • sipTom_Gray_at_mitel.comsubjectBluetooth
  • Can be identified by generic URIs
  • kanata.systems.mitel.com
  • tel13334442343

16
Request Message
INVITEsipDaniel_Amyot_at_mitel.com SIP/2.0From
Kathy ltsipKathy_Baker_at_mitel.comgtTo Daniel
ltsipDaniel_Amyot_at_mitel.comgt Contact
sipKathy_Baker_at_desktop.mitel.comCall-ID
20010110_at_kathy_phone.strat_techContent-Type
application/sdpContent-Length 147 CSeq 1
INVITE v0oUserA 2890844526 2890844526 IN IP4
here.comsSession SDPcIN IP4
100.101.102.103t0 0maudio 49172 RTP/AVP
0artpmap0 PCMU/8000
Request Line
MessageHeader
MessageBody
17
Response Message
SIP/2.0 200 OK Via SIP/2.0/UDP
kanata.mitel.com From Kathy ltsipKathy_Baker_at_mit
el.comgt To Daniel ltsipDaniel_Amyot_at_mitel.comgt
Call-ID 20010110_at_kathy_phone.strat_techContact
sipDaniel_Amyot_at_desktop.mitel.comCSeq 1
INVITE
Status Line
Status Codes 1xx Informational - Trying -
Ringing - Being Forwarded - Queued 200
Success 3xx Redirect 4xx Client Error 5xx Server
Error 6xx Global Error
MessageHeader
MessageBody
18
Request Performatives
  • INVITE Would you like to chat?
  • ACK Thanks, received your confirmation. Lets
    start chatting
  • BYE Okay, Im ending the call now.
  • CANCEL Cancel that last request but dont end
    the call
  • OPTIONS What functionality do you support?
  • REGISTER Direct all my calls to this phone.

Enables Mobility
19
INVITE Method
CUA
sipkathy_at_ex1640.kanata.mitel.com
SUA
sipjohn_at_pc1234.ottawa.nortel.ca
20
Responses and ACK Method
CUA
sipkathy_at_ex1640.kanata.mitel.com
SUA
sipjohn_at_pc1234.ottawa.nortel.ca
21
BYE Method
BYE
BYE
CUA
BYE
sipkathy_at_ex1640.kanata.mitel.com
SUA
BYE kathy_at_ex1640.kanata.mitel.com SIP/2.0Via
SIP/2.0/UDP sip.kanata.mitel.com Via
SIP/2.0/UDP sip.nortel.comTo sip
kathy_baker_at_mitel.com From sip
john_smith_at_nortel.com Contact
sipjohn_at_pc1234.ottawa.nortel.caCall-ID
knsd08alas9dy_at_3.4.5.6 CSeq 2 BYE
sipjohn_at_pc1234.ottawa.nortel.ca
22
OPTIONS Method
SIP Proxy
siptom_gray_at_mitel.com
sipkathy_baker_at_mitel.com
23
REGISTER Method
LocationServer
REGISTER
SIP Registrar
200 OK
sipkathy_baker_at_mitel.com
SIP Proxy
SIP/2.0 200 OK To sipkathy_baker_at_mitel.comFrom
sipkathy_baker_at_mitel.comCSeq 1 REGISTER
Contact sipkbaker_at_cellphone.clearnet.caexpires
1200Call-ID 1234556677
REGISTERsipregistrar.systems.mitel.com
SIP/2.0 To sipkathy_baker_at_mitel.comFrom
sipkathy_baker_at_mitel.comCSeq 1
REGISTERContact sipkbaker_at_cellphone.clearnet.ca
expires1200Call-ID 1234556677
24
SIP Extensions - 3PCC
  • These methods have been added to extend SIP
    to support third party control. They enable
    external applications to control SIP Agents
  • REFER Please go to this other place and do
    this
  • SUBSCRIBE I would like to monitor your call
    activity.
  • NOTIFY An event occurred.

25
REFER Method
Dialer
siptomsphone.mitel.com
sipramiro_liscano_at_mitel.com
26
SIP Call Flow Examples
  • Tom Gray
  • Strategic Technology

27
Call Forward Busy
Carole
Bob
Alice
Proxy
Alice Calls Bob Bob is CFB to Carole
28
Consultation Hold - 1
Carole
Bob
Alice
Proxy
Alice Calls Bob who then Consults with Carole
and Returns to Alice Standard Pattern for
Originating a Call
29
Consultation Hold - 2
Carole
Bob
Alice
Proxy
INVITE (Hold)
INVITE (Hold)
Bob Puts Alice On Hold Do Re-Invite in Same
Session to Change Call Parameters
200 OK
200 OK
ACK
ACK
Audio Path Knocked Down
30
Consultation Hold - 3
Carole
Bob
Alice
Proxy
INVITE
Bob Calls Carole Make New Call for Consultation
INVITE
100 Trying
180 Ringing
180 Ringing
200 OK
200 OK
ACK
ACK
2 Way Audio
31
Consultation Hold - 4
Carole
Bob
Alice
Proxy
Drop Consultation Session Re-Invite in Existing
Session to Restore Call to Alice
32
Third Party Call Control - 1
Bob
Alice
Caroles PDA
Caroles Phone
Carole uses a PDA Application to set up a
conference with Alice and Bob Subscribe to
Phone and Set Up Call to Alice
33
Third Party Call Control - 2
Caroles Phone
Bob
Alice
Caroles PDA
REFER (Alice (Hold))
INVITE (Hold)
200 OK
To Start Conference Put Alice on Hold
ACK
200 OK
Audio Path Knocked Down
34
Third Party Call Control - 3
Bob
Alice
Caroles PDA
Caroles Phone
REFER (Bob)
INVITE
Tell Phone to Set Up Call To Bob and with Same
Call ID Tell Alice Conference with Bob
180 Trying
200 OK
ACK
200 OK
35
Third Party Call Control - 4
Bob
Alice
Caroles PDA
Caroles Phone
INVITE
180 Ringing
Alice Calls Caroles Phone Caroles PDA is
Notified - Refers Phone to Re-Invite To Set
Up Speech path
NOTIFY
200 OK
REFER
INVITE
200 OK
ACK
36
Call Forward Busy
Forwarded
Called
Caller
Proxy
37
The IETF Call Processing Language (CPL)
  • Ramiro Liscano
  • Strategic Technology

Based on the IETF Draft draft-ietf-iptel-cpl-04.p
s
38
System Requirements
  • Programming Telephony (SIP) Services

SIP-CGI (Trusted Parties) or CPL (Un-trusted
Parties)
39
Language Requirements
  • Verifiable Well-formed and executable.
  • Guaranteed to complete No loops.
  • Safe to execute Restrained environment.
  • Standardized Representation
  • Readable and Producible human or machine.
  • Protocol Independent
  • Independent of Operating System or Signaling
    Protocol
  • Ease of Transport File representation.

40
IPTel Route Signaling Example
  • Internet Telephony Signaling servers cannot know
    state of end systems they control since
    signaling may bypass them.

41
CPL Definition
  • A Language used to describe and control Internet
    Telephony Services.
  • Designed to be implemented on either Network
    Servers or User Agent Servers.
  • Describes Services as a Decision Graph based on
    XML Syntax.

42
CPL Usefulness
  • Script Creation by End Users (Personal Assistance
    Functionality)
  • Customized call filtering.
  • Third Party Outsourcing
  • A standardized language.
  • Administrator Service Definition
  • Define enterprise policies.
  • Web Middleware
  • Service creation and customization using WEB
    interfaces.

43
CPL Script Functionality
  • In a Signaling Server controls proxy, redirect,
    or rejection actions for the set-up of a call.
    Replaces SIP-CGI?
  • Focused on local control rather than global
    coordination of multiple signaling servers as in
    IN architecture.
  • Defines a list of Condition/Action Pairs that
    concentrates on user location routing.
  • Controversial Question Should a CPL script
    execute on the END System?

44
Creating and Transporting CPL Scripts
  • CPL is easily created using text editors or
    SGML type of editors.
  • Script needs to be transported onto a CPL-enabled
    network server. (Currently no standard agreed
    upon)
  • WEB Uploading
  • SIP Register method.
  • SOAP (Simple Object Access Protocol)
  • All approaches require user authentication and
    script persistency.

45
Which Script is executed? (In Progress)
  • Scripts are associated with a particular Internet
    telephony address SIP To or From
    Kathy_Baker_at_mitel.com
  • One script/user executes at a time.
  • Originator before Destination
  • Administrator scripts before user scripts.
  • Only one script for a particular event. Newer
    script substitutes old script.
  • Problems with compound and Otherwise tag
    conditionals.

46
Motivation for Using CPL
  • CPL is not Turing-complete and does not support
    loops or recursion. It is guaranteed to
    terminate.
  • Script resources are bounded under a proposed
    standard and therefore execution of the script is
    guaranteed.
  • CPL can be easily created and manipulated because
    interpreter can manage all conditions specified
    in the language.

47
CPL High Level Structure
  • Call Processing Actions
  • Top-Level Actions (ltincominggt OR ltoutgoinggt)
  • Subactions (Non-recursive actions called from
    other actions)

busy
Location urlsipjones_at_ example.com
proxy timeout 10s
Call
Address-switch field from subfieldhost
timeout
failure
Subdomain-of example.com
Location urlsipjones_at_ voicemail.
example.com
otherwise
redirect
Voicemail
48
CPL Code Example
ltcplgt ltsubaction id"voicemail"gt
ltlocation url"sipjones_at_voicemail.example.com"gt
ltredirect /gt lt/locationgt
lt/subactiongt ltincominggt
ltaddress-switch field"origin" subfield"host"gt
ltaddress subdomain-of"example.com"gt
ltlocation url"sipjones_at_example.com"gt
ltproxy timeout"10"gt
ltbusygt ltsub ref"voicemail" /gt lt/busygt
ltnoanswergt ltsub ref"voicemail" /gt
lt/noanswergt ltfailuregt ltsub
ref"voicemail" /gt lt/failuregt
lt/proxygt lt/locationgt
lt/addressgt ltotherwisegt
ltsub ref"voicemail" /gt lt/otherwisegt
lt/address-switchgt lt/incominggt lt/cplgt
49
CPL Signaling Actions
ltsubaction id"voicemail"gt ltlocation
url"sipjones_at_voicemail.example.com"gt
ltredirect /gt lt/locationgt
lt/subactiongt ltincominggt
ltaddress-switch field"origin" subfield"host"gt
ltaddress subdomain-of"example.com"gt
ltlocation url"sipjones_at_example.com"gt
ltproxy timeout"10"gt
ltbusygt ltsub ref"voicemail" /gt lt/busygt
ltnoanswergt ltsub ref"voicemail" /gt
lt/noanswergt ltfailuregt ltsub
ref"voicemail" /gt lt/failuregt
lt/proxygt lt/locationgt
lt/addressgt ltotherwisegt
ltsub ref"voicemail" /gt lt/otherwisegt
lt/address-switchgt lt/incominggt
50
Other Types of Switches
  • Time Switch
  • start, end, duration, freq, until, byday, etc.
  • Based on Internet Calendaring and Scheduling Core
    Object Specification (iCal COS), RFC 2445.

lttime dtstart19970105T083000 durationPT10M
freqyearly interval2 bymonth1
bydaySUgt Starting Jan 5th, 1997 0830 for 10
minutes. Every Sunday in January from 0830-0840
every other year.
  • Priority Switches
  • Based on Priority Tags (emergency, urgent,
    normal, non-urgent)

51
Other Types of Switches (cont.)
  • String Switch
  • Decisions can be based on free-form strings
    present in a call request.
  • Five fields defined
  • subject - subject of call.
  • Organization - organization of the originator of
    the call.
  • user-agent - program device that made the call.
  • Language - language of choice.
  • Display - free-form text meant to be displayed
    with call.

52
CPL Server Extensions
  • All CPL extensions are indicated by XML
    namespaces. ltextension hasURLgt
  • Examples
  • Querying how a Call has been Authenticated.
  • Richer control over H.323 addressing.
  • Mid-call or end-of-call controls.
  • End system specific features.
  • Support for Regular Expression Matching.

53
SIP Activities
  • Daniel Amyot
  • Strategic Technology

54
SIP is Only Part of theBig Picture
  • Multiple Standardization Activities Related to
    SIP, including

JAIN
PINT
SDP
SIP-T
SPIRITS
Others
TRIP
SOAP
  • SIP and CPL at Mitel
  • New Research Topics?

55
Standardization ActivitiesSIP and SDP
  • SIP Session Initiation Protocol
  • RFC 2543, March 1999 (Proposed Standard)
  • Current Internet Draft RFC 2543 bis-02, November
    2000
  • SDP Session Description Protocol
  • Used to describe sessions in INVITE request
  • SIP implementations MUST understand SDP

56
Standardization ActivitiesTRIP
  • A Framework for Telephony Routing over IP
  • No global "directory of gateways" of phone
    numbers
  • Given an input telephone number, determine the
    address of a telephony gateway
  • Telephony Routing over IP (TRIP)
  • TRIP supports the discovery and exchange of IP
    telephony gateway routing tables between
    providers
  • Location servers (LS) sharing information
  • Not limited to routing TRIP also handles
    selection of services, people, and other
    resources
  • Independent of signaling protocol, and can handle
    multiple such protocols simultaneously (SIP,
    H.323, etc.)
  • 4th Internet Draft, November 2000 (almost
    standardized)

57
Standardization ActivitiesPINT and SPIRITS
PSTN, IN, Cell
Internet
  • PINT PSTN/Internet Interworking
  • PINT Service Protocol Extensions to SIP and SDP
    for IP Access to Telephone Call Services
  • SPIRITS Service in the PSTN/IN Requesting
    InTernet Service
  • Control of Internet applications from PSTN/IN

58
Standardization ActivitiesSIP for Telephony WG
(SIP-T)
  • BCP-T
  • Best Current Practice for Telephony Interworking
  • Inter-MGC communication using SIP
  • Informational draft, obsoletes SIP
  • MIME Media Types for ISUP and Q.SIG Objects
  • Used for interoperability with legacy systems and
    services
  • Internet draft, November 2000

59
Standardization ActivitiesSIP and SOAP
  • SOAP (IBM/Microsoft)
  • Simple Object Access Protocol (W3C Note)
  • SIP and SOAP
  • Generic and extensible framework through which
    SIP nodes can request additional services from
    remote nodes
  • SOAP transported through SIP SERVICE message
    rather than HTTP
  • Candidate XML-based RPC mechanism for CPL
  • Internet Draft, June 2000

60
Standardization ActivitiesJAIN SIP
  • Java API for Integrated Networks (JAIN)
  • Suns Java-based APIs for the rapid development
    of Next Generation telecom products using EJB
  • Two levels Application/Call Control and Protocol
  • JAIN SIP
  • Portable interface to share information between
    SIP Clients and SIP Servers
  • Standard API for SIP stacks
  • Proposed Final Draft almost available

61
Standardization ActivitiesJAIN SIP
JAINSIP
62
Other Activities
  • Interworking between H.323 and SIP Networks
  • Internet draft of requirements, October 2000
  • Also under study by ITU-T (Question 13/16)
  • Call Control (transfer, conference, 3PCC)
  • Informational only
  • Caller preferences
  • SNMP Management Information Base (MIB)
  • Applications (SIMPLE, IFAX)
  • For more activities http//www.softarmor.com/sipw
    g/tasks/index.html

63
SIP and CPL at Mitel
  • Research projects
  • Policy Description Language(PDL extends CPL
    functionalities)
  • Service Description Languages
  • Human Aspects
  • Participants
  • U. of Ottawa (Logrippo) / U. of Waterloo (Atlee)
  • U. of Ottawa (Karmouch)
  • U. of Stirling (Turner / Magill, Scotland)
  • Dalhousie University (Jost)
  • Concordia University (Radhakrishnan)
  • U. of Toronto (Wellman)
  • SIP and CPL used in internal projects

64
New Research Topics?
  • Policies
  • Representation
  • Negotiation and Conflict Handling (FI)
  • Applications
  • Scalable Execution Frameworks
  • Security
  • Autorisation, authentication
  • Middle Box Handling (firewalls, NATS, )
  • Performance Monitoring and Enforcement
  • Interworking
  • Between Autonomous Systems
  • With Legacy Systems (including SS7, H.323, )
  • Human Factors
  • Privacy, Controllability, Understandability
  • Appropriate Levels of Context Representation

65
Thank You
  • Strategic Technology, Mitel Systems.
  • Daniel_Amyot_at_Mitel.com
  • Kathy_Baker_at_Mitel.com
  • Tom_Gray_at_Mitel.com
  • Ramiro_Liscano_at_Mitel.com
Write a Comment
User Comments (0)
About PowerShow.com