SIP: Session Initiation Protocol

Podobne dokumenty
SIP: Session Initiation Protocol. Krzysztof Kryniecki 16 marca 2010

Protokół SIP w skrócie

SIP: Session Initiation Protocol

Usługi IMP i konferencyjne

STUDIA PODYPLOMOWE: TELEKOMUNIKACJA, TELLEINFORMATYKA DLA NIEINŻYNIERÓW

Programowanie w Internecie

STUDIA PODYPLOMOWE: TELEKOMUNIKACJA, TELLEINFORMATYKA DLA NIEINŻYNIERÓW

Technologie internetowe

Bezpieczny system telefonii VoIP opartej na protokole SIP

jest protokołem warstwy aplikacji, tworzy on sygnalizację, aby ustanowić ścieżki komunikacyjne, a następnie usuwa je po zakończeniu sesji

SNG architektura i protokół SIP Materiały wykładowe do użytku wewnętrznego

SIP: przesłanki. Standard Internetowy. Wykorzystanie adresacji Internetowej. Wykorzystanie zasad kodowania HTTP

Bezpieczeństwo VoIP SIP & Asterisk. Autor: Leszek Tomaszewski ltomasze@elka.pw.edu.pl

1. Wprowadzenie Środowisko multimedialnych sieci IP Schemat H

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Sygnalizacja Kontrola bramy Media

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Telefonia Internetowa VoIP

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Zarządzanie ruchem i jakością usług w sieciach komputerowych

IP Multimedia Subsystem

Krajowe Sympozjum Telekomunikacji i Teleinformatyki KSTiT Autorzy: Tomasz Piotrowski Szczepan Wójcik Mikołaj Wiśniewski Wojciech Mazurczyk

Wybrane działy Informatyki Stosowanej

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Orange Send MMS. Autoryzacja. Metoda HTTP. Parametry wywołania. API wyślij MMS dostarcza wiadomości MMS. Basic POST

Protokoły sieciowe - TCP/IP

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

1. Architektura logiczna Platformy Usługowej

1. Model klient-serwer

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

TELEFONIA W SIECI IP


Bezpieczne protokoły Materiały pomocnicze do wykładu

Dr Michał Tanaś(

Technologia VoIP Podstawy i standardy

PSI Protokół HTTP + wstęp do przedmiotu. Kraków, 10 październik 2014 mgr Piotr Rytko Wydział Matematyki i Informatyki UJ

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Protokół wymiany sentencji, wersja 1

Sieci komputerowe Warstwa aplikacji

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Ogólnopolskie Repozytorium Prac Dyplomowych

Protokół SIP w pigułce. Marek Średniawa

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Technologia VoIP w aspekcie dostępu do numerów alarmowych

Instant Messaging with SIMPLE. Michał Albrycht

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Gatesms.eu Mobilne Rozwiązania dla biznesu

1. W protokole http w ogólnym przypadku elementy odpowiedzi mają: a) Postać tekstu b) Postać HTML c) Zarówno a i b 2. W usłudze DNS odpowiedź

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

API transakcyjne BitMarket.pl

MMTel Multimedia telephony AUIMS

Sygnalizacja Kontrola bramy Media

Laboratorium 6.7.2: Śledzenie pakietów ICMP

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Transmisja danych multimedialnych. mgr inż. Piotr Bratoszewski

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Sieci komputerowe i bazy danych

Protokół DHCP. DHCP Dynamic Host Configuration Protocol

Sieci komputerowe - administracja

Kielce, dnia roku. HB Technology Hubert Szczukiewicz ul. Kujawska 26 / Kielce

Przesyłania danych przez protokół TCP/IP

Specyfikacja techniczna. mprofi Interfejs API

Języki programowania wysokiego poziomu WWW

ZiMSK. Konsola, TELNET, SSH 1

Podstawy IMS (IP Multimedia Subsystem)

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

Implementacja protokołu komunikacyjnego

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Java wybrane technologie

Bezpieczeństwo Voice over IP opartego na SIP

Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

INSTRUKCJA OBSŁUGI DLA SIECI

Ministerstwo Finansów

Model sieci OSI, protokoły sieciowe, adresy IP

Ministerstwo Finansów

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Instytut Telekomunikacji PW. NGN od ISUP do BICC Materiały wykładowe do użytku wewnętrznego

