Professional Documents
Culture Documents
Chapter 5
Introduction
2
Internet Telephony
The Popularity of SIP
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
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
20
Internet Telephony
Message Headers
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
35
Internet Telephony
■ SDP session description structure
36
Internet Telephony
SDP Syntax
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
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
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
56
Internet Telephony
SIP Event Notification
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
73
Internet Telephony
74
Internet Telephony
Usage of SIP for Features/Services
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
86
Internet Telephony