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í.
Externí odkazy
- Obrázky, zvuky či videa k tématu Session Initiation Protocol na Wikimedia Commons
- SIP Protocol Overview Archivováno 27. 6. 2020 na Wayback Machine
- sip.org
- www.sipforum.org
- www.iptel.org/sip