Você está na página 1de 87

Session Initiation Protocol (SIP)

Extrado del curso Internet Telephony de MFC, Taiwan

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

The Popularity of SIP


Originally Developed in the MMUSIC

A separate SIP working group RFC 3261 Many developers The VoIP signaling in the future Test products against each other Organized by SIP Forum
3

SIP + MGCP/MEGACO

back-off or SIPit (SIP Interoperability Tests)


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-0823 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
4

SIP Architecture
A signaling protocol

The setup, modification, and tear-down of multimedia sessions Describe the session characteristics

SIP + SDP

Separate signaling and media streams

SIP Network Entities


Clients

User agent clients Application programs sending SIP requests Responds to clients requests

Servers

Clients and servers may be in the same platform Proxy

Acts as both clients and servers


6

Four types of servers

Proxy servers

Handle requests or forward requests to other servers Can be used for call forwarding

Redirect servers

Map the destination address to zero or more new addresses Do not initiate any SIP requests

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 Accepts SIP REGISTER requests

A registrar

Indicating the user is at a particular address

Typically combined with a proxy or redirect server

SIP Call Establishment


It is simple

A number of interim responses

10

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 No need to subscribe call features

The user has control of call handling

11

Call Completion to Busy Subscriber service

12

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

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

SIP Requests
method SP request-URI SP SIP-version CRLF request-URI

The address of the destination


INVITE, ACK, OPTIONS, BYE, CANCLE, REGISTER

Methods

extensions: INFO, REFER, UPDATE, 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

INVITE

15

BYE

Terminate a session Can be issued by either the calling or called party Query a server as to its capabilities

Options

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

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 RFC 2976 Transfer information during an ongoing session

INFO

DTMF digits account balance information Mid-call signaling information generated in another network

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


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

status code

Should be ACKed

18

One number service

19

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

Message Headers
Provide further information about the message

+information elements To:header in an INVITE

E.g.,

The called party The caling party

From:header

Four main categories

General, request, response, and entity headers

21

General Headers

Used in both requests and responses Basic information

E.g., To:, From:, Call-ID:, A URL for future communication May be different from the From: header

Contact:

Requests passed through proxies

22

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

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

Example of SIP Message Sequences


Registration

Via: Call-ID:

host-specific Zero, no msg body Avoid ambiguity TTL 0, unreg *


25

Content-Length:

Cseg:

Expires:

Contact:

Invitation
A two-party call

Subject:

optional

Content-Type:

application/sdp

26

27

Termination of a Call
Cseq:

Has changed

28

Redirect Servers
An alternative address

302, Moved temporarily Same Call-ID Cseq ++

Another INVITE

29

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

31

Proxy state

Can be either stateless or stateful Record-Route:

The messages and responses may not pass through the same proxy

Use Contact: In particular, for a stateful proxy

A Proxy might require that it remains in the signaling path

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

Forking Proxy
fork requests A user is registered at several locations

;branch=xxx

33

34

The Session Description Protocol


The message body

SDP, RFC 2327 Session Level Info


The Structure of SDP

Name The originator The time Media type Port number Transport protocol Media format
35

Media Level Info


SDP session description structure

36

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

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> <port> <transport> <fmt list> Media type The transport port The transport protocol The media format, an RTP payload format
38

m=(media)

Optional Fields (1)

i=(session information)

A text description At both session and media levels Where further session information can be obtained Only at session level

u=(URI of description)

e=(e-mail address)

Who is responsible for the session Only at the session level


Only at the session level
39

p=(phone number)

Optional Fields (2)

c=(connection information)

Connection type, network type, and connection address At session or media level In kilobits per second At session or media level

b=(bandwidth information)

r=<repeat interval> <active duration> <list of offsets from start- time>


For regularly scheduled session How often and how many times
40

Optional Fields (3)

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


Describe additional attributes
41

a=(attributes)

Ordering of Fields
Session Level

Media 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 description (m) Media info (i) Connection info (c)

Optional if specified at the session level

