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
2Outline
- 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
3What is SIP andWhy is it Important
- Tom Gray
- Strategic Technology
4What 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
5What 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
6What 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
8SIP in Context
Coordination Space
SIP
SIP
Policy Agents
External Data Sources
SIP
Policies
Connection Control
Database
9ACD Example
SIP
SIP
SIP
Call inFrench
Personal Agents
10SIP Architecture and Protocol
- Kathy Baker
- Strategic Technology
Based on the IETF Draft ietf-sip-rfc2543bis-02.ps
(November 24, 2000)
11SIP User Agents
12SIP 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
13SIP Architecture example
Stateful Proxy
CALLER
CALLEE
Redirect Server
Stateless Proxy
14SIP 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)
15Addressing
- 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
16Request 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
17Response 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
18Request 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
19INVITE Method
CUA
sipkathy_at_ex1640.kanata.mitel.com
SUA
sipjohn_at_pc1234.ottawa.nortel.ca
20Responses and ACK Method
CUA
sipkathy_at_ex1640.kanata.mitel.com
SUA
sipjohn_at_pc1234.ottawa.nortel.ca
21BYE 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
22OPTIONS Method
SIP Proxy
siptom_gray_at_mitel.com
sipkathy_baker_at_mitel.com
23REGISTER 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
24SIP 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.
25REFER Method
Dialer
siptomsphone.mitel.com
sipramiro_liscano_at_mitel.com
26SIP Call Flow Examples
- Tom Gray
- Strategic Technology
27Call Forward Busy
Carole
Bob
Alice
Proxy
Alice Calls Bob Bob is CFB to Carole
28Consultation Hold - 1
Carole
Bob
Alice
Proxy
Alice Calls Bob who then Consults with Carole
and Returns to Alice Standard Pattern for
Originating a Call
29Consultation 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
30Consultation 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
31Consultation Hold - 4
Carole
Bob
Alice
Proxy
Drop Consultation Session Re-Invite in Existing
Session to Restore Call to Alice
32Third 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
33Third 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
34Third 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
35Third 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
36Call Forward Busy
Forwarded
Called
Caller
Proxy
37The IETF Call Processing Language (CPL)
- Ramiro Liscano
- Strategic Technology
Based on the IETF Draft draft-ietf-iptel-cpl-04.p
s
38System Requirements
- Programming Telephony (SIP) Services
SIP-CGI (Trusted Parties) or CPL (Un-trusted
Parties)
39Language 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.
40IPTel Route Signaling Example
- Internet Telephony Signaling servers cannot know
state of end systems they control since
signaling may bypass them.
41CPL 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.
42CPL 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.
43CPL 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?
44Creating 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.
45Which 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.
46Motivation 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.
47CPL 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
48CPL 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
49CPL 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
50Other 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)
51Other 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.
52CPL 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.
53SIP Activities
- Daniel Amyot
- Strategic Technology
54SIP 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?
55Standardization 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
56Standardization 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)
57Standardization 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
58Standardization 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
59Standardization 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
60Standardization 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
61Standardization ActivitiesJAIN SIP
JAINSIP
62Other 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
63SIP 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
64New 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
65Thank 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