IP telefonie Informační technologie - praxe SPŠE V úžlabině Jan Klepal, Mgr. Radka Müllerová Verze 2
Obsah Klasická telefonie Voice over IP IP telefonie Telefonní rozhraní A/D a D/A převody, kodeky Signalizační a transportní protokoly SIP Protokol Asterisk Ostatní VoIP a IP telefonní software
Klasická telefonie Původní analogová telefonie přenášela hlasovou komunikaci jako analogové signály v rozsahu 300 až 3400Hz. Začátkem 19. století hovory spojovaly operátorky v telefonních ústřednách. Automatické telefonní ústředny se začaly nasazovat v období kolem světových válek. Nejdříve elektromechanické (s reléovými voliči) později plně elektronické (procesorově řízené). Signalizace (např. volba telefonního čísla) se přenáší v hovorovém kanálu (tzv. In-Band). Tento systém je označován jako POTS (původně Post Office Telephone Service, nyní Plain Old Telephone Service). S nástupem plně elektronických ústředen přichází standard ISDN (Integrated Services Digital Network), který přenáší hovory digitálně. Hovor je digitalizován pomocí PCM (Pulse Code Modulation) a telefonní sítí přenášen digitálně. Signalizace je přenášena odděleně od hovoru ve vyhrazeném komunikačním kanálu. Digitální telefonní síť nabízí širší okruh služeb než POTS, např. identifikaci volajícího, přesměrování a blokování hovorů, atd. Veřejná telefonní síť je označována jako PSTN (Public Switched Telephone Network), v Česku někdy označována také jako JTS (Jednotná Telefonní Síť). K adresaci používá telefonní čísla (standard ITU-T E.164) Ústředna podnikové telefonní sítě se nazývá PBX (Private Branch Exchange).
Klasická telefonie (POTS)
Klasická telefonie (ISDN)
Klasická telefonie PSTN analogová linka digitální linka POTS telefon TDM POTS telefon TA NTBA PSTN POTS telefon ISDN telefon NTBA analogová PBX digitální PBX
Voice over IP S rozmachem IP sítí koncem 20. století se začalo uvažovat o přenosu telefonních hovorů pomocí těchto sítí pro snížení nákladů za hovorné. Začaly se propojovat firemní pobočkové ústředny pomocí hlasových bran, které převádějí analogové nebo digitální linky na IP datagramy. VoIP vychází z konceptu digitálního přenosu hovoru, především z ISDN. Hlas je digitalizován, pomocí kodeku převeden do UDP datagramu a odeslán IP sítí k protější bráně. Signalizace o zahájení, sestavení a ukončení hovoru je přenášena odděleně signalizačním protokolem. Přenos hlasu klade na IP sítě vysoké nároky. Pro kvalitní přenos hlasu musí být garantováno: minimální šířka přenosového pásma – podle požadavků vybraného kodeku konstantní zpoždění – aby hlas „nekoktal“ malé zpoždění – do 200ms nepostřehnutelné, nad 500ms nepříjemné
Voice over IP
Voice over IP PSTN Internet analogová linka digitální linka VoIP POTS telefon TA NTBA PSTN POTS telefon ISDN telefon NTBA analogová PBX digitální PBX Internet
IP telefonie Pro přenos hlasu používá VoIP protokoly (SIP, H.323, MGCP, IAX) Nabízí však rozšířené funkce jako jsou konference, hlasové schránky (VoiceMail), hlasovou nabídku (IVR) atd. Řízení hovorů zabezpečuje centrální prvek (IP PBX, SIP proxy, Soft-switch atd.), ke kterému jsou připojeny hlasové brány a IP telefony. Jedná se o čistě softwarové řešení (ke své funkci nepotřebuje žádný telekomunikační HW). Nejpoužívanější software pro PBX Cisco CallManager – Proprietální řešení, Windows Asterisk – OpenSource řešení, Linux
IP telefonie
IP telefonie PSTN Internet analogová linka digitální linka VoIP POTS telefon TA NTBA PSTN IP telefon ISDN telefon NTBA IP PBX IP PBX Internet
Telefonní rozhraní Analogové Digitální FXO (Foreign Exchange Office) Přijímá telefonní linku (očekává napájení, indikuje vyvěšení a zavěšení) Na pobočkové ústředně je to port, do kterého se připojují státní linky V IP telefonii jsou těmito porty vybaveny hlasové brány pro připojení na státní linku FXS (Foreign Exchange Station) Generuje linku (poskytuje napájení, signalizuje vyzvánění, generuje oznamovací tón) Na pobočkové ústředně je to port, do kterého se připojují telefony V IP telefonii jsou těmito porty vybaveny hlasové brány pro připojení klasických telefonů nebo simulaci státních linek pro telefonní ústřednu E&M (česky E plus M) Dříve používané rozhraní a signalizace k propojení PBX Digitální ISDN (Integrated Services Digital Network) B kanál pro přenos hlasu PCM 64 kbit/s a D kanál pro přenos signalizace Rozhraní BRI (Basic Rate Interface) Obsahuje 2 B kanály a D kanál 2B+D PRI (Primary Rate Interface) Americká varianta T1 (1,554 Mbit) obsahuje 23 B kanálů a 1 D kanál 23B+1D Evropská varianta E1 (2,048 Mbit) obsahuje 30 B kanálů a 1 D kanál 30B+1D
Telefonní rozhraní: FXO a FXS PBX FXO port PSTN FXS port státní linka pobočková linka
Telefonní rozhraní: ISDN zákaznický rozbočovač terminace místní smyčky místní ústředna tel. operátora ISDN telefon S T U LE LE NT2 NT1 TE1 klasický telefon terminal adapter R TA
Telefonní rozhraní: ISDN 30B+1D 30*64kbit+64kbit D B B B B B B B B B B B B 2B+D 2*64kbit+16kbit B B B B B B B B B B B B B D B B B B B B B BRI (160kbit) PRI (E1 2048kbit)
A/D
D/A
Počet paketů za sekundu VoIP kodeky Kodek Metoda Počet paketů za sekundu Šířka pásma Šířka pásma Ethernetu G.711 PCM 50 64 Kbit/s 87,2 kbit/s GSM 06.10 RPE-LP 13 Kbit/s 35,4 kbit/s G.729A CS-ACELP 8 Kbit/s 31,2 kbit/s G.723.1 ACELP 34 5,3 Kbit/s 20,8 kbit/s G.711 a G.729 Rozlišení: 8 bitů Vzorkování: 8 000 vzorků / sekundu Šířka pásma: 64 000 bit / s Počet paketů: 50 / s (velikost vzorku 20 ms) Payload paketu: 1 280 bitů = 160 bajtů
VoIP signalizační protokoly H.323 Rodina protokolů pro přenos audio-video relací po paketových sítích, která se začala používat pro VoIP H.225 (Call Control) řídí sestavení, průběh a ukončení hovorů H.245 (Media Control) řídí výběr kodeku a sestavení RTP (Realtime Transport Protocol) cesty Pro komunikaci používá port 1720/tcp SIP (Session Initiation Protocol) Novější protokol, který byl definován přímo pro potřeby IP sítí Protokol je textový, stejně jako např. HTTP Je definován jako IETF RFC3261 Pro komunikaci používá port 5060/tcp nebo 5060/udp SIP je nestavový protokol IAX Protokol vznikl jako snaha odstranit nedostatky protokolů H.323 a SIP Řeší problémy NAT, overheadu při trunkingu a zabezpečení
RTP (Real-time Transport Protocol) Transportní protokol, který přenáší hlasovou komunikaci (digitalizovaný hlas) Využívá jej H.323 i SIP Pro komunikaci používá rozsah portů 16384-32767 UDP Problémy s NAT – porty jsou vybírány dynamicky signalizačním protokolem Problém řeší STUN protokol – je ovšem nutné nainstalovat STUN server všude tam, kde je použito NAT Existuje varianta SRTP, která přenáší hlasovou komunikaci šifrovaně
Signalizační a transportní protokol SIP proxy SIP proxy SIP signalizace IP telefon IP telefon RTP stream
SIP protokol Protokol nabízí tyto metody: REGISTER – telefon se registruje k SIP proxy INVITE – sestavení hovoru CANCEL – zrušení právě probíhající metody ACK – potvrzení o sestavení hovoru BYE – ukončení hovoru OPTIONS – informace o stavu vzdálené strany INFO – výměna informací během hovoru SUBSCRIBE – vyžádání událostí během hovoru NOTIFY – událost která nastala během hovoru REFER – přepojení hovoru
SIP protokol Protokol rozlišuje tyto stavové kódy: 100: Trying – požadavek byl přijat proxy serverem 180: Ringing – volaný telefon vyzvání 181: Forward – přepojení hovoru na jinou linku 183: Progress – informace o sestavovaném hovoru 200: OK – požadavek vyřízen (hovor spojený) 302: Moved – volání bylo přesměrováno 400: Bad request – chybný požadavek 401: Unauthorized – volající není autorizován 404: Not Found – volaný neexistuje 408: Timeout – volaný neodpovídá 486: Busy – volaný má obsazeno 5xx: Server Failure – chyba proxy serveru 6xx: Global Failure – chyba sítě
Media Session (RTP stream) SIP protokol 246 123 INVITE: 246@uzlabina.cz volající vytočil linku 246 INVITE: 246@uzlabina.cz ACK: 100 Trying ACK: 180 Ringing volaný telefon vyzvání ACK: 180 Ringing ACK: 200 OK volaný vyvěsil sluchátko ACK: 200 OK Media Session (RTP stream) hovor hovor BYE volaný zavěsil sluchátko BYE ACK: 200 OK ACK: 200 OK
SIP protokol INVITE sip:246@uzlabina.cz SIP/2.0 Via: SIP/2.0/UDP proxy.uzlabina.cz:5600 From: Jan Klepal <sip: 123@uzlabina.cz> To: Radka Mullerova <sip: 246@uzlabina.cz> Call-ID: abdf54ed8a@uzlabina.cz Max-Forwards: 70 CSeq: 1 INVITE Contact: Jan Klepal <sip: 123@uzlabina.cz> Content-Type: application/sdp v=0 o=Jan Klepal 84648468 84648468 IN IP4 uzlabina.cz s=Session SDP c=IN IP4 10.10.2.154 t=0 0 m=audio 16384 RTP/AVP0 a=rtpmap: 8 PCMA/8000 a=rtpmap: 0 PCMU/8000 a=rtpmap: 18 G729/8000
Asterisk Asterisk je OpenSource IP PBX ústředna Podporuje protokoly SIP, H.323, IAX, MGCP a SCCP Poskytuje širokou škálu služeb, např. přepojování hovorů, konference, hlasové schránky, IVR, čekací fronty, parkování hovorů, napojení na databáze atd. Konfiguruje se pomocí textových konfiguračních souborů nebo webového rozhraní Jsou podporovány PCI karty s rozhraním FXO, FXS, ISDN BRI a PRI + brány pomocí protokolů SIP, H.323, IAX, MGCP a SCCP Existují verze pro „embed hardware“ např. OpenWRT
Asterisk Nejdůležitější konfigurační soubory modules.conf – moduly které se mají zavést (protokoly, kodeky, aplikace, funkcionalita) extensions.conf – definice pobočkových linek, volacích filtrů, IVR atd. sip.conf – konfigurace SIPových bran a IP telefonů zapata.conf – konfigurace PCI karet voicemail.conf – konfigurace hlasových schránek
Asterisk: modules.conf autoload=no noload => chan_oss.so load => res_features.so load => res_musiconhold.so load => chan_sip.so load => app_dial.so load => app_voicemail.so load => codec_alaw.so load => codec_ulaw.so load => codec_adpcm.so load => codec_a_mu.so load => format_pcm.so load => format_pcm_alaw.so
Asterisk: extensions.conf [interni] exten => 123,1,Dial(SIP/jan.klepal,15) exten => 123,2,Voicemail(9123) exten => 123,3,Hangup() exten => 246,1,Dial(SIP/radka.mullerova,15) exten => 246,n,Voicemail(9246) exten => 246,n,Hangup() [statni] exten => _1XX,1,Dial(SIP/sipy) exten => _[2-7]XX.,1,Dial(SIP/sipy) exten => _800.,1,Dial(SIP/sipy) exten => s,1,Congestion() [odchozi-hovory] include => interni include => statni [prichzi-hovory]
Asterisk: sip.conf [general] disallow=all allow=alaw allow=ulaw allow=g729 register => 271122555@sipy.cz [sipy] type=peer host=sipy.cz context=prichozi-hovory [jan.klepal] type=user host=dynamic pass=heslo context=odchozi-hovory [radka.mullerova]
IP telefonní systémy Cisco CallManager (CCM) SER (Sip Express Router) Profesionální řešení postavené na Windows 2000 Vlastní protokol SCCP (Skinny) Podpora protokolů H.323, MGCP a SIP Pro: vyzkoušené krabicové řešení, dobrá podpora Proti: velice drahé řešení – hardware, licence CallManageru a licence za každý telefon SER (Sip Express Router) SIP proxy pro poskytovatele Pro: vynikající škálovatelnost – tisíce hovorů na jeden server Proti: omezená funkcionalita, podpora pouze protokolu SIP Ostatní embed zařízení Většinou založené na Asterisku nebo SERu Pro: nízká cena oproti CCM, malé PBX = spolehlivé HW zařízení a jednoduchá konfigurace Proti: většinou hotové řešení, které není možné upravovat
Internetová telefonie Skype Volání po Internetu zdarma Levné volání do PSTN Používá WideBand kodek Využívá klienty s veřejnou IP adresou pro hovory klientů „schovaných“ za NAT SIPY, VOIPEX, VOX.802, VIPHONE atd. Poskytovatelé „Internetové telefonie“ pomocí protokolů SIP, H.323 nebo IAX Levné volání do PSTN pomocí IP telefonů (SW i HW) Výběr ovlivňuje: Cena – paušál, ceny hovornéno a tarifikace (1+1, 120+60, 60+1 atd.) Peering – má příslušný operátor peering s vaším poskytovatelem internetu? Zda operátor poskytuje veřejné telefonní číslo Doplňkové služby – záznamík hovorů, služby PBX atd. Podporované kodeky – G.711, G.723, GSM, T38