Bandwidth info (b) Encryption key (k) Attributes (a)

42

Subfields (1)

Field = <value of subfield1> <value of subfield2> <value of subfield3> 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 IP4, IP6

address type

Address, a fully-qualified domain name or the IP address o=mhandley 2890844526 2890842807 IN IP4 43 126.16.64.4

Subfields (2)

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 type

Media Information

Audio, video, application, data, or control

Port, 1024-65535 Format


List the various types of media RTP/AVP payload types G.728, GSM, G.711

m= audio 45678 RTP/AVP 15 3 0

44

Subfields (3)

Attributes

Property attribute

a=sendonly a=recvonly a=orient:landscape 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

value attribute

rtpmap attribute

Usage of SDP with SIP


SIP for the establishment of multimedia sessions SDP a structured language for describing the sessions

The entity header

46

Negotiation of Media
Fig 5-15

G.728 is selected 488 or 606 Not Acceptable A Warning header

If a mismatch

INVITE with multiple media streams

Unsupported should also be returned With a port number of zero

47

48

Offer/answer

49

50

OPTIONS Method

Determine the capabilities of a potential called party

51

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

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) As soon as the called user answers


53

The temporary media stream will be terminated

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) enumerates all the extensions supported by the UAC or UAS Included in both requests and responses

The Supported header


BYE, CANCEL, INVITE, OPTIONS and REGISTER Should not be included in the ACK The UAS needs a particular extension to process the 54 request

421, extension required

55

SIP INFO Method


A new SIP method RFC 2976

The transfer of information in the middle of a call DTMF digits, account-balance information, midcall signaling information (from PSTN) A powerful, flexible tool to support new services e.g., the users prepaid account balance

56

SIP Event Notification


SIP-specific event notification

be informed of some event(s) RFC 3265 subscribe to certain event Event: header inform the user 200 (OK) response
57

SUBSCRIBE

NOTIFY

58

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 a message body in the form text/plain, or message/cpim (common presence and instant message) using XML
59

MESSAGE request, RFC 3994

Doesnt establish a SIP dialog Can be associated with an existing SIP dialog Contact: header is forbidden No RecordRoute: or Route: header

60

61

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 An extension

202 (accepted)

A SIP message is tunneled within a SIP message Refer-by:

62

63

64

Reliability of Provisional Responses


Provisional Responses

100 (trying), 180 (ringing), 183 (session in progress) Are not answered with an ACK Unreliable

If the messages is sent over UDP

Lost provisional response may cause problems when interoperating with other network

180, 183 Q931 alerting or ISUP ACM To drive a state machine

65

RSeq

Response seq +1, when retxm

Rack

Response ACK
Prov Resp ACK 100rel Apply to 100 hop-by-hop

PRACK

the option tag

Should not

66

67

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

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 Resources reservation is needed The user should not yet be alerted

A new SIP header in the INVITE



69

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

71

The preconditions/requirements in the SDP

Three status

desired, current, and confirmed end-to-end (e2e), local, and remote send, recv, and sendrecv mandatory, optional, none and failure
72

Resource reservation

Purpose

Strength

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

74

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.


Click-to-call applications

SIP address is a URL

Supplementary Custom Local Area Signaling Service (CLASS) services

Call waiting, call forwarding, multi-party calling, call screening

75

Call Forwarding
On busy 486, busy here

76

Consultation Hold

A SIP UPDATE

77

Interworking
PSTN Interworking

A SIP URL A network gateway Fig. 5-27

SIP to PSTN call PSTN to SIP call

Fig. 5-28

PSTN SIP PSTN


MIME media types For ISUP and QSIG


78

79

80

Interworking with H.323


An Internet draft SIP-H.323 interworking gateway

81

82

83

84

85

Summary
The future for signaling in VoIP networks

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

86

Muchas gracias
Extrado del curso Internet Telephony de MFC, Taiwan

Ing. Fernando Fontn


Santa Cruz de la Sierra, Bolivia Junio de 2006

Você também pode gostar