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 při 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í relace
Chybové hlášky
Chybové hlášky 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 registratora, na kterém se jednotliví účastníci registrují.
