You are on page 1of 86

Session Initiation Protocol (SIP)

Chapter 5
Introduction

■ 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)

2
Internet Telephony
The Popularity of SIP

■ Originally Developed in the MMUSIC


■ 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

3
Internet Telephony
■ 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 eventThe 15th SIPit event in Taiwan
took place 2004-08-23 to 2004-08-27 and was hosted
by CCL/ITRI
■ The 14th SIPit eventThe 14th SIPit event in Cannes,
France took place 2004-02-08 to 2004-02-13 and was
hosted by ETSI

4
Internet Telephony
SIP Architecture

■ A signaling protocol
■ The setup, modification, and tear-down of
multimedia sessions
■ SIP + SDP
■ Describe the session characteristics
■ Separate signaling and media streams

5
Internet Telephony
SIP 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

6
Internet Telephony
■ Four types of servers
■ Proxy servers
■ Handle requests or forward requests to other servers
■ Can be used for call forwarding

7
Internet Telephony
■ Redirect servers
■ Map the destination address to zero or more new addresses
■ Do not initiate any SIP requests

8
Internet Telephony
■ 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

9
Internet Telephony
SIP Call Establishment

■ It is simple
■ A number of interim responses

10
Internet Telephony
SIP 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

11
Internet Telephony
■ Call Completion to Busy Subscriber service

12
Internet Telephony
Overview 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

13
Internet Telephony
■ 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

14
Internet Telephony
SIP 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

15
Internet Telephony
■ 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

16
Internet Telephony
■ 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

17
Internet Telephony
SIP 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
18
Internet Telephony
“One number” service

19
Internet Telephony
SIP Addressing

■ SIP URLs (Uniform Resource Locators)


■ user@host
■ E.g.,
■ sip:collins@home.net
■ sip:3344556789@telco.net
■ Supplement the URL
■ sip:3344556789@telco.net;user=phone
■ sip:user:password@host:port;uri-parameters?headers

20
Internet Telephony
Message Headers

■ Provide further information about the message


■ ~information elements
■ E.g.,
■ To:header in an INVITE
■ The called party
■ From:header
■ The caling party
■ Four main categories
■ General, request, response, and entity headers
■ A list in Table 5-2
■ Mapping in Table 5-3

21
Internet Telephony
General 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

22
Internet Telephony
■ 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

23
Internet Telephony
■ 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

24
Internet Telephony
Example of SIP Message Sequences

■ Registration
■ Via:
■ Call-ID:
■ host-specific
■ Content-Length:
■ Zero, no msg body
■ Cseg:
■ Avoid ambiguity
■ Expires:
■ TTL
■ 0, unreg
■ Contact:
■ *

25
Internet Telephony
Invitation
■ A two-party call
■ Subject:
■ optional
■ Content-Type:
■ application/sdp

26
Internet Telephony
27
Internet Telephony
Termination of a Call
■ Cseq:
■ Has changed

28
Internet Telephony
Redirect Servers
■ An alternative address
■ 302, Moved temporarily
■ Another INVITE
■ Same Call-ID
■ Cseq ++

29
Internet Telephony
Proxy Servers
■ Entity headers are omitted
■ Changes the Req-URI
■ Via:
■ The path
■ Loop detected, 482
■ For a response
■ The 1st Via: header
■ Checked
■ removed

30
Internet Telephony
31
Internet Telephony
Proxy 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

32
Internet Telephony
Forking Proxy
■ “fork” requests
■ A user is registered at
several locations
■ ;branch=xxx

33
Internet Telephony
34
Internet Telephony
The 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

35
Internet Telephony
■ SDP session description structure

36
Internet Telephony
SDP Syntax

■ A number of lines of text


■ In each line
■ field=value
■ Session-level fields first
■ Media-level fields
■ Begin with media description field (m=)

37
Internet Telephony
Mandatory Fields
■ v=(protocol version)
■ o=(session origin or creator and session id)
■ s=(session name), a text string
■ t=(time of the session)
■ t=<start time> <stop time>
■ NTP time values in seconds
■ m=(media)
■ m=<media> <port> <transport> <fmt list>
■ Media type
■ The transport port
■ The transport protocol
■ The media format, an RTP payload format

38
Internet Telephony
Optional 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

