SIP Session Initiation Protocol Short Introduction Artur Hecker, ENST

Preview:

Citation preview

SIP

Session Initiation Protocol

Short Introduction

Artur Hecker, ENST

SIP: Motivation

Need for a signalization protocolNew applications with the same needs:

IP telephony, video conferencing

How can you: address the opponent? find the opponent? negotiate parameters? manage the session?

SIP: Alternative visions

ITU-T: H.323 recommendation The first and most deployed vision Different versions since 1996 (the recent - V3) Defines the whole suite of components with the

roles, codecs, interactions, etc. HEAVY!

Megaco: MGCP Multimedia Gateway Control Protocol RFC 2705

SIP: RFC 2543

Application-layer signaling protocol for: Session creation/modification/termination Parameter set agreement User mobility by proxying and redirecting Current location registration

SIP is: Transport layer independent Text-based and related to existent protocols

(inheritance of SMTP and HTTP elements)

SIP: Main principles

Internet-protocol: client-serverMessages and headers follow the HTTP

and SMTP schemes Client sends requests, server answers with

state responses (HTTP-like) Addressing uses the familiar format:

sip:sales@example.comSimplicity, transparency

Designed to be an “easy protocol”

SIP: Components

Listen at the default port UDP/5060 Can optionally use TCP

SIP-Clients: UAC+UAS

SIP-Servers: Proxy Registration Server Redirect Server

SIP: Simple call scenario

sip:chef@enst.fr sip:oups@enst.fr

UAC UAS

INVITE sip:oups@enst.fr SIP/2.0

1

ACK sip:oups@enst.fr SIP/2.0

SIP/2.0 200 OK2

3

BYE sip:oups@enst.fr SIP/2.0

4

media sessionmedia session

SIP: Messages (1)

SIP/2.0 200 OKVia: SIP/2.0/UDP rois.enst.frFrom: P. Chef <sip:chef@enst.fr>To: <sip:oups@enst.fr>Call-ID: 1234567@rois.enst.frCSeq: 1 INVITEContact: sip:pauvre@travail.enst.frContent-Type: application/sdpContent-Length: …

v=0o=pauvre 14234 41322 IN IP4 …s=Je suis en vacancesc=IN IP4 travail.enst.frm=audio 6043 RTP/AVP 0 3

INVITE sip:oups@enst.fr SIP/2.0Via: SIP/2.0/UDP rois.enst.frFrom: P. Chef <sip:chef@enst.fr>To: M. Pauvre <sip:oups@enst.fr>Call-ID: 1234567@rois.enst.frCSeq: 1 INVITESubject: Venez dans mon bureauContent-Type: application/sdpContent-Length: …

v=0o=chef 5432 7654 IN IP4 10.1.1.1s=Venez dans mon bureauc=IN IP4 rois.enst.frm=audio 1050 RTP/AVP 0 3 4 5

1

2

SIP: Messages (2)

ACK sip:pauvre@travail.enst.fr SIP/2.0Via: SIP/2.0/UDP rois.enst.frFrom: P. Chef <sip:chef@enst.fr>To: M. Pauvre <sip:oups@enst.fr>Call-ID: 1234567@rois.enst.frCSeq: 1 ACK

BYE sip:pauvre@travail.enst.fr SIP/2.0Via: SIP/2.0/UDP rois.enst.frFrom: P. Chef <sip:chef@enst.fr>To: M. Pauvre <sip:oups@enst.fr>Call-ID: 1234567@rois.enst.frCSeq: 2 BYE

4

3

SIP: Methods

INVITE invitation to a session, dialogue and session updates

ACK response confirmation to INVITE

OPTIONS query the server for its possibilities

BYE release the call

CANCEL Cancel the pending request

REGISTER Registration of a new location at some registration server

SIP: Response classes

1xx: Informational In-call-setup informational responses

2xx: Success Succeeded, done, accepted

3xx: Redirection Further action needed to complete request

4xx: Client Error Bad syntax or request can’t be fulfilled at the server

5xx: Server Error Server can’t fulfill a valid request

6xx: Global Failure The request can’t be fulfilled at any server

SIP: Headers

Usage and meaning depend on the method Value according to syntax and current context Different categories:

general, entity, request, response end-to-end and hop-by-hop

Examples: Hide Encryption Expires Proxy-Authenticate Proxy-Authorization WWW-Authenticate

SIP: Components: Registration & Redirect Servers

INVITE sip:chef@rois.enst.fr

302 Moved temporarilyContact: patrick@travail.enst.fr:3080;transport=udp

REGISTER sip:register.enst.fr SIP/2.0Via: SIP/2.0/UDP travail.enst.frFrom: sip:chef@enst.frTo: sip:chef@enst.frCall-ID: 12314@travail.enst.frCSeq: 1 REGISTERContact: <sip:patrick@travail.enst.fr:3080;transport=udp>Expires: 3600

register

travail

enst.fr

SIP: Components:General proxy

SIP - trapezoid

INVITE sip:some@lip6.frVia: SIP/2.0/UDP rois.enst.fr

enst.fr lip6.fr

INVITE sip:some@lip6.frVia: SIP/2.0/UDP proxy.enst.frVia: SIP/2.0/UDP rois.enst.fr

INVITE sip:sb@mobile.lip6.frVia: SIP/2.0/UDP sip.lip6.frVia: SIP/2.0/UDP proxy.enst.frVia: SIP/2.0/UDP rois.enst.fr

sip

proxy

rois

mobile

SIP: Security

Authentication Basic: clear text password Digest: challenge/response with MD5 PGP: using PK cryptography

Encryption e2e of the message body and some fields hbh entire packet encryption hbh of the Via: fields to hide the route

SIP: Presence & Future

Problems: Dialogue and session: no clear separation, INVITE used to

adjust both states (will be changed in the new RFC) No early media (UPDATE method) Security problems: PGP hardly used, digest not proven to be

secure, basic has severe problems (S/MIME, TLS, IPSec currently widely discussed, SIP-EAP draft released)

Routing: too strict (Loose Routing proposed in the new draft) etc.

New RFC expected till the middle of March It will be the largest RFC ever released… Simple?

SIP: more…

Handley et al., Session Initiation Protocol, RFC 2543 S. Donovan, The INFO Method for SIP, RFC 2976 IETF, SIP Working Group Charter,

http://www.ietf.org/html.charters/sip-charter.html IETF, SIPPING Working Group Charter,

http://www.ietf.org/html.charters/sipping-charter.html J. Rosenberg et al., Session Initiation Protocol,

draft-ietf-sip-rfc2543bis-09.txt A. Johnston et al., SIP Call Flow Examples,

draft-ietf-sip-call-flows-05.txt

Recommended