Połączenia VoIP z firmą Slican

Sieci Komputerowe Modele warstwowe sieci

Architektura aplikacji sieciowych. Architektura klient-serwer

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

DOKUMENTACJA TECHNICZNA SMS API MT

Remote Quotation Protocol - opis

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

Technologie Internetu. Protokół HTTP. Aleksander Denisiuk.

Stos TCP/IP. Warstwa aplikacji cz.2

SSL (Secure Socket Layer)

Transkrypt:

SIP w skrócie

SIP: Session Initiation Protocol Protokół aplikacyjny (tekstowy): ustanawianie, modyfikacja, likwidacja i zarządzanie przebiegiem multimedialnych sesji komunikacyjnych rozwinięcie HTTP i SMTP opracowane przez IETF Multiparty Multimedia Session Control (MMUSIC) WG RFC 3261 (wcześniej 2543bis) stosowany do komunikacji partnerskiej (peer-to-peer) Alternatywa dla H.323 2

SIP historia Protokół opracowany przez Internet Engineering Task Force (IETF) Pomysłodawcy: M. Handley, H. Schulzrinne, E. Schooler i J. Rosenberg Propozycja standardu i norma RFC 2543 w marcu 1999 w grupie roboczej IETF MMUSIC WG Powołanie oddzielnej grupy roboczej SIP WG we wrześniu 1999 Obecnie protokołem SIP zajmują się nowe grupy robocze: SIPPING - aplikacje SIMPLE obecność i natycmiastowa komunikacja (presence and instant messaging) RFC2543bis-09 stał się RFC 3261 w czerwcu 2002 Nowi współautorzy: G. Camarillo, A. Johnston, J. Peterson i R. Sparks Cała specyfikacja napisana od nowa przede wszystkim dla poprawienia czytelności, ale także pewne nowe funkcje Zgodność wstecz z RFC 2543 3

Co można zrobić za pomocą protokołu SIP Wykorzystanie środowiska SIP VoIP IM IPTV Audio i wideokonferencja NGN Wbudowanie komunikacji w aplikacje Poprawa produktywności Click to call, IM Zarządzanie połączeniami przez internet Identyfikacja, internet call waiting Poczta głosowa Integracja z procesami biznesowymi Automatyczna generacja połączeń w workflow 4

Sieć wykorzystująca protokół SIP Punkty końcowe SIP urządzenia dołączone do Internetu lub sieci IP obsługujące SIP Telefony stacjonarne i komórkowe z SIP UA Aplikacje na PC i PDA SIP UA Bramy sieciowe Serwery SIP węzły sieci realizujące zestaw funkcji na żądanie punktów końcowych SIP Mogą inicjować żądania Mogą być zlokalizowane w innej sieci 5

SIP - charakterystyka Typy adresacji: Internetowy adres sip adres e-mail Telefoniczny Rejestracja Numer telefoniczny E.164 Użytkownik może się zarejestrować wykorzystując swój ID w celu uzyskania dostępu do swoich danych i usług, niezależnie od rejestracji urządzenia 6

SIP - charakterystyka Bezpieczeństwo SIP zaprojektowany tak by stosować mechanizmy ochrony opracowane dla potrzeb Internetu, w celu ochrony sygnalizacji przed różnymi metodami ataków Redirect Serwer SIP Redirect może przekierować żądanie na inny adres Proxy Serwery SIP proxy przekierowują żądania użytkowników na inny serwer, który może udostępnić żądaną usługę 7

SIP - charakterystyka Rozwidlanie (forking) Żądanie użytkownika może być jednocześnie przekazane w wielu kierunkach Spotkania i obecność Postać aktywna lub bierna Mobilność Użytkownicy mogą się posługiwać wieloma urządzeniami: Telefony, faksy, komputery, PDA, pagery W pracy, domu i podróży 8

SIP - charakterystyka Preferencje użytkownika Inicjator sesji komunikacyjnej może określić w jaki sposób serwery i sieć powinny obsłużyć żądania, a także wskazać typy pożądanych i akceptowanych usług Sterowanie routingiem Droga wiadomości SIP może być określana i rejestrowana dla różnych usług 9

SIP: Przesłanki Łatwość implementacji Zasada IETF KISS (Keep It Simple Stupid!) Uwzględnienie wymagań i możliwości Internetu Uniknięcie narzucenia konkretnej architektury fizycznej i konkretnych usług Uniwersalna funkcjonalność Wykorzystanie najlepszych standardów IETF URL MIME RFC 822 Skalowalność 10

