20
Telefonia SIP Telefonia SIP Session Initiation Protocol Session Initiation Protocol RFC 3261 RFC 3261 RFC 2543

Telefonia SIP Session Initiation Protocol RFC 3261 RFC 2543

Embed Size (px)

DESCRIPTION

Telefonia SIP Session Initiation Protocol RFC 3261 RFC 2543. Stos protokołów realizacji usługi głosowej w sieci IP na bazie protokołu SIP. SDP. H.323. RSVP. SIP. RTCP. RTP. TCP. UDP. IP4, IP6. PPP. ALL3/4. ALL5. V.34. ATM. Ethernet. RSVP Resource Reservation Protocol - PowerPoint PPT Presentation

Citation preview

Page 1: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Telefonia SIP Telefonia SIP

Session Initiation ProtocolSession Initiation ProtocolRFC 3261RFC 3261

RFC 2543

Page 2: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

H.323 SIPRSVP RTCP RTP

TCP UDP

IP4, IP6

PPP

V.34

ALL3/4 ALL5

ATM Ethernet

SDP

Stos protokołów realizacji usługi głosowej w sieci IP na bazie protokołu SIP

RSVP Resource Reservation ProtocolSDP Session Description ProtocolSIP Session Initiation ProtocolRTCP RTP Control ProtocolRTP Real Time Protocol

Page 3: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

SIP (Session Initiation Protocol) jest protokołem tekstowym warstwy aplikacji, typu klient-serwer, przeznaczonym do inicjowania, modyfikacji i kończenia interaktywnych multimedialnych sesji komunikacyjnych dla dwóch lub więcej uczestników.

Sesją może być:• wideokonferencja,• wideotelefonia, • telefonia internetowa (VoIP),• konferencja danych, itp.

Page 4: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Architektura funkcjonalna sieci IP wykorzystującej protokół SIP składa się z węzłów dwóch typów:

1. Agentów użytkowników UA (User Agent).2. Serwerów o różnym przeznaczeniu i sposobach

działania.

Agent użytkownika (UA) jest elementem pośredniczącym w komunikacji między użytkownikiem a siecią. UA łączy w sobie funkcje klienta UAC (UA Client) i serwera UAS (UA Server). Każdy terminal sieci SIP pełni rolę UA (UAC+UAS) i jest jednocześnie węzłem typu host w znaczeniu internetowym. Umożliwia to wysyłanie przez użytkownika zarówno żądań (np. inicjowanie sesji) jak i odpowiadanie na żądania przychodzące (np. przyjęcie zaproszenia do sesji).

Page 5: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Serwery sieciowe można podzielić na:

1. Serwery pośredniczące (Proxy Server);2. Serwery przekazujące (Redirect Server);3. Serwery lokalizacji (Location Server);4. Serwery rejestrowe (Registrar Server);5. Serwery mediów (Media Server);6. Serwery aplikacji (Aplication Server).

Page 6: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Żądanie i odpowiedzi SIP:

Format żądania: Request-line = Method Request-URI SIP-Version

Format odpowiedzi:Status-line = SIP-Version Status-Code Reason-Phrase

Page 7: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

      

Odpowiedzi mają postać podobną jak odpowiedzi w protokole HTTP. W szczególności zawierają one trzycyfrowy kod odpowiedzi wraz z towarzyszącym mu słownym wyjaśnieniem. Wyróżniono sześć typów odpowiedzi:

informacyjne (1xx - Provisional) – wskazujące postęp w wywołaniu metody, np.: 100 Trying, 180 Ringing, 181 Call Is Being Forworded, 182 Queued;

osiągnięto sukces (2xx - Success) - żądanie zostało poprawnie otrzymane, zrozumiane oraz zaakceptowane. Interpretacja odpowiedzi zależy od użytej metody;

przekierowanie (3xx - Redirection) - wskazanie konieczności podjęcia dodatkowych akcji związanych z obsługą żądania. Odpowiedź zawiera informację o lokalizacji wywoływanego użytkownika lub o alternatywnej usłudze. Nowe wywołanie powinno zostać wysłane pod nowy adres. UAC lub serwer proxy muszą sprawdzić czy pod otrzymany adres nie wysyłano już wcześniej tego żądania (detekcja pętli);

błąd po stronie klienta (4xx - Client Error) - żądanie jest niepoprawne lub nie może być zrealizowane przez dany serwer, np.: 407 Proxy Authentication Required;

błąd po stronie serwera (5xx - Server Error) - dany serwer nie może obsłużyć żądania, np.: 500 Internal Server Error;

błąd globalny (6xx - Global Failure) - żądanie nie może być spełnione przez żaden serwer, np.:600 Busy Everywhere.

Page 8: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Wiadomości - metody

1. INVITE inicjuje połączenie i stanowi zaproszenie do sesji. W nagłówkach wiadomości zawarte są informacje o adresach użytkowników, temacie połączenia, priorytetach. Treść wiadomości zawiera opis sesji (rodzaje mediów, które terminal wywołujący może obsłużyć, typy kodeków, metody kompresji, protokoły, itp.). Jeżeli podczas trwania połączenia użytkownik odbierze wiadomość z metodą INVITE od użytkownika, z którym jest połączony oznacza to żądanie zmiany parametrów sesji. Może ono zostać przyjęte lub odrzucone przez wysłanie odpowiedzi z proponowanymi nowymi parametrami sesji.

2. ACK jest wysyłana jako potwierdzenie, że klient otrzymał końcową odpowiedź na żądanie z metodą INVITE. Żądanie z metodą ACK może zawierać treść wiadomości. W tym przypadku zawiera ona ostateczne parametry połączenia używane przez wywołującego. W przeciwnym razie obowiązują parametry połączenia zawarte w żądaniu INVITE.

Page 9: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

3. OPTIONS jest wysyłana w celu uzyskania informacji o stanie użytkownika. Gdy jest on w stanie gotowości może odpowiedzieć wiadomością zawierającą obsługiwane przez niego media, protokoły, itp. Gdy jest zajęty może odesłać odpowiedź zawierającą adres poczty elektronicznej lub głosowej.

4. BYE jest wysyłana w celu zakończenia połączenia. Adresat powinien zaprzestać wysyłania danych tylko do tego użytkownika, który przesłał tę wiadomość. Mechanizm ten pozwala rezygnować z uczestnictwa w sesji grupowej – konferencji.

Wiadomości - metody

Page 10: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

5. CANCEL jest wysłana w celu zakończenia przetwarzania żądań będących w toku, lecz nie rozłącza połączeń w ramach już zestawionych sesji. Przykładowe zastosowanie to zakończenie wywoływania użytkownika na wszystkich terminalach po odebraniu przez niego połączenia na jednym terminalu.

6. REGISTRER służy do rejestracji użytkownika w serwerze lokalizacji. Zapis w serwerze może zawierać dodatkowe informacje o użytkowniku, np.: o czasie dostępności użytkownika, przyczynie nieobecności i planowanym czasie powrotu.

Wiadomości - metody

Page 11: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Opis SDP składa się z linii tekstu w formacie <typ>=<wartość>, gdzie <typ> jest zawsze jednym znakiem, natomiast <wartość> jest strukturalnym tekstem, którego format zależy od pola <tup>.Opis sesji składa się z właściwego opisu sesji (session level-description) oraz opisu transportowanych danych (media-level descriptions). Dekskryptory sesji:v=<version> - wersja protokołu SDP,o= informacja o twórcy i identyfikatorze sesji: <username> - identyfikator hosta źródłowego; <session id> - ciąg alfanumeryczny, unikalny identyfikator sesji; <version> - wersja zapowiedzi, używana do określenia, która z wielu zapowiedzi jest najnowsza <network type> - ciąg tekstowy, określający typ sieci, (Internet – IN); <address type> - ciąg tekstowy definiujący typ adresu (IP4 lub IP6);  <address> - adres hosta, który utworzył sesję.s*=<session name> - nazwa sesji, każda sesja musi mieć jedną (i tylko jedną) nazwę;i*=<session information> - pole informacyjne o sesji;u*=<URI of description> - więcej informacji o sesji; e*=<eamil address> - osoby odpowiedzialnej za sesję;P*=<phone number> - osoby odpowiedzialnej za sesję;

Specyfikacja SDP Session Description Protocol (RFC 2327)

Page 12: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

c*= informacja o połączeniu: <network type> - typ sieci (Internet IN) <address type> - typ adresu (np. IP4) <connection address> - aktualny adres hosta dostarczającego dane audio/wideo

b*=<modifier>:<bandwidth-value >

<modifier> - modyfikator może przyjąć dwie wartości: CT – (conference total) i AS (application- specific max)- informacje o paśmie;

<bandwidth-value> podany jest w kilobajtach

t*=<start time> <stop time> - czas startu i końca sesji

z*= - strefa czasowa

a*= - atrybuty dodatkowe

Page 13: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

 Deskryptory danych audio/wideo:

m=<media> <port> <transport> <fmt list> - sekcja opisu danych ma cztery parametry: <media> - charakterystyka danych (np.: audio, video, itd.), <port> - numer portu,  <transport> - protokół transportowy dla danych (np. RTP),  <fmt list> - lista formatów.i= - tytuł,b= - informacje o paśmie,

Page 14: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP host.wcom.com:5060From: Alan Johnston <sip:[email protected]>To: Jean Luc Picard <sip:[email protected]>Call-ID: [email protected]: 1 INVITEContact: sip:[email protected]: Where are you these days?Content-Type: application/sdp Content-Length: 124 v=0o=ajohnston 5462346 332134 IN IP4 host.wcom.coms=Let's Talkt=0 0c=IN IP4 10.64.1.1m=audio 49170 RTP/AVP 0 3  

Zapytanie SIP

Opis SDP

Przykład opisu SDP

Powyższe żądanie inicjuje sesję dźwiękową opartą na protokole transportowym RTP. Osobą inicjującą sesję jest host host.wcom.com.

Page 15: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Przykład realizacji VoIP na bazie SIP

• klienci usługi VoIP: SIP (UAC+UAS), konfiguracja hosta IP;• zlokalizowane serwery: SIP Proxy, Redirect, Registrar, Location (DNS);• konfiguracja serwerów SIP – konta użytkowników;

Page 16: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

SIP proxy

cs.tu-berlin.de

[email protected]

lion

INVITE [email protected]: [email protected] To: [email protected] Call-ID: [email protected]

200 OKFrom: [email protected] To: [email protected] Call-ID: [email protected]

200 OK

hgsINVITE hgs@playFrom: [email protected] To: [email protected] Call-ID: [email protected]

play

200 OKFrom: [email protected] To: [email protected] Call-ID: [email protected]

ACK hgs@play From: [email protected] To: [email protected] Call-ID: [email protected]

200 OK

cs.columbia.edu

1

7

ACK [email protected] Call-ID: [email protected]

8

11

henning2 hgs@play

3

4

6

9

10

proxy

5

Page 17: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

SIP redirect

cs.tu-berlin.de

[email protected]

lion

INVITE [email protected]: [email protected] To: [email protected] Call-ID: [email protected]

302 Moved temporarilyLocation:[email protected]: [email protected] To: [email protected] Call-ID: [email protected]

play

cs.columbia.edu

1

4

2

7

henning

2play.cs.columbia.edu3

redirect

INVITE [email protected]: [email protected] To: [email protected] Call-ID: [email protected]

200 OKFrom: [email protected] To: [email protected] Call-ID: [email protected] 2

ACK [email protected] Call-ID: [email protected] 2

8

200 OK9

6

hgs@play

Page 18: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

VoIP SIP w ofercie SNOM

Sieć z protokołem IP

IP

Firewall, Ruter

(filtrowanie i zliczanie ruchu)

SIP UA

SIP Proxy

SIP Redirect

Media server

SIP UA

IP

SIP UA

SIP UA

DNS

Page 19: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Następne kroki implementacji VoIP

• zbadanie funkcjonalności sygnalizacji SIP• zbadanie wpływu metody kodowania głosu na ruch RTP/UDP/IP• określenie i przebadanie współpracy z SIP (SNOM) usługi DNS• określenie wpływu parametrów i typu sieci na działanie SIP• przyjazne usłudze metody kształtowania ruchu na firewallu i ruterze• zbadanie sygnalizacji przy realizacji usług dodatkowych

Page 20: Telefonia SIP  Session Initiation Protocol RFC 3261 RFC 2543

Dziękuję za uwagę Dziękuję za uwagę