Chap5 PartI
Chap5 PartI
Chapter 5
Introduction
Internet Telephony 2
The Popularity of SIP
Originally Developed in the MMUSIC (Multiparty
Multimedia Session Control)
A separate SIP working group
RFC 2543
Many developers
The latest version: RFC 3261
SIP + MGCP/MEGACO
The VoIP signaling in the future
“bake-off”
Various vendors come together and test their products against
each other
to ensure that they have implemented the specification correctly
to ensure compatibility with other implementations
Internet Telephony 3
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
Internet Telephony 4
SIP Network Entities [1/4]
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
Internet Telephony 5
SIP Network Entities [2/4]
Four types of servers
Proxy servers
Handle requests or forward requests to other servers
Can be used for call forwarding, time-of-day routing, or
follow-me services
Internet Telephony 6
SIP Network Entities [3/4]
Redirect servers
Map the destination address to zero or more new
addresses
Internet Telephony 7
SIP Network Entities [4/4]
A user agent server
Accepts SIP requests and contacts the user
The user responds → an SIP response
A SIP device
E.g., a SIP-enabled telephone
A registrar
Accepts SIP REGISTER requests
Indicating that the user is at a particular address
Personal mobility
Typically combined with a proxy or redirect server
Internet Telephony 8
SIP Call Establishment
It is simple, which contains a number of interim
responses.
Internet Telephony 9
SIP Advantages
Internet Telephony 10
Call Completion to Busy Subscriber Service
Internet Telephony 11
Overview of SIP Messaging Syntax
Text-based
Similar to HTTP
Disadvantage – more bandwidth consumption
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 indicates the success or
failure of a given request.
Internet Telephony 12
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 most common structure for the message body
is SDP (Session Description Protocol).
Could include an ISDN User Part message
Examined only at the two ends
Internet Telephony 13
SIP Requests [1/2]
Internet Telephony 14
SIP Requests [2/2]
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
CANCEL
Terminate a pending request
E.g., an INVITE did not receive a final response
REGISTER
Log in and register the address with a SIP server
“all SIP servers” – multicast address (224.0.1.1750)
Can register with multiple servers
Can have several registrations with one server
Internet Telephony 15
“One number” service
Internet Telephony 16
SIP INFO Method
Internet Telephony 17
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
Internet Telephony 18
SIP Addressing
Internet Telephony 19
Message Headers
Internet Telephony 20
General Headers
Used in both requests and responses
Basic information
E.g., To:, From:, Call-ID: (uniquely identifies a specific
invitation to a session), …
Contact:
Provides a URL for use in future communication regarding
a particular session
Examples 1: In a SIP INVITE, the Contact header might
be different from the From header.
An third-party administrator initiates a multiparty session.
Example 2: Used in response, it is useful for directing
further requests directly to the called user.
Example 3: It is used to indicate a more appropriate
address if an INVITE issued to a given URI failed to reach
the user.
Internet Telephony 21
Request Headers
Apply only to SIP requests
Addition information about the request or the client
E.g.,
Subject:
Priority:, urgency of the request (emergency, urgent,
normal, or non-urgent)
Response Headers
Further information about the response that cannot
be included in the status line
E.g.,
Unsupported
Retry-After
Internet Telephony 22
Entity Headers
Indicate the type and format of information
included in the message body
Content-Length: the length of the message
body
Content-Type: the media type of the message
body
E.g., application/sdp
Content-Encoding: for message compression
Content Disposition: how a message part
should be interpreted
session, alert …
Internet Telephony 23
Examples of SIP Message Sequences
Registration
Via:
From: and To:
Call-ID:
host-specific
Contact: (for future SIP
message transmission)
*
Content-Length:
Zero, no msg body
CSeq:
A response to any request
must use the same value of
CSeq as used in the request.
Expires:
TTL
0, unreg
Internet Telephony 24
Invitation
A two-party call
Subject:
optional
Content-Type:
application/sdp
A dialog ID
To identify a peer-to-peer
relationship between two
user agents
Tag in From
Tag in To
Call-ID
Termination of a Call
Cseq:
Has changed
Internet Telephony 26
Redirect Servers
An alternative address
302, Moved temporarily
Another INVITE
Same Call-ID
CSeq ++
Proxy Servers
Sits between a user-agent client and the far-end user-
agent server
Numerous proxies can reside in a chain between the
caller and callee.
The last proxy may change the Request-URI.
Via:
The path taken by a request
Loop detected, 482 (status code)
For a response
The 1st Via: header
Checked
Removed
Branch: used to distinguish between multiple responses to the
same request
Forking Proxy: Issue a single request to multiple destinations
Internet Telephony 28
Proxy state
Internet Telephony 30
Forking Proxy
“fork” requests
A user is registered at several locations
;branch=xxx
In order to handle such forking, a proxy must be
stateful.
Internet Telephony 31