SIP:architektura Uogólnienie architektury internetowej pajęczyny WWW Prostota: model klient-serwer zasada żądanie-odpowiedź (Request - Response) Serwery Proxy, Redirect, Registrar Serwery aplikacji Konsekwencje: Upowszechnienie kreacji usług SIP Wiele SIP API (SIP servlets, CPL oparty na XML, JAIN) Rozwój narzędzi do projektowania usług (CGI) 11

SIP stos protokołów Media HTTP H.323 SIP RTP RTCP TCP SCTP IPv4/IPv6 UDP PPP AALx Ethernet GPRS SONET V.x ATM 12

SIP: możliwości funkcjonalne Mobilność użytkownika: określenie bieżącego miejsca jego pobytu Charakterystyka możliwości komunikacyjnych użytkownika: negocjacja funkcjonalności i parametrów sesji (np. opis typu mediów - SDP) Dostępność: określenie gotowości użytkownika do uczestnictwa w sesji Zestawianie połączeń: Nadzorowanie połączenia - sesji przekazywanie połączeń, dołączanie nowych uczestników, odłączanie uczestników i rozłączanie połączeń 13

Podstawowa architektura SIP trapez SIPowy Serwer DNS Serwer Lokalizacji DNS Serwer Proxy SIP Serwer Proxy SIP SIP SIP UA - Agent użytkownika A Media (RTP) UA Agent użytkownika B [Źródło: H.Sinnreich: VON 2001] 14

SIP: elementy architektury User Agent Client - UAC systemy końcowe wysyłają żądania SIP (np. żądanie ustanowienia połączenia) User Agent Server - UAS odbiera żądania połączeń wysyłane przez innych agentów wysyła odpowiedzi w imieniu użytkownika User Agent - Agent Użytkownika (typowy terminal) UAC + UAS Redirect Server Przekierowuje użytkownika na inny serwer Proxy Server reprezentuje żądanie do innego serwera. Może rozwidlić żądanie na wiele serwerów, budując drzewo przeszukiwania Registrar odbiera zgłoszenia rejestracyjne UA (User Agents) Location Server Baza danych o użytkownikach 15

Serwer lokalizacji Ogólny termin RFC 3261/RFC2543 określający bazę danych, która może zawierać informacje o użytkownikach: Identyfikatory URL, adresy IP, skrypty, funkcje, preferencje, Serwery SIP wysyłają współpracują z serwerem lokalizacji używając właściwego (nie SIP) do zapytań, pobierania i aktualizacji rekordów 16

Serwer Registar Serwer akceptujący rozkazy REGISTER i przekazujący zawarte w nich informacje do usługi lokalizacyjnej w zarządzanej przez siebie domenie. Zapewnienie odwzorowania miedzy zewnętrznie znanym adresem(ami) użytkownika a jego obecnym adresem(ami) fizycznym(i). Pobieranie aktualnych odwzorowań (odczytywanie). Usługa lokalizacyjna: baza danych (LDAP, SQL,...) 17

Registrar - scenariusz wykorzystania Serwer Registrar 2: zapisz dane(az,af) Usługa lokalizacyjna 1: REGISTER To:B@pw.edu.pl Contact: B@titan.pw.edu.pl) LDAP SQL... 4: pobierz dane(b@pw.edu.pl) 5: dane(b@pw.edu.pl, B@titan.pw.edu.pl) AZ: B@pw.edu.pl AF: titan.pw.edu.pl 3: INVITE B@titan.pw.edu.pl Serwer Proxy 3: INVITE B@pw.edu.pl 18

SIP: adresacja Format zbliżony do formatu adresów e-mail user@domain user@host user@ip_address lub phone-number@gateway SIP-URL = sip: [userinfo @ ] hostport url-parameters [headers]: 19

