SIP Happens SIP: Session Initiation Protocol (Signalisierungsprotokoll für Sessions) User Agent: Anwendungssoftware auf Terminals (SIP End Points) Terminals: PCs, Telefone, … Sind User Agents Clients oder Server? Client: Ich rufe an. Server: Ich nehme einen Anruf an. User Agent: Client + Server SIP User Agent Request Response
Erst registrieren, dann telefonieren User Agent (UA) Register OK Registrar (SIP-Server) Registrar nimmt “REGISTER requests” an und registriert Teilnehmer Üblicherweise im SIP-Server implementiert Verwendet SIP Location Service in Informationen über Teilnehmer zugänglich zu machen
SIP Server Proxy Server Redirect Server Server und Client zur Vermittlung von Sessions Verwaltet Zustände (states) oder wird zustandslos betrieben Redirect Server Nur Server Vermittelt Server-Adressen 1 2 2 1 3 4
Verbindungsuafbau mit SIP SIP Transaktion SIP funktioniert wie HTTP (Web) oder SMTP (Mail) SIP ist ein textbasiertes Protocol wie HTTP Client schickt Service Requests und empfängt Service Responses Server empfängt Requests und verschickt Responses Eine SIP Transaktion besteht aus SIP Request (Anfrage) Ggf. Responses über Zwischenstände Response (Antwort) Transaktionen sind durchnummeriert (command sequence numbers, Cseq)
SIP Adressen Universal Resource Locators (URL) Sind Namen, wie E-Mail Adressen (SMTP) Beispiele für SIP Adressen: sip:hans.muster@musterbau.de sip:hans.muster@10.1.1.1 sip:8972312345@musterbau.de Um die SIP Adresse in eine Netzadresse zu übersetzten, wird DNS (Domain Name Service) verwendet, sowie der Location Server
SIP Nachrichten (Messages) Request-Line Define transaction generic message start line Status-Line general-header message header Describe transaction request-header response-header entity-header CRLF CRLF Blank line message body message body SDP Exchange capabilities
Beispiel für eine SIP/SDP Nachricht Session Initiation Protocol (INVITE) Request-Line: INVITE sip:test@10.0.2.15:5060 SIP/2.0 Message Header Via: SIP/2.0/UDP 10.0.2.20:5060;branch=z9hG4bK-2187-1-0 From: "DVI4/8000" <sip:sipp@10.0.2.20:5060>;tag=1 To: test <sip:test@10.0.2.15:5060> Call-ID: 1-2187@10.0.2.20 CSeq: 1 INVITE Contact: sip:sipp@10.0.2.20:5060 Max-Forwards: 70 Content-Type: application/sdp Content-Length: 123 Message Body Session Description Protocol Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): - 42 42 IN IP4 10.0.2.20 Session Name (s): - Connection Information (c): IN IP4 10.0.2.20 Time Description, active time (t): 0 0 Media Description, name and address (m): audio 6000 RTP/AVP 5 Media Attribute (a): rtpmap:5 DVI4/8000 Media Attribute (a): recvonly Request/Status Line Message Header Message Body
SIP Requests Jeder Request löst eine Server-Methode aus SIP definiert 6 Methoden REGISTER registers with location service INVITE initiates call ACK confirms final response CANCEL cancels a pending request BYE for terminating sessions OPTIONS queries feature support by remote side
SIP Status Codes Wie HTTP Response Codes 1xx Informational ( e.g. 100 Trying, 180 Ringing ) 2xx Successful ( e.g. 200 OK) 3xx Redirection ( e.g. 302 Moved Temporarily ) 4xx Request Failure ( e.g. 404 Not Found, 482 Loop Detected ) 5xx Server Failure ( e.g. 501 Not Implemented ) 6xx Global Failure ( 603 Decline )
SIP mit Rufumleitung (Redirect) berlin.de cologne.de munich.de INVITE 1 Redirect Server 302 Move temporarily 2 ACK 3 alice@berlin.de bob@munich.de INVITE munich.de 4 100 Trying Proxy Server INVITE 5 6 180 Ringing 180 Ringing 8 7 200 OK 10 9 200 OK ACK 11 Media Session 12 BYE 13 200 OK 14
SIP mit Verzweigung (Call Forking) berlin.de INVITE munich.de INVITE SIP enabled mobile phone 1 3 100 Trying 5 CANCEL 2 6 200 OK INVITE SIP enabled Organizer 3 alice@berlin.de Proxy Server INVITE 3 SIP Phone INVITE 3 4 200 OK SIP Client bob@munich.de ACK BYE 200 OK Media Session 8 7 9 10
SDP Zweck und Inhalt Der Zweck von SDP ist, Informationen über Medienströme in Multimediasitzungen zu vermitteln, um den Teilnehmern zu unterstützen, an einer bestimmten Sitzung teilzunehmen oder Informationen zu sammeln. SDP beinhaltet Session name and purpose Time(s) the session is active The media comprising the session Information to receive those media (addresses, ports, formats and so on)
Format SDP ist eine kurze, strukturierte, textuelle Beschreibung. Es vermittelt den Namen und Zweck der Sitzung, die Medien, Protokolle, Codec-Formate, Timing und Transportinformationen. Ein vorläufiger Teilnehmer prüft diese Informationen und entscheidet, ob er einer Sitzung beitreten möchte und wie und wann er einer Sitzung beitreten möchte, wenn er sich dazu entschließt. Das Format hat Einträge in Form von <type> = <value>, wobei der <type> einen eindeutigen Session-Parameter definiert und der <value> einen spezifischen Wert für diesen Parameter liefert.
Session Description Parameters -1 Session description (* denotes optional ) v= (protocol version) o= (owner/creator and session identifier) s= (session name) i=* (session information) u=* (URI of description) e=* (email address) p=* (phone number) c=* (connection information - not required if included in all media) b=* (bandwidth information) Eine oder mehrere Zeitbeschreibungen (siehe nächste Folie) z=* (time zone adjustments) k=* (encryption key) a=* (zero or more session attribute lines) Null oder mehr Medienbeschreibungen (siehe nächste Folie)
Session Description Parameters -2 Time description (* denotes optional ) t= (time the session is active) r=* (zero or more repeat times) Media description (* denotes optional ) m= (media name and transport address) i=* (media title) c=* (connection information - optional if included at session-level) b=* (bandwidth information) k=* (encryption key) a=* (zero or more media attribute lines)
SIP und SDP SIP SDP Internet IPv4 Zieladresse c=IN IP4 128.59.19.38 INVITE sip:bob@macrosoft.com SIP/2.0 To: sip:bob@macrosoft.com From: sip:alice@wonderland.com Call-ID: 1234@a.wonderland.com Cseq: 1 INVITE Contact: alice@a.wonderland.com c=IN IP4 128.59.19.38 m=audio 5100 RTP/AVP 0 INVITE sip:bob@macrosoft.com SIP/2.0 To: sip:bob@macrosoft.com c=IN IP4 128.59.19.38 m=audio 5100 RTP/AVP 0 Internet IPv4 Zieladresse c=IN IP4 128.59.19.38 m=audio 5100 RTP/AVP 0 SDP Audio Port Transp.=RTP G.711
Ein Beispiel SDP im SIP Message Body Protocol version number Session Initiation Protocol (INVITE) INVITE sip:watson@boston.bell-tel.com SIP/2.0 Via: SIP/2.0/UDP kton.bell-tel.com From: A. Bell <sip:a.g.bell@bell-tel.com>;tag=3 To: T. Watson <sip:watson@bell-tel.com> Call-ID: 662606876@kton.bell-tel.com CSeq: 1 INVITE Contact: <sip:a.g.bell@kton.bell-tel.com> Subject: Mr. Watson, come here. Content-Type: application/sdp Content-Length: ... Session Description Protocol v=0 o=bell 53655765 2353687637 IN IP4 128.3.4.5 s=Mr. Watson, come here. t=3149328600 0 c=IN IP4 kton.bell-tel.com m=audio 3456 RTP/AVP 0 4 (Audio Video Profile) a=rtpmap:0 PCMU/8000 µ-Law a=rtpmap:4 G723/8000 SDP im SIP Message Body Protocol version number Owner/creator and session identifier Session name Time session starts and stops Connection information Media information Attributes