SIP

From NMS
Revision as of 11:45, 9 February 2007 by Ernekerz1 (Talk | contribs)

Jump to: navigation, search

SIP (Session Initiation Protocol) je takzvaným signalizačním protokolem, který se používá pro navázání spojení v moderních síťových technologiích. Použití může nalézt všude, kde je potřeba v reálném čase navazovat spojení přes Internet (respektive jakoukoli síť), například video konference, hlasový přenos, přenos textových zpráv, atd. Aplikační protokoly odpovědné za tyto činnosti spolupracují s protokolem SIP, který jim poskytuje způsob vytvoření infrastruktury pro komunikaci mezi koncovými body na Internetu (tzv. User Agents).

Nejznámější aplikací protokolu SIP je IP telefonie. Obecně přenos hlasových služeb přes datovou strukturu se nazývá Void over Data (VoD), jelikož ale naprostá většina takových služeb je implementována nad protokolem IP, vžívá se celkově pro telefonii vedenou přes datovou infrastrukturu pojem Voice over IP (VoIP).

SIP je sice aplikační protokol, ale není žádným způsobem vertikálně orientován, proto musí spolupracovat s dalšími protokoly, jako například s Real-time Transport Protocol (RTP) který se používá k přenosu samotných dat v reálném čase a zajišťuje specifikovanou míru spolehlivosti (QoS - Quality of Service), nebo s Media Gateway Control Protocol (MEGACO) umožňující ovládat tzv. brány mezi datovou infrastrukturou a infrastrukturou klasických telefonních linek (Public Switched Telephone Network - PSTN).

Funkce SIP

SIP umožňuje vytvoření, modifikaci a ukončení spojení mezi různými User Agents (UA) na Internetu. Hlavní výhodou je, že tyto UA nemusí být stále na stejném místě, ale třeba být pokaždé připojeny jinde i jiným způsobem připojení a tedy i s jinou IP adresou, ale SIP tyto změny monitoruje.

Protokol podporuje 5 různých aspektů tvorby, spravování a ukončování spojení:

  • Lokace uživatele - potřeba určit konečný bod spoje (tj. kde se uživatel nachází v daném okamžiku)
  • Dostupnost uživatele - určení, zda volaná strana je dostupná, jinak také, zda je ochotna přijmout spojení
  • Podporované vlastnosti - určení, přes jaké médium se bude spojení uskutečňovat
  • Nastavení spojení - nastavení parametrů pro spojení
  • Údržba spojení - zahrnuje přesměrování či ukončení spojení, či volání služeb

Architektura SIP

Zařízení jsou v protokolu SIP rozdělena do následujících kategorií:

  • SIP User Agents (koncová zařízení uživatelů)
    • User Agent Client - zařízení, které inicializuje spojení
    • User Agent Server - zařízení, které spojení přijímá

Poznámka: Díky této architektuře je možné používat architekturu klient/server.

  • SIP network Server

Hlavní funkcí SIP serveru je překládání SIP adres a tím lokalizace uživatelů na síti. Servery mohou fungovat v tzv. stavovém a bezstavovém modu. Ve stavovém modu si server ukládá odkud přišly jednotlivé požadavky stejně tak jako kam posílá odpovědi či kam přeposílá tyto požadavky. Proto při opakovém požadavku dokáže tento požadavek vyřídit rychleji. Bezstavový server si neuchovává žádné informace a proto je pro něj každý požadavek jako nový a unikátní. Z tohoto důvodu se bezstavové servery používají spíše na páteřní síti, kdežto stavové servery se používají spíše blíže k jednotlivým uživatelům. Další funkcí SIP serverů je rozdvojování příchozího hovoru, což umožňuje volání nejen jednoho, ale více uživatelů najednou.

Základy protokolu

SIP Adresace

Protokol SIP používá tzv. Uniform Resource Identifier (URI) pro adresaci. Prefixem pro takové URI je sip nebo sips při použití zabezpečeného spojení přes TLS. Příkladem adresovaných objektů jsou:

  • uživatel online služby
  • emailová schránka
  • brána do PSTN sítě
  • skupina v organizaci

Formát URI je specifikován v [RFC 2396]. Obecně má tuto podobu:

