Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Vladimír Toncar Kerio Technologies
VoIP protokoly Vladimír Toncar Kerio Technologies
2
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?
3
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)
4
Nalezení druhého účastníka
ENUM – převod telefonních čísel ve formátu E.164 na IP adresu, využívá DNS ( → 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
5
Navázání spojení a parametry přenosu
Specifické pro jednotlivé protokoly – podíváme se na to blíže později
6
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...
7
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 Hz 8 kHz „Wide band“ hovor Hz 16 kHz CD kvalita Hz 44.1 kHz
8
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 – N… počet bitů
9
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
10
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
11
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
12
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
13
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
14
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, kbit/s pro rámce 20 ms LPC-10 (DoD) – 2.4 kbit/s, technicky zajímavý, ale nízká kvalita („plecháč“)
15
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 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
16
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)
17
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
18
Komunikace s Gatekeeperem
Pro komunikaci endpoint-gatekeeper nebo gatekeeper-gatekeeper se používá část protokolu H označená „RAS“ – Registration, Admission, Status GK poslouchá na portu 1719/udp (unicast), 1718/udp (multicast, vyhražená multicast adresa je )
19
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
20
H RAS: příklad zprávy [05/Aug/ :11:31] incoming :1602 H225 message: gatekeeperRequest gatekeeperRequest { requestSeqNum = 41142 protocolIdentifier = rasAddress = ipAddress { ip = 4 octets { c0 a e. } port = 1602 endpointType = { vendor = { t35CountryCode = 46 t35Extension = 0 manufacturerCode = 1 productId = 20 octets { 4b f 2d d 53 6f Kerio-H323-SoftP 68 6f 6e hone
21
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)
22
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
23
Q.931/H příklad [05/Aug/ :21:38] outgoing :1721 Q931 message: Setup { protocolDiscriminator = 8 callReference = from = originator messageType = Setup IE: Bearer-Capability = { a5 ... } IE: Calling-Party-Number = { IE: Called-Party-Number = { IE: User-User = { 20 b a c J.....DB, d 1a 4f e =.Open H323 Pr 6f 6a f f 6e oject OhPhone e 34 2e f e (OpenH e e v1.12.2)......S4 00 c0 a b9 00 9a 78 f3 07 ad c5 d (H....x e 1b a 55 8c 00 5d 0f c0 a8 ...P.jU..]......
24
Q.931/H – příklad (2) IE: User-User (decoded) = { h323_uu_pdu = { h323_message_body = setup { protocolIdentifier = sourceAddress = 1 entries { [0]=dialedDigits "111" } sourceInfo = { vendor = { t35CountryCode = 9 t35Extension = 0 manufacturerCode = 61 productId = 27 octets { 4f e f 6a Open H323 Projec f f 6e t OhPhone.. versionId = 26 octets { 31 2e 34 2e f e (OpenH e e v1.12.2).. terminal = { mc = FALSE
25
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ů
26
Než si ukážeme průběh hovoru...
H RAS – komunikace endpoint-gatekeeper Q.931/H.225.0– hovorová signalizace H.245 – vyjednání parametrů multimediálních kanálů
27
Průběh H.323 hovoru
28
Průběh H.323 hovoru (2)
29
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)
30
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 (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 Setup Early media start – audio (video) se spouští okamžitě, jakmile jsou vyjednány parametry, nečeká se na přijetí hovoru
31
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
32
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č
33
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
34
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
35
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.
36
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
37
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>
38
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
39
SIP – příklad požadavku
INVITE SIP/2.0 Accept: application/sdp Call-ID: Contact: CSeq: 101 INVITE Expires: 1000 From: "Vladimir Toncar" To: Via: SIP/2.0/UDP :5060 Content-Type: application/sdp Content-Length: 152 v=0 o=TinyPhone IN IP s=SIP Call c=IN IP t=0 0 m=audio RTP/AVP a=rtpmap:18 g729a/8000
40
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
41
SIP – příklad hovoru
42
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)
43
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
44
Další VoIP protokoly MGCP a H.248/Megaco Cisco SCCP IAX2
45
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
46
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)
47
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)
48
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)
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.