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ů.
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[editovat | editovat zdroj]
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í relace
OPTIONS – požádá o informace o možnostech volajícího, aniž by se sestavilo volání
Chybová hlášení[editovat | editovat zdroj]
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[editovat | editovat zdroj]
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)