Vladimír Toncar Kerio Technologies

Slides:



Advertisements
Podobné prezentace
SÍŤOVÉ PROTOKOLY.
Advertisements

IP telefonie Informační technologie - praxe SPŠE V úžlabině
VoIP Protocol overview.
HTTP server HTTP server 1 Jak to funguje?
D03 - ORiNOCO RG-based Wireless LANs - Technology
Datové přenosy v ISDN Mobilní systémy, PF, JČU.
SÍŤOVÉ SLUŽBY DNS SYSTÉM
Počítačové sítě Úvodní přednáška Cíl předmětu – seznámit se s principy datové komunikace – seznámit se s principy distribučních systémů – seznámit se s.
1 Počítačové sítě Úvodní přednáška Cíl předmětu –seznámit se s principy datové komunikace –seznámit se s principy distribučních systémů –seznámit se s.
IT ESSential I. 8. Networks. 2 Rozdělení sítí  LAN  skupina hosts vzájemně propojených zařízení s jednotnou správou (jednotné řízení bezpečnosti, přístupu,
Sběrnice.
Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta.
Co je ENUM? aneb: ENUM v kostce Jiří Peterka E E.
Sběrnice = soustava vodičů, která umožňuje přenos signálů mezi jednotlivými částmi počítače. Přenáší data a zajišťuje komunikaci.
USB rozhraní aneb Jak to funguje Vypracoval: Vladimír Paločko Pro předmět: Periferní zařízení (X36PZA)
Protokol TCP/IP a OSI model
Návrh a tvorba WWW Přednáška 1
CZ.1.07/1.4.00/ VY_32_INOVACE_169_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
RTSP Real Time Streaming Protocol
Skype Music Server Vojtěch Ouška České vysoké učení technické v Praze Katedra počítačů ODKAZY [1] JSkype - Java API pro Skype [
Internet.
Internet.
Datové vs Hlasové přenosy Datové –přepojování paketů (packet switching) Hlasové –přepojování okruhů (Circuit Switching)
TCP a firevall Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
1 iptelefonie denis kosař. 2 obsah Co je ip-telefonie Jak to funguje Protokoly Kodeky Jak to použít Skype Zdroje.
Protokoly a adresy na internetu
Typy elektronické komunikace
Sběrnice Obr. 1.
IP telefonie v síti CESNET2 Sven Ubik Brno,
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
QoS Josef Horálek,. Definice kvalitativních hledisek  Spolehlivost služby (service availability)  zpoždění (delay/latency)  rozptyl zpoždění (delay.
CZ.1.07/1.4.00/ VY_32_INOVACE_168_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
RTP –Real Time protocol Přednášky z projektování distribuovaných systémů Ing. Jiří ledvina, CSc.
INTERNET – struktura, fungování a přehled využití
1 I NTERNETOVÁ INFRASTRUKTURA. H ISTORIE SÍTĚ I NTERNET RAND Corporation – rok 1964 Síť nebude mít žádnou centrální složku Síť bude od začátku navrhována.
Autor:Ing. Bronislav Sedláček Předmět/vzdělávací oblast:Telekomunikace Tematická oblast:Datová komunikace Téma:Základní přehled síťové architektury Ročník:4.
Maturitní otázka do Telekomunikačních systémů
Přenos telefonních hovorů v IP sítích Petr Štěpaník.
Střední škola teleinformatiky Ostrava
Datové sítě Ing. Petr Vodička.
Internet.
1 Protokol HTTP (Hypertext Transfer Protocol) HTTP je základem systému „World Wide Web“ (WWW) - Web … HTTP – jednoduchý protokol aplikační vrstvy, transport.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
Internet.
Protokoly úrovně 3 nad ATM Projektování distribuovaných systémů Lekce 2 Ing. Jiří ledvina, CSc.
SIP Session Initiation Protocol Jiří Ledvina Projektování distribuovaných systémů.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost Číslo projektu: CZ.1.07/1.5.00/ Číslo materiálu: VY_32_INOVACE_PSK-3-16.
Připojení k rozlehlých sítím Základy počítačových sítí Lekce 12 Ing. Jiří ledvina, CSc.
Internet protocol Počítačové sítě Ing. Jiří Ledvina, CSc.
Multimediální přenosy v IP sítích Libor Suchý Prezentace diplomové práce.
VoIP Voice over IP Ing. Jiří Ledvina, CSc. Projektování distribuovaných systémů.
GSM.
Jak se volá doména - ENUM v Česku E E Jiří Peterka
Vrstvy ISO/OSI  Dvě skupiny vrstev  orientované na přenos  fyzická vrstva  linková vrstva  síťová  orientované na aplikace  relační vrstva  prezentační.
E- MAIL Ing. Jiří Šilhán. E LEKTRONICKÁ POŠTA NEBOLI vývoj od počátku sítí – původní návrh pouze pro přenos krátkých textových zpráv (ASCII) základní.
Doc. Ing. Miroslav Vozňák, Ph.D Standard H.323 pro multimediální komunikaci přes paketové sítě přednáška na FEKT VUT.
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
Počítačové sítě pro V3.x Teoretická průprava I. Ing. František Kovařík SPŠE a IT Brno
FTP-SSL FTP-SSL Martin Dušek Martin Fúsek Josef Vlček.
Datové komunikace Tento projekt je spolufinancován Evropským sociálním fondem, státním rozpočtem České republiky a rozpočtem Hlavního města Prahy.
Transportní vrstva v TCP/IP Dvořáčková, Kudelásková, Kozlová.
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
WWW a HTML Základní pojmy Ivo Peterka.
PB169 – Operační systémy a sítě
Protokol HTTP (Hypertext Transfer Protocol)
Počítačové sítě IP vrstva
Multimediální přenosy
TELNET, FTP.
Počítačové sítě IP vrstva
Transkript prezentace:

Vladimír Toncar Kerio Technologies VoIP protokoly Vladimír Toncar Kerio Technologies

O čem budeme mluvit O co všechno se musí VoIP systém postarat? Jak se to realizuje v H.323 a SIPu? Co ostatní protokoly? Praktické problémy?

O co se musí VoIP systém postarat? Získat informaci, kde druhý účastník je Navázat spojení s druhým účastníkem Dohodnout parametry přenosu Zakódovat a rozkódovat hlas (a případně obraz) Přenést hlas a obraz na druhou stranu Poskytnout dodatečné služby (transfer, parkování hovoru, konference)

Nalezení druhého účastníka ENUM – převod telefonních čísel ve formátu E.164 na IP adresu, využívá DNS (420377632445 → 5.4.4.2.3.6.7.7.3.0.2.4.e164.arpa) Registrační server – účastníci se k němu přihlašují a sdělují mu své IP adresy Gatekeeper v H.323 Registrar v SIPu

Navázání spojení a parametry přenosu Specifické pro jednotlivé protokoly – podíváme se na to blíže později

Kódování a přenos zvuku Přenos – protokol RTP – využívá se v H.323 i v SIPu Kódování zvuku – existuje řada kodeků, ale nejdříve trochu teorie...

Kódování zvuku Při digitalizaci analogového signálu musíme vzorkovat na frekvenci, která je aspoň dvakrát větší než šířka přenášeného pásma (Nyquist & Shanon) Typ Pásmo Vzorkovací frekvence Telefonní hovor 300-3400 Hz 8 kHz „Wide band“ hovor 50-7000 Hz 16 kHz CD kvalita 20-20000 Hz 44.1 kHz

Kódování zvuku Zvolená velikost vzorku ovlivňuje velikost šumu Například při lineání kvantizaci a pro 16-ti bitové vzorky je maximální odstup signálu od šumu 94.6 dB SNR (dB) = 6.02N – 1.73 N… počet bitů

Hodnocení kvality přenosu ITU-T P.800, P.830 Hodnocení je nevyhnutelně subjektivní, ale je snaha dojít ke „zprůměrovanému“ výsledku (MOS – mean opinion score) Větší počet posluchačů (bez sluchových problémů), diverzifikace materiálu: muži, ženy, různý věk mluvčích, různé jazyky Excelent 5 Good 4 Fair 3 Poor 2 Bad 1

G.711 Definován ITU v roce 1972 Používá se v ISDN Používá logaritmický převod, kompresní poměr 1:2 (každý 16-ti bitový vzorek z původního signálu je reprezentován 8-mi bity) Dvě varianty: A-law (Evropa a mezinárodní linky), μ-law (USA, Japonsko) Bitrate 64 kbit/s na jeden směr MOS = 4.2

G.729 8 kbit/s Pracuje s rámci o velikosti 10 milisekund (80 vzorků), každý zakódovaný rámec je reprezentován 10 bajty V jednom RTP paketu se typicky posílají 3 rámce Licenční poplatky MOS = 4.0

G.723.1 Dvě varianty: 6.3 kbit/s, 5.3 kbit/s (ITU vybralo dva vítězné návrhy a zkombinovalo je do jednoho standardu) Pracuje s rámci o velikosti 30 milisekund (240 vzorků) Licenčně nákladný MOS = 3.9, 3.7

GSM Full Rate (06.10) Definován ETSI (European Telecommunications Standards Institute) Bitrate 13 kbit/s Rámce o velikosti 20 milisekund (160 vzorků), jeden rámec převede na 33 bajtů (4 bity nejsou využity) MOS = 3.7 Volná licence

Další volné kodeky Speex (Xiph.org Foundation) Řada různých bitrates (2 kbit/s až 44 kbit/s, prakticky použitelné od 8 kbit/s), také varianty pro 16 kHz a 32 kHz iLBC (Internet low bitrate codec) – RFC 3951 Bitrate 15.2 kbit/s pro rámce 20 ms, 13.33 kbit/s pro rámce 20 ms LPC-10 (DoD) – 2.4 kbit/s, technicky zajímavý, ale nízká kvalita („plecháč“)

Protokol H.323 Definován ITU (Mezinárodní telekomunikační unie) „Packet-based multimedia communications systems“ Verze 1 v roce 1996, verze 6 v roce 2006 „Zastřešující standard“, používá následující: H.225.0 a Q.931– hovorová signalizace H.245 – vyjednání parametrů multimediálních kanálů H.235 – bezpečnostní a ověřovací mechanismy RTP – přenost audio/video H.450.x – doplňkové služby

Protokol H.323 – pro a proti Mezinárodní standard, detailně a přesně definovaný (ASN.1 + mnoho stran dokumentace) Složitý protokol, „Design by committee“ Zprávy se kódují ASN.1 PER (Packed Encoding Rules) → větší nároky na paměť a procesor (obtížnější implementace v malých zařízeních)

Entity v síti H.323 Terminál (telefon) Brána - zajišťuje komunikaci s uživateli v jiných sítích MCU – konferenční jednotka Gatekeeper – registrační server, řízení provozu v síti, překlad adres (telefonní číslo → IP adresa) „endpoint“ – terminál, brána nebo MCU Zóna – množina zařízení řízená jedním gatekeeperem

Komunikace s Gatekeeperem Pro komunikaci endpoint-gatekeeper nebo gatekeeper-gatekeeper se používá část protokolu H.225.0 označená „RAS“ – Registration, Admission, Status GK poslouchá na portu 1719/udp (unicast), 1718/udp (multicast, vyhražená multicast adresa je 224.0.1.41)

H.225.0–RAS – typy zpráv Objevení gatekeeperu – Gatekeeper Request (GRQ), Gatekeeper Confirm (GCF), Gatekeeper Reject (GRJ) Registrace endpointu – Registration – RRQ, RCF, RRJ Povolení hovoru – Admission – ARQ, ACF, ARJ Ukončení hovoru – Disengage – DRQ, DCF, DRJ Odregistrování – Unregister – URQ, UCF, URJ

H.225.0-RAS: příklad zprávy [05/Aug/2003 13:11:31] incoming 192.168.101.1:1602 H225 message: gatekeeperRequest gatekeeperRequest { requestSeqNum = 41142 protocolIdentifier = 0.0.8.2250.0.4 rasAddress = ipAddress { ip = 4 octets { c0 a8 65 01 ..e. } port = 1602 endpointType = { vendor = { t35CountryCode = 46 t35Extension = 0 manufacturerCode = 1 productId = 20 octets { 4b 65 72 69 6f 2d 48 33 32 33 2d 53 6f 66 74 50 Kerio-H323-SoftP 68 6f 6e 65 hone

Signalizace během hovoru Pro signalizaci mezi endpointy se používají protokoly Q.931 a H.225.0 Zprávy se přenášejí po TCP (port 1720) Spojení buď přímo mezi koncovými zařízeními nebo přes gatekeeper (Gatekeeper-routed call model)

Q.931/H.225.0 Q.931 je protokol vypůjčený z L3 v ISDN, není definován pomocí ASN.1 (vznikl dřív, než ITU začala ASN.1 používat). Údaje, které lze namapovat na položky zpráv Q.931 se uvádějí přímo (např. volající a volané telefonní číslo), kompletní informace je pak ve zprávě H.225.0, která je binárně zapouzdřena v Q.931 Používají se tyto zprávy Q.931: Setup, Call Proceeding, Alerting, Connect, Release Complete, Facility

Q.931/H.225.0 - příklad [05/Aug/2003 14:21:38] outgoing 192.168.40.72:1721 Q931 message: Setup { protocolDiscriminator = 8 callReference = 26927 from = originator messageType = Setup IE: Bearer-Capability = { 80 90 a5 ... } IE: Calling-Party-Number = { 81 31 31 31 .111 IE: Called-Party-Number = { 81 32 30 30 31 .2001 IE: User-User = { 20 b8 06 00 08 91 4a 00 04 01 01 00 44 42 2c 09 .....J.....DB,. 00 00 3d 1a 4f 70 65 6e 20 48 33 32 33 20 50 72 ..=.Open H323 Pr 6f 6a 65 63 74 20 4f 68 50 68 6f 6e 65 00 00 19 oject OhPhone... 31 2e 34 2e 31 20 28 4f 70 65 6e 48 33 32 33 20 1.4.1 (OpenH323 76 31 2e 31 32 2e 32 29 00 00 00 01 01 80 53 34 v1.12.2)......S4 00 c0 a8 28 48 06 b9 00 9a 78 f3 07 ad c5 d7 11 ...(H....x...... 9e 1b 00 50 04 6a 55 8c 00 5d 0f 80 07 00 c0 a8 ...P.jU..]......

Q.931/H.225.0 – příklad (2) IE: User-User (decoded) = { h323_uu_pdu = { h323_message_body = setup { protocolIdentifier = 0.0.8.2250.0.4 sourceAddress = 1 entries { [0]=dialedDigits "111" } sourceInfo = { vendor = { t35CountryCode = 9 t35Extension = 0 manufacturerCode = 61 productId = 27 octets { 4f 70 65 6e 20 48 33 32 33 20 50 72 6f 6a 65 63 Open H323 Projec 74 20 4f 68 50 68 6f 6e 65 00 00 t OhPhone.. versionId = 26 octets { 31 2e 34 2e 31 20 28 4f 70 65 6e 48 33 32 33 20 1.4.1 (OpenH323 76 31 2e 31 32 2e 32 29 00 00 v1.12.2).. terminal = { mc = FALSE

H.245 Používá se pro vyjednání parametrů multimediálních kanálů Kodeky, IP adresy a čísla portů V základní verzi signalizace používá druhé TCP spojení Obvyklá výměná zpráv: hlasování master/slave výměna informací o schopnostech endpointů vyjednání logických kanálů

Než si ukážeme průběh hovoru... H.225.0-RAS – komunikace endpoint-gatekeeper Q.931/H.225.0– hovorová signalizace H.245 – vyjednání parametrů multimediálních kanálů

Průběh H.323 hovoru

Průběh H.323 hovoru (2)

Co lze vylepšit? H.245 – pro vyjednání mediálních kanálů potřebuje druhé TCP/IP spojení „Handshake“ v H.245 je složitý a trvá relativně dlouho (u HW telefonu s pomalejším procesorem si uživatel všimne krátkého intervalu ticha po přijetí hovoru)

Optimalizace hovorové signalizace Tunelování H.245 – zprávy H.245 se zakódují ASN.1 PER a v binární podobě se vloží do zpráv H.225.0 Fast Connect – navrhované parametry audia/videa se vloží hned do úvodní zprávy H.225.0 (Setup), odpověď přijde v některé zpětné zprávě. Parallel H.245 (uvedeno v H.323 v.4) – kompletní přehled schopností volajícího endpointu je také zapouzdřen v H.225.0 Setup Early media start – audio (video) se spouští okamžitě, jakmile jsou vyjednány parametry, nečeká se na přijetí hovoru

Programování v H.323 Open Source knihovny OpenH323 (H323Plus) a Opal 1998: Craig Southeren a Robert Jongbloed (Equivalence) vytvořili OpenH323 2001: Quicknet koupil Equivalence, stává se sponzorem OpenH323 2003: Craig a Robert opouštějí Equivalence, pokračují ve vývoji OpenH323 na Sourceforge, posléze začínají paralelně vyvíjet Opal (multiprotokolová knihovna) 2007: „poslední“ relase OpenH323, přednost má Opal 10/2007: H323Plus – nový fork OpenH323 s podporou Packetizer.com

Programování v H.323 OpenH323, H323 Plus i Opal používají jako spodní vrstvu knihovnu PWLib PWLib je multiplatformní knihovna v C++ (procesy, vlákna, sokety, atd.) Součástí PWLib je také ASN.1 překladač

OpenH323 / H323 Plus Opět C++, platformně nezávislé (používají PWLib) Část kódu generována ASN.1 překladačem – třídy reprezentující zprávy protokolu a jejich kódování a dekódování Programátor používající OpenH323 oddědí nové třídy od tříd v knihovně a předefinuje v nich virtuální funkce pro obsluhu událostí (např. příchozí hovor) Tutoriál na http://toncar.cz/openh323/tut/index.html

Session Initiation Protocol Definován IETF RFC 2543 (1999), RFC 3261 (2002) Henning Schulzrine, Columbia University Obecně slouží pro navázání relace mezi dvěma či více účastníky, modifikaci a ukončení relace Audio/video se opět přenáší protokolem RTP

SIP entity User Agent (UA) – SIP telefon Registrar (location) server – udržuje databázi telefonní číslo <-> IP adresa Proxy server – směruje hovorovou signalizaci Servery se obvykle realizují jako „vše v jednom“ – registrar & proxy Brány do jiných telekomunikačních sítí (SIP-PSTN, SIP-H.323, atd.) Posílání SIP zpráv – TCP nebo UDP, port 5060, v praxi spíše UDP.

SIP Proxy/Registar Hlavní řídící prvek v SIP síti Funkčně odpovídá gatekeeperu v H.323 Nalezení volané stanice Bezpečnost – oprávnění k volání Směrování hovorové signalizace Doplňkové služby

SIP – formát zpráv SIP je textový protokol, formátování vychází z HTTP Dva druhy zpráv – požadavky a odpovědi Formát požadavku: <řádek požadavku> <hlavička zprávy> CRLF <tělo zprávy> Formát odpovědi: <stavový řádek>

SIP – požadavky (metody) INVITE – požadavek na navázání spojení ACK – přijetí hovoru CANCEL – zrušení probíhajícího INVITE BYE – ukončení spojení (hovoru) REGISTER – registrace na registar serveru OPTIONS – dotaz na „schopnosti“ protistrany (odpověď obsahuje audio/video kodeky, které protistrana podporuje) Rozšiřující metody: INFO, UPDATE, SUBSCRIBE, NOTIFY, MESSAGE

SIP – příklad požadavku INVITE sip:0800123456@192.168.1.11 SIP/2.0 Accept: application/sdp Call-ID: d5661-134f1-eb52e-d5661-3d541@192.168.40.143 Contact: sip:1034@192.168.40.143:5060 CSeq: 101 INVITE Expires: 1000 From: "Vladimir Toncar" <sip:1034@192.168.1.11>;tag=ff177c16ff177c16 To: <sip:0800123456@192.168.1.11> Via: SIP/2.0/UDP 192.168.40.143:5060 Content-Type: application/sdp Content-Length: 152 v=0 o=TinyPhone 19505 19505 IN IP4 192.168.40.143 s=SIP Call c=IN IP4 192.168.40.143 t=0 0 m=audio 48256 RTP/AVP 18 101 a=rtpmap:18 g729a/8000

SIP – kódy odpovědí Informational: Server Failure Success Redirection 403 Forbidden 404 Not Found 100 Trying 405 Bad Method 180 Ringing 415 Unsupp. Content 181 Call forwarded 420 Bad Extensions 182 Queued 486 Busy Here 183 Session Progress Server Failure Success 500 Server Error 200 OK 501 Not Implemented Redirection 503 Unavailable 504 Timeout 300 Multiple Choices Global Failure 301 Moved Perm. 302 Moved Temp. 600 Busy Everwhere 380 Alternative Serv. 603 Decline Request Failure 604 Doesn’t Exist 606 Not Acceptable 400 Bad Request 401 Unauthorized

SIP – příklad hovoru

SIP - rozšíření SIP Presence Zasílání zpráv SUBSCRIBE – žádost o zasílání změn stavu NOTIFY – informace o změně stavu („away“, „online“, atd.) Zasílání zpráv MESSAGE – v těle zprávy je přímo text (Content-Type: text/plain)

SIP - programování Textový protokol → jednodušší implementace v malých zařízeních Několik Open Source knihoven, implementace nejen v C/C++, ale také v Javě, Ruby

Další VoIP protokoly MGCP a H.248/Megaco Cisco SCCP IAX2

MGCP, H.248/Megaco Protokoly pro řízení distribuovaných bran mezi VoIP a jinými sítěmi (Media Gateway, Media Gateway Controller) RTP MG H.323/SIP H.248 MGC MG PSTN MG

MGCP, H.248/Megaco MGCP – starší protokol, RFC3435 H.248/Megaco – vývoj v kooperaci mezi ITU a IETF, protokol měl binární (ASN.1) a textovou verzi ITU posléze pokračovala ve vývoji sama a IETF prohlásila svoji verzi za zastaralou (RFC 3015, 3525, 5125) Aktuální označení je H.248.1, verze 3 (2005)

Cisco SCCP Skinny Client Control Protocol Proprietární protokol, Cisco ho koupilo s firmou Selsius Pro komunikaci mezi IP ústřednou (Call Manager) a telefonem Definován tak, aby koncové zařízení mohlo být co nejjednodušší Relativně nízkoúrovňové operace („rozsviť kontrolku“, „spusť audio“), zprávy se přenášejí jako kopie bloků paměti (little endian)

IAX2 Inter-Asterisk eXchange protocol Pro „příčkování“ open-source ústředen Asterisk Binární protokol Používá jediné UDP spojení (port 4569), v něm posílá jak signalizaci, tak audio (i několika hovorů najednou)