Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling)...

57
Session Initiation Protocol (SIP)

Transcript of Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling)...

Page 1: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Session Initiation Protocol (SIP)

Page 2: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

What is SIP?

An application-layer protocolA control (signaling) protocol

Page 3: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP runs on top of several different transport protocols.

Page 4: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP is used for:

•creating, •modifying, and •terminating  sessions with one or more participants.

Page 5: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

These sessions include:

•Internet telephone calls,•multimedia distribution, and•multimedia conferences.

Page 6: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP works independently of underlying transport protocols.

Page 7: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP does not depend on the type of session that is being

established.

Page 8: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP invitations are used to create sessions.

Page 9: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

These SIP invitations carry session descriptions that

allow participants to agree on a set of compatible media types.

Page 10: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

What is a session?

"An exchange of data between an association of participants."

Page 11: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Sessions can be hard to establish!

• Users may move between endpoints.

• They may be addressable by multiple names.

• They may communicate in several different media - sometimes simultaneously.

Page 12: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Session Initiation Protocol (SIP) enables Internet

endpoints (called user agents) to discover one another and to agree on a characterization of a session they would like to

share.

Page 13: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP can be used with other IETF protocols to build a

complete multimedia architecture.

Page 14: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

These other protocols include:

• RTP

• RTSP

• MGCP/MEGACO

• SDP

Page 15: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Real-time Transport Protocol (RTP) RFC 1889, used for

• Transporting real-time data and

• Providing QoS feedback

Page 16: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Real-Time Streaming Protocol (RTSP)RFC 2326, used for:

• Controlling delivery of streaming media.

Page 17: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Media Gateway Control Protocol (MGCP)Also known as MEGACO

RFC 3525, used for:

• Controlling gateways to the Public Switched Telephone Network (PSTN)

Page 18: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Session Description Protocol (SDP)RFC 2327, used for:

• Describing multimedia sessions.

Page 19: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP is used in conjunction with these 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.

Page 20: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Other features

SIP can also invite participants to already existing sessions, such as multicast conferences.

Page 21: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Other features, (cont.)

Media can be added to (and removed from) an existing session.

Page 22: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Other features, (cont.)

SIP transparently supports name mapping and redirection services, which supports personal mobility - users can maintain a single externally visible identifier regardless of their network location.

Page 23: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP supports five facets of establishing and terminating multimedia

communications:

1) User location

2) User availability

3) User capabilities

4) Session setup

5) Session management

Page 24: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

(1) User location:

Determination of the end system to be used for communication.

Page 25: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

(2) User availability:

Determination of the willingness of the called party to engage in communications.

Page 26: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

(3) User capabilities:

Determination of the media and media parameters to be used.

Page 27: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

(4) Session setup:

"Ringing", establishment of session parameters at both called and calling party.

Page 28: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

(5) Session management:

Including transfer and termination of sessions, modifying session parameters, and invoking services.

Page 29: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP works with both IPv4 and IPv6.

Page 30: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP cannot, and does not, provide any kind of network

resource reservation capabilities.

Page 31: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP makes use of elements called proxy servers.

Page 32: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

What does a proxy server do?

Page 33: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP Proxy servers

• help route requests to the user's current location,

• authenticate and authorize users for services,

• implement provider call-routing policies, and

• provide features to users.

Page 34: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP identity

Page 35: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

A SIP identity is a type of Uniform Resource Identifier

(URI).

Example:sip:[email protected]

Page 36: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP also provides a secure URI (SIPS URI).

 Example:

sips:[email protected]

Page 37: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

When using SIPS, all SIP messages are encrypted and

sent via Transport Layer Security (TLS).

Page 38: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registration

SIP provides a registration function that allows users to upload their current locations

for use by proxy servers.

Page 39: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registration, (cont.)

• The user registers with the registrar server.

• The registrar is often co-located with the proxy server.

• It is an important concept that the distinction between types of SIP servers is logical, not physical.

Page 40: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registration, (cont.)

Upon initialization, and at periodic intervals, the SIP phone sends REGISTER messages to the SIP registrar.

Page 41: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registration, (cont.)

The REGISTER messages associate the SIP or SIPS URI (sip:[email protected]) with the machine into which the user is currently logged.

Page 42: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registration, (cont.)

The registrar writes this association, also called a binding, to a database, called the location service, where it can be used by the proxy.

Page 43: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registration, (cont.)

The user is not limited to registering from a single device.

Page 44: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registration, (cont.)

Similarly, more than one user can be registered on a single device at the same time.

Page 45: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Let's look at the call process...

Page 46: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

The INVITE (message F1 in Figure 1) might look like this: 

INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhdsMax-Forwards: 70To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected]: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 142

 (Alice's SDP not shown)

Page 47: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

The 200 (OK) (message F9 in Figure 1) might look like this as Bob sends it out: 

SIP/2.0 200 OKVia: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bKnashds8;received=192.0.2.3Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds ;received=192.0.2.1To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected]: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 131 (Bob's SDP not shown)

Page 48: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Okay, let's review the SIPnetwork elements...

Page 49: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Session Initiation Protocol

The protocol works on a client-server model consisting of user agents, proxy server, registrars, location server and redirect server as network elements.

Page 50: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

User Agent

User agent functions as the initiator of a SIP request (user agent client) or returns the responses (user agent server) on behalf of the end user.

Page 51: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registrar

Registrars, typically co-located with proxy or redirect server, accept the registration requests from the users.

Page 52: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Registrars

Page 53: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Proxy ServerProxy server is an intermediate entity receiving requests from the client (acting as a Server) and forwards or re-initiates the request (acting as a Client) to the other servers. A proxy server can either be stateful or stateless. When stateful, it remembers the incoming requests and the associated outgoing requests and co-ordinates the responses accordingly.

Page 54: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

SIP Proxy Servers

Page 55: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Redirect Server

Redirect server returns the destination addresses to the receiving client to route them directly.

Page 56: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

Location Server

Location server is used by the SIP redirect or proxy server to obtain information about the called party's possible locations. This may come from the SIP server or other protocols (non-SIP) when externally located.

Page 57: Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.

The End

Source: RFC 3261

This presentation was prepared by Bob Young