39
Internet Telephony
■ 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
■ r=<repeat interval> <active duration> <list of offsets
from start- time>
■ For regularly scheduled session
■ How often and how many times

40
Internet Telephony
■ z=(timezone adjustments)
■ z=<adjustment time> <offset> <adjustment time> <offset>
....
■ For regularly scheduled session
■ Standard time and Daylight Savings Time
■ k=(encryption key)
■ k=<method>:<encryption key>
■ An encryption key or a mechanism to obtain it
■ At session or media level
■ a=(attributes)
■ Describe additional attributes

41
Internet Telephony
Ordering of Fields
■ Session Level ■ Media level
■ Protocol version (v) ■ Media description (m)
■ Origin (o)
■ Media info (i)
■ Session name (s)
■ Connection info (c)
■ Session information (i)
■ Optional if specified at
■ URI (u)
the session level
■ E-mail address (e)
■ Bandwidth info (b)
■ Phone number (p)
■ Encryption key (k)
■ Connection info (c)
■ Bandwidth info (b) ■ Attributes (a)
■ Time description (t)
■ Repeat info (r)
■ Time zone adjustments (z)
■ Encryption key (k)
■ Attributes (a)

42
Internet Telephony
Subfields
■ Field = <value of subfield1> <value of subfield2>
<value of subfield3> …
■ Origin (o)
■ Username, the originator’s 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
■ o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
43
Internet Telephony
■ Connection Data
■ The network and address at which media data are to be
received
■ Network type, address type, connection address
■ c=IN 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

44
Internet Telephony
■ Attributes
■ Property attribute
■ a=sendonly
■ a=recvonly
■ value attribute
■ a=orient:landscape
■ rtpmap attribute
■ The use of dynamic payload type
■ a=rtpmap:<payload type> <encoding name>/<clock rate>
[/<encoding parameters>].
■ m=video 54678 RTP/AVP 98
■ a=rtpmap 98 L16/16000/2

45
Internet Telephony
Usage of SDP with SIP

■ SIP for the establishment of multimedia


sessions
■ SDP – a structured language for describing the
sessions
■ The entity header

46
Internet Telephony
Negotiation 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

47
Internet Telephony
48
Internet Telephony
■ Offer/answer

49
Internet Telephony
50
Internet Telephony
■ OPTIONS Method
■ Determine the capabilities
of a potential called party

51
Internet Telephony
SIP 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:

52
Internet Telephony
183 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

53
Internet Telephony
The 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

54
Internet Telephony
55
Internet Telephony
SIP 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 user’s prepaid account balance

56
Internet Telephony
SIP 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

57
Internet Telephony
58
Internet Telephony
SIP 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

59
Internet Telephony
■ Doesn’t establish a SIP dialog
■ Can be associated with an existing SIP dialog
■ Contact: header is forbidden
■ No Record-Route: or Route: header

60
Internet Telephony
61
Internet Telephony
REFER 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:

62
Internet Telephony
63
Internet Telephony
64
Internet Telephony
Reliability 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

65
Internet Telephony
■ 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

66
Internet Telephony
67
Internet Telephony
UPDATE 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

68
Internet Telephony
Integration 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
69
Internet Telephony
■ 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

70
Internet Telephony
71
Internet Telephony
■ 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

72
Internet Telephony
■ Examples
■ m=audio 4444 RTP/RTCP 0
■ a=curr: qos e2e none
■ a=des: qos mandatory e2e sendrecv

■ a=curr: qos e2e send


■ a=des: qos mandatory e2e sendrecv

■ a=curr: qos e2e sendrecv


■ a=des: qos mandatory e2e sendrecv

73
Internet Telephony
74
Internet Telephony
Usage 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
75
Internet Telephony
Call Forwarding
■ On busy
■ 486, busy here

76
Internet Telephony
Consultation Hold
■ A SIP UPDATE

77
Internet Telephony
Interworking

■ 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

78
Internet Telephony
79
Internet Telephony
80
Internet Telephony
Interworking with H.323

■ An Internet draft
■ SIP-H.323 interworking gateway

81
Internet Telephony
82
Internet Telephony
83
Internet Telephony
84
Internet Telephony
85
Internet Telephony
Summary

■ The future for signaling in VoIP networks


■ Simple, yet flexible
■ Easier to implement
■ Fit well with the media gateway control protocols

86
Internet Telephony

You might also like