Úvod do světa SIPových VoIP klientů Úvod do světa SIPových VoIP klientů Michal Vávra Fl MUNI 08. 10.2009 □ s - = -e -o<\(y O Úvod O Signalizační protokol (SIP) Další potřebné komponenty VoIP klienty • Ekiga • Linphone • WengoPhone • SIP Communicator • X-Lite • SJPhone O Zdroje Q Poděkování □ \3 Motivace k VoIP Motivace k VoIP • Hlas je pro lidstvo přirozeným způsobem komunikace • Přechod od vytváření paketové sítě nad spojovanou telefonní sítí k přesnému opaku • Po rozmachu .psacích kecálků" je přirozené vrátit se zase k mluvení • Ve velkých podnicích nezanedbatelné úspory (např. VoIP v CESNETu) • Lepší možnosti spolupráce mezi vzdálenými členy týmu □ \3 Co se využívá pro VoIP Co se využívá pro VoIP Signalizační protokol (SIP, H.323, lAX) • Protokol pro přenos multimedií (RTP) • Koncové body (VoIP klienty) • Servery, ústředny, proxy (Asterisk, OpenSER) • ENUM - DNS převod čísel na SIP adresy □ rJ Úvod do světa SIPových VoIP klientů Co to je SIP • Signalizační protokol - sám o sobě neposílá žádná multimedia • Standard podle RFC 3261 • Textový protokol (podobný např. HTTP) • Používá model Request/Response • Pracuje jak nad U DP či TCP, tak nad TLS □ rJ Co to je SIP Co v SIPu komunikuje User Agent - koncový bod v SIP architektuře, např. VoIP klient. Vnitřně je ještě rozdělen na User Agent Client a User Agent Server. UAC požadavky zasílá, zatímco UAS požadavky přijímá a zasílá na ně odpovědi. Proxy server - chová se jako UAC i UAS, nejedná se však o koncový bod. Redirect server - odpovídá na požadavky odpovědmi s kódem 3xx - informuje o aktuálním umístění volaného. Registrar server - speciální typ serveru, přijímá požadavky typu REGISTER a podle hodnot hlaviček v tomto požadavku si upravuje vlastní databázi o umístění daného uživatele. Co to je SIP Požadavky v SIPu podle RFC 3261 INVITE - slouží jako pozvánka (nejen) k hovoru. ACK - slouží pro potvrzení, že odesílateli tohoto požadavku dorazila finální odezva. Na tento požadavek se již nijak nereaguje! BYE - slouží k ukončení již ustaveného hovoru. CANCEL - slouží k ukončení ještě neustaveného hovoru (protistrana ještě .nezvedla sluchátko"). OPTIONS - slouží k zjištění, co vše může server, na který byl tento požadavek zaslán, vykonávat. Jako odpověď vrací seznam všech požadavků, na které umí reagovat. REGISTER - Slouží k registraci uživatele na registrar server. Úvod do světa SIPových VoIP klientů Co to je SIP Některé další požadavky v SIPu, podle pozdějších RFC MESSAGE - slouži pro textovou komunikaci ala Jabber, ICQ a pod (RFC 3428). INFO - slouží k zasílání informací během hovoru. Tyto informace nemění stav hovoru (RFC 2976). REFER - vyzývá příjemce tohoto požadavku k přenesení hovoru jinam (RFC 3515). UPDATE - upravuje parametry hovoru (RFC 3311). □ rJ Úvod do světa SIPových VoIP klientů Co to je SIP Odezvy • 100 až 199 - informují o stavu spojení. Jsou to nefinální odezvy, vždy se po ní ještě očekává přijetí nějaké níže uvedené odezvy. • 200 až 299 - informují o úspěchu požadavku, na který reagují. • 300 až 399 - informují o nutnosti přesměrování požadavku na jinou adresu. • 400 až 499 - informují o selhání z důvodu špatného požadavku. • 500 až 599 - informují o selhání z důvodu chyby na serverů. • 600 až 699 - informují o selhání z důvodu obecné chyby. Co to je SIP SIP URI SIP URI slouží k jednoznačné identifikaci uživatele v SlPové architektuře. Je velmi podobná e-mailové adrese. Má tvar uživatel@server. Tvar SlPové zprávy Každá SlPová zpráva obsahuje úvodní řádku, hlavičky a případně i tělo. Tvar úvodní řádky se liší pro požadavek a odezvu. • Úvodní řádka pro požadavek - obsahuje typ požadavku (INVITE, BYE ...), SIP URI adresáta a verzi protokolu (dnes pouze SIP/2.0). • Úvodní řádka pro odezvu - obsahuje verzi protokolu, kod odezvy a řetězec a odůvodněním odezvy. ^wqq^o Úvod do světa SIPových VoIP klientů Co to je SIP Tvar SlPové zprávy - hlavičky Hlavičky jsou další nedílnou součástí SIPových zpráv. • Hlavička To - určuje adresáta zprávy. • Hlavička From - určuje odesílatele zprávy a tedy i adresáta odpovědí na tuto zprávu. • Hlavička CSeq - jednoznačně identifikuje SIPovou transakci. • Hlavička Via - jednoznačně identifikuje každý hovor. • Hlavička Contact - v požadavku typu REGISTER určuje jméno, pod jakým bude registrar server evidovat adresu, ze které požadavak přišel. Jméno má tvar SIP URL Tato hlavička se může opakovat. Úvod do světa SIPových VoIP klientů Co to je SIP Tvar SlPové zprávy - hlavičky - pokračování • Hlavička Content-Type - tato hlavička identifikuje obsah těla zprávy, pokud nějaký existuje. Pokud hlavička existuje, musí existivoat i hlavička Content-Length, určující délku těla v bitech. Tělo SlPové zprávy U INVITE a odpovědi na tento požadavek většinou obsahuje zprávu protokolu SDP identifikující kodeky a porty, které se použijí pro přenos multimedii. U požadavku MESSAGE obsahuje plain text. U většiny ostatních zpráv je prázdná. □ rJ Úvod do světa SIPových VoIP klientů Komunikace s SIPu Modelový hovor v SIPu Mějme uživatele Alici a Boba. Alice používá server adamov.cz, její SIP URI je tedy alice@adamov.cz. Bob používá server brno.cz, tedy analogicky, jeho SIP URI je bob@brno.cz. Alice chce volat Bobovi... • alice@adamov.cz INVITE —► bob@brno.cz • bob@brno.cz 180 RINGING -► alice@adamov.cz • bob@brno.cz 200 OK —► alice@adamov.cz • alice@adamov.cz ACK —► bob@brno.cz • Probíhá hovor......Alice chce zavěsit. • alice@adamov.cz BYE —► bob@brno.cz • bob@brno.cz 200 OK —► alice@adamov.cz □ g - = ^ Úvod do světa SIPových VoIP klientů Další potřebné komponenty v síti Co ještě potřebujeme? Další komponenty • Protokol pro přenos multimedii - RTP • Průchod přes NAT • Zabezpečení • ENUM □ rJ Podmínky Všechny níže uvedené VoIP klienty byly testovány před rokem a půl v rámci mé Bc. práce. • Platformy Linux a Windows • Spotřeba systémových zdrojů během hovoru a v klidu • Stabilita • Dodržování standardů • Možnosti překonání NATu Vlastnosti VoIP klientu Ekiga <» Licence GNU/GPL • SIP i H.323 • Stažení a instalace bez potíží • Asistent pro první nastavení • Dostatečné množství způsobů překonání NATu • Delší první start na Windows o Ve virtualizovaných Windows XP padá Vlastnosti VoIP klientu Linphone <» Licence GNU/GPL o Pouze SIP • Stažení a instalace bez potíží • Žádné iniciální nastavení • Dostatečné množství možností, jak překonávat NAT • Přehledné a jednoduché menu □ \3 VengoPhone WengoPhone Vlastnosti VoIP klientu WengoPhone • Uzavřený zdrojový kod o Pouze SIP • Stažení a instalace bez potíží • Při prvním spuštění otevře konfigurační okno • Pro účet na wengo.com používa proprietární řešení překonání NATu • Umožňuje jen nastavení priority kodeků □ \3 SIP Communicator Vlastnosti VoIP klientu SIP Communicator <» Licence GNU/GPL • SIP a mnoho dalšich protokolů pro IM • Stažení a instalace bez potíží 9 Napsán v jazyce Java • Omezené možnosti překonání NATu Vlastnosti VoIP klientu X-Lite • Uzavřený zdrojový kod o Pouze SIP • Stažením a instalace bez potíží • Při prvním spuštění automaticky otevře konfigurační okno • Omezené možnosti překonání NATu • Existují i placené verze □ rJ Vlastnosti VoIP klientu SJPhone • Uzavřený zdrojový kod • SIR H.323aXMPP • Stažení a instalace bez potíží • Při prvním spuštění jen okno pro konfiguraci zvuku • Profily pro konfiguraci připojení • Poslední verze pro Linux přes 3 roky stará, pro Windows o něco novější, ale od doby psaní Bc. práce neaktualizováno. Zdroje ^ • Moje Bc. práce • http //en.wikipedia org/ wiki/ SessionJnitiation_Protocol • http //en.wikipedia org / wiki / ENUM • M. Vávra, E. Hladká. Telefonování po síti Zpravodaj Ú VT MU. ISSN 1212-0901 ,2008, roč. XVIII, č. 5, s. 1-4. □ rJ Úvod do světa SIPových VoIP klientů Poděkování Poděkování Děkuji za pozornost a těším se na případné dotazy. □ rJ