SIP URI (Uniform Resource Indicators) Dwa warianty URI: sip:henry@siptest.wcom.com (SIP URI) Najpopularniejsza forma wprowadzona w RFC 2543 sips:henry@siptest.wcom.com (Secure SIP URI) Nowa forma wprowadzona w RFC 3261 Wymaga TLS na TCP jako mechanizmu transportowego zapewniającego ochronę informacji Dwa typy SIP URI: Address of Record (AOR) (identyfikuje użytkownika) sip:henry@wcom.com (wymaga rekordów DNS SRV w celu lokalizacji serwerów SIP w domenie wcom.com) Fully Qualified Domain Name (FQDN) lub Contact (identyfikuje urządzenie) sip:henry@127.24.45.4 lub sip:henry@cube43.lab.wcom.com (nie wymaga roztrzygania przy rutingu) 20

SIP i URI URI Uniform Resource Identifier - uogólnienie URL Adresy SIP są także identyfikatorami URL!!! SIP umożliwia użycie dowolnego URI w miejscu, w którym może być użyty SIP URL Zastosowania: przekierowywanie połączeń na stronę WWW przekierowywanie połączeń na złożone adresy URL w celu udostępnienia serwera WWW z bazą danych 21

Podstawowe wiadomości (metody) SIP INVITE inicjowanie ustanowienia sesji BYE zakończenie trwającej sesji OPTIONS zapytanie o opcje i funkcjonalność serwera lub UA CANCEL anulowanie żądania w toku ACK potwierdzenie finalnej odpowiedzi na INVITE REGISTER rejestracja URI użytkownika w serwerze rejestrowym SIP (związanie URI urządzenia z AOR) 22

Podstawowe wiadomości (metody) SIP INVITE BYE OPTIONS CANCEL ACK Inicjowanie ustanowienia sesji Zakończenie trwającej sesji Zapytanie o opcje i funkcjonalność serwera lub UA Anulowanie żądania w toku Potwierdzenie finalnej odpowiedzi na INVITE RFC 3261 RFC 3261 RFC 3261 RFC 3261 RFC 3261 REGISTER Rejestracja URI użytkownika w serwerze rejestrowym SIP (związanie URI urządzenia z AOR) RFC 3261 23

Dodatkowe wiadomości (rozszerzenia) SIP INFO PRACK UPDATE REFER SUBSCRIBE PUBLISH NOTIFY MESSAGE Transport sygnalizacji w trakcie sesji Potwierdzenie prowizorycznej odpowiedzi Aktualizacja informacji o stanie sesji Transfer użytkownika pod adres określony przez URI Żądanie zaabonowania powiadamiania o zdarzeniach Przekazanie informacji o zmianie statusu do serwera Transport powiadomienia o zaabonowanym zdarzeniu Transport treści wiadomości natychmiastowych RFC 2976 RFC 3262 RFC 3311 RFC 3515 RFC 3265 RFC 3903 RFC 3265 RFC 3428 24

SIP obsługiwane schematy URI sip:, sips: tel: pres: im: http: xmpp: Adres SIP i bezpieczny adres SIP Numery telefoniczne i sekwencje wybierania Zasób obecności Zasób wymiany wiadomości natychmiastowych Hyper Text Transport Protocol dla stron internetowych Jabber IM i URI związane z obecnością RFC 3261 RFC 3999 RFC 3861 RFC 3861 RFC 2616 ID H323:, h323: URL H.323 RFC 3508 25

SIP: odpowiedzi Kod Opis Przykłady 1xx 2xx 3xx 4xx 5xx 6xx Informacyjne żądanie odebrane, trwa kontynuacja przetwarzania żądania. Sukces akcja odebrana, zrozumiana i Zaakceptowana. Przekierowanie konieczne podjęcie dalszych działań w celu zakończenia żądania. Błąd klienta błędna postać żądania lub niemożność realizacji żądania przez dany serwer. Błąd serwera serwer nie był w stanie zrealizować żądania. Globalny błąd żądanie nie do zrealizowania przez dostępne serwery. 180 Ringing 181 Call is Being Forwarded 200 OK 300 Multiple Choices 302 Moved Temporarily 401 Unauthorized 404 Not found 408 Request Timeout 503 Service Unavailable 505 Version Not Suported 600 Busy Everywhere 603 Decline 26

Odpowiedzi (wybrane) 100 Continue 180 Ringing 181 call is being forwarded 182 queued 183 session progress 200 OK 300 Multiple choices 301 Moved permanently 302 Moved temporarily 305 use proxy 380 alternative service 400 Bad request 401 unauthorized 402 payment required 403 Forbidden 404 not found 405 - method not allowed 408 Request timeout 415 - Unsupported media type 480 Temporarily not available 481 Invalid Call-ID 482 Loop detected 5xx Server error 600 Busy 601 Decline 604 Does not exist 606 Not acceptable 27