sip:uzivatel:heslo@host:port;uri-parametry?hlavicky

Povinné jsou ale pouze specifikace protokolu (sip) a dále uživatel a host. Význam částí uzivatel a heslo jsou zřejmé. Část host je obvykle zadána ve formátu jména domény, ke které konkrétní uživatel spadá, ale je možné použít i adresu IP verze 4 i verze 6. Port identifikuje port na který má být požadavek odeslán (obvykle pak na tomto portu běží služba obsluhující SIP requesty). URI parametry jsou zadávány pomocí "jmeno_parametru=hodnota_paramatru", v případě mnohonásobných parametrů, každá dvojice je oddělena středníkem. Hlavičky jsou řešené stejně jako paramatry, akorát jsou od parametrů odděleny otazníkem. Navíc existuje speciální hlavička body, která umožňuje definovat i tělo zprávy. Celý tento mechanismus zajišťuje snadný mechanismus posílání celých zpráv i s hlavičkami.

Příklady

sip:john@doe.com;maddr=239.255.255.1;ttl=15
sip:letec@czech.com
sips:Bob@okounel.com?subject=project%20x&priority=urgent
sip:emil:emilpass@zizkov.com;transport=tcp

Požadavky

To, že protokol SIP funguje na principu komunikace klient/server vlastně znamená, že je komunikace probíhá stylem - požadavek a odpověď na požadavek. Požadavek obsahuje především typ požadavku (metoda) a dále sip URI adresáta požadavku a verzi protokolu. Rozlišují se hlavně následující typy požadavků:

  • INVITE - k přizvání uživatele do spojení, tělo samotné zprávy pak obsahuje popis spojení
  • ACK - potvrzení přijetí INVITE požadavku
  • BYE - oznámení ostatním účastníkům spojení o vůli k ukončení spojení
  • CANCEL - zrušení předchozího požadavku. Takto je možné zrušit pouze požadavky, které jsou dosud nevyřízené. Požadavek se stává vyřízeným odesláním odpovědi s kódem např. 200 (viz níže v sekci Odpovědi.
  • REGISTER - používá se k registraci aktuální adresy klienta u svého SIP serveru

Odpovědi

Odpovědi se dělí do uvedených kategorií podle kódu odpovědi na:

  • 1xx: Prozatímní odpovědi jako požadavek přijat, vyzvání
  • 2xx: Úspěch. Požadavek je přijat, pochopen a akceptován
  • 3xx: Přesměrování. Je třeba vytvořit nový upravený požadavek.
  • 4xx: Chyba klienta. Špatná syntaxe požadavku, nebo požadavek nemůže být proveden
  • 5xx: Chyba serveru. Server není schopen provést platný požadavek
  • 6xx: Globální chyba. Požadavek nelze provést na žádném serveru

Odpovědi s kódem 200 a výše jsou konečné, jejich přijetí ukončuje transakci.

Copyright: Tato sekce je převzata doslovně z https://sip.cesnet.cz/doku.php?id=protokoly:sip

Hlavičky

Níže uvedené položky jsou tím podstatným výběrem z mnoha možných hlaviček

  • To: Adresa volaného
  • From: Adresa volajícího klienta
  • Via: Adresa klienta, který vysílá požadavek nebo adresa serverů přes něž požadavek prošel a kudy se bude vracet odpověď
  • Call-Id: Unikátní identifikace volání
  • Contact: Aktuální skutečná adresa klienta
  • Record-Route: Seznam adres serverů, kteří chtějí dostávat veškerou komunikaci náležející k hovoru
  • Route Posloupnost adres serverů, přes které je požadavek směrován a klienta, ke kterému má požadavek dorazit.
  • Request-URI: Aktuální adresát požadavku. Údaj se vyskytuje v první řádce požadavku za metodou (typem požadavku)

Copyright: Tato sekce je převzata doslovně z https://sip.cesnet.cz/doku.php?id=protokoly:sip

Typy spojení

Komunikace

Registrace

Navázání a ukončení spojení

Příklad

SIP a Skype ?

SIP v komerčním použití

SIP na FJFI

Užitečné odkazy

Zdroje