SIP protokoly mechanizmy komunikace Miroslav Vozk VB Technick
SIP – protokoly, mechanizmy, komunikace Miroslav Vozňák VŠB – Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra telekomunikační techniky miroslav. voznak@vsb. cz http: //homel. vsb. cz/~voz 29 KC hotelu Olšanka Praha, 8. 11. 2006 1
Session Initiation Protocol jádro protokolu je specifikováno v • RFC 2543 , r. 99 MMUSIC WG • RFC 3261 , r. 2002 SIP WG Multiparty Multimedia Session Control • rozšíření SIPu přispívají další WG jako SIPPING, SIMPLE (presence), IPTEL (cpl a trip), SPIRITS, PINT vlastnosti: • textově orientovaný • podobný HTTP • end-to-end 2
Session Initiation Protocol vlastnosti: • signalizační protokol pro vytvoření, modifikaci a ukončení relace • popis médií se řeší obvykle se spojením s SDP • přenos hlasu a videa přes RTP • cílové aplikace jsou hlas, video, instant messaging, presence, hry. . . • může využívat TCP, UDP, TLS. . . 3
Adresace 4
Adresace SIP URI (Uniform Resource Identifier) sip: user@host: port; uri-parameters 5
Prvky SIPu User Agent – UA Client, UA Server • UAC je část vysílající žádosti a přijímající odpovědi • UAS je část přijímající žádosti a odesílající odpovědi SIP server – Proxy, Registrar, Redirect, Location • SIP Proxy – analyzuje zprávy, přeposílá je, přepisuje jejich hlavičky • Redirect Server – dá kontakt na alterativní URI • Registrar Server – přijímá žádosti REGISTER a aktualizuje LS • Location Server – uchovává informace o umístění klientů a případně i dalších SIP Proxy 6
typy SIP Proxy může být • stateful (uchovává žádosti a odpovědi, zachytí opakování zpráv, detekuje zacyklení, podporuje forking) • stateless (pouze přeposílá) Stateful SIP Proxy může být • transaction stateful (drží stav žádost – odpověď) • call stateful (od Invite až po Bye a 200 OK) 7
Architektura 8
Metody • INVITE inicializace spojení nebo změna parametrů • ACK tato zpráva potvrzuje přijetí odpovědi na žádost INVITE. Sestavení relace používá „ 3 -way handshaking“ • BYE ukončení spojení • CANCEL zrušení sestavovaného spojení • REGISTER registrace, informace o aktuální IP adrese a portu, na kterém může být uživatel zastižen • OPTIONS je žádost o zaslání schopností (vlastností) 9
Metody – rozšíření 10
Odpovědi • 1 xx prozatímní odpověď • 200 - 699 konečná odpověď • 2 xx úspěch např 200 OK • 3 xx přesměrování 11
Odpovědi • 4 xx chyba klienta - uživatel nenalezen • 5 xx chyba serveru • 6 xx globální chyba 12
Transakce • Požadavek a všechny odpovědi • Starý typ rozlišení – hash To, From, RURI, CSeg • Nově – parametr branch ve Via • z 9 h. G 4 b. K je začátek řetězce do branche pro nový zpúsob 13 určení transakce
Dialog • Call-ID, From tag, To tag • CSeg identifikuje transakci v dialogu 14
Registrace 15
Registrace - svázání user URI a device URI (From a Contact) - Expires je doba registrace (Expires=0 je zrušení registrace) 16
Přesměrování 17
SIP zpráva 18
SDP v=0 o=ja 987504994 IN IP 4 1. 2. 3. 4 s=Hovor 1 c=IN IP 4 1. 2. 3. 4 t=3196493794 3196497394 m=audio 10000 RTP/AVP 0 22 a=rtpmap: 0 aplication/g 711 a=rtpmap: 22 aplication/g 723. 1 SDP v = Version number (ignored by SIP) o = Session Origin used by SIP s = Subject c = Connection Data (IN =internet, IP 4 = IPv 4, IP Address) t = Time (ignored by SIP) m = Media (type, port, RTP/AVP Profile) a = Attribute (profile, codec, sampling rate) 19
INVITE sip: bob@biloxi. com SIP/2. 0 Via: SIP/2. 0/UDP pc 33. atlanta. com: 5060; branch=z 9 h. G 4 b. K 776 asdhds To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 66710 CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Content-Type: application/sdp Content-Length: 142 (SDP část) první řádek obsahuje : • název metody : INVITE • Request-URI (pro koho je požadavek, next hope) sip: bob@biloxi. com • SIP version number: SIP/2. 0 20
SIP via INVITE sip: bob@biloxi. com SIP/2. 0 Via: SIP/2. 0/UDP proxy. stockholm. se: 5060; branch=82. 1 Via: SIP/2. 0/UDP pc 33. atlanta. com: 5060; branch=z 9 h. G 4 b. K 776 asdhds To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 66710 CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Content-Type: application/sdp Content-Length: 142 (SDP část) Via položky: • ukazují cestu, Proxy v cestě vkládají další řádky • odpověď jde stejnou cestou jako žádost • „branch“ umožní detekovat smyčky 21
Dialog (Call-leg) INVITE sip: bob@biloxi. com SIP/2. 0 Via: SIP/2. 0/UDP pc 33. atlanta. com: 5060; branch=z 9 h. G 4 b. K 776 asdhds To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 66710 CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Content-Type: application/sdp Content-Length: 142 (SDP část) Dialog – stejné informace během spojení v položkách: • To , From a Call-ID • To a From – specifikuje logickou adresu příjemce a odesílatele • Call-ID – jedinečný identifikátor během jednoho spojení 22
CSeq INVITE sip: bob@biloxi. com SIP/2. 0 Via: SIP/2. 0/UDP pc 33. atlanta. com: 5060; branch=z 9 h. G 4 b. K 776 asdhds To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 66710 CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Content-Type: application/sdp Content-Length: 142 (SDP část) CSeq - každá nová žádost inkrementuje CSeq - opakovaná žádost má stejný CSeq - veškeré odpovědi k žádosti mají stejný CSeq 23
Contact INVITE sip: bob@biloxi. com SIP/2. 0 Via: SIP/2. 0/UDP pc 33. atlanta. com: 5060; branch=z 9 h. G 4 b. K 776 asdhds To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 66710 CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Content-Type: application/sdp Content-Length: 142 Contact • obsahuje SIP URI pro přímou komunikaci, pokud Proxy nevloží Record-Route, tak můžou jít další transakce přímo • v odpovědi 200 OK je rovněž uveden Contact 24
Content type, Length INVITE sip: bob@biloxi. com SIP/2. 0 Via: SIP/2. 0/UDP pc 33. atlanta. com: 5060; branch=z 9 h. G 4 b. K 776 asdhds To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 66710 CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Content-Type: application/sdp Content-Length: 142 Content-Type – jaký je obsah (SDP) Content-Length – jaká je velikost obsahu (bytes), 0 znamená bez obsahuje 25
Max Forwards INVITE sip: bob@biloxi. com SIP/2. 0 Via: SIP/2. 0/UDP pc 33. atlanta. com: 5060; branch=z 9 h. G 4 b. K 776 asdhds Max-Forwards: 30 To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 66710 CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Content-Type: application/sdp Content-Length: 142 Max-Forwards • je snižován na Proxy s každým přeposlaným požadavkem • pokud je 0, tak je odesláno 483 Too Many Hops • stateless detekuje smyčky 26
INVITE a odpověď 200 OK 27
Označkování • v případě větvení by se dalo těžko identifikovat, kdo odpověděl • UAS přidá do odpovědi „tag“ To: sip: bob@macrosoft. com; tag=a 48 s • další žádost obsahuje „visačku“ přidanou v To 28
Směrování odpovědi • žádosti se směrují dle Request URI • odpovědi dle Via 29
Forking - první 200 OK potvrzeno ACK - zbytek dostane 487 Cancelled INVITE 30
Record Routing - Record route pole přidá SIP Proxy nejen do hlavičky žádosti (metody), ale i do konečné odpovědi - další transakce jdou přes prvky uvedené v recorde route 31
SIP trapezoid - Outbound Proxy musí najít Proxy, která požadavek obslouží - SIP Proxy obsluhuje jednu nebo více domén - hledáme SIP Proxy obsluhující cílovou doménu statickým mapováním anebo přes DNS (SRV záznam vrátí SIP Proxy) - pokud máme e. 164, tak pomůže ENUM, regulární výraz regexp v NAPTR záznamu aplikovaný na ENUM dotaz vrátí SIP URI, z té SIP Proxy zjistí cílovou doménu a přes SRV najde obsluhující SIP Proxy 32
Call Setup 33
Ukončení sestaveného spojení - Bye 34
a sestavujícího se spojení – Cancel - dvě žádosti INVITE a CANCEL startují dvě transakce 35
SIP a PSTN Interworking 36
Události - presence Zápis k událostem jako změna stavu presence Uživatel se zapisuje k presenci jiného uživatele Změna stavu vyvolá NOTIFY např Busy na Online SUBCRIBE vytváří dialog a jeho rámci proudí NOTIFY 37
Subscribe a Notify 38
Instant Messaging • IM je v SIPu řešeno pomocí MESSAGE • text je v těle zprávy • Požadavek Message nevytváří dialog 39
NAT • Klient za NATem vkládá privátní IP do signalizace – Via, From, Contact, SDP c-line 40
NAT • ALG – Application Layer Gateway pracuje společně s NATem a přepisuje informace uvnitř hlaviček 41
NAT • STUN, TURN, ICE – podpora u klienta • Session Border Controller (SBC) – podpora na straně poskytovatele • SIP Proxy – podpora (RTP Proxy) 42
Open source řešení SER www. sip-router. org Open. SER www. openser. org Asterisk www. asterisk. org Sip. Xpbx www. sipfoundry. org 43
Aktivity kolem SIPu v akademickém světě Ø TERENA IP Telephonycookbook http: //www. terena. nl/activities/iptel/contents 1. html TF-VVC (Task Force – Voice Video Colaboration): http: //www. terena. nl/activities/tf-vvc/ TERENA jde napříč všemi NREN Evropy a do jejich aktivit jsou zapojeny instituce i z dalších kontinentů, sdružení je podporováno EU Zájmy ČR zde hájí CESNET, který sdružuje všechny vysoké školy, univerzity a akademie věd v ČR a je aktivní i v TF-VVC 44
Aktivity kolem SIPu v akademickém světě Ø INTERNET 2 Do projektu INERNET 2 je zapojeno více než 200 amerických univerzit, které se podílí na vývojí Internetu „zítřka“ s pokročilými aplikacemi. V rámci INTERNET 2 existuje aktivita SIP. EDU http: //www. internet 2. edu/sip. edu/ V SIP. EDU funguje na SIP-URI více než 250 tis. uživatelů. The ISN Cookbook http: //www. internet 2. edu/sip. edu/isn/ 45
Aktivity kolem SIPu v akademickém světě Ø CESNET provozuje síť národního výzkumu a vzdělávání, do které jsou zapojeny všechny vysoké školy a akademie věd. http: //www. cesnet. cz Jedním z projektů, který v rámci sdružení běží je aktivita IP telefonie, do které je zapojena většina členů sdružení. http: //www. cesnet. cz/iptelefonie V minulém roce bylo přes Vo. IP v CESNETU prohovořeno téměř 5 mil. minut. V síti je podporován SIP i H. 323, protokolový překlad provádí IP 2 IP GW a Asterisk. Akademická Vo. IP síť v ČR je otevřená pro peering a kromě čísel jednotlivých institucí má z rozsahu ČTÚ přidělen 46 přístupový prefix 950 0.
Aktivity kolem SIPu v akademickém světě Ø CESNET SIP Proxy – umožňuje si založit účet a volat přes SIP, číslo je přiděleno z rozsahu 950 0, k dispozici je 100 tis. čísel - autentizace uživatele je provedena přes „eduroam“ (systém ověřování identity mezi univerzitami) - princip eduroam funguje tak, že uživatel má jediný účet vedený ve své domovské síti, který jej opravňuje použít Wi. Fi síť kteréhokoli člena projektu - ověření identity uživatele probíhá přes infrastrukturu RADIUS serverů - požadavky kladené na servery připojovaných organizací vychází z doporučení Terena TF-MOBILITY http: //www. terena. nl/activities/tf-mobility/ 47
48
49
děkuji za pozornost dotazy? 50
- Slides: 50