192.190.132.20 Anna INVITE jan@192.190.132.31 c=in IP4 192.190.132.20 m=audio 49170 RTP/AVP 0 SIP: Inicjowanie sesji W uproszczonym przykładzie zaproszenia do sesji - INVITE, terminal Anny informuje, że może odbierać głos w postaci danych PCM kodowanych wg reguły µ Law (RTP/AVP 0) pod adresem 192.190.132.20 za pomocą portu 49170 192.190.132.31 Jan Sygnał dzwonienia u Jana Port 49170 200 OK c=in IP4 192.190.132.31 m=audio 12345 RTP/AVP 3 Media mogą być wysyłane od razu po odebraniu wiadomości INVITE W odpowiedzi terminal Jana informuje, że może odbierać dane GSM, za pomocą portu 12345 ACK Port 12345 28

SIP: zestawienie połączenia w trybie Proxy Źródło: H.Schulzrine: www.cs.columbia.edu/~hgs/sip/ 29

SIP: działanie w trybie Redirect Źródło: H.Schulzrine: www.cs.columbia.edu/~hgs/sip/ 30

SIP wybrane nagłówki Nagłówek Opis Przykłady Accept Wskazuje akceptowane formaty treści. Accept: application/sdp Accept: currency/dollars Authorization Zawiera informację o szyfrowaniu. Authorization: pgp info Call-ID Contact Content- Length Identyfikuje jednoznacznie sesję lub wiadomości Call-ID: 1@mars.brooks.net rejestracyjne. Generowany losowo w sposób Call-ID: Jan-01-1999-1510- zapewniający globalną unikalność 1@server.mci.com i: 31415926535@uunet.com Alternatywny adres SIP URL do wykorzystania przy Contact: W. Riker, Acting Captain bezpośrednim kierowaniu wiadomości. <riker@starfleet.gov> Contact: room203@hotel.com; expires=3600 m: admin@mci.com Licznik długości treści wiadomości. Content-Length: 285 Content-Type Typ treści ciała wiadomości. Content-Type: application/sdp c: application/h.323 CSeq Nr sekwencyjny wiadomości uzywany w celu CSeq: 1 INVITE rozróżniania żądań w czasie tej samej sesji. CSeq: 1000 INVITE CSeq: 4325 BYE CSeq: 1 REGISTER Encryption Informacja związana z szyfrowaniem. Encryption: pgp info Expires Termin ważności treści wiadomości (w sekundach lub data I czas). Expires: 60 Expires: Thu, 07 Jan 1999 17:00 CST 31

SIP wybrane nagłówki From Pole wskazujące SIP URL nadawcy. From: Dana Scully <sip:dana@skeptics.org> From: sip:+1-314-342-7360@gateway.wcom.com; tag=1234567 f: sip: guest@192.168.1.1 Max-Forwards Licznik zmiejszany przez każdy serwer proxy przy przekazywaniu wiadomości. Wyzerowanie licznika generuje odpowiedź 483 Too Many Hops Max-Forwards: 10 Priority Priorytet wiadomości. Priority: normal Priority: emergency Record-Route Dodawany do żądania przez serwer proxy, który musi się znaleźć na ścieżce wiadomości w przyszłości.. Record Route: sip.mci.com Require Wskazuje wymagane opcje sesji. Require: local.telephony Response-Key Zawiera klucz PGP key dla oczekiwanej zaszyfrowanej odpowiedzi. Response-Key: pgp info Retry-After Wskazuje termin kiedy zasób będzie dostęny. Retry-After: 3600 Retry-After: Sat, 01 Jan 2000 00:01 GMT 32

SIP wybrane nagłówki Route Określa trasę wiadomości. Route: orinoco.brooks.net Subject To Unsupported Przekazuje pomocniczą informację o typie sesji. Obowiązkowe pole określające adresata sesji jego SIP URL. Listuje funckje nie obsługiwane przez serwer. Subject: More about SIP s: You d better answer! To: Fox Mulder <sip:mulder@ lonegunman.org> To: sip:10109000@operator.mci.com; tag=314 t: sip:1800collect@telecom.mci.co m; tag=52 Unsupported: tcap.telephony Via Wskazuje ścieżkę, przez Via: SIP/ 2. 0/UDP sip.mfs.com którą przeszła wiadomość. Via: SIP/2.0/TCP uunet.com v: SIP/2.0/UDP 192.168.1.1 Warning Kod I treść ostrzeżenia. Warning: 331 Unicast not available 33

