170 likes | 332 Views
SIP. Session Initiation Protocol Short Introduction. Artur Hecker, ENST. SIP: Motivation. Need for a signalization protocol New applications with the same needs: IP telephony, video conferencing How can you: address the opponent? find the opponent? negotiate parameters?
E N D
SIP Session Initiation Protocol Short Introduction Artur Hecker, ENST
SIP: Motivation • Need for a signalization protocol • New 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-server • Messages 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.com • Simplicity, 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
INVITE sip:oups@enst.fr SIP/2.0 SIP/2.0 200 OK ACK sip:oups@enst.fr SIP/2.0 media session BYE sip:oups@enst.fr SIP/2.0 SIP: Simple call scenario 1 UAC UAS 2 sip:chef@enst.fr sip:oups@enst.fr 3 4
SIP: Messages (1) INVITE sip:oups@enst.fr SIP/2.0 Via: SIP/2.0/UDP rois.enst.fr From: P. Chef <sip:chef@enst.fr> To: M. Pauvre <sip:oups@enst.fr> Call-ID: 1234567@rois.enst.fr CSeq: 1 INVITE Subject: Venez dans mon bureau Content-Type: application/sdp Content-Length: … v=0 o=chef 5432 7654 IN IP4 10.1.1.1 s=Venez dans mon bureau c=IN IP4 rois.enst.fr m=audio 1050 RTP/AVP 0 3 4 5 2 SIP/2.0 200 OK Via: SIP/2.0/UDP rois.enst.fr From: P. Chef <sip:chef@enst.fr> To: <sip:oups@enst.fr> Call-ID: 1234567@rois.enst.fr CSeq: 1 INVITE Contact: sip:pauvre@travail.enst.fr Content-Type: application/sdp Content-Length: … v=0 o=pauvre 14234 41322 IN IP4 … s=Je suis en vacances c=IN IP4 travail.enst.fr m=audio 6043 RTP/AVP 0 3 1
SIP: Messages (2) ACK sip:pauvre@travail.enst.fr SIP/2.0 Via: SIP/2.0/UDP rois.enst.fr From: P. Chef <sip:chef@enst.fr> To: M. Pauvre <sip:oups@enst.fr> Call-ID: 1234567@rois.enst.fr CSeq: 1 ACK 3 4 BYE sip:pauvre@travail.enst.fr SIP/2.0 Via: SIP/2.0/UDP rois.enst.fr From: P. Chef <sip:chef@enst.fr> To: M. Pauvre <sip:oups@enst.fr> Call-ID: 1234567@rois.enst.fr CSeq: 2 BYE
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
INVITE sip:chef@rois.enst.fr 302 Moved temporarily Contact: patrick@travail.enst.fr:3080;transport=udp REGISTER sip:register.enst.fr SIP/2.0 Via: SIP/2.0/UDP travail.enst.fr From: sip:chef@enst.fr To: sip:chef@enst.fr Call-ID: 12314@travail.enst.fr CSeq: 1 REGISTER Contact: <sip:patrick@travail.enst.fr:3080;transport=udp> Expires: 3600 SIP: Components: Registration & Redirect Servers enst.fr register travail
INVITE sip:sb@mobile.lip6.fr Via: SIP/2.0/UDP sip.lip6.fr Via: SIP/2.0/UDP proxy.enst.fr Via: SIP/2.0/UDP rois.enst.fr INVITE sip:some@lip6.fr Via: SIP/2.0/UDP proxy.enst.fr Via: SIP/2.0/UDP rois.enst.fr INVITE sip:some@lip6.fr Via: SIP/2.0/UDP rois.enst.fr SIP: Components:General proxy sip mobile proxy lip6.fr enst.fr SIP - trapezoid rois
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