Wykład 4 - SIP
Tematyka wykładu
1. Wprowadzenie
2. Funkcje SIP
3. System SIP
4. Transakcje SIP – wymiana komunikatów
5. Podsumowanie
Wprowadzenie
Protokół SIP (ang. Session Initiation Protocol), to protokół warstwy aplikacji, który używany jest do ustanowienia, utrzymywania i zrywania sesji multimedialnych. Do tego rodzaju sesji zaliczamy:
telefonię internetową,
konferencje multimedialne,
aplikacje, które wykorzystują dźwięk, obraz i dane.
Standaryzacja SIP
Standard SIP opisano w 2002 r (proponowany standard)
RFC 3261 SIP: Session Initiation Protocol
Uaktualnienia:
RFC 3265: Session Initiation Protocol (SIP)-Specific Event Notification
RFC 3853: S/MIME Advanced Encryption Standard (AES) Requirement for the Session Initiation Protocol (SIP)
RFC 4320: Actions Addressing Identified Issues with the Session Initiation Protocol's (SIP) Non-INVITE Transaction
RFC 4916: Connected Identity in the Session Initiation Protocol (SIP)
RFC 5393: Addressing an Amplification Vulnerability in Session Initiation Protocol (SIP) Forking Proxies
RFC 5621: Message Body Handling in the Session Initiation Protocol (SIP)
RFC 5626: Managing Client-Initiated Connections in the Session Initiation Protocol (SIP)
RFC 5630: The Use of the SIPS URI Scheme in the Session Initiation Protocol (SIP)
RFC 5922: Domain Certificates in the Session Initiation Protocol (SIP)
RFC 5954: Essential Correction for IPv6 ABNF and URI Comparison in RFC 3261
RFC 6026: Correct Transaction Handling for 2xx Responses to Session Initiation Protocol (SIP) INVITE Requests
RFC 6141: Re-INVITE and Target-Refresh Request Handling in the Session Initiation Protocol (SIP)
Funkcje SIP
Lokalizacja użytkownika
Dostępność użytkownika
Możliwości użytkownika
Konfiguracja połączenia
Obsługa połączenia
System SIP
Agenci użytkowników
User - Agent Client
Inicjująć żądania SIP
Działa jako dzwoniący agent użytkownika
User – Agent Server
Odbiera żądania i zwraca odpowiedzi w imieniu użytkownika
Działa jako agent wydzwaniany przez użytkownika
Serwery sieciowe
Serwer pośredniczący(ang. Proxy server)
Interpretuje nagłówki żadań klientów
Przekazuje nagłówki żądań do innych serwerów
Serwer przekierowań (ang. Redirect server)
Akcdeptuje żądania SIP
Wysyła odpowiedzi do klienta
Rejestrator SIP (ang. registrar)
Zbiera I archiwizuje informacje na temat użytkowników SIP
Adresowanie
Adresy SIP często nazywa się również adresami URL SIP (ang. Universal Resource Locators SIP). Przyjmują
następującą formę:
uzytkownicy@host
Część identyfikująca użytkownika może być może być nazwą użytkownika albo numerem telefonu. Przykłady adresów URL SIP:
sip: tomasz.palys@wat.edu.pl
sip: 226839401@196.102.1.1
Lokalizacja serwera
Bezpośrednia
Lokalizacja ułatwiona – znany adres IP
Pośrednia
Określenie adresu i portu IP serwera Proxy:
Wysłanie do serwera DNS zapytania o adres IP
Odczytanie adresu IP z adresu URL SIP
W pierwszej kolejności UDP a później TCP
Trapezowa architektura SIP
Lokalizacja użytkownika
Przez serwer przekierowań – serwer przekazuje pełną listę lokalizacji i pozwala klientowi zlokalizować użytkownika bezpośrednio;
Przez serwer proxy SIP – może równolegle próbować adresów, aż do pomyślnego nawiązania połączenia.
Transakcje SIP
Wszystkie żądania i odpowiedzi związane z pewnym działaniem nazywamy transakcją SIP.
Komunikaty SIP
SIP, to protokół tekstowy, którego składnia komunikatu i pola są identyczne z protokołem HTTP (ang. Hypertext Transfer Protocol). Komunikaty SIP są wysyłane za pośrednictwem TCP lub UDP.
Istnieją dwa rodzaje komunikatów SIP:
żądania inicjowane przez klientów,
odpowiedzi zwracane przez serwery.
Komunikaty żądań
INVITE
• Użytkownik lub usługa zapraszana jest do uczestnictwa w sesji. Zawiera opis sesji a w przypadku połączeń
dwukierunkowych strona dzwoniąca wskazuje typ mediów. Pozwala otworzyć sesję konwersacji z ograniczoną liczbą komunikatów i pełnych obiegów.
ACK
• Korespondują z żądaniem INVITE. Reprezentują one ostateczne potwierdzenie systemu końcowego i zamykają transakcję zainicjowaną za pomocą INVITE. Jeśli strona dzwoniąca dołącza opis sesji, to w sesji nie używa się żadnych dodatkowych parametrów. Jeśli opis sesji nie jest dołączony, to parametry INVITE są używane jako domyślne.
OPTIONS
• Wysyłanie dodatkowych zapytań i gromadzenie informacji o możliwościach agentów użytkowników i serwerów sieciowych. Żądanie to nie jest używane do ustanawiania sesji.
BYE
• Używa się go do zamknięcia połączenia
REGISTER
• Rejestrowanie informacji związanych z lokalizacją na serwerach SIP.
CANCEL
• Anulowanie wszystkich żądań w trakcie przetwarzania.
Komunikaty odpowiedzi
Informacyjne • 100 – próbowanie (ang. Trying) • 180 – dzwonienie (ang. Ringing)
Pomyślne • 200 – OK
Przekierowania • 305 – użyj proxy
Błąd klienta • 400 – błędne żądanie
Błąd serwera • 503 – usługa niedostępna
Ogólne awarie • 606 – brak akceptacji
Transakcje SIP
Usługa lokalizacji
Podsumowanie:
W systemie SIP mamy do czynienia z dwoma komponentami: agenci użytkowników, serwery sieciowe.
Agenci użytkowników, to aplikacje systemu końcowego klienta:
UAC (ang. User – Agent Client),
UAS (ang. User – Agent Server, UAS ).
Serwery sieciowe:
Serwer proxy,
Serwer przekierowań.
Adresy SIP często nazywa się również adresami URL SIP.
SIP, to protokół tekstowy, komunikaty SIP są wysyłane za pośrednictwem TCP lub UDP.
Istnieją dwa rodzaje komunikatów SIP:
żądania inicjowane przez klientów,
odpowiedzi zwracane przez serwery.