Protokoły związane z SIP SDP Session Description Protocol Tekstowa notacja służąca do opisu sesji medialnych Dane przekazywane w treści wiadomości SIP Wykorzystuje profile RTP/AVP dla najczęściej spotykanych typów mediów Zdefiniowany w normie RFC 2327 RTP Real-time Transport Protocol Wykorzystywany do trasportu pakietów mediów po IP RTP dodaje nagłówek zawierający: Nazwę źródła mediów Stempel czasowy Typ kodeka Numer sekwencyjny Zdefiniowany w RFC 1889 (H. Schulzrinne i inni) Profile zdefiniowane w RFC 1890 34

Architektura SIP - składniki User Agents Outbound Proxy Server SIP DNS DNS Server SIP Registrar / Location Server UA wysyła i odbiera żądania SIP Inbound Proxy Server SIP UAC User Agent Client UAS User Agent Server Urządzenia końcowe: Telefon SIP PC/laptop z klientem SIP PDA Telefon komórkowy Bramy PSTN stanowią odmianę UA SIP Media (RTP) User Agent A User Agent B 35

Architektura SIP składniki serwery Proxy DNS Server Registrar / Location Server Przekazuje dalej lub pośredniczy przy przekazywaniu żądań w imieniu UA Odwołania do baz danych: DNS DNS Typy: Location Server bezstanowy Outbound Proxy Server SIP Inbound Proxy Server Stanowy dla transakcji Stanowy dla zgłoszeń Nie ma funkcji związanych z mediami SIP SIP Ignoruje SDP Normalnie pomijany po ustanowieniu dialogu, ale może rejestrowaćrecord-route aby pozostać w ścieżce SIP Media (RTP) User Agent A User Agent B 36

Architektura SIP składniki inne serwery Outbound Proxy Server SIP DNS DNS Server SIP SIP Location Server Inbound Proxy Server SIP Location Server: Baza danych lokalizacji Agentów Użytkownika SIP Odpytywana przez serwery proxy przy rutingu Aktualizowana przez UA podczas rejestracji DNS Server: Rekordy SRV (Service Records) używane do lokalizacji serwerów Inbound Proxy Media (RTP) User Agent A User Agent B 37

Metoda i nagłówek INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Type: application/sdp Content-Length: 201 Nagłówek To v=0 o=userb 289375749 289375749 IN IP5 100.101.102.103 s=c=in IP4 100.101.102.103 t=0 0 m=audio 5004 RTP/AVP 0 m=audio 53000 RTP/AVP 96 c=in IP4 200.201.202.203 a=rtpmap:96 telephone-event SDP Metoda INVITE 38

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Pierwszy wiersz żądania SIP request nie zawiera nagłówków, lecz zaczyna się od nazwy metody (INVITE), po której następuje spacja i identyfikacja adresata sesji - Request-URI, w tym przypadku sip:userb@there.com, spacja i nr używanej wersji protokołu SIP (2.0). Każdy wiersz kończy się CRLF. 39

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek Via nr wersji protokołu SIP (2.0) i stosowany protokół transportowy (UDP), następnie adres IP (4.3.2.1) lub nazwa węzła (host) inicjatora żądania i numer portu (5060 znany nr portu SIP). Każdy serwer, który przekazuje żądanie request dodaje do wiadomości nagłówek Via swój adres i numer portu, na który chce uzyskać odpowiedź. 40

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek To nazwę użytkownika (User B), następnie URL adresata w nawiasach kątowych <> (sip:userb@there.com) 41

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek To nazwę użytkownika (User A), następnie URL inicjatora w nawiasach kątowych <> (sip:usera@here.com) 42

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek Call-ID zawiera unikalny identyfikator sesji. Tworzą go unikalny lokalny losowo wygenerowany identyfikatora, znak @ i unikalna globalnie nazwa węzła (host) lub adres IP, tworząc unikalny łańcuch. Wszystkie żądania i odpowiedzi w trakcie sesji mają ten sam Call-ID. Unikalne łańcuchy Call-ID mogą być generowane również w inny sposób. 43

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 CSeq stanowi numer sekwencyjny, zawierający liczbę całkowitą (w tym przypadku 1), a następnie oddzieloną odstępem nazwę metody (INVITE). Każde kolejne żądanie podczas sesji ma kolejny wyższy numer sekwencyjny CSeq. Obie strony sesji utrzymują oddzielne lokalne liczniki CSeq. 44

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Nagłówek Contact zawiera jeden lub więcej adresów SIP URL, które dostarczają informację dla drugiej strony uczestniczącej w sesji pozwalające skontaktować się z użytkownikiem A. 45

