header image
Home arrow Sieci VoIP arrow Sieci VoIP arrow SIP-Session Initiation Protocol
SIP-Session Initiation Protocol E-mail
Oceny: / 12
KiepskiBardzo dobry 

Podstawowe funkcje SIP (Session Initiation Protocol) w realizacji połączenia to: lokalizacja punktów końcowych (użytkownika A i B), sygnalizowanie chęci do komunikacji, negocjacja parametrów sesji by zestawić sesję oraz zwolnienie sesji już zestawionej.


Użytkownicy dzwonią do siebie stosując identyfikację SIP URI (Uniform Resource Identifier), która jest podobna do adresu email, zawierającego nazwę użytkownika i nazwę hosta (przykład sip: ). SIP może także stosować bezpieczne URI, nazywane SIPS URI (przykład sips: ). Połączenie wykonane do SIPS URI gwarantuje, że bezpieczny, szyfrowany transport (TLS - Transport Layer Security) jest stosowane przy przenoszeniu wszystkich wiadomości SIP od wywołującego do domeny wywoływanego użytkownika, skąd żądania są wysyłane bezpiecznie do wywoływanego użytkownika, ale z mechanizmami bezpieczeństwa, które zależą od polityk jego domeny.

SIP (Session Initiation Protocol) oparty jest o model transakcyjny zapytań/odpowiedzi podobnych do HTTP. Każda transakcja składa się z żądań, które przywołują odpowiednią metodę lub funkcję na serwerze i przynajmniej jedną odpowiedź. Przykład metody INVITE w SIP, która określa akcję, w której żądający (ipnet) chce wziąć do pracy serwer użytkownika wywoływanego (nomad).

INVITE sip: SIP/2.0

Via: SIP/2.0/UDP pc2.tech-portal.pl;branch=z8hF4bK473asseds

Max-Forwards: 70

To: nomad <sip: >

From: Ipnet <sip: >;tag=1128201474

Call-ID:

CSeq: 314159 INVITE

Contact: <sip: >

Content-Type: application/sdp

Content-Length: 142

SIP (Session Initiation Protocol) zbudowany jest jako protokół warstwowy, co oznacza, że jego zachowanie jest opisane przez niezależne stany przetwarzania z luźnym powiązaniem miedzy poszczególnymi stanami (stadiami). Zachowanie protokołu jest opisane jako warstwy dla celów prezentacji, umożliwiających opisanie funkcji wspólnych dla elementów w pojedynczej sekcji. Nie narzuca on w jakikolwiek sposób implementacji. Jeśli mówimy, że element zawiera warstwę, mamy na myśli, że jest zgodny dla zbioru reguł określonych przez tą warstwę.

Nie każdy element określony przez protokół zawiera wszystkie warstwy, ponadto elementy definiowane przez SIP są elementami logicznymi, a nie fizycznymi.

Najniższą warstwą SIP (Session Initiation Protocol) jest składnia i kodowanie. Kodowanie jest wykonywane przy użyciu gramatyki BNF (notacja Backus-Naur Form).

Drugą warstwą jest warstwa transportowa. Określa jak klient wysyła żądania i otrzymuje odpowiedzi oraz jak serwer wysyła/odbiera żądania/odpowiedzi poprzez sieć. Wszystkie elementy SIP zawierają warstwę transportową.

Trzecią warstwą jest warstwa transakcyjna. Transakcje są fundamentalnym komponentem SIP. Transakcja jest żądaniem wysłanym przez transakcję klienta (przy wykorzystaniu warstwy transakcyjnej) do transakcji serwera, z wszystkimi odpowiedziami na to żądanie, wysłanymi z transakcji serwera do klienta. Warstwa ta obsługuje retransmisje warstwy aplikacyjnej, dopasowanie odpowiedzi do żądań oraz timeouty warstwy aplikacyjnej.

Powyżej warstwy transakcyjnej znajduje się wartswa użytkownika transakcji (TU). Każdy z elementów SIP, oprócz bezstanowego proxy, jest użytkownikiem transakcji.

Elementy SIP, takie jak user agent client UAC i user agent server UAS, stateless i stateful proxy oraz registrar, zawierają rdzeń który rozróżnia je od siebie. Wszystkie rdzenie są użytkownikami transakcyjnymi, oprócz elementu stateless proxy.

Metody SIP (Session Initiation Protocol):

  • INVITE - zapoczątkowanie wywołania przez zaproszenie użytkownika do sesji.
  • ACK - Potwierdza odebranie odpowiedzi na żądanie INVITE.
  • BYE - zakończenie wywołania.
  • CANCEL - anulowanie żądania trwającego.
  • REGISTER - rejestrownie agenta użytkownika.
  • OPTIONS - odpytanie o możliwości serwera.
  • INFO - przenoszenie informacji dodatkowej, np. cyfr DTMF.

Kody odpowiedzi w SIP (Session Initiation Protocol):

  • 1xx - Wiadomości informacyjne.
  • 2xx - Odpowiedzi pozytywne.
  • 3xx - Odpowiedzi przekierowania.
  • 4xx - Odpowiedzi błędnych żądań.
  • 5xx - Odpowiedzi błędu serwera.
  • 6xx - Odpowiedzi błędów globalnych.

 

< Poprzedni