Title: Session Initiation Protocol SIP
1Session Initiation Protocol (SIP)
2Introduction
- A powerful alternative to H.323
- More flexible, simpler
- Easier to implement
- Advanced features
- Better suited to the support of intelligent user
devices - A part of IETF multimedia data and control
architecture - SDP, RTSP (Real-Time Streaming Protocol), SAP
(Session Announcement Protocol)
3The Popularity of SIP
- Originally Developed in the MMUSIC
- by Handley, Schulzrinne, Schooler, and Rosenberg
- A separate SIP working group
- RFC 3261
- Many developers
- SIP MGCP/MEGACO
- The VoIP signaling in the future
- back-off or SIPit (SIP Interoperability Tests)
- Test products against each other
- Organized by SIP Forum
4- The 18th SIPit event in Tokyo, Japan took place
April 17-21, 2006, and will be hosted by JPNIC - The 17th SIPit event in Stockholm, Sweden took
place 2005-09-11 to 2005-09-16 and was hosted by
Hotsip - The 16th SIPit event in Banff, Canada took place
2005-04-04 to 2005-04-08 and was hosted by Jasomi
Networks - The 15th SIPit event in Taiwan took place
2004-08-23 to 2004-08-27 and was hosted by
CCL/ITRI - The 14th SIPit event in Cannes, France took place
2004-02-08 to 2004-02-13 and was hosted by ETSI
5SIP Basic Functionality
- User location determination of the end system to
be used for communication - User capabilities determination of the media and
media parameters to be used - User availability determination of the
willingness of the called party to engage in
communications - Call setup "ringing", establishment of call
parameters at both called and calling party - Call handling including transfer and termination
of calls.
6SIP Philosophy
- Internet Standard
- - IETF - http//www.ietf.org
- Reuse Internet addressing (URLs, DNS, proxies)
- - Utilizes rich Internet feature set
- Reuse HTTP coding
- - Text based
- Makes no assumptions about underlying protocol
- - TCP, UDP, X.25, frame, ATM, etc.
- - Support of multicast
7SIP Architecture
- A signaling protocol
- The setup, modification, and tear-down of
multimedia sessions - SIP SDP
- Describe the session characteristics
- Separate signaling and media streams
8SIP Network Entities
- Clients
- User agent clients
- Application programs sending SIP requests
- Servers
- Responds to clients requests
- Clients and servers may be in the same platform
- Proxy
- Acts as both clients and servers
9- Four types of servers
- Proxy servers
- Handle requests or forward requests to other
servers - Can be used for call forwarding
10- Redirect servers
- Map the destination address to zero or more new
addresses - Do not initiate any SIP requests
11- A user agent server
- Accept SIP requests and contacts the user
- The user responds ? an SIP response
- A SIP device
- E.g., an SIP-enabled telephone
- A registrar
- Accepts SIP REGISTER requests
- Indicating the user is at a particular address
- Typically combined with a proxy or redirect
server
12SIP Call Establishment
- It is simple
- A number of interim responses
13SIP Advantages
- Attempt to keep the signaling as simple as
possible - Offer a great deal of flexibility
- Various pieces of information can be included
within the messages - Including non-standard information
- Enable the users to make intelligent decisions
- The user has control of call handling
- No need to subscribe call features
14- Call Completion to Busy Subscriber service
15Overview of SIP Messaging Syntax
- Text-based
- Similar to HTTP
- SIP messages
- message start-line
- message-header CRLF
- message-body
- start-line request-line status-line
- Request-line specifies the type of request
- The response line
- The success or failure of a given request
16- Message headers
- Additional information of the request or response
- E.g.,
- The originator and recipient
- Retry-after header
- Subject header
- Message body
- Describe the type of session
- The media format
- SDP, Session Description Protocol
- Could include an ISDN User Part message
- Examined only at the two ends
17SIP Requests
- method SP request-URI SP SIP-version CRLF
- request-URI
- The address of the destination
- Methods
- INVITE, ACK, OPTIONS, BYE, CANCLE, REGISTER
- extensions INFO, REFER, UPDATE,
- INVITE
- Initiate a session
- Information of the calling and called parties
- The type of media
- IAM (initial address message) of ISUP
- ACK only the final response
18- BYE
- Terminate a session
- Can be issued by either the calling or called
party - Options
- Query a server as to its capabilities
- A particular type of media
- The response if sent an INVITE
- CANCEL
- Terminate a pending request
- E.g., an INVITE did not receive a final response
19- REGISTER
- Log in and register the address with a SIP server
- all SIP servers multicast address
(224.0.1.75) - Can register with multiple servers
- Can have several registrations with one server
- INFO
- RFC 2976
- Transfer information during an ongoing session
- DTMF digits
- account balance information
- midcall signaling information generated in
another network
20SIP Responses
- SIP version SP status code SP reason-phrase CRLF
- reason-phrase
- A textual description of the outcome
- Could be presented to the user
- status code
- A three-digit number
- 1XX Informational
- 2XX Success (only code 200 is defined)
- 3XX Redirection
- 4XX Request Failure
- 5XX Server Failure
- 6XX Global Failure
- All responses, except for 1XX, are considered
final - Should be ACKed
21- 180 Ringing
- 181 Call Is Being Forwarded
- 182 Queued
- 183 Session Progress
- 200 OK
- 300 Multiple Choices
- 301 Moved Permanently
- 302 Moved Temporarily
- 305 Use Proxy
- 380 Alternative Service
22One number service
23SIP Addressing
- SIP URLs (Uniform Resource Locators)
- user_at_host
- E.g.,
- sipcollins_at_home.net
- sip3344556789_at_telco.net
- Supplement the URL
- sip3344556789_at_telco.netuserphone
- sipuserpassword_at_hostporturi-parameters?headers
24Message Headers
- Provide further information about the message
- information elements
- E.g.,
- Toheader in an INVITE
- The called party
- Fromheader
- The caling party
- Four main categories
- General, request, response, and entity headers
- A list in Table 5-2
- Mapping in Table 5-3
25General Headers
- Used in both requests and responses
- Basic information
- E.g., To, From, Call-ID,
- Contact
- A URL for future communication
- May be different from the From header
- Requests passed through proxies
26- Request Headers
- Apply only to SIP requests
- Addition information about the request or the
client - E.g.,
- Subject
- Priority, urgency of the request
- Authorization, authentication of the request
originator - Response Headers
- Further information about the response
- E.g.,
- Unsupported, features
- Retry-After
27- Entity Header
- Session information presented to the user
- Session description, SDP
- The RTP payload type, an address and port
- Content-Length, the length of the message body
- Content-Type, the media type of the message
- Content-Encoding, for message compression
- Content Disposition,
- Content-Language,
- Allow, used in a Request to indicate the set of
methods supported - Expires, the date and time
28Example of SIP Message Sequences
- Registration
- Via
- Call-ID
- host-specific
- Content-Length
- Zero, no msg body
- Cseg
- Avoid ambiguity
- Expires
- TTL
- 0, unreg
- Contact
29Invitation
- A two-party call
- Subject
- optional
- Content-Type
- application/sdp
30(No Transcript)
31Via Headers and Routing
- Via headers are used for routing SIP messages
- Requests
- Request initiator puts address in Via header
- Servers check Via with senders address, then add
own address, then forward. (if different, add
received parameter) - Responses
- Response initiator copies request Via headers.
- Servers check Via with own address, then forward
to next Via address - All Via headers are copied from request to
response in order - Response is sent to address in top Via header
32(No Transcript)
33Receiving Subsequent Requests
- 1. If the Call-ID is new,
- - the request is for a new call, regardless
of the values - of the To and From header fields.
- 2. If the Call-ID exists,
- - the request is for an existing call.
- - If the To, From, Call-ID, and CSeq values
exactly match (including tags) those of any
requests received previously, - - the request is a retransmission.
- 3. If there was no match to the previous step,
- - To From fields compared against existing
call leg local and remote addresses. - - If there is a match, the CSeq in the
request gt last CSeq - received on that leg,
- - the request is a new transaction for an
existing call leg.
34Reliability
- If UDP is used
- SIP client should retransmit a BYE, CANCEL,
OPTIONS, or REGISTER request, exponential
backoff, starting at a T1 second interval,
doubling the interval for each packet, and
capping off at a T2 second interval. - Retransmit a INVITE request with an interval that
starts at T1 seconds, exponential back off, cease
retransmissions if a provisional or definitive
response recvd., or once it has sent a total of 7
request packets - Clients using TCP do not need to retransmit
requests
35Termination of a Call
36Redirect Servers
- An alternative address
- 302, Moved temporarily
- Another INVITE
- Same Call-ID
- Cseq
37Proxy Servers
- Entity headers are omitted
- Changes the Req-URI
- Via
- The path
- Loop detected, 482
- For a response
- The 1st Via header
- Checked
- removed
38(No Transcript)
39Proxy state
- Can be either stateless or stateful
- Record-Route
- The messages and responses may not pass through
the same proxy - Use Contact
- A Proxy might require that it remains in the
signaling path - In particular, for a stateful proxy
- Insert its address into the Record-Route header
- The response includes the Record-Route header
- The Record-Route header is used in the
subsequent requests - The Route header the Record-Route header in
reverse order, excluding the first proxy - Each proxy remove the next from the Route header
40Forking Proxy
- fork requests
- A user is registered at several locations
- branchxxx
41(No Transcript)
42The Session Description Protocol
- The message body
- SDP, RFC 2327
- The Structure of SDP
- Session Level Info
- Name
- The originator
- The time
- Media Level Info
- Media type
- Port number
- Transport protocol
- Media format
43- SDP session description structure
44SDP Syntax
- A number of lines of text
- In each line
- fieldvalue
- Session-level fields first
- Media-level fields
- Begin with media description field (m)
45Mandatory Fields
- v(protocol version)
- o(session origin or creator and session id)
- s(session name), a text string
- t(time of the session)
- tltstart timegt ltstop timegt
- NTP time values in seconds
- m(media)
- mltmediagt ltportgt lttransportgt ltfmt listgt
- Media type
- The transport port
- The transport protocol
- The media format, an RTP payload format
46Optional Fileds
- i(session information)
- A text description
- At both session and media levels
- u(URI of description)
- Where further session information can be obtained
- Only at session level
- e(e-mail address)
- Who is responsible for the session
- Only at the session level
- p(phone number)
- Only at the session level
47- c(connection information)
- Connection type, network type, and connection
address - At session or media level
- b(bandwidth information)
- In kilobits per second
- At session or media level
- rltrepeat intervalgt ltactive durationgt ltlist of
offsets from start- timegt - For regularly scheduled session
- How often and how many times
48- z(timezone adjustments)
- zltadjustment timegt ltoffsetgt ltadjustment timegt
ltoffsetgt .... - For regularly scheduled session
- Standard time and Daylight Savings Time
- k(encryption key)
- kltmethodgtltencryption keygt
- An encryption key or a mechanism to obtain it
- At session or media level
- a(attributes)
- Describe additional attributes
49Ordering of Fields
- Session Level
- Protocol version (v)
- Origin (o)
- Session name (s)
- Session information (i)
- URI (u)
- E-mail address (e)
- Phone number (p)
- Connection info (c)
- Bandwidth info (b)
- Time description (t)
- Repeat info (r)
- Time zone adjustments (z)
- Encryption key (k)
- Attributes (a)
- Media level
- Media description (m)
- Media info (i)
- Connection info (c)
- Optional if specified at the session level
- Bandwidth info (b)
- Encryption key (k)
- Attributes (a)
50Subfields
- Field ltvalue of subfield1gt ltvalue of subfield2gt
ltvalue of subfield3gt - Origin (o)
- Username, the originators login id or -
- session ID
- A unique ID
- Make use of NTP timestamp
- version, a version number for this particular
session - network type
- A text string IN refers to Internet
- address type
- IP4, IP6
- Address, a fully-qualified domain name or the IP
address - omhandley 2890844526 2890842807 IN IP4
126.16.64.4
51- Connection Data
- The network and address at which media data are
to be received - Network type, address type, connection address
- cIN IP4 224.2.17.12/127
- Media Information
- Media type
- Audio, video, application, data, or control
- Port, 1024-65535
- Format
- List the various types of media
- RTP/AVP payload types
- m audio 45678 RTP/AVP 15 3 0
- G.728, GSM, G.711
52- Attributes
- Property attribute
- asendonly
- arecvonly
- value attribute
- aorientlandscape
- rtpmap attribute
- The use of dynamic payload type
- artpmapltpayload typegt ltencoding namegt/ltclock
rategt /ltencoding parametersgt. - mvideo 54678 RTP/AVP 98
- artpmap 98 L16/16000/2
53Usage of SDP with SIP
- SIP for the establishment of multimedia sessions
- SDP a structured language for describing the
sessions - The entity header
54Negotiation of Media
- Fig 5-15
- G.728 is selected
- If a mismatch
- 488 or 606
- Not Acceptable
- A Warning header
- INVITE with multiple media streams
- Unsupported should also be returned
- With a port number of zero
55(No Transcript)
56 57(No Transcript)
58- OPTIONS Method
- Determine the capabilities of a potential called
party
59SIP Extensions and Enhancements
- RFC 2543, March 1999
- obsoleted by RFCs 3261,3262, 3263, 3265
- Will be enhanced considerably before it becomes
an Internet standard - 183 session progress (RFC 3261)
- Supported header (RFC 3261)
- Require
- Supported
60183 Session-Progress Message
- The addition of a new response
- Status code 183
- To open a one-way media path
- From the called party to calling party
- convey information about the progress of the call
that is not otherwise classified - Tones or announcements
- ACM (address complete message) of SS7
- For SIP PSTN SIP connections
- When a temporary media stream is needed
- Note that alerting signal can be
- Status code 180 (ringing)
- The temporary media stream will be terminated
- As soon as the called user answers
61The SIP Supported Header
- The Require header
- UACs tell UASs about options that the UAC expects
the UAS to support - require 100rel
- may receiver 420 (Bad Extension)
- The Supported header
- enumerates all the extensions supported by the
UAC or UAS - Included in both requests and responses
- BYE, CANCEL, INVITE, OPTIONS and REGISTER
- Should not be included in the ACK
- 421, extension required
- The UAS needs a particular extension to process
the request
62(No Transcript)
63SIP INFO Method
- A new SIP method RFC 2976
- The transfer of information in the middle of a
call - DTMF digits, account-balance information,
mid-call signaling information (from PSTN) - A powerful, flexible tool to support new services
- e.g., the users prepaid account balance
64SIP Event Notification
- SIP-specific event notification
- be informed of some event(s)
- RFC 3265
- SUBSCRIBE
- subscribe to certain event
- Event header
- NOTIFY
- inform the user
- 200 (OK) response
65(No Transcript)
66SIP for Instant Messaging
- SIMPLE - SIP for Instant Messaging and Presence
Leveraging Extensions - a working group
- RFC 3994, 3856
- The exchange of content between a set of
participants in near real time - IMs are usually grouped together into brief live
comversations - MESSAGE request, RFC 3994
- a message body in the form text/plain, or
message/cpim (common presence and instant
message) using XML
67- Doesnt establish a SIP dialog
- Can be associated with an existing SIP dialog
- Contact header is forbidden
- No Record-Route or Route header
68(No Transcript)
69REFER Method
- RFC 3515
- Instruct the receiver to contact a third party
- Refer-to
- Can be interpreted as an implicit SUBSCRIBE
- The sender will be notified the result
- 202 (accepted)
- An extension
- A SIP message is tunneled within a SIP message
- Refer-by
70(No Transcript)
71(No Transcript)
72Reliability of Provisional Responses
- Provisional Responses
- 100 (trying), 180 (ringing), 183 (session in
progress) - Are not answered with an ACK
- If the messages is sent over UDP
- Unreliable
- Lost provisional response may cause problems when
interoperating with other network - 180, 183 ? Q931 alerting or ISUP ACM
- To drive a state machine
- E.g., a call to an unassigned number
- ACM to create a one-way path
73- RSeq
- Response seq
- 1, when retxm
- Rack
- Response ACK
- PRACK
- Prov Resp ACK
- the option tag
- 100rel
- Should not
- Apply to 100
- hop-by-hop
74(No Transcript)
75UPDATE Method
- RFC 3311
- Change the media format in the early state
- re-INVITE cannot be used it changes the state
- Can be used to reserve network resources
76Summary of SIP methods
- INVITE create a session
- BYE terminates a session
- ACK acknowledges a final response for an INVITE
request - CANCEL cancels an INVITE request
- REGISTER binds a public SIP URI to a Contact
address - OPTIONS queries a server for capabilities
- SUBSCRIBE installs a subscription for a resource
- NOTIFY informs about changes in the state of the
resource - MESSAGE delivers an Instant Message
- REFER used for call transfer, call diversion,
etc. - PRACK acknowledges a provisional response for an
INVITE request - UPDATE changes the media description (e.g. SDP)
in an existing session - INFO used to transport mid-session information
- PUBLISH publication of presence information
77Integration of SIP and Resource Mang
- RFC 3312
- The signaling might take a different path from
the media - Assume resource-reservation mechanisms available
(Chapter 8) - On a per-session basis
- On an aggregate basis
- A new SIP header in the INVITE
- Resources reservation is needed
- The user should not yet be alerted
- But unrecognized header is ignored
78- Integration of Resource Management and SIP for IP
Telephony - A new method, PRECONDITION-MET
- The far-end phone will not ring until
- Also specifies extensions to SDP
- Can define any number of preconditions in SDP
without revise SIP every time - The response is sent using reliable signaling
- Once the resource is reserved
- An UPDATE request is sent
- If failed, could select a lower-bandwidth codec
79(No Transcript)
80- The preconditions/requirements in the SDP
- Three status
- desired, current, and confirmed
- Resource reservation
- end-to-end (e2e), local, and remote
- Purpose
- send, recv, and sendrecv
- Strength
- mandatory, optional, none and failure
81- Examples
- maudio 4444 RTP/RTCP 0
- acurr qos e2e none
- ades qos mandatory e2e sendrecv
- acurr qos e2e send
- ades qos mandatory e2e sendrecv
- acurr qos e2e sendrecv
- ades qos mandatory e2e sendrecv
82(No Transcript)
83Usage of SIP for Features/Services
- Personal mobility by registration
- Can carry MIME (Multi-Purpose Internet Mail
Extension) content - Text, HTML documents, an image, etc.
- SIP address is a URL
- Click-to-call applications
- Supplementary Custom Local Area Signaling Service
(CLASS) services - Call waiting, call forwarding, multi-party
calling, call screening - Proxy-controlled QoS, IN SCP, INAP, OSA
84Call Forwarding
85Consultation Hold
86Windows Messenger
- SIP-based
- Runs on Windows XP systems
- Core Features
- Presence and contact list management
- Instant Messaging
- Voice and Video
- Data collaboration and File transfer
- PC to Phone
- Administrative Policies to enable/disable
features - Acoustic Echo Cancellation in software
87- Microsoft .Net SIP server or enterprise SIP
server - Can not go point-to-point using IP addressing-
needs proxy server - Microsoft Live Communications Server (LCS) is
their proxy server
88SIP/H.323 Interoperability Using the Radvision MCU
Microsoft Live Communication Server
Radvision MCU
SIP
IMfirst
H.323
Microsoft Active Directory
Internet
Windows Messenger Clients
H.323 Clients
89Interworking
- PSTN Interworking
- A SIP URL
- A network gateway
- Fig. 5-27
- SIP to PSTN call
- Fig. 5-28
- PSTN to SIP call
- PSTN SIP PSTN
- MIME media types
- For ISUP and QSIG
90(No Transcript)
91(No Transcript)
92Interworking with H.323
- An Internet draft
- SIP-H.323 interworking gateway
93(No Transcript)
94(No Transcript)
95(No Transcript)
96(No Transcript)
97Summary
- The future for signaling in VoIP networks
- Simple, yet flexible
- Easier to implement
- Fit well with the media gateway control protocols