Struktura wiadomości SIP - INVITE INVITE sip:userb@there.com SIP/2.0 Via: SIP/2.0/UDP 4.3.2.1:5060 To: User B <sip:userb@there.com> From: User A <sip:usera@here.com> Call-ID: 4598998103413@4.3.2.1 CSeq: 1 INVITE Contact: <sip:usera@4.3.2.1> Content-Length: 126 Content-Length zawiera długość treści wiadomości wyrażoną w oktetach (bajtach) (126), która następuje po liście nagłówków SIPowych i jest oddzielona od nich pojedynczym pustym wierszem (CRLF). Content-Length równe 0 wskazuje, że wiadomość nie zawiera treści (składa się tylko z nagłówków). 46

Struktura wiadomości SDP v=0 o=tesla 289084526 28904529 IN IP4 lab.high-voltage.org s=c=in IP4 100.101.102.103 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 v: Version number numer wersji (ignorowany przez SIP) o: Origin źródło (28904529) s: Subject (ignorowany przez SIP) c: Connection Data dane dotyczące połączenia (adres IP dla mediów - 100.101.102.103) t: Time czas (ignorowany przez SIP) m: Media (typ - audio, port - 49170, Profil RTP/AVP - 0) a: Attribute atrybut (profil - 0, kodek - PCMU, częst.próbkowania 8000 Hz) 47

Struktura odpowiedzi SIP SIP/2.0 200 OK Via: SIP/2.0/UDP proxy.munich.de:5060;branch=z9hg4bk8542.1 Via: SIP/2.0/UDP 100.101.102.103:5060;branch=z9hG4bK45a35h76 To: Heisenberg <sip:w.heisenberg@munich.de>;tag=24019385 From: E. Schroedinger <sip:schroed5244@aol.com>;tag=312345 Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:wh@200.201.202.203 Content-Type: application/sdp Content-Length: 173 v=0 o=heisenberg 2452772446 2452772446 IN IP4 200.201.202.203 s=sip Call c=in IP4 200.201.202.203 t=0 0 m=audio 56321 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Via, To, From, Call-ID, & CSeq kopiowane z żądania To ma znacznik dodawany przez UAS Contact treść wiadomości zawierają informacje UAS 48

Negocjacja mediów Negocjacja mediów przy ustanawianiu sesji Model oferta-odpowiedź UA proponuje jeden lub kilka typów mediów, a drugi UA odpowiadając akceptuje bądź odrzuca jeden lub więcej proponowanych typów mediów Sekwencja - INVITE/200/ACK Dalsze negocjacje i zmiana typu mediów za pomocą ponownego żądania INVITE w trakcie wcześniej ustanowionej sesji Wykorzystanie SDP do opisu mediów Ograniczone możliwości negocjacji mediów Prace nad SDPng Wykorzystanie protokołu SAP do organizacji multimedialnych sesji komunikacyjnych w Internecie 49

SDP: negocjacja - model propozycja - odpowiedź Request (propozycja) Klient Res-Provisional Res-Provisional (odpowiedź-a) Res-Final (odpowiedź-b) Serwer propozycja - uporządkowany zbiór proponowanych sesji {opis strumieni} odpowiedź - (jeden) opis akceptowanej sesji opis strumieni 50

SDP - przykład v=0 Version o= Identyfikacja używanej wersji SDP (0) nie używane przez SIP s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 51

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Origin Nie używane przez SIP 52

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Subject Nie używane przez SIP 53

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Connection Sieć (IN - Internet), typ adresu (IP4 IP Version 4) i adres (128.2.3.1) 54

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Time Czas początku i końca nie używane przez SIP 55

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Media Typ mediów (wideo), numer portu (4004), typ (RTP/AVP Profil), i numer (Profile 14 lub 26) 56

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Attribute rtpmap wymienia atrybuty profilu 14 RTP/AVP wideo z kodekiem (MPA) i częstotliwością próbkowania (90000Hz) 57

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Attribute rtpmap wymienia atrybuty profilu 26 RTP/AVP wideo z kodekiem (JBEG) i częstotliwością próbkowania (90000Hz) 58

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Media Drugi typ mediów (audio), numer portu (4006), typ (RTP/AVP Profil), i numer (Profile 0 lub 4) 59

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Attribute rtpmap wymienia atrybuty profilu 0 audio RTP/AVP z kodekiem (PCM µ-law) i częstotliwością próbkowania (8000Hz) 60

SDP - przykład v=0 o= s= c=in IP4 128.2.3.1 t= m=video 4004 RTP/AVP 14 26 a=rtpmap:14 MPA/90000 a=rtpmap:26 JBEG/90000 m=audio 4006 RTP/AVP 0 4 a=rtpmap:0 PCMU/8000 a=rtpmap:4 GSM/8000 Attribute rtpmap wymienia atrybuty profilu 4 audio RTP/AVP z kodekiem (GSM) i częstotliwością próbkowania (8000Hz) 61

SDP przykład odpowiedzi v=0 o= s= c=in IP4 16.22.3.1 t= m=video 0 RTP/AVP 14 m=audio 6002 RTP/AVP 4 a=rtpmap:4 GSM/8000 Odrzucenie sesji wideo wskazanie przez numer portu = 0 Akceptacja sesji audio przez wybranie kodeka GSM i wysłaniu w odpowiedzi numeru portu 0 62

SIP wybrane kodeki (RFC 3551) KODEK OPIS Typ RTP/AVP G.711 µ law PCM. Nie wymagane transkodowanie do PSTN. Japonia i USA. G.711 A law PCM. Nie wymagane transkodowanie do PSTN. Europa. G.729 Kodek z kompresją CELP (Code Excited Linear Prediction) G.723 Kodek z kompresją VAD (Voice Activity Detection) 0 8 18 4 AMR Adaptive Multirate Codec. Domyślny kodek w 3G dynamiczny ilbc Internet Low Bit Rate Codec. RFC 3952. GSM ETS 300 961. dynamiczny 3 63

Modyfikacja sesji: re-invite Modyfikacja ustanowionej sesji przez ponowne użycie metody INVITE zmiana: mediów typu sesji używanych typów kodeków źródłowych adresów IP numeru portu 64

Modyfikacja sesji SIP UA SIP UA SIP UA SIP UA 1 INVITE sdp1 Niepowodzenie re-invite nie powoduje zakłócenia 2 180 Ringing trwającej sesji 3 200 OK sdp2 4 ACK Media Session Powodzenie 5 INVITE drugiego sdp2 re-invite ustanawia nową sesję medialną, która zastępuje poprzednią 6 405 Not Acceptale 7 ACK 8 INVITE sdp2 9 200 OK sdp1 10 ACK New Media Session 65

Zakończenie sesji SIP UA 1 INVITE 3 100 Trying 5 180 Ringing 7 200 OK 8 ACK Media Session 10 BYE Serwer Proxy 2 INVITE 4 180 Ringing 6 200 OK 9 ACK BYE kończy sesję 11 BYE SIP UA 13 200 OK 12 200 OK Nie ma już żadnej sesji medialnej 66

Od IETF SIP. Serwer SIP DNS Serwer SIP Żądanie Sieć szkieletowa IP Odpowiedź Klient SIP Klient SIP Klient SIP Klient SIP 67

do 3GPP SIP DNS DNS HSS P-CSCF Sieć szkieletowa IP I-CSCF S-CSCF Serwer aplikacji SLF 68

SIP w IMS Dodatkowa informacja sygnalizacyjna Cell-ID Mobile Network/Country Code Charging-ID P-header Kompresja Kompresja wiadomości SIP obowiązkowa interfejs radiowyrzadki zasób Kompresja / dekompresja wiadomości SIP wykonywana przez UE i P-CSCF Uwierzytelnienie i ochrona integralności S-CSCF realizuje uwierzytelnienie za pomocą procedury AKA P-CSCF sprawdza integralność wiadomości odebranych przez interfejs radiowy via IPsec ESP 69