doušek , inž. Session Initiation Protocol , Session Initiation Protocol - protokol přenosu dat , který popisuje způsob navázání a ukončení uživatelské komunikační relace, včetně výměny multimediálního obsahu ( IP telefonie , video a audio konference , rychlé zprávy , online hry ) [1] .
Tento protokol popisuje, jak může klientská aplikace (například softwarový telefon ) požádat o zahájení připojení od jiného, možná fyzicky vzdáleného klienta ve stejné síti pomocí svého jedinečného názvu. Protokol definuje způsob, jak vytvořit komunikační kanál a vyjednat protokoly pro výměnu informací mezi klienty (např. protokol RTP se používá pro výměnu hlasových dat ). Je povoleno přidávat nebo odebírat takové kanály během vytvořené relace, stejně jako připojovat a odpojovat další klienty (to znamená, že konferenční hovor je poskytován, když se výměny mohou zúčastnit více než dvě strany). SIP také určuje pořadí, ve kterém relace končí [2] .
SIP byl vyvinut IETF MMUSIC Working Group [3] . Protokol začal vyvíjet v roce 1996 Henning Schulzrinne ( Columbia University ) a Mark Handley ( University College London ). V listopadu 2000 byl SIP schválen jako signalizační protokol 3GPP a základní protokol pro architekturu IMS ( modifikace 3GPP TS.24.229 [4] ) [5] . SIP je spolu s H.323 jedním z protokolů aktivně využívaných pro přenos hlasu přes internet ( Voice over IP ) .
Pracovní skupina MMUSIC založila protokol na následujících principech:
Klienti SIP tradičně používají pro připojení síťových prvků SIP port TCP nebo UDP 5060 . SIP se v zásadě používá k navazování a odpojování hlasových hovorů a videohovorů. Zároveň jej lze použít v jakýchkoli jiných aplikacích, kde je vyžadováno připojení, jako jsou místní rozhlasové stanice, mobilní terminály a podobně. Existuje velké množství RFC souvisejících se SIP , které definují chování takových aplikací. Pro přenos samotných hlasových a obrazových dat se používají jiné transportní protokoly, nejčastěji RTP .
Hlavním cílem při vývoji SIP bylo vytvořit signalizační protokol na bázi IP , který by mohl podporovat rozšířenou sadu funkcí a služeb pro zpracování hovorů poskytovaných stávající PSTN . Samotný protokol SIP tyto funkce nedefinuje, ale zaměřuje se pouze na registraci uživatele, navázání a ukončení hovoru a související signalizaci. Zároveň byl navržen tak, aby podporoval takové funkční prvky sítě, jako jsou proxy servery (Proxy Servery) a User Agenty (User Agents). Tyto prvky zajišťují základní sadu služeb: vytáčení, volání na telefonní přístroj, zvukové upozornění účastníka na stav hovoru.
Telefonní sítě založené na SIP mohou také podporovat pokročilejší služby typicky poskytované SS-7 , a to navzdory významným rozdílům mezi těmito dvěma protokoly. SS-7 se vyznačuje složitou, centralizovanou inteligentní sítí a jednoduchými, neinteligentními terminály (tradiční telefony). SIP naopak vyžaduje velmi jednoduchou (a tedy vysoce škálovatelnou) síť s inteligencí zabudovanou do koncových prvků na okraji (terminály postavené jako fyzická zařízení nebo programy).
SIP se používá spolu s několika dalšími protokoly a účastní se pouze signalizační části komunikační relace. SIP funguje jako nosič pro SDP , který popisuje parametry přenosu médií v rámci relace, jako jsou IP porty a použité kodeky . V typické aplikaci jsou relace SIP jednoduše proudy paketů RTP . RTP je přímým nositelem hlasových a obrazových dat.
První navrhovaná verze standardu (SIP 2.0) byla definována v RFC 2543 . Protokol byl dále vylepšen v RFC 3261 , ačkoli mnoho implementací je stále založeno na přechodných verzích standardu. Všimněte si, že číslo verze zůstává 2.0.
Pro interakci se stávajícími síťovými aplikacemi IP a pro zajištění mobility uživatelů používá SIP adresu podobnou e-mailové adrese . Volané a volající adresy jsou Uniform Resource Pointers URI , tzv. SIP URI , obvykle ve formátu sip:идентификатор@домен, kde „identifikátor“ je jméno účastníka nebo telefonní číslo a „doména“ specifikuje server nebo IP-PBX, které lze specifikovat název domény nebo IP adresu.
Příklady:
Standard URI je specifikován v RFC 3986 .
Adresa má dvě části. První částí je jméno uživatele registrovaného v doméně nebo pracovní stanici. Druhá část adresy určuje název síťové domény, hostitele nebo IP adresu. Pokud druhá část identifikuje telefonní bránu, pak první část označuje telefonní číslo účastníka.
Uživatelská jména jsou pouze alfanumerické identifikátory. V IP telefonii se zpravidla používají čistě digitální identifikátory („čísla“) pro usnadnění rozšíření / nahrazení klasických telefonních sítí. Místní telefonní čísla mají obvykle 2-3-4 číslice.
Telefonní číslo přenášené na bránu je jakékoli dostupné přes ni, může to být buď číslo místní přípojky, nebo číslo mobilního či pevné linky. Adresa brány (IP adresa nebo název domény) se nastavuje v nastavení telefonu nebo klientského programu a uživateli stačí vytočit číslo, aby mohl uskutečnit hovor.
Protokol SIP má architekturu klient-server.
Klient vydává požadavky s uvedením toho, co chce od serveru přijímat. Server přijímá a zpracovává požadavky a vydává odpovědi obsahující oznámení o úspěchu požadavku, oznámení o chybě nebo informace požadované klientem.
Služba volání je distribuována mezi různé prvky sítě SIP. Hlavním funkčním prvkem, který implementuje funkce správy připojení, je uživatelský terminál. Jiné prvky sítě mohou být zodpovědné za směrování hovorů a někdy slouží k poskytování doplňkových služeb.
Když jsou klient a server implementovány v koncovém zařízení a komunikují přímo s uživatelem, nazývají se User Agent Client ( anglicky UAC , user agent client) - a User Agent Server ( anglicky UAS , user agent server). Pokud jsou na zařízení přítomny UAC i UAS, pak se nazývá User Agent ( UA , uživatelský agent) a je to v podstatě SIP terminál .
Server ( UAS ) a klient ( UAC ) mají možnost přímé interakce s uživatelem. Ostatní klienti a servery SIP to neumí.
Proxy server (z anglického proxy – „representative“) zastupuje zájmy uživatele v síti. Přijímá požadavky, zpracovává je a provádí příslušné akce. Proxy server se skládá z klientské a serverové části, takže může přijímat volání, iniciovat požadavky a vracet odpovědi.
Proxy server nesmí měnit strukturu a obsah přenášených zpráv, pouze přidává informace o své adrese do speciálního pole Via.
Existují dva typy proxy serverů
Proxy může uživateli v reakci na první požadavek naznačit nutnost dodatečné autentizace - minimálně přihlášení (odpověď 407 Požadováno ověření proxy ), vč. digitální autentizace pro bezpečnost.
B2BUA - ( anglicky back-to-back user agent , doslova: "back-to-back user agent") - varianta logického prvku serveru v aplikacích pracujících s protokolem SIP. B2BUA je konceptem podobný SIP proxy serveru , ale existují zde zásadní rozdíly. B2BUA server pracuje současně s několika (většinou dvěma) koncovými zařízeními - terminály a rozděluje hovor nebo relaci do různých sekcí. B2BUA pracuje s každým místem individuálně, jako UAS - ve vztahu k iniciátorovi a jako UAC - ve vztahu k terminálu přijímajícímu hovor. V tomto případě jsou signalizační zprávy přenášeny v rámci relace v obou směrech synchronně, ačkoli rozhodnutí o potřebě přenosu zprávy a jejím formátu činí B2BUA pro každou sekci samostatně. Každý z účastníků spojení (komunikační relace) na signalizační vrstvě interaguje s B2BUA jako s koncovým zařízením, ačkoli ve skutečnosti je server prostředníkem. To se odráží v adresových polích (jako Od, Komu a Kontakt) zpráv zasílaných serverem B2BUA. Klíčovým rozdílem mezi B2BUA je tedy zcela nezávislá signalizace všech úseků volání. To zejména znamená, že k interakci s každým jednotlivým uživatelem v rámci komunikační relace se používají jedinečné identifikátory a obsah stejných zpráv pro různé stránky se bude lišit. Uživatelští agenti koncových terminálů mohou komunikovat s B2BUA a za účasti proxy serverů.
Server B2BUA může poskytovat následující funkce:
Docela často je B2BUA součástí mediální brány , aby bylo možné plně spravovat mediální toky v rámci relace. Signalizační brána, která je součástí Connection/Session Border Controller , je ukázkovým příkladem aplikace B2BUA.
Přesměrovací server se používá k přesměrování hovoru na aktuální umístění uživatele. Server přesměrování neukončuje hovory a neiniciuje své vlastní požadavky, ale pouze hlásí adresu požadovaného terminálu nebo proxy serveru pomocí odpovědí třídy 3XX ( 301 Trvale přesunuto nebo 302 Dočasně přesunuto ). Pro tyto účely může přesměrovací server spolupracovat s registrátorem SIP nebo lokalizačním serverem.
Uživatel však nesmí k navázání spojení použít přesměrovací server, pokud sám zná aktuální adresu požadovaného uživatele.
Protokol SIP znamená mobilitu uživatele, to znamená, že se uživatel může pohybovat v síti získáním nové adresy. Proto má SIP registrační mechanismus – upozornění na novou adresu od uživatelského agenta. Registrační server neboli registrátor ( registrátor ) slouží k fixaci a uložení aktuální adresy uživatele a je pravidelně aktualizovanou databází adresních informací. Obecně platí, že uživatel poskytuje registračnímu serveru informace o své adrese, jako je IP adresa nebo název domény a telefonní číslo předplatitele, pomocí požadavku REGISTER. Server může potvrdit úspěšnou registraci ( 200 OK) nebo odmítnout, pokud probíhá kontrola dat a uživatelský účet není nalezen ( 404 Not found) nebo je registrace uživatele aktuálně zakázána ( 403 Forbidden). Registrátor může uvést potřebu přihlášení uživatele pro ověření ( 401 Unauthorized), zatímco může klientovi nabídnout ověření na základě zašifrovaného hesla. Zařízení nebo software, který nepoužívá protokol SIP (například DBMS , MS Exchange , RADIUS server atd.), může sloužit jako zdroj informací pro autentizaci uživatele. Registrace koncového zařízení uživatele na serveru má určitou „životnost“ a musí být potvrzena novým požadavkem REGISTERklienta, jinak může dojít ke smazání údajů o adrese. Klient může také odeslat požadavek s nulovou životností registrace - požadavek na vynucení odstranění informací o adrese ze serveru (dokončení registrace).
V různých implementacích sítí SIP může existovat kombinace registračního serveru a dalších serverů v jedné aplikaci nebo zařízení, které pracuje přes jeden soket na jednom portu (obvykle UDP / 5060) - tedy jeden bod pro příjem a zpracování žádostí. Registrátory jsou tak často kombinovány s přesměrovacím serverem, B2BUA nebo SIP proxy. Například mnoho softwarových ústředen (například Asterisk , Yate , RTU ) obsahuje funkcionalitu SIP registrátora s ověřením registračních údajů každého uživatele. Informace o možnosti uživatele registrovat se a navazovat spojení je v tomto případě určena jeho jediným účtem. Na druhé straně účastnická zařízení IP telefonie ( telefony , účastnické brány ) ve většině případů vyžadují povinnou předregistraci na serveru pro další práci v telefonní síti.
Výsledkem je, že IP telefonní systém může vypadat podobně jako mobilní komunikační systém – po zapnutí se všechna účastnická zařízení zaregistrují na ústředně (PBX) a poté mohou přes něj volat a přijímat hovory, což buď přesměruje požadavek na jiný konec. uživatele nebo předá požadavek jinému přepínači.
Uživatel se může pohybovat v rámci různých sítí, navíc skutečná adresa uživatele může být neznámá, i když je známo jeho číslo. To je relevantní zejména pro službu přenositelnosti čísel (LNP/MNP) . K vyřešení těchto problémů existuje mechanismus pro určování polohy uživatele pomocí nástrojů třetích stran, které přímo nesouvisejí se SIP - Location Server , který ukládá aktuální adresu uživatele a je pravidelně aktualizovanou databází informací o adrese.
Uživatel, který potřebuje informace o adrese jiného uživatele k navázání spojení, nekontaktuje přímo server umístění. Tuto funkci provádějí jiné SIP servery pomocí LDAP , R WHOIS , ENUM , RADIUS nebo jiných protokolů.
Zprávy protokolu SIP (požadavky a odpovědi) jsou sekvence textových řetězců zakódovaných v souladu s RFC 2279 . Struktura a syntaxe zpráv SIP jsou totožné se strukturami používanými v protokolu HTTP .
Struktura zpráv SIP |
Startovní čára |
---|
Tituly |
Prázdný řádek |
Tělo zprávy |
Příklad požadavku INVITE :
POZVAT sip:[email protected] SIP/2.0 Záznamová trasa: <sip:[email protected];lr> Přes: SIP/2.0/UDP 10.0.0.10;branch=z9hG4bK3af7.0a6e92f4.0 Přes: SIP/2.0/UDP 192.168.0.2:5060;branch=z9hG4bK12ee92cb;rport=5060 From: "78128210000" <sip:[email protected]>;tag=as149b2d97 Komu: <sip:[email protected]> Kontakt: <sip:[email protected]> Call-ID: [email protected] CSeq: 103 INVITE Maximální počet vpřed: 16 Datum: středa, 10. ledna 2001 13:16:23 GMT Povolit: POZVAT, ACK, ZRUŠIT, MOŽNOSTI, BYE, REFEROVAT, ODBĚROVAT, OZNÁMIT Podporováno: nahrazuje Content-Type: application/sdp Délka obsahu: 394 v=0 o=kořen 3303 3304 IN IP4 10.0.0.10 s=relace c=IN IP4 10.0.0.10 t=00 m=audio 40358 RTP/AVP 0 8 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telefonní událost/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=sendrecvPůvodní verze protokolu SIP (v RFC 3261 ) definovala šest typů požadavků. Pomocí požadavků klient hlásí aktuální polohu, zve uživatele k účasti na komunikačních relacích, upravuje již vytvořené relace, ukončuje je atd. Typ požadavku je uveden na startovacím řádku.
V budoucnu byl protokol rozšířen, bylo k němu přidáno několik dalších typů požadavků:
Odpovědi na žádosti hlásí výsledek zpracování žádosti nebo předávají požadované informace. Protokol SIP zdědil strukturu odpovědí a jejich typy od protokolu HTTP . Je definováno šest typů odezev, které nesou různé funkční zatížení. Typ odpovědi je zakódován jako třímístné číslo, přičemž nejdůležitější je první číslice, která definuje třídu odpovědi:
Protokol SIP je řídicí protokol pro navazování, úpravy a ukončování streamovaného datového spojení. Přenosové parametry mediálních toků jsou popsány v protokolu SIP pomocí SDP (Session Description Protocol). Streamovaná média lze přenášet různými způsoby, mezi nimiž jsou nejoblíbenější transportní protokoly RTP a RTCP .
Protokol SIP definuje 3 hlavní scénáře pro navázání spojení: s účastí proxy serveru, s účastí přesměrovacího serveru a přímo mezi uživateli. Scénáře se liší v tom, jak je volaný uživatel nalezen a pozván. Základní algoritmy navazování spojení jsou popsány v RFC 3665 .
V níže uvedeném příkladu je mediální provoz přenášen přes server. Signalizační zprávy pro segmenty Alice - B2BUA a B2BUA - Boris jsou zcela nezávislé a jsou prováděny v rámci různých relací (změní se alespoň cílová a odesílací adresa, stejně jako Call ID relací). Alicin terminál nezná skutečné umístění Borisova terminálu a naopak. Může to vypadat jako interakce prostřednictvím některých softswitchů nebo hraničních kontrolérů relace (SBC) .
Pro interakci s tradičními telefonními sítěmi využívajícími signalizaci SS-7 byly vyvinuty modifikace protokolu SIP pro telefonii: Session Initiation Protocol for Telephones (SIP-T) a Session Initiation Protocol Internetworking (SIP-I). Protokol SIP-I byl vyvinut ITU-T , doporučení Q.1912.5 [6] , a SIP-T byl vyvinut IETF a popsán v RFC 3372. Hlavním úkolem těchto modifikací protokolu SIP je transparentní přenos ISUP zprávy přes síť IP. Tento úkol je splněn zapouzdřením signalizačních jednotek SS do zpráv SIP. Všechny požadované úlohy pro interakci mezi protokoly byly vyřešeny na základě protokolu SIP:
Požadavek na interoperabilitu | Funkce SIP-T |
---|---|
Transparentnost signalizace ISUP | Zapouzdření ISUP v těle zprávy SIP |
Schopnost směrovat zprávy SIP v závislosti na parametrech ISUP | Překlad ISUP parametrů v hlavičce SIP zprávy |
Překlad informací o adrese během navázaného spojení | Pomocí metody INFO |
SIP je čitelný pro člověka a strukturovaný z hlediska požadavků a odpovědí. Zastánci SIP také tvrdí, že je jednodušší než H.323 [7] . Nicméně, některé[ kdo? ] mají tendenci si myslet, že zatímco původním cílem SIP byla jednoduchost, ve své současné podobě se stal stejně složitým jako H.323. jiný[ kdo? ] věří, že SIP je bezstavový protokol, který tak usnadňuje implementaci převzetí služeb při selhání a dalších funkcí, které jsou obtížné ve stavových protokolech, jako je H.323. SIP a H.323 nejsou omezeny na hlasovou komunikaci, mohou obsluhovat jakoukoli komunikační relaci, od hlasu po video nebo budoucí aplikace.
Porovnat parametr | SIP | H.323 |
---|---|---|
Doplňkové služby | Sada služeb podporovaných oběma protokoly je přibližně stejná. | |
Osobní mobilita uživatelů | Má dobrou sadu nástrojů na podporu mobility | Podpora osobní mobility, ale méně flexibilní |
Rozšiřitelnost protokolu | Pohodlná rozšiřitelnost, snadná kompatibilita s předchozími verzemi | Rozšiřitelnost je podporována, ale existuje řada složitostí |
Škálovatelnost sítě | Oba protokoly poskytují dobrou škálovatelnost sítě | |
Doba navázání spojení | Jedna transakce stačí | Je vyžadováno více transakcí |
Složitost protokolu | Jednoduché, málo požadavků, formát textových zpráv | Komplexní, mnoho požadavků a protokolů, binární reprezentace zpráv |
Hardwarová kompatibilita | Prakticky žádný. Každý výrobce SIP zařízení se řídí pouze sadou doporučení (RFC), která se mu líbí, protože sada těchto doporučení je velmi velká. Ve skutečnosti je kompatibilní pouze základní hovor | Téměř kompletní. Normy jsou dobře zavedené a mají jasný soubor specifikací |
Samostatná část RFC 3261 je věnována otázkám zabezpečení pomocí protokolu SIP . Šifrování signalizačního provozu je možné na úrovni přenosu pomocí TLS přes TCP/UDP. Kromě toho byl vyvinut standard SIPS ( anglicky SIPS ), který ukládá další dohody o bezpečném přenosu dat prostřednictvím SIP. K šifrování multimediálního obsahu se používá protokol SRTP .
Slovníky a encyklopedie | |
---|---|
V bibliografických katalozích |
software pro IP telefonii | |
---|---|
Protokoly | |
Klientský software | |
Serverový software | |
webové služby | |
srovnání |