RFC 3261+ Session Initiation Protocol (SIP)

Download Report

Transcript RFC 3261+ Session Initiation Protocol (SIP)

RFC 3261+
Session Initiation Protocol (SIP)
AN Lab
May 19, 2006
Kim, YangJung
• Presentation Outline
₪ ₪PART I ₪
₪
₪
₪
₪
What is SIP?
SIP Protocol Updates
SIP Protocol Structure
SIP Users / Work groups
₪ ₪PART II ₪
₪
₪
₪
₪
₪
₪
SIP in a similar Domain
SIP in a dissimilar Domain
Proxy servers in SIP
Complimentary protocols in SIP
Concerns about SIP
SIP a new generation of service
Advanced Network Laboratory
2
Kim, YangJung
• What is SIP?
₪ SIP (Session Initiation Protocol) is an application-layer control
protocol that can establish, modify and terminate multimedia
sessions such as Internet telephony calls (VOIP), multimedia
distribution, multimedia conferences, chat, interactive games and
virtual reality.
₪ SIP is very much like HTTP, the Web protocol, or SMTP.
Messages consist of headers and a message body.
SIP is a text-based protocol that uses UTF-8 encoding
SIP uses port 5060 both for UDP and TCP. SIP may use other
transports
₪ SIP does not provide services. Rather, SIP provides primitives
that can be used to implement different services.
Advanced Network Laboratory
3
Kim, YangJung
• What is SIP? (cont.)
₪ SIP supports 5 facets of establishing and terminating
multimedia communications:
User location: determination of the end system to be used
for communication
User availability: determination of the willingness of the
called party to engage in communications
User capabilities: determination of the media and media
parameters to be used
Session setup: "ringing", establishment of session
parameters at both called and calling party
Session management: including transfer and termination of
sessions, modifying session parameters, and invoking
services
Advanced Network Laboratory
4
Kim, YangJung
• SIP Protocol updates
• 1996
– Mark Hadley’s SIP(Session Invitation Protocol)
– Henning Schulzrinne’s SCIP(Simple Conference Control
Protocol)
• 1999. 3.
– RFC 2543 by IETF MMUSIC WG
• 1999. 9.
– IETF SIP WG
• 2000. 6
– RFC 2543bis
• 2002. 6
– RFC 3261
Advanced Network Laboratory
5
Kim, YangJung
• SIP Protocol updates
₪ RFC2543: Session Initiation Protocol [Obsolete]
It is also an application-layer control (signaling) protocol for
creating, modifying and terminating sessions with one or more
participants. These sessions include Internet multimedia
conferences, Internet telephone calls and multimedia distribution.
Members in a session can communicate via multicast or via a
mesh of unicast relations, or a combination of these.
₪ RFC3261: Session Initiation Protocol (SIP)
₪ RFC3262: SIP Reliable provisional response messaging: It is an
extension to the SIP providing reliable provisional response
messages. This extension uses the option tag 100rel and defines
the Provisional Response ACKnowledgement (PRACK) method.
₪ RFC3263: Locating SIP server: It uses DNS procedures to allow
a client to resolve a SIP Uniform Resource Identifier (URI) into
the IP address, port, and
transport protocol of the next
hop to contact. It also uses DNS to allow a server to send a
response to a backup client if the primary client has failed.
Advanced Network Laboratory
6
Kim, YangJung
• SIP Protocol updates (cont.)
₪ RFC3264: An Offer/Answer Model with the Session Description
Protocol (SDP): In the model, one participant offers the other a
description of the desired session from their perspective, and the
other participant answers with the desired session from their
perspective. This offer/answer model is most useful in unicast
sessions where information from both participants is needed for
the complete view of the session. The offer/answer model is
used by protocols like the Session Initiation Protocol (SIP).
₪ RFC3265: Session Initiation Protocol (SIP)-Specific Event
Notification: It is an extension to the SIP. The purpose of this
extension is to provide an extensible framework by which SIP
nodes can request notification from remote nodes indicating that
certain events have occurred.
₪
We need to note that RFC3265 is NOT intended to be a
general-purpose infrastructure for all classes of event
subscription and notification.
Advanced Network Laboratory
7
Kim, YangJung
• SIP Protocol structure
₪ SIP is structured as a layered
protocol.
₪ Each layer is independent but
loosely coupled
₪ Lower layer is encoded in BNF
₪ Transport layer defines how
client and server send and
receives responses
₪ Transaction layer handles
application-layer
retransmissions, matching of
responses to requests, and
application-layer timeouts.
₪ Transaction users comprise all
SIP entities except stateless
proxies.
Advanced Network Laboratory
Transaction User (TU)
Transaction
Transport
Syntax and Encoding
8
Kim, YangJung
• SIP Protocol structure
₪ SIP protocol defines several methods:
₪ Methods in SIP RFC
 INVITE: When a user agent client desires to initiate a session (for
example, audio, video, or a game), it formulates an INVITE request and
sends it to one or more user agent server (UAS).
 re-INVITE: An INVITE request sent within an existing dialog is known as
a re-INVITE to changing addresses or ports, adding a media stream,
deleting a media stream, and so on.
 REGISTER: Registration entails sending a REGISTER request to a
special type of UAS known as a Registrar/Location server.
 ACK: Used to facilitate reliable message exchange for INVITEs.
 CANCEL: Used to cancel an invitation.
 BYE: The BYE request is used to terminate a specific session or
attempted session.
 OPTIONS: The SIP method OPTIONS allows a UA to query another UA
or a proxy server as to its capabilities. This allows a client to discover
information about the supported methods, content types, extensions,
codecs, etc. without "ringing" the other party.
Advanced Network Laboratory
9
Kim, YangJung
• SIP Protocol structure (cont.)
₪ Methods extensions from other RFC’s
 SIP
 SIP
 SIP
 SIP
 SIP
 SIP
 SIP
 SIP
 SIP
 SIP
 SIP
method info: Extension in RFC 2976
method notify: Extension in RFC 2848 PINT
method subscribe: Extension in RFC 2848 PINT
method unsubscribe: Extension in RFC 2848 PINT
method update: Extension in RFC 3311
method message: Extension in RFC 3428
method refer: Extension in RFC 3515
method prack: Extension in RFC 3262
Specific Event Notification: Extension in RFC 3265
Message Waiting Indication: Extension in RFC 3842
method PUBLISH: Extension is RFC 3903
Advanced Network Laboratory
10
Kim, YangJung
• SIP Protocol structure (cont.)
₪ SIP responses codes
 1xx: Provisional — request received, continuing to process the
request;
 2xx: Success — the action was successfully received, understood,
and accepted;
 3xx: Redirection — further action needs to be taken in order to
complete the request;
 4xx: Client Error — the request contains bad syntax or cannot be
fulfilled at this server;
 5xx: Server Error — the server failed to fulfill an apparently valid
request;
 6xx: Global Failure — the request cannot be fulfilled at any server.
Advanced Network Laboratory
11
Kim, YangJung
• SIP Protocol structure (cont.)
₪ SIP responses example with SDP

Advanced Network Laboratory
12
Kim, YangJung
• SIP Architecture
₪ Fundamental Message Procedures
Request
SIP Redirect
Server
Response
Location Service
2
Location
Server
3
5
4
1
11
6
11
12
7
SIP Proxy
10
8
SIP Client
(UAC:User Agent Client)
Advanced Network Laboratory
9
SIP Proxy
SIP Client
(User Agent Server)
13
Kim, YangJung
• SIP Architecture (E-to-E)
₪ End-to-End Scenario
Advanced Network Laboratory
14
Kim, YangJung
• SIP Users / Workgroups
₪ IP Telephony (VoIP and beyond)
 AVT - Audio/Video Transport (RTP)
 http://www.ietf.org/html.charters/avt-charter.html
 IPTEL- IP Telephony (CPL, GW location)
 SIP- signaling for call setup
 MMUSIC– Multiparty Multimedia Session Control
 (SIP, SDP, conferencing)
 SIPPING- Session Initiation Proposal Investigation
 SIP
 Vonage
Advanced Network Laboratory
15
Kim, YangJung
• SIP Users / Workgroups (cont.)
₪ Instant Messaging and Presence
 IMPP - Instant Messaging and Presence Protocol
 SIMPLE - SIP for Instant Messaging and Presence
 Leveraging Extensions
 XMPP - open, XML-based protocol for near real-time
 extensible messaging and presence
₪ SIP typically is used over UDP or TCP,
₪
₪
₪
₪
it could, without technical changes, be run
over IPX, or carrier pigeons, frame relay,
ATM AAL5 or X.25, in rough order of
desirability.
Advanced Network Laboratory
16
Kim, YangJung
• SIP
₪ ₪PART II ₪
Advanced Network Laboratory
17
Kim, YangJung
• SIP Operation
Alice’s
softphone
INVITE F1
100 F3
Bob’s
SIP Phone
biloxy.com
proxy
atlanta.com
proxy
INVITE F2
100 F5
INVITE F4
180 F6
180 F7
180 F8
200 OK F10
200 OK F9
200 OK F11
ACK F12
Media Session
BYE F13
200 OK F14
Advanced Network Laboratory
18
Kim, YangJung
• SIP in a similar Domain
₪
3
4
2
5
SIP Soft Client
Phone
USER B
“Callee”
6
Domain A
Register and Location Service
7
1
Domain A
SIP Proxy Server
SIP Phone
1. Call USER B
USER A
“Caller”
2. Query “Where is USER B?”
3. Response “USER B SIP address”
4. ‘Proxied’ Call
5. Response
6. Response
NON-SIP Queried (i.e. Database Lookup )
SIP Signaling
7. Multimedia Channel established
Advanced Network Laboratory
RIP
19
Kim, YangJung
• SIP in a dissimilar Domain
₪
DOMAIN A.COM
SIP Soft Client
Phone
SIP Phone
1
USER A
“Caller”
Domain A
SIP Proxy Server
Domain A
Register and Location Service
10
4
11
2
9
3
8
7
USER B
“Callee”
6
SIP Phone
DOMAIN B.COM
Advanced Network Laboratory
Domain B
SIP Proxy Server
5
Domain B
Register and Location Service
20
SIP Redirect Server
Kim, YangJung
• SIP in a dissimilar Domain
1. Call USER B
2. Query “How to get to USER B, DOMAIN B?”
3. Response “Address of Proxy controller for
Domain.”
4. Call “Proxied” to SIP Proxy for Domain B.
5. Query “Where is USER B?”
6. USER B’s address
7. Proxied call
8. Response
9. Response
10. Response
11. Multimedia Channel established
Advanced Network Laboratory
21
Kim, YangJung
• Proxy Servers in SIP
₪ SIP is a HTTP-like, textual, client server protocol, using email – like
address.
₪ Proxy servers take care of setting up sessions betweens users.
₪ Signals and media takes different path
DNS SRV Query? iptel.org
Reply: IP Address of iptel.org SIP server
INVITE: sip:[email protected]
From: sip:[email protected];tag=12
To: sip: [email protected]
Call-ID: [email protected]
INVITE: sip:[email protected]
From: sip:[email protected];tag=12
To: sip: [email protected]
Call-ID: [email protected]
SIP Phone
OK 200
OK 200
From: sip:[email protected];tag=12
From: sip:[email protected];tag=12
To: sip: [email protected]; tag 34SIP Proxy Server
To: sip: [email protected]; tag 34
Call-ID: [email protected]
Call-ID: [email protected]
[email protected]
Sip:[email protected]
Media Stream
Advanced Network Laboratory
22
Kim, YangJung
• Proxy Servers in SIP (cont.)
₪Proxy servers maintain
central role in SIP
network.
SMS Gateway
PSTN Gateway
Applications
SIP Proxy Server
IP Phone pool
Advanced Network Laboratory
Other Domains
₪They glue SIP
components such as
phones, gateways,
applications and other
domains.
₪They provide place for
service implementation
(missed calls, forwarding,
screening, etc.) and
service access control
23
Kim, YangJung
• Complimentary protocols in SIP
₪ SIP is not a vertically integrated communications system. SIP is rather a
component that can be used with other IETF protocols to build a
complete multimedia architecture. Typically, these architectures will
include protocols are:
Real-time Transport Protocol (RTP) (RFC 1889): for transporting realtime data and providing QoS feedback.
Real-Time streaming protocol (RTSP) (RFC 2326): for controlling
delivery of streaming media.
Media Gateway Control Protocol (MEGACO) (RFC 3015): for
controlling gateways to the Public Switched Telephone Network (PSTN)
and
Session Description Protocol (SDP) (RFC 2327): for describing
multimedia sessions.
• Therefore, SIP should be used in conjunction with other protocols in
order to provide complete services to the users. However, the basic
functionality and operation of SIP does not depend on any of these
protocols.
Advanced Network Laboratory
24
Kim, YangJung
• Comparison SIP and H.323
SIP
speed
multicast
URL usage
High (simplicity , use
UDP)
Yes
H.323
Low (complexity, use
TCP)
No
URL itself
(H.225)URL in
H.323protocol
Call prioritization
The priority header field Overlook
Encoding
Text encoding
Advanced Network Laboratory
25
Binary encoding(ASN.1)
Kim, YangJung
• Concerns about SIP
₪ NAT Traversal: SIP will make networks more vulnerable, the
source may be the firewall and NAT (Network Address
Translator) issue. SIP communication doesn't traverse most
installed firewalls and NATs.
₪ Built-in delay: VOIP/SIP by it's nature has some built in
delay. It digitizes small blocks of your conversation,
compresses it, sends it to a PBX in packet form which
intern converts it from one format to another if needed,
then sends the packets on to their destination which
decompress and converts it back into voice.
Advanced Network Laboratory
26
Kim, YangJung
• SIP a new generation of
service
₪ Virtually
eliminates long distance cost
₪ More features available in VoIP than conventional phones.
₪ For businesses, VoIP is a great way to manage operating
costs in the office giving you economical, reliable, scalable,
non pro priority phone system options.
₪ SIP makes it easier to develop and debug applications
leading to lower product costs for equipment providers.
₪SIP a new generation of service to the
future .!
Advanced Network Laboratory
27
Kim, YangJung
• References
₪ Iptel.org http://www.iptel.org
₪ RFC search engine http://www.rfc-editor.org/cgibin/rfcsearch.pl
₪ SIP http://www.cs.columbia.edu/sip/overview.html
₪ SIP Knowledge http://www.sipknowledge.com/SIP_RFC.htm
₪ VoIP Info. http://www.voip-info.org/wiki-SIP
Advanced Network Laboratory
28
Kim, YangJung
• Q & A Session
₪ ₪Any Questions?
₪
Advanced Network Laboratory
29
Kim, YangJung