Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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?

Podobné prezentace


Prezentace na téma: "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?"— Transkript prezentace:

1 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) TypPásmoVzorkovací frekvence Telefonní hovor Hz8 kHz „Wide band“ hovor Hz16 kHz CD kvalita Hz44.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 – 1.73 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 Excelent5 Good4 Fair3 Poor2 Bad1

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 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 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 = 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 65 hone }

21 Signalizace během hovoru Pro signalizaci mezi endpointy se používají protokoly Q.931 a H 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 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 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 OpenH : Quicknet koupil Equivalence, stává se sponzorem OpenH : 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: CRLF Formát odpovědi: CRLF

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" ;tag=ff177c16ff177c16 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: 100 Trying 180 Ringing 181 Call forwarded 182 Queued 183 Session Progress Success 200 OK Redirection 300 Multiple Choices 301 Moved Perm. 302 Moved Temp. 380 Alternative Serv. Request Failure 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Bad Method 415 Unsupp. Content 420 Bad Extensions 486 Busy Here Server Failure 500 Server Error 501 Not Implemented 503 Unavailable 504 Timeout Global Failure 600 Busy Everwhere 603 Decline 604 Doesn’t Exist 606 Not Acceptable

41 SIP – příklad hovoru

42 SIP - rozšíření SIP Presence 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) MGC MG PSTN H.323/SIP H.248 RTP

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)


Stáhnout ppt "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?"

Podobné prezentace


Reklamy Google