Session Initiation Protocol

SIP (Session Initiation Protocol – česky protokol pro inicializaci relací) je internetový protokol určený pro přenos signalizace v internetové telefonii. Normálně používá UDP port 5060, ale může fungovat i nad TCP/5060.

První verzi protokolu popisoval dokument RFC 2543, současnou druhou verzi popisuje RFC 3261.

Protokol pro zajištění VoIP spojení pracuje v součinnosti s dalšími protokoly. Vlastní přenos hovoru se uskutečňuje pomocí protokolu RTP. Detaily o vlastnostech zahajovaného přenosu popisuje protokol SDP, který je přenášen v těle SIP paketů.

Starší standard pro signalizaci v internetové telefonii H.323, byl vyvinut telekomunikační organizací ITU-T a je oproti SIPu výrazně složitější. Protokol SIP proto vznikl jako reakce na tento standard, a snaží se být co nejjednodušší a založený na Internetem dobře prověřených principech. Proto vychází z osvědčeného protokolu HTTP a je mu velmi podobný. Také využívá položek podobných osvědčeným položkám SMTP protokolu pro posílání e-mailů.

Činnost protokolu

Pro vytvoření a řízení multimediální relace musí SIP zajistit následujících pět činností:

  • Lokalizace účastníka – nalezení spojení s koncovou stanicí
  • Zjištění stavu účastníka – zjištění, jestli je účastník schopen relaci navázat (může mít obsazeno, přesměrováno atd.)
  • Zjištění možností účastníka – zjištění, jaké jsou možnosti účastníka (typ kodeku, max. přenosová rychlost, audio/video atd.)
  • Vlastní navázání spojení – zde vstupuje do hry také protokol SDP, který popisuje navázané spojení a odkazuje na RTP datový tok
  • Řízení probíhajícího spojení – případné změny vlastností v průběhu relace a činnosti spojené s jejím ukončováním

Metody protokolu

SIP je textově orientovaný protokol a metody (příkazy) se v něm píší velkými písmeny (podle HTTP, ze kterého vyšel). Mezi základní metody protokolu patří:

  • REGISTER – registrace účastníka na SIP Proxy serveru
  • INVITE – zahájení komunikace o plánované nové relaci
  • ACK – potvrzení zahájení relace
  • CANCEL – přerušení zahajovaní relace ještě před jejím navázáním
  • BYE – ukončení probíhající relace
  • OPTIONS – požádá o informace o možnostech vzdálené strany, aniž by se sestavilo volání

Chybová hlášení

Chybová hlášení protokolu také vycházejí z HTTP, a proto používají „stovkové“ rozdělení chyb. Vedle číselného označení mají jednotlivé chyby také textovou verzi například 200 – OK, 100 – Trying, 180 – Ringing, 486 – Busy Here atd.

Chyby jsou rozděleny do těchto kategorií:

  • 1xx – průběh – krok probíhá bez problémů, ale ještě není ukončen
  • 2xx – úspěch – krok byl ukončen bez problémů
  • 3xx – přesměrování – krok probíhá, ale ještě se v souvislosti s ním něco očekává
  • 4xx – chyba klienta – požadavek je chybný a nemůže být serverem zpracován
  • 5xx – chyba serveru – požadavek je zřejmě v pořádku, ale chyba je na straně serveru
  • 6xx – fatální chyba – zcela fatální chyba, kterou nelze jakkoliv zpracovat

Příklad SIP komunikace při navázání relace

SIP zařízení mohou navázat relaci přímo mezi sebou, ale obvyklejší je, že k tomu použijí jeden nebo několik SIP proxy serverů. Tyto servery navíc mohou plnit (a obvykle plní) funkci tzv. SIP registrátora, na kterém se jednotliví účastníci registrují.

Ukázková transakce protokolu SIP (podle RFC 3261)

Externí odkazy


Média použitá na této stránce

SIP transakce.png
Ukázka SIP transakce (podle RFC3261)