SOFTVÉROVÁ POBOČKOVÁ ÚSTREDŇA NA BÁZE VoIP

BAKALÁRSKA PRÁCA

MARTIN BIEL

ŽILINSKÁ UNIVERZITA V ŽILINE Elektrotechnická fakulta Katedra telekomunikácií a multimédií

Študijný odbor: TELEKOMUNIKÁCIE Študijný program: Telekomunikácie

Vedúci bakalárskej práce: Ing. Peter Kortiš, PhD.

Stupeň kvalifikácie: bakalár (Bc.) Dátum odovzdania bakalárskej práce: 12.6.2009

ŽILINA 2009

Abstrakt

BIEL, Martin: Softvérová pobočková ústredňa na báze VoIP. [bakalárska práca]. Žilinská univerzita v Žiline. Elektrotechnická fakulta. Katedra telekomunikácií a multimédií - Vedúci bakalárskej práce: Ing. Peter Kortiš, PhD., Žilina 2009. str. 38.

V mojej bakalárskej práci popisujem súčasný stav v oblasti implementácie VoIP v privátnych sieťach so zameraním sa na existujúce programové riešenia. Sú v nej tiež aplikované dve vybrané riešenia na katedrovom serveri. V práci sa zaoberám aj protokolovou analýzou realizovaných riešení. Porovná tiež výstavbu a rozpad spojenie riešení z praktickej časti s typickou výstavbou a rozpadom spojenia.

Kľúčové slová: VoIP, Softvérová pobočková ústredňa, Asterisk PBX, 3CX telefónny systém, SIP espress router, IP telefón

Abstract

BIEL, Martin: Software Branch Exchange on Base VoIP. [bachelor thesis]. University of Zilina in Zilina. Faculty of Electrical Engineering.Dept. of Telecomunications and Multimedia - Tutor: Ing. Peter Kortiš, PhD., Žilina 2009. pp 38.

In my Bachelor Thesis I am describing the current situation in the area of implementing VoIP in private network concentrating on existing program solutions. There are also applied two selected solutions on the department´s server. I also deal with log analysis of selected solutions. The essay also compares the building and disintegration of solution connection from practical part with typical building and disintegration of connection.

Key words: VoIP, Software Branch Exchange, Asterisk PBX, 3CX phone system, SIP express router, IP phone

Žilinská univerzita v Žiline, Elektrotechnická fakulta, Katedra telekomunikácií a multimédií ______

ANOTAČNÝ ZÁZNAM - BAKALÁRSKA PRÁCA

Priezvisko, meno: Biel Martin akademický rok: 2008/2009. Názov práce: Softvérová pobočková ústredňa na báze VoIP Počet strán: 38 Počet obrázkov: 16 Počet tabuliek: 2 Počet grafov: 0 Počet príloh: 5 Použitá lit.: 14

Anotácia (slov. resp. český jazyk): Táto bakalárska práca sa zaoberá súčasným stavom v oblasti implementácie VoIP v privátnych sieťach so zameraním sa na existujúce programové riešenia. V ďalších kapitolách sa zaoberá samotnou realizáciou dvoch vybraných softvérových riešení na katedrovom serveri. V poslednej kapitole je overenie funkčnosti vytvorených riešení pomocou protokolového analyzátora.

Anotácia v cudzom jazyku (anglický resp. nemecký): This Bachelor Thesis deals with the current situation in the area of implementing of VoIP in private networks concentrating on existing program solutions. In the following chapters it is dealing with realization of two selected software solutions on the department´s server itself. In the last chapter is function verification of created solutions with the help of log analyser.

Kľúčové slová: VoIP, Softvérová pobočková ústredňa, Asterisk, 3CX telefónny systém, SIP express router, konfigurácia IP telefónov, konfigurácia Asterisku, protokol SIP, protokolová analýza- Wireshark

Vedúci práce: Ing. Peter Kortiš, Phd. Recenzent práce: Dátum odovzdania práce: 12.6.2009 Obsah Úvod...... 1 1 Technológia VoIP...... 2 2 Softvérová ústredňa ASTERISK ...... 3 2.1 Úvod do Asterisku ...... 3 2.2 História...... 4 2.3 Požiadavky na OS Linux ...... 5 2.4 Hardvérové požiadavky na server...... 5 2.5 Inštalácia Asterisku...... 5 2.6 TDM a hlasové protokoly cez IP ...... 6 2.6.1 IAX(Inter Asterisk eXchange)...... 7 2.7 Implementácia Asterisku do telefónnych sietí...... 8 3 3CX telefónna ústredňa...... 10 3.1 Úvod do 3CX telefónnej ústredne...... 10 3.2 Základné vlastnosti 3CX Telefónneho systému ...... 10 3.3 Prehľad 3CX ...... 11 3.4 Webovo založený ovládací panel...... 11 3.5 Funkcie ústredne...... 12 4 SIP Express Router ...... 14 4.1 Základné informácie ...... 14 4.2 Režimy SER...... 15 4.3 Architektúra SER a konfiguračný súbor ser.cfg ...... 16 4.4 Základné moduly pre SER...... 17 5 Realizácia VoIP na katedrovom serveri...... 19 5.1 Konfigurácia IP telefónov...... 19 5.1.1 Nastavenie IP adresy telefónu...... 20 5.1.2 Nastavenie SIP...... 20 5.2 Konfigurácia konfiguračných súborov...... 22 5.2.1 Dialplán – číslovací plán a extensions.conf...... 22 5.2.2 Organizácia dialplánu ...... 23 5.2.3 Definícia číselného plánu...... 23 5.2.4 Konfiguračný súbor sip.conf...... 25 5.2.5 Definícia SIP kanála...... 26 5.2.6 Konfiguračné parametre kanála...... 27 6 Realizácia 3CX telefónneho systému ...... 30 6.1 Konfigurácia servera...... 30 6.2 Konfigurácia IP telefónov...... 31 7 Kontrola funkčnosti riešenia protokolovým analyzátorom – Wireshark...... 32 7.1 Analýza výstavby a rozpadu spojenia...... 32 7.1.1 Signalizácia pri použitom serveri 3CX...... 36 Záver ...... 37 Zoznam použitej literatúry...... 38

Zoznam obrázkov

Obrázok 1 Zapojenie VoIP s PBX Asterisk...... 4 Obrázok 2 Pripojenie malej firmy k verejnej telefónnej sieti cez ISDN linku ...... 6 Obrázok 3 Komunikácia cez hlasové protokoly IP...... 7 Obrázok 4 Privátna sieť vytvorená Asteriskom...... 8 Obrázok 5 Rozšírenie funkcií PBX Asteriskom ...... 9 Obrázok 6 Možnosti nasadenia Asterisk serverov...... 9 Obrázok 7 Možnosti využitia 3CX ...... 11 Obrázok 8 Webové rozhranie PBX...... 12 Obrázok 9 3CX VoIP Client ...... 13 Obrázok 10 Typické použitie produktu SIP Expres Router...... 14 Obrázok 11 Zapojenie Asterisku a IP telefónov do školskej siete...... 19 Obrázok 12 Výsledná konfigurácia oboch IP telefónov ...... 22 Obrázok 13 Editovanie extension ...... 30 Obrázok 14 Registrácia telefónov...... 31 Obrázok 15 Priebeh volania vo Wiresharku ...... 32 Obrázok 16 Typická výstavba a rozpad spojenia...... 35

Zoznam tabuliek

Tabuľka 1 Systémové požiadavky s využitím TDM rozhrania...... 5 Tabuľka 2 Porovnanie verzií systému 3CX...... 11 Abecedný zoznam použitých skratiek

ACK Acknowledge kladné potvrdenie ATA Analog Telephone Adapter analógový telefónny adaptér BSD Berkeley Software Distribution voľný softvér vytvorený univerzitou Barkeley CLI Command Line Interface rozhranie príkazového riadku CPU Central Processor Unit centrálna procesorová jednotka DHCP Dynamic Host Configuration protokol pre dynamickú konfiguráciu Protocol DNS Domain Name System systém doménových mien DOS Disk Operating System diskový operačný systém DTMF Dual Tone Multifrequency dvojtónová viacfrekvenčná voľba E1 Transmission signal level 1 úroveň 1. prenosového signálu FXO Foreign eXchange Office strana pripojenej ústredne GPL, GNU General Public License všeobecná verejná licencia IAX Inter Asterisk eXchange signalizačný protokol Asterisku ID Identification identifikácia IETF Internet Engineering Task Force normalizácia pre internet IP Internet Protocol internetový protokol IPv4 Internet Protocol Version 4 internetový protokol verzie 4 IPv6 Internet Protocol Version 6 internetový protokol verzie 6 ISDN Integrated Services Digital integrovaná sieť digitálnych služieb Network ISDN BRI ISDN Basic Rate Interface základný prístup ISDN ISDN PRI ISDN Primary Rate Interface primárny prístup ISDN ITU-T Internationl Telecommunications medzinárodná telekomunikačná Union únia pre telekomunikácie IVR Interactive Voice Response interaktívna hlasová odpoveď LAN Local Area Network lokálna sieť MGCP Media Gateway Control Protocol riadiaci protokol sieťového priechodu NAT Network Address Translation preklad sieťových adries OS Operating system operačný systém PBX Private Branch eXchange pobočková ústredňa PDF Portable Document Format prenosový formát dokumentov POTS Plain Old Telephone Service pôvodná telefónna služba PPPoE Point-to-Point Protocol sieťový protokol, ktorý zapúzdruje over Ethernet PPP rámce do ethernetových

PSTN Public Switched Telephone verejná telefónna komutovaná sieť Network RTP Real-time Transport Protocol protokol komunikácie v reálnom čase SER SIP Express Router server pre komunikáciu s protokolom SIP SIP Session Initacion Protocol protokol inicializácie spojenia SQL Structured Query Language štruktúrovaný dotazovací jazyk T1 Transmission signal level 1 úroveň 1. prenosového signálu, používa sa v USA TCP Transport Control Protocol transportný protokol TDM Time Division Multiplexing multiplexovanie s časovým delením TLS zabezpečenie transportnej vrstvy UA User Agent používateľský sprostredkovateľ UAC User Agent Client užívateľský klient UDP datagramový protokol URI Uniform Resource Identifier jednotný identifikátor zdrojov USB Universal Serial Bus univerzálna sériová zbernica VoFR Voice over Frame Relay telefonovanie s prepájaním rámcov VoIP Voice over IP prenos hlasu po IP sieti WAN Wide Area Network rozľahlá sieť

POĎAKOVANIE

Touto cestou si dovoľujem poďakovať vedúcemu bakalárskej práce Ing. Petrovi Kortišovi, PhD. za pomoc, informácie a cenné rady pri spracovávaní bakalárskej práce. Ďakujem aj ostatným, ktorí mi pomohli pri tvorbe tejto bakalárskej práce.

Úvod

Pokusy Grahamma Bella o zlepšenie telegrafu sa dajú považovať za počiatok telefónie. Grahamm dňa 14. februára 1876 podal žiadosť o patent s názvom „Zdokonalenie telegrafie“. Tento patent je označovaný za najhodnotnejší patent a rozširuje telegrafiu o prenos hlasu. Táto technológia sa postupne vylepšovala. Vznikali telekomunikačné spoločnosti a telefonovanie sa tak stalo pevnou súčasťou nášho života.

Paralelne s telefóniou sa po nástupe počítačov začala rozvíjať dátová infraštruktúra. V 70-tych rokoch 20. storočia sa uskutočnili prvé pokusy s prenosom hlasu cez dátové siete, neskôr prišlo aj na praktické využitie v X.25 sieťach s cieľom ušetriť náklady.

So vznikom internetu vznikol aj IP protokol, ktorý sa stal takmer okamžite prvou voľbou pre väčšinu sietí. Je úspešný, pretože je jednoduchý a môže byť použitý ako štandard medzi rôznorodými sieťami. S rýchlym rastom internetu sa začali v 90-tych rokoch objavovať PC aplikácie na prenos hlasu po tomto médiu, čo dalo podnet na vytvorenie štandardov, ktoré sú dnes súčasťou IP telefónie.

Každým dňom zažíva IP telefónia veľký pokrok a stáva sa omnoho viac rozšíreným prostriedkom komunikácie. Prispieva k tomu predovšetkým dostupnejší internet pre široké vrstvy a zvyšujúca sa prenosová kapacita pripojenia k internetu. Takmer každý, kto dnes vlastní počítač s možnosťou pripojenia k internetu má možnosť volať cez VoIP operátora. Momentálne existuje na trhu dostatočné množstvo operátorov, poskytujúcich možnosť prevádzky IP telefónie za výhodnejšie ceny, ako pri štandardnej analógovej telefónii.

Cieľom mojej práce je zamerať sa na rôzne existujúce programové riešenia v oblasti implementácie VoIP v privátnych sieťach. Existuje dostatočne veľké množstvo softvérových ústrední. Ja sa v tejto práci zaoberám iba tromi vybranými riešeniami.

1

1 Technológia VoIP

Technológia VoIP umožňuje prenos hlasu v sieťach s prepojovaním paketov založených na protokole IP. Digitalizovaný hlas sa po zapuzdrení do paketov prenáša cez paketovú sieť, pričom principiálne nezáleží na tom, či sú terminály účastníkov pripojené v rámci jednej LAN siete, alebo sa jedná o komunikáciu cez Internet. Pri volaní cez IP sieť prebiehajú medzi volajúcim a volaným terminálom dva typy komunikácie: jeden médiový tok, ktorý prenáša reč a signalizácia, ktorá riadi vytvorenie volania a určuje parametre médiového toku. Médiové informácie sú najčastejšie prenášané pomocou protokolu RTP (Real-Time Transport Protocol). Segmenty RTP obsahujú zakódované úseky reči s dĺžkou od 10 do 30 ms, pričom sú komprimované pomocou kodeku

Signalizácia je vymieňaná medzi terminálmi priamo, alebo nepriamo cez ďalšie zariadenia, ako je napr. brána, gatekeeper, prípadne iné. Pre prenos signalizácie pre potreby VoIP možno využiť mnohé signalizačné štandardy, pričom medzi najpoužívanejšie a najznámejšie z nich patria štandardy SIP (Session Initiation Protocol) vytvorený organizáciou IETF a štandard H.323 vytvorený organizáciou ITU-T.

V ďalších kapitolách sa budem zaoberať vybranými troma programovými riešeniami, ktoré implementujú VoIP technológiu v privátnych sieťach. Prehľad ďalších softvérov je uvedený v prílohe A.

2

2 Softvérová ústredňa ASTERISK

2.1 Úvod do Asterisku

Ak hovoríme o VoIP ústredni, je nutné spomenúť Asterisk. Názov Asterisk pochádza z anglického prekladu slova hviezdička (asterisk), ktorá v Unixových (Linuxových) a DOS systémoch reprezentuje znak pre zastúpenie mena súborov. Poskytuje veľa úrovní pre spracovanie hlasu cez paketovú sieť a sieť s prepínaním okruhov (TDM). Asterisk je open source, čo je otvorený zdrojový kód (program so slobodne dostupným zdrojovým kódom). Neoficiálne ide o jedno z „najsilnejších“, flexibilných a rozšíriteľných riešení v oblasti integrovaného telekomunikačného softvéru. Ide teda o kompletnú open source softvérovú PBX, ktorá funguje na platformách Linux a Unix, poskytujúcu rôzne vlastnosti, ktoré sa očakávajú od ústredne. Jedná sa o distribúciu pod podmienkami GNU (General Public Licence). Povolenú výnimku tvorí spojenie s OpenH323 projektom, a to za účelom dostupnosti H.323 podpory. Systém je navrhnutý tak, aby vytvoril rozhranie telefónnemu hardvéru, softvéru a ľubovoľnej telefónnej aplikácií.[2] Asterisk môže spojovať a spracovávať rôzne druhy VoIP protokolov ako sú SIP, MGCP, IAX a H.323 a tiež mnoho protokolov pre klasické telefónne siete ako POTS, ISDN, PRI a ISDN BRI. Výhoda Asterisku je v jeho prispôsobiteľnosti, v možnosti implementácie rôznych štandardov a v jeho otvorenom softvéri. Nedokáže vytvárať, upravovať a spracovávať obrovské množstvo účastníkov. K odstráneniu týchto problémov má Asterisk výkonný mechanizmus k získavaniu a ukladaniu dát do a z databáz. Vďaka podpore databáz môže Asterisk spracovávať obrovské množstvo účastníkov bez väčších problémov.[3]

Asterisk môže byť okrem iného použitý v týchto aplikáciách:

· Rôznorodá VoIP gateway (MGCP, SIP, IAX, H.323) · Pobočková ústredňa (PBX) · Voicemail služby s adresárom · Interaktívny hlasový sprievodca (IVR) server · Softvérová ústredňa (Softswitch) · Konferenčný server · Packet voice server – riadiaci systém paketového prenosu hlasu · Šifrovanie telefónnych alebo faxových volaní

3

· Preklad čísel · Radenie volaní do poradia so vzdialeným sprostredkovateľom · Vzdialené „kancelárie“ pre existujúcu PBX [2]

Obrázok 1 Zapojenie VoIP s PBX Asterisk

2.2 História

Mark Spencer, tvorca programu Asterisk chcel najskôr pre svoj obchod kúpiť klasickú telefónnu ústredňu, nemal však na to dostatok financií. Pokúsil sa teda zapojiť telefónny kábel do osobného počítača s rozšírenou kartou. Skúšal spracovávať dáta pomocou softvéru a vyvíjať prvý program, ktorý by ovládal rozšírenú kartu na presmerovanie hovorov. Výsledkom jeho snahy bola prvá verzia Asterisku, ktorá bola neskôr prepísaná a upravená. Mark Spencer spolupracoval s Jimom Dixonom pracujúcim v Zapata Telephony. Druhý muž zostavil lacnú rozšíriteľnú kartu pre rozhranie serveru Asterisku pre verejnú telefónnu sieť (PSTN). Hlavný cieľ realizácie bol taký, že počítač bežiaci na Linuxe s prídavnou kartou bude mať výstupy na FXO/T1/E1 (karty od firmy Sangoma podporujú zároveň E1 a T1 a karty od firmy Digium, ktoré podporujú E1 zároveň tiež podporujú T1) a bude slúžiť ako plnohodnotná ústredňa.[3]

4

2.3 Požiadavky na OS Linux

Asterisk je známy tým, že funguje na mnohých platformách OS, hlavnou vývojárskou platformou je Linux. Ak bude Asterisk používaný iba pre VoIP alebo ak nebude používaná externá brána určená pre pripojenie tradičných telefónnych zariadení, potom je možné vyberať z väčšieho množstva systémov (napríklad FreeBSD, Mac OS X a Solaris). Systém je navrhnutý tak, aby pracoval na linuxovom jadre verzie 2.4, ale existuje aj podpora pre jadro 2.6. S jadrom verzie 2.4 pracujú napríklad RedHat (7.x, 8, 9 a Enterprise), Debian (i386), Fedora, Gentoo, Suse (verzia 8 a 9), Mandrake (9.0) a Slackware (9.0, 9.1 a 10.0). [2]

2.4 Hardvérové požiadavky na server

Asterisk potrebuje ovládať aplikácie v reálnom čase, a tak musí pristupovať k procesoru a ku zberniciam počítača s prioritným prístupom. Dôležité je riadiť funkcie systému tak, aby spracovanie hovorov malo prednosť pred všetkými ostatnými aplikáciami. Pri menších systémoch nemusí byť braný ohľad na túto požiadavku. Tabuľka 1 veľmi zjednodušene ukazuje systémové požiadavky v závislosti od množstva užívateľov, ktorí pristupujú cez TDM. Pokiaľ užívatelia budú volať s inými užívateľmi cez IP protokoly (SIP, IAX, atď.) počet kanálov bude niekoľkonásobne väčší.[3]

Tabuľka 1 Systémové požiadavky s využitím TDM rozhrania

Využitie systému Počet kanálov TDM Minimálne požiadavky Hobby systém do 5 CPU 400MHz, 256MB RAM Malý systém do 10 CPU 1GHz, 512MB RAM Stredný systém do 15 CPU 3GHz, 1GB RAM

Väčší systém viac ako 15 Duálny CPU, niekoľko serverov spojených do jedného

2.5 Inštalácia Asterisku

Inštaláciu Asterisku možno vykonať prostredníctvom nasledujúceho príkazu. Týmto bude nainštalovaná základná distribúcia Asterisku spoločne s konfiguračnými súbormi a súbormi určenými pre vývoj. apt-get install asterisk asterisk-config asterisk-dev

5

Ďalším príkazom bude dodatočne doinštalovaná podpora pre vzájomné prepojenie s inou ústredňou Asterisk pomocou protokolu IAX (Inter-Asterisk Exchange). apt-get install libiax-dev libiax()

Posledným príkazom bude Asterisk nainštalovaný a po nakonfigurovaní prostredníctvom úpravy konfiguračných súborov je možno ho spustiť prostredníctvom nasledujúceho príkazu, ktorý spustí Asterisk v tzv. konzolovom móde.[2] asterisk -vvvgc

2.6 TDM a hlasové protokoly cez IP

Tradičný TDM hardvér bol chránený patentmi a bol pre použitie na softvérových ústredniach príliš drahý. Spoluautori prišli s myšlienkou nespracovávať TDM priamo v kartách hardvéru, ale pokúsiť sa využiť výkon hosťujúceho procesoru počítača (serveru). Procesory sa stávali rýchlejšie a rýchlejšie a nebolo tak problémom využiť procesor počítača k spracovaniu TDM. Mark Spencer vo firme Zapata Telephony začal vyvíjať pseudo TDM kartu, ktorú nazval Zaptel. Jej výhoda je predovšetkým v jej nižšej cene a väčšej flexibilite. Zaptel rozhranie dodáva firma Digium (www.digium.com) pre rôzne varianty použitia tohto rozhrania (PSTN, POTS, T1, E1, PRI, BRA a ďalšie). [2]

Obrázok 2 Pripojenie malej firmy k verejnej telefónnej sieti cez ISDN linku

Namiesto Digium kariet je možné využívať napríklad vstup mikrofónu a výstup reproduktorov na PC alebo zvukové karty . Zatiaľ čo rozhranie Zaptel pracovalo dobre so

6

spojením do PSTN siete, bolo stále ešte potreba spracovať komunikáciu cez internetový protokol IP (neskôr aj cez FrameRelay). Autorom pripadal protokol H.323 objemný a tak začali vyvíjať vlastný protokol. IAX (Inter Asterisk eXchange) je protokol, ktorý dohliada na transport hlasových dát medzi dvoma pripojenými telefónnymi bodmi (IP telefónne prístroje, Asterisk servery, softvérové telefóny, telefónne adaptéry atď.). Neskôr bola pridaná podpora ďalších protokolov VoIP typu SIP, H.323, MGCP a VoFR.[3]

Obrázok 3 Komunikácia cez hlasové protokoly IP

2.6.1 IAX(Inter Asterisk eXchange) Autor Asterisku (Mark Spencer) nemal príliš v obľube patentovaný protokol H.323, rozhodol sa teda navrhnúť a realizovať svoj vlastný protokol. Výsledkom je protokol IAX (Inter Asterisk eXchange), ktorý sa stará o signalizáciu a transport paketov medzi dvoma pripojenými uzlami. Je to protokol, ktorý pôvodne slúžil na komunikáciu medzi open source PBX servermi Asterisk Vychádza z protokolov SIP, MGCP (Media Gateway Control Protocol) a RTP, ale snaží sa eliminovať všetky ich problémy. Na rozdiel od SIP je to binárny protokol. Komunikácia (signalizácia aj audio dáta) prebieha cez UDP (User Datagram Protocol). Výhodou IAX je, že nemá problém s NAT a má menšie dátové toky. Výhodou je aj to, že dokáže zlučovať dáta do jedného toku medzi dvoma koncovými bodmi (dve IP PBX).Už názov tohto protokolu naznačuje prítomnosť Asterisku na oboch koncoch komunikácie, IAX môže v skutočnosti spojiť každé dva koncové body podporujúce tento protokol. Protokol IAX je od roku 2004 totožný s protokolom IAX2.[2]

7

IAX2 môže byť použitý pre:

• vzájomné spojenie Asteriskových serverov • pripojenie k službe IAXtel • spojenie IAX klientov

2.7 Implementácia Asterisku do telefónnych sietí

Je nemožné popísať všetky možné zapojenia Asterisk serverov do telefónnych sietí, a preto sa táto podkapitola zaoberá iba základnými riešeniami zapojenia Asterisk serveru.

Obrázok 4 popisuje pripojenie pobočkovej telefónnej ústredne PBX k verejnej telefónnej sieti (PSTN). PBX ústredňa je tu nahradená Asterisk serverom, ku ktorému sú pripojené analógové telefónne prípojky pre pripojenie analógových telefónov a ethernet linka pre pripojenie IP telefónov. Asterisk server je pripojený do verejnej telefónnej siete pomocou analógovej linky (POTS). Zámenou analógových liniek za digitálne môže Asterisk server pripojiť ISDN telefóny a sám sa pripojiť do PSTN siete pomocou ISDN BRA alebo ISDN PRI linky.[3]

Obrázok 4 Privátna sieť vytvorená Asteriskom

Na obrázku 5 je zobrazené pripojenie Asterisk serveru ku pobočkovej ústredni pomocou E1 linky. Asterisk môže pripojiť IP telefóny, ale tiež môže prebrať alebo rozšíriť niektoré funkcie z PBX ústredne. Môže sa jednať napríklad o zriadenie hlasovej schránky účastníkov, hlasového menu IVR, vytvárania konferenčných hovorov atď.[3]

8

Obrázok 5 Rozšírenie funkcií PBX Asteriskom

Obrázok 6 rozoberá jednotlivé nasadenia Asterisk serverov v telefónnej sieti. Pokiaľ spravujeme veľké množstvo zákazníkov je lepšie rozdeliť záťaž na viac serverov. Pri výpadku jedného serveru nám spadne iba určitá služba a ostatné služby budú zachované. Môžeme vyhradiť napr. jeden Asterisk pre zostavovanie konferenčných hovorov, druhý pre spracovávanie hlasových schránok, tretí pre prehrávanie hudby behom podržaného hovoru, štvrtý sa môže starať o účtovanie, piaty spojovať hovory s analógovými telefónmi, šiesty s IP telefónmi a ďalší sa môže starať o pripojenie vnútornej siete do PSTN siete.[3]

Obrázok 6 Možnosti nasadenia Asterisk serverov

9

3 3CX telefónna ústredňa

3.1 Úvod do 3CX telefónnej ústredne

Telefónny systém 3CX je IP PBX pre Windows na báze softvéru a nahradzuje tradičné hardvérové pobočkové ústredne. Tento systém je vyvinutý špecificky pre Microsoft Windows a pre signalizáciu využíva štandard SIP. Umožňuje užívateľovi používať telefón na báze SIP (softvérový alebo hardvérový). Veľa vlastností má v porovnaní s Asteriskom rovnakých. Medzi ne patria: využívanie počítačovej siete, nevyžaduje špeciálne telefónne rozvody alebo zamestnanci môžu meniť kancelárie bez nutnosti realizovať akékoľvek zmeny v rozvodoch alebo konfigurácii. Nevýhodou oproti Asterisku, ktorý je zadarmo je, že 3CX je voľne šíriteľný program iba pre malé firmy. Za výraznejšiu výhodu je možné považovať webovú konfiguráciu.

3CX umožňuje prijímať hovory alebo telefonovať prostredníctvom štandardnej linky PSTN pomocou brán VOIP. Poskytuje volanie pomocou ktorejkoľvek služby SIP VOIP alebo WAN. Ide o softvér, ktorý nahradzuje patentované PBX, podporuje štandardné SIP telefóny, VOIP služby a tradičné telefónne linky PSTN. Správa z webu uľahčuje riadenie ústredne.[11]

3.2 Základné vlastnosti 3CX Telefónneho systému

· Kompletný telefonický systém: poskytuje prepojovanie hovorov, smerovanie a čakanie.

· Rozšíriteľnosť - neobmedzené množstvo liniek a prípojov.

· Webová konfigurácia a ukazovateľ stavu umožňuje riadenie telefonického systému.

· Zjednotené správy: Prijímanie hlasovej pošty cez e-mail. · Automatické priraďovanie (napr. 1 pre obchod, 2 pre podporu, atď.)

· Použitie štandardných SIP telefónov.

10

Tabuľka 2 Porovnanie verzií systému 3CX

Small business professional enterprise free edition edition edition edition rozšírenie a práva Počet liniek Neobmedzený Počet súčasne prebiehajúcich Až 8 Až 8 Až 16 Až 32 volaní Ceny bez DPH – 375 Eur 795 Eur 1150 Eur

3.3 Prehľad 3CX

Systém 3CX zahŕňa softvér pre server, softvérové telefóny alebo SIP hardvérové telefóny a VOIP bránu na pripojenie existujúcich telefónnych liniek. VOIP poskytovateľ môže byť použitý na volania cez vytvorenú užívateľskú sieť.

Obrázok 7 Možnosti využitia 3CX

3.4 Webovo založený ovládací panel

Webovo založené rozhranie vytvára jednoduchšiu konfiguráciu a správu 3CX telefónneho systému. Je to výhoda napríklad pri zmenách konfigurácie. Je možné monitorovať stav systému vrátane obsadených telefónov a PSTN liniek. V porovnaní

11

s Asteriskom je samotná konfigurácia prehľadnejšia práve vďaka webovo založenom ovládacom paneli. [1]

Obrázok 8 Webové rozhranie PBX 3.5 Funkcie ústredne

Využitie existujúcich telefónnych liniek s VOIP bránou

3CX telefónny systém umožňuje pokračovať v telefonovaní a prijímaní hovorov na existujúcich telefónnych linkách s využitím VOIP brány. 3CX zahŕňa konfigurácie pre vedenie VOIP brán. Analógové a BRI (Basic Rate Interface) brány stoja približne 210 eur a E1/T1 (prevodníky) brány sa cenovo pohybujú od 1050 eur. [1]

VOIP Client (softvér na telefonovanie cez internet)

3CX telefónny systém zahŕňa VoIP klient pre každého používateľa, ktorý môže fungovať ako softvér na telefonovanie cez internet. Umožňuje volať, prijímať a uskutočňovať hovory z počítača využitím headsetu. 3CX VOIP Klient sa dá použiť v kombinácií s pevnou linkou. Ďalšou funkciou je možnosť sledovať stav ostatných užívateľov, liniek alebo rad hovorov. [1]

12

Obrázok 9 3CX VoIP Client

My phone užívateľský portál

S My-phone užívateľským portálom v 3CX telefónnom systéme môžu užívatelia konfigurovať rozšírené nastavenia. Umožňuje prijímať hlasovú poštu cez e-mail alebo neúspešné volania smerovať na inú vnútornú telefónnu linku prípadne mobilné telefónne číslo, keď telefón neodpovedá alebo je nedostupný. My-phone portál je prístupný cez prehliadač. [1]

Možnosť posielať a prijímať správy cez faxy pomocou 3CX

3CX telefónny systém zahŕňa fax server, ktorý umožňuje cez celú sieť posielať a prijímať správy cez faxy. Správy cez faxy sú prijímané e-mailom ako PDF (Portable Dokument Format) súbory. Súbory sú posielané použitím Microsoft Windows Fax zariadenia, ktoré má integrovaný Office. [1]

Konferenčný hovor

3CX umožňuje nastaviť konferenčné hovory, ktoré zahŕňajú zamestnancov z lokálnych i vzdialených kancelárií.

13

4 SIP Express Router

4.1 Základné informácie

SIP Express Router je výkonný, modulárny (ľahko rozšíriteľný) SIP server, ktorý disponuje rozsiahlou škálou parametrov. Je napísaný v jazyku C pre operačné systémy Linux, Solaris a BSD a je vytváraný pod licenciou GPL (General Public Licence), cieľom ktorej je dostupnosť softvéru pre kohokoľvek, možnosť zdieľania a výmeny softvéru medzi ľuďmi. SER je schopný zvládať až tisíce hovorov naraz na dvojprocesorovom počítači. Riadenie celého systému je založené na silnom skriptovacom jazyku. Podporuje protokoly IPv4, IPv6, UDP, TCP, TLS.

SER disponuje webovým rozhraním SERweb pre užívateľov a tiež pre administrátora. Toto rozhranie vyžaduje spoluprácu so Sip Express Routerom, ktorý podporuje modul MySQL. To znamená, že databáza MySQL je využitá pre ukladanie rôznych informácii o užívateľoch.

Ako už bolo vyššie spomenuté, SER je modulárny server, a preto existuje okolo 40 modulov, ktoré podporujú SER. Medzi základné moduly zahrnuté v základnej inštalácii patria: sl (jednoduchý UA server), tm (umožňuje podrobný procesing SIP správ), rr (smerovanie), usrloc (umiestnenie užívateľov), registrar (registračný server). [9]

Obrázok 10 Typické použitie produktu SIP Expres Router

14

4.2 Režimy SER

Sip Express Router môže pracovať v niekoľkých režimoch:

Ø Registrar server

Ø Proxy server

Ø Redirect server a) Registrar server

Registračný server je UA (User Agent) server, ktorého hlavnou úlohou je spracovanie dotazu - typu REGISTER, ukladanie informácii ohľadom užívateľského agenta (user agent) obsiahnuté v dotaze, aktualizovať tieto informácie v serveri umiestnenia (location) alebo miestnej databáze. Obvykle je registračný server doplnený proxy serverom, ktorý sa stará o smerovanie SIP správ. Pred nadviazaním spojenia medzi dvoma účastníkmi SIP server musí najskôr vyhľadať lokalitu volaného účastníka. Táto procedúra sa môže uskutočniť pomocou elementov siete ako proxy a redirect server, ktoré na základné informácie o registrácii príslušného účastníka posielajú dotazy ďalej t.j. približujú ich k danému serveru. Aby sa tak stalo je využitá služba SIP - lokalizácia užívateľa (location service) t.j. určenie koncového systému pre komunikáciu. [9] b) Proxy server

Proxy je sprostredkujúca entita, ktorá sa môže chovať ako server alebo klient za účelom obsluhy požiadaviek od iných klientov. Hlavnou úlohou proxy je smerovanie. Po doručení dotazu musí proxy poslať daný dotaz ďalej, a to tak, aby ho priblížil k miestu určenia. Medzi ďalšie funkcie, ktoré môže proxy vykonávať patria funkcie spojené s kontrolou práv užívateľov a filtráciou prevádzky – autentifikácia a autorizácia užívateľov pre dané služby. Napríklad ak je užívateľ oprávnený uskutočňovať hovory. SIP správa tak môže prejsť niekoľkými proxy servermi, ktoré môžu pozmeniť ich obsah, skôr ako sa dostane k požadovanému miestu. [9]

15

c) Redirect server

Redirect server má za úlohu spracovať dotaz od UAC (User Agent Client) tak, že na základe informácie ako je cieľová adresa, pošle odpoveď, ktorá navedie užívateľa, aby kontaktoval ďalšie URI adresy. Takýmto spôsobom bude UAC postupne presmerovaný až k cieľovej adrese. Zmyslom zavedenia tohto typu serveru bol fakt, že síce proxy server tiež obsahuje funkcie presmerovania, ale pri spracovaní dotazu vykonáva zložitejšie operácie. Preto sa dá pre urýchlenie prevádzky v sieti spoľahnúť na redirect server. [9]

4.3 Architektúra SER a konfiguračný súbor ser.cfg

SER je systém zložený z viacerých častí, ktoré spolu spolupracujú. Základom je jadro SER, ktoré je malé, veľmi rýchle a stabilné. Okolo jadra existujú ďalšie funkčné moduly, ktoré sú zodpovedné vždy za určitú časť celého procesu prebiehajúceho v SER (príjem SIP správ, presmerovanie, ukladanie do databázy MySQL, sms brána atď.) Tieto moduly sú definované a integrované do SER pomocou ser.cfg konfiguračného súboru, ktorý sa dá považovať za “mozog“ SER. [9] ser.cfg – sedem sekcii:

1. Sekcia globálnych definícii – tu sú uvedené informácie typu IP adresy a portu pre komunikáciu, úroveň debugingu atď. Dá sa povedať, že táto časť ovplyvňuje celý systém. 2. Sekcia zavádzania modulov – to je sekcia, kde sú zapísané cesty k modulom .so, ktoré rozširujú základné jadro programu a ponúkajú ďalšie funkcie. Moduly sú zavádzané pomocou príkazu load-module. 3. Sekcia konfigurácia modulov – ľubovoľný z modulov definovaných vyššie môže potrebovať doplňujúce informácie ohľadne jeho nastavenia. Tu je použitý príkaz modparam (module_name, module_parameter, parameter_value) argumenty sú: názov, parameter a jeho hodnota. 4. Hlavný blok spracovania SIP správ – tu sú určené postupy ako SER spracováva SIP správy. 5. Sekundárny blok spracovania SIP správ – obsahuje procedúry podobné ako v hlavnom bloku spracovania SIP správ, z ktorého je možné volať. 6. Reakcie na SIP správy – voliteľná časť, v ktorej sú určené odpovede na SIP správy. Väčšinou sú to správy typu OK. 16

7. Blok neštandardných procedúr – voliteľný blok, pre prípad potreby spracovania správ, napríklad v prípade zlyhania prijatia správy (busy alebo timeout).

4.4 Základné moduly pre SER

SER modul sl Modul sl (stateless – zjednodušený) je modul, ktorý umožňuje SER, aby sa choval ako UA server a generovať odpovede na SIP dotazy s tým, že sa neuchováva žiadny stav ani SIP správy do pamäti PC čím sa znižuje náročnosť na pamäť. Pri naviazaní spojenia musí sl modul zaistiť správnu identifikáciu volajúceho, keď prijíma správu ACK po vygenerovaní správy 200OK v bez stavovom režime. Preto sú správy označené špeciálnym podpisom v to-tagu a tento podpis je vyhľadávaný v správe ACK. Aby sa urýchlil proces filtrácie správ ACK je nastavený Timer, ktorý určuje dobu, za ktorú SER bude reagovať na správu. Správy prijaté mimo čas nastavený v Timeri sú zahodené. [9]

ACK je spôsob naviazania SIP komunikácie:

· volajúci pošle INVITE

· volaný odpovie 200OK, aby prijal hovor · volajúci pošle ACK

SER modul tm Modul tm (transaction module) je transakčný modul, ktorý zaisťuje stavový spôsob komunikácie. Pre každú reláciu je vyhradené miesto v pamäti pre dočasné ukladanie SIP správ do pamäti a údajov o relácii napríklad: účtovanie, čo zvyšuje nárok na pamäť a CPU počítača oproti sl modulu. Na druhú stranu, pokiaľ je potrebou predísť retranzakciám správ, ktoré majú neurčitú destináciu a znížiť tak prevádzku medzi DNS serverom, modul tm zaručí, že tieto správy budú nabudúce zahodené.

SER modul usrloc Modul usrloc (user location - umiestnenie užívateľa). Z názvu je zjavné, že tento modul sa stará o tabuľku umiestnenia užívateľov a poskytuje prístup k iným modulom. Žiadna funkcia nie je exportovaná z tohto modulu, ktorá by mohla byť použitá v skripte.

SER modul maxfwd. Zaisťuje spracovanie procedúry, ktorá zamedzuje zacyklenie SIP správ.

SER modul registrar. Tento modul má za úlohu zabezpečovať proces registrácie.

17

SER modul MySQL. Tento modul sprostredkuje komunikáciu s MySQL databázou pre iné moduly.

18

5 Realizácia VoIP na katedrovom serveri

Pri realizácií bolo nutné nakonfigurovať Asterisk, dva IP telefóny a pripojiť ich do siete. V ďalších kapitolách sa budem zaoberať práve modifikáciou dvoch konfiguračných súborov Asterisku, a to extensions.conf a sip.conf a konfiguráciou IP telefónov. Ako server slúžil jeden z počítačov nachádzajúci sa na Katedre Telekomunikácií a multimédií, na ktorom bol nainštalovaný operačný systém Linux spolu s Asteriskom. Boli použité IP telefóny od firmy Telco (model PH-800N). K praktickému odskúšaniu bolo použité zapojenie, ktoré je uvedené na obrázku.

Obrázok 11 Zapojenie Asterisku a IP telefónov do školskej siete

5.1 Konfigurácia IP telefónov

VoIP telefónny prístroj Telco PH-800N je primárne určený pre telefonovanie v telefónnej sieti v rámci smerovania hovorov poskytovateľom hlasových služieb prostredníctvom siete internet alebo vnútornej podnikovej počítačovej siete na báze káblového ethernetu.

Konfigurácia telefónu sa uskutočňuje v menu. Pristupuje sa do neho pomocou tlačidla, ktoré je umiestnené priamo pod displejom úplne vľavo. V menu sa nastavujú všetky potrebné nastavenia telefónu, ktoré uvádzam na ďalších stranách.

19

Prístup do položiek menu:

Ø View - obsahuje informačné časti, overenie funkčnosti pripojenia a reštart telefónu.

Ø Configure - pre vstup do tohto menu je nutné zadať číselné heslo 135. Obsahuje základné konfigurácie (IP, SIP) a nastavenia presmerovania hovorov.

Ø Advanced - pre vstup do tohto menu je nutné zadať číselné heslo 1230. Obsahuje rozšírené konfigurácie telefónu.

5.1.1 Nastavenie IP adresy telefónu Telefón je v IP sieti samostatné zariadenie (host), preto musí mať pridelenú adresu IP (Internet Protocol) a masku. Pre správne smerovanie z LAN (Local Area Network) do WAN (Wide Area Network) siete alebo internetu potrebuje navyše poznať adresu brány (gateway, router) a pre správny preklad doménových mien aj adresu DNS (Domain Name Server).

Telefón je štandardne nastavený pre automatické rozpoznanie svojej IP adresy prostredníctvom služby DHCP (Dynamic Host Configuration Protocol). Ak sa po zapnutí/reštarte telefónu nepodarí rozpoznať IP adresu alebo server DHCP ju odmietol prideliť, zobrazí sa hlásenie DHCPFail (tel. číslo). V tomto stave nie je možné telefón prevádzkovať ani nastavovať zo siete. Pokým je telefón zapnutý opakovane sa pokúša získať IP adresu z DHCP.

IP adresy: IP adresa vytvoreného serveru (Asterisk) : 158.193.214.60 IP adresa prvého IP telefónu :158.193.214.80 IP adresa druhého IP telefónu : 158.193.214.81

5.1.2 Nastavenie SIP V konfigurácii telefónu je možnosť nastavenia SIP:

Ø Display name – tu sa nastavuje meno, ktoré sa zobrazuje vami volanému účastníkovi na displeji jeho telefónu.

Ø Login – číslo (login)

20

Ø Password – heslo Ø Login ID – ponecháva sa prázdne Ø Proxy on – štandardne sa nastavuje (Yes) Ø Proxy Addr – adresa na SIP proxy server Ø Proxy port – číslo portu SIP služby, štandardne 5060

Telefón sa prihlasuje na SIP proxy server a na displeji sa zobrazí SIP (tel. číslo) pričom tento výpis je v základnom stave stále aktívny. Pokiaľ sa spojenie s proxy serverom z nejakého dôvodu preruší (napr. spadne linka pripojenia do internetu, odpojený kábel a pod.), telefón sa opakovane pokúša prihlásiť na proxy server s hlásením Registering (tel. číslo).

V konfigurácii je možné ďalej nastavovať pripojenie do siete :

Ø Dynamic IP – (Yes) aktivuje automatickú detekciu IP adresy prostredníctvom služby DHCP server. Pri (No) sa použije statická adresa nastavená v položke Static IP. Štandardne (Yes). Ø PPPoE – nastaví overenie Point-to-Point Protocol over Ethernet. Štandardne sa táto funkcia nastavuje (No). Po nastavení na (Yes) je nutné nastaviť položky meno a heslo: – PPPoE Username – PPPoE Password Ø Static IP – nastavenie statickej IP adresy

Ďalšie dôležité nastavenia v IP telefóne: Network value – zobrazuje informácie o pridelených IP adresách Ø IP Address – aktuálna IP adresa telefónu Ø Network mask – maska podsiete Ø Default Router – IP adresa brány Ø DNS server – Domain Name Server, adresa doménového servera

Pre konfigurácii mi okrem IP adries 158.193.214.80 a 158.193.214.81 boli pridelené aj dve telefónne čísla 1728 a 1729.

21

Obrázok 12 Výsledná konfigurácia oboch IP telefónov

Analogicky som konfiguroval aj druhý telefón s IP adresou 158.193.214.81 a telefónnym číslom 1729.

5.2 Konfigurácia konfiguračných súborov

5.2.1 Dialplán – číslovací plán a extensions.conf Dialplán je konfigurovaný v súbore extensions.conf. Je to najdôležitejší konfiguračný súbor systému. Riadi spôsob ovládania a smerovania prichádzajúcich a odchádzajúcich hovorov. Toto je miesto, kde sa kontroluje chovanie všetkých spojení uskutočnených prostredníctvom PBX.

22

5.2.2 Organizácia dialplánu [general] V tejto sekcii definujeme niektoré všeobecné nastavenia. Na začiatku konfiguračného súboru by mala byť sekcia s označením [general], kde sa definuje niekoľko hlavných volieb týkajúcich sa dialplánu.

· static: v tomto stupni táto voľba ovplyvňuje iba operácie príkazu save dialplán. Default hodnota je no, ale vzorový súbor extension.conf inštalovaný explicitne nastaví static = yes. · writeprotect: ak je nastavené writeprotect=yes a static=yes, potom môžeme ukladať aktuálny dialplán prostredníctvom CLI (Command Line Interface) príkazu save dialplán. Definícia globálnych premenných v sekcii [globals] zostane nezmenená. Deafult hodnota je no.

[globals] Táto sekcia neobsahuje premenné, ale konštanty, ktoré sú určené na nastavenie všeobecných parametrov, resp. na definovanie globálnych premenných. Obvykle sú použité pre možnosť mať samostatné miesto v dialpláne, kde sa môžu špecifikovať hodnoty, ktoré sa dajú v budúcnosti zmeniť, ak budeme chcieť zmeniť konfiguráciu PBX. Definícia premenných má tvar varname => value, kde varname je meno premennej a value je jej hodnota (reťazec). Hodnotu globálnej premennej je možné zmeniť príkazom SetGlobalVar.

5.2.3 Definícia číselného plánu Číselný plán tvoria kontexty prichádzajúcich hovorov. Každý kontext tvorí samostatnú sekciu v rámci súboru extensions.conf. Kontext definuje množinu pravidiel pre smerovanie hovorov. Súbor by mal obsahovať všetky kontexty použité pri definícii kanálov (SIP). Ak príde na kanál nový hovor, vyhľadá sa vyhovujúce pravidlo (podľa volaného čísla, prípadne identifikácie volajúceho) v rámci prichádzajúceho kontextu kanála a vykoná sa zadefinovaná postupnosť.

Pravidlá číselného plánu sa definujú kľúčovým slovom exten a majú nasledovný formát:

23

exten => extension[/callerid], priority, application

· extension – meno alebo volané číslo. Je možné použiť priamo konkrétne čísla, šablóny alebo preddefinované štandardné extensions (s, t, T, h, i). · callerid – číslo volajúceho. Rovnako ako pri extension je možné použiť priamo konkrétne čísla alebo šablóny čísel. · priority - priorita. Pre každé analyzované číslo je možné zadať postupnosť príkazov, ktoré sa môžu vykonať. Priorita určuje poradie v rámci tejto postupnosti. · application - príkaz, ktorý sa má vykonať.

Preddefinované štandardné extensions : § s – start. Primárne sa používa pre hovory, ktoré nemajú informáciu o volanom čísle. § t – timeout. Slúži na prerušenie. § T – absolut timeout. § h – hangup. Môže sa použiť na ukončenie hovoru. § i – invalid. Používa sa na obslúženie neplatného čísla.

Aby sa jedným pravidlom dala obslúžiť celá skupina čísel môžu sa použiť šablóny. Šablóna sa vždy začína znakom podčiarnik. V šablóne sa môžu použiť nasledovné špeciálne znaky :

§ X – ľubovoľné číslo od 0 po 9 § Z – ľubovoľné číslo od 1 po 9 § N – ľubovoľné číslo od 2 po 9 § [15-7] – ľubovoľné číslo z množiny zadanej v hranatých zátvorkách. V tomto prípade to môže byť 1,5,6 a 7 § . – jeden alebo viacero ľubovoľných znakov

Príklady použitia: _0. ľubovoľné číslo začínajúce 0 _2719887XX všetky čísla v rozsahu 271988700 až 271988799 _15[0568] čísla 150, 155, 156, 158

24

Každý nový prichádzajúci hovor je smerovaný do prichádzajúceho kontextu kanála. Aby sa hovor mohol obslúžiť musí v tomto kontexte existovať pravidlo, ktoré vyhovuje volanému číslu, prípadne číslu volajúceho. Vždy sa začína s prioritou 1. Pri obsluhe prichádzajúceho hovoru je možné vykonať celú postupnosť príkazov (kontrola identifikácie, úprava čísla volaného - volajúceho,...). V takom prípade sa postupuje sekvenčne po jednotlivých prioritách. exten => _00420XXXXXXXXX, 1, app1 exten => _00420XXXXXXXXX, 2, app2 exten => _00420XXXXXXXXX, 3, app3

Kontext môže byt vložený do iného kontextu. Takýmto spôsobom je možné oddeliť spoločné časti číselného plánu do samostatného kontextu a vložiť ich tam, kde sa využívajú. Na vkladanie kontextov slúži kľúčové slovo include. include => local include => default

Použitý konfiguračný súbor extensions.conf je uvedený v prílohe B.

5.2.4 Konfiguračný súbor sip.conf sip.conf je konfiguračný súbor systému Asterisk, ktorý definuje kanály so SIP protokolom. Súbor má spoločnú sekciu [general] so spoločnými konfiguračnými parametrami platnými pre všetky kanály. Nasledujúce sekcie definujú jednotlivé SIP kanály.

Spoločné konfiguračné parametre: bindaddr

Nastavenie IP adresy sieťového rozhrania, na ktorom sa očakáva SIP komunikácia. Adresa 0.0.0.0 znamená všetky sieťové rozhrania. bindaddr = 0.0.0.0 bindport

Číslo UDP portu pre SIP protokol. port = 5060

25

srvlookup

Podpora prehľadávania DNS SRV záznamov ak sa používajú symbolické doménové adresy. (yes/no) srvlookup = yes registertimeout

Definovanie časového limitu na registráciu v sekundách (prednastavené 20). registertimeout = 20 context

Default počiatočný kontext pre prichádzajúce hovory. Pokiaľ prichádzajúci hovor nepatrí žiadnemu zo zadefinovaných kanálov bude smerovaný do tohto počiatočného kontextu v rámci číselného plánu zariadenia. context = default-sip

Okrem vymenovaných parametrov je možné v sekcii [general] použiť aj niektoré spoločné konfiguračné parametre kanálov. Tieto parametre definujú nastavenia, ktoré sú rovnaké pre všetky SIP kanály. Parameter zadaný v spoločnej časti je samozrejme platný iba ak nie je pri definícii kanála predefinovaný.

Konfiguračné parametre kanála sa používajú v spoločnej sekcii [general]: allow, disallow, context, dtmfmode, canreinvite, insecure.

5.2.5 Definícia SIP kanála Každý kanál je definovaný v samostatnej sekcii, kde meno sekcie odpovedá menu kanála. Kanál dedí všetky spoločné parametre zo sekcie [general], plus definuje vlastné parametre.

[2000] type = friend host = dynamic secret = heslo canreinvite = yes

26

disallow = all allow = alaw

5.2.6 Konfiguračné parametre kanála type Definuje triedu SIP kanála. § user – SIP objekt, ktorý posiela prichádzajúce hovory do Asterisku. (napríklad telefón, ktorý umožňuje iba budovanie odchádzajúcich hovorov). § peer – SIP objekt, na ktorý posiela odchádzajúce hovory z Asterisku (napríklad vzdialený SIP provider). § friend – SIP objekt ktorý v sebe obsahuje vlastnosti obidvoch predchádzajúcich objektov. Hodnota friend by mala vyhovovať vo väčšine prípadov. type = friend secret

Heslo pre autentifikáciu. Používa sa keď sa SIP účastník registruje do Asterisku alebo pri príchode nového hovoru. secret = heslo host

IP adresa alebo symbolická doménová adresa SIP zariadenia odpovedajúceho danému kanálu. Parameter host môže nadobúdať aj hodnotu dynamic, kedy sa zariadenie musí zaregistrovať. host = dynamic allow, disallow

Nastavenie kodekov a ich priority. Allow povoluje, disallow zakazuje vybraný kodek, poradie určuje prioritu. Na zakázanie všetkých aktívnych kodekov sa môže použiť disallow = all.

K dispozícii sú nasledovné kodeky: § alaw – G.711 A-law

27

§ ulaw – G.711 µ-law § g729 – G.729A § g723 – G.723.1 § g726 – G.726-32 disallow = all allow = g729,alaw context

Počiatočný kontext pre prichádzajúce hovory. Určuje, v ktorej sekcii v rámci číselného plánu bude začínať analýza volaného čísla. context = from-sip dtmfmode

Spôsob spracovania DTMF číslic.

§ inband – číslice sa posielajú priamo v RTP streame.

§ rfc2833 – spracovanie podľa RFC2833 § info – číslice sa posielajú pomocou SIP správy INFO. dtmfmode = rfc2833 dtmfmode = info insecure

Umožňuje nastaviť rôzne možnosti pri obsluhe prichádzajúcich hovorov.

§ very – potlačenie autentifikácie pre prichádzajúce hovory. § yes – priradenie prichádzajúceho hovoru k SIP kanálu iba na základe IP adresy a nie portu. § no – autentifikácia prichádzajúcich hovorov (pokiaľ je nastavené heslo – parameter secret alebo md5secret), priradenie hovoru k SIP kanálu podľa IP adresy aj portu (default). insecure = very

28

callerid

Identifikácia volajúceho pre daný kanál. Je možné nastaviť meno + číslo vo formáte "meno" <číslo>. callerid = "Martin" <1728>

Použitý konfiguračný súbor sip.conf je uvedený v prílohe D.

29

6 Realizácia 3CX telefónneho systému

Pre túto úlohu som konfiguroval 3CX server a dva IP telefóny. Ako server bol použitý jeden počítač v učebni. Schéma zapojenia je podobná ako pri realizácii softvérovej ústredne Asterisk. Softvér firmy 3CX je voľne šíriteľný pre malé firmy, preto som si ho mohol stiahnuť z ich internetovej stránky ( www.3cx.com). Samotná inštalácia tohto programu nie je až taká zložitá a keďže je to softvér pre Windows, inštalácia prebieha v operačnom systéme Windows. Keď som mal nainštalované 3CX v počítači, bolo treba už iba nakonfigurovať túto ústredňu a telefóny. Konfigurácie sú rozobraté v ďalších kapitolách.

6.1 Konfigurácia servera

Konfigurácia sa uskutočňuje vo webovom ovládacom paneli. IP adresa servera je 158.193.214.71. Ako prvé som vytvoril extensions. Pri realizácii Asterisku boli použité dve čísla 1728 a 1729. Preto aj v tejto úlohe pokračujem s nimi. Z obrázku 13 je možné vidieť, že som nastavoval užívateľské informácie ako číslo extension, meno a priezvisko. A v ďalšej časti ID a heslo. Do Extension number som zadal číslo 1728 a za meno a priezvisko som dal meno Martin do oboch. Analogicky som vytvoril pre 1729.

Obrázok 13 Editovanie extension

30

6.2 Konfigurácia IP telefónov

Oba telefóny už boli konfigurované v predchádzajúcej úlohe. Keďže som použil aj tie isté telefónne čísla, nebolo nutné robiť nejaké veľké zmeny v nastavení telefónov. Menila sa hlavne IP adresa servera. Základné nastavenie prvého telefónu:

SIP parametre:

Display name:1728 Number: 1728 Password: 1728 Login ID: 1728 Proxy On: yes Proxy Addr: 158.193.214.71 Proxy Port: 5060 SIP Domain Name: uniza.sk

Sieťové nastavenia: IP adress: 158.193.214.80 Network Mask: 255.255.255.0 Default Router: 158.193.214.56 DNS Server: 158.193.213.1

Ďalší telefón som konfiguroval analogicky. Zmenilo sa len číslo na 1729 a IP adresa na 158.193.214.81 Po zapojení telefónov do siete sa telefóny zaregistrovali, čo je znázornené na obrázku 14. Po registrácií telefónov bolo možné vytvoriť úspešné spojenie medzi oboma telefónmi.

Obrázok 14 Registrácia telefónov

31

7 Kontrola funkčnosti riešenia protokolovým analyzátorom – Wireshark

Pre odchytávanie paketov pri prebiehajúcom volaní som využil voľne dostupný program Wireshark. Tento program je známa open-source aplikácia pre odchytávanie paketov v počítačovej sieti a ich následnú analýzu. Prostredie aplikácie je znázornené na obrázku 15 pre volanie medzi 1728 a 1729, ktoré sú registrované v Asterisku. Wireshark zobrazuje zachytené dáta v 3 hlavných paneloch. V prvej časti sa vyskytujú všetky pakety, ktoré Wireshark bol schopný odchytiť s danou časovou následnosťou. Toto pole obsahuje číslo paketu, čas, zdrojovú adresu, cieľovú adresu a názov a informácie o protokole vyššej vrstvy. V druhej časti sa nachádzajú podrobnejšie údaje o pakete, a to hlavne o protokole, pomocou ktorého bol vyslaný. V tretej časti sa nachádza celý paket v hexa sústave.

Obrázok 15 Priebeh volania vo Wiresharku

7.1 Analýza výstavby a rozpadu spojenia

V tejto časti sa zaoberám výstavbou a rozpadom spojenia. Pri signalizácii v oboch realizovaných riešenia je využívaný signalizačný protokol SIP. Sú dva druhy správ protokolu SIP, a to žiadosti a odpovede. K žiadostiam patria:

32

INVITE - žiadosť o naviazanie spojenia alebo o zmenu parametrov už existujúceho spojenia BYE – žiadosť o ukončenie spojenia ACK - žiadosť, ktorou klient potvrdzuje, že dostal odpoveď na žiadosť INVITE REGISTER - žiadosť o registráciu klienta u registračného serveru CANCEL - žiadosť o zrušenie prebiehajúcej žiadosti INVITE OPTIONS - žiadosť o zaslanie prehľadu funkcií podporovaných serverom INFO - znamená prenos informácií počas hovoru UPDATE - dovoľuje klientovi aktualizovať parametre spojenia PRACK - dočasné potvrdenie MESSAGE – správa [12]

Odpovede SIP sa delia do šiestich skupín:

1XX - sú dočasné (informačné) odpovede. Dočasná odpoveď je odpoveď ktorá vraví svojmu príjemcovi, že prislúchajúca požiadavka bola prijatá ale výsledok spracovania zatiaľ nie je známy. Dočasné správy sú posielané iba v prípade, že spracovanie nekončí okamžite. Proxy servery posielajú odpovede s kódom 100 keď začínajú spracovávať INVITE správu a UA posielajú odpovede s kódom 180 (Ringing) čo znamená, že telefón volaného zvoní.

2XX - sú pozitívne ukončovacie odpovede. Ukončovacia odpoveď je najvyššia odpoveď, ktorú pôvodca požiadavky kedy dostane. Preto ukončovacie odpovede vyjadrujú výsledky spracovania prislúchajúcej požiadavky. Ukončovacie odpovede tiež ukončujú transakcie. Odpovede s kódom od 200 do 299 sú pozitívne odpovede, čo znamená, že požiadavka bola spracovaná úspešne a prijatá. Napríklad kód 200 OK odpoveď sa posiela keď používateľ akceptuje pozvánku na reláciu (INVITE).

3XX - odpovede sú používané na presmerovanie volajúceho. Presmerovacia odpoveď podáva informácie o používateľovom novom umiestnení alebo o alternatívnej službe ktorá môže zabezpečiť úspešný hovor. Presmerovacie odpovede sú zvyčajne zasielané proxy servermi. Keď proxy dostane požiadavku a nechce alebo nemôže ju z nejakého dôvodu spracovať, pošle volajúcemu presmerovaciu odpoveď a vloží do nej iné 33

umiestnenie, ktoré môže volajúci vyskúšať. Môže to byť adresa iného proxy servera alebo momentálna poloha volaného.

4XX - sú negatívne konečné odpovede. 4xx odpoveď znamená, že problém je na strane volajúceho. Požiadavka nemôže byť spracovaná pretože obsahuje zlú syntax alebo nemôže byť spracovaná na danom serveri.

5XX - znamená že problém je na strane servera. Požiadavka je očividne správna ale server zlyhal v jej spracovaní. Klienti by mali zvyčajne preposlať požiadavku neskôr.

6XX - tento kód znamená že požiadavka nemôže byť spracovaná žiadnym zo serverov. Táto odpoveď je obvykle poslaná serverom ktorý má kompletné informácie o danom používateľovi.

Príklady konkrétnych správ: 100 (Trying) - Oznamuje, že žiadosť bola prijatá serverom a boli uskutočnené kroky k jej splneniu 180 (Ringing) - Užívateľský agent prijal žiadosť INVITE a snaží sa upozorniť užívateľa na prichádzajúci hovor 183 (Session Progress) - Používa sa pre prenášanie informácie o priebehu spracovania volania. A to buď v hlavičke alebo v tele odpovede 200 (OK) - Žiadosť bola úspešne spracovaná. Informácia prenesená v odpovedi závisí na typu žiadosti, ktorá túto odpoveď vyvolala 407 (Proxy Authentication Required) - Klient sa musí najskôr autentizovať u proxy servera

Typický priebeh budovania a rozpadu spojenia je znázornený na obrázku 16.

34

Obrázok 16 Typická výstavba a rozpad spojenia

Terminál A posiela správu INVITE serveru, ktorou žiada vytvorenie spojenia. Server túto žiadosť posiela cieľovému terminálu B. Terminál B v správe 100 Trying oznamuje serveru, že žiadosť bola prijatá a oznamuje mu pomocou správy TRYING, že na vytváraní volania pracuje, čím sa predĺži doba čakania na vytvorenie volania. Túto istú správu posiela aj sever terminálu A. Správou 180 Ringing oznamuje Terminál B, že vyzváňa. V momente, keď volaný zdvihne mikrotelefón, jeho IP telefón vysiela odpoveď 200 OK. Následne prichádza na rad finálne potvrdenie prijatia odpovede ACK od volajúceho k volanému. Týmto je spojenie úspešne vytvorené. Priebeh rozpadu spojenia je závislý od toho, ktorý terminál ukončuje spojenie. V prípade, že terminál B položí slúchadlo vysiela sa správa BYE, čo je žiadosť o ukončenie spojenia. Server túto správu potvrdzuje odpoveďou 200 OK.

Pri analýze dvoch volaní, ktoré som zachytil protokolovým analyzátorom Wireshark som si mohol overiť, ako prebieha výstavba a rozpad spojenia pri mojich realizovaných zapojeniach. Bližšie sa zaoberám výstavbou a rozpadom spojenia pri telefónoch registrovaných v 3CX telefónnom systéme.

35

7.1.1 Signalizácia pri použitom serveri 3CX

Výstavba a rozpad spojenia je uvedený v prílohe D. IP telefón s IP adresou 158.193.214.80 posiela serveru požiadavku INVITE na vytvorenie spojenia. Zásadný rozdiel oproti typickej výstavbe spojenia, ktorú uvádzam vyššie v kapitole 7.1, je v správe číslo 2. Server na správu INVITE odpovedá správou 407 Proxy Authentication Required. Touto správou požaduje od telefónu ,aby sa znovu zaregistroval, aj keď telefón bol zaregistrovaný už pred volaním. Telefón na túto správu o chybe odpovedá správou ACK. Štvrtou správou v poradí začína typická výstavba a rozpad spojenia, ktorú som už popisoval. Telefón posiela správu INVITE. Od cieľového terminálu prichádza správa 100 Trying a správa 180 Ringing. Ako možno vidieť v prílohe po približne šiestich sekundách dochádza k zodvihnutiu slúchadla, čo je znázornené správou 200 OK a následným potvrdením ACK. Správy 14,15,16 a 17 predstavujú rozpad spojenia inicializovaný IP telefónom s IP adresou 158.193.214.81.

Výstavba a rozpad spojenia pri volaní medzi telefónmi registrovanými v Asterisku uvádzam v prílohe E.

36

Záver

IP telefónia je značne rozsiahla a rýchlo rozvíjajúca sa oblasť. Na trhu je pomerne dosť veľké množstvo operátorov, ktorí poskytujú kvalitné služby . Hlavnou výhodou IP telefónie je cena, ktorá je nižšia ako pri klasickej telefónii. Preto sa dá predpokladať, že IP telefónia je budúcnosť volania.

Cieľom práce bolo načrtnúť súčasný stav v oblasti implementácie VoIP. Existuje nespočetné množstvo programových riešení, preto sa zaoberám iba vybranými. Tri riešenia Asterisk, 3CX telefónny systém a SIP express router popisujem v kapitolách 2, 3 a 4. Samozrejme tieto riešenia majú svoje odlišnosti. Asterisk a SER sú vyvinuté predovšetkým pre operačný systém Linux, pričom 3CX pre Windows a samotná konfigurácia tohto systému prebieha vo webovo založenom ovládacom paneli. Všetky tieto riešenia sú kompatibilné so signalizačným protokolom SIP. Rozdiel medzi riešeniami je aj v cene. Zatiaľ, čo Asterisk a SER sú open source a zadarmo, 3CX systém je zadarmo iba pre menšie použitie.

V ďalších kapitolách sa zaoberám samotnou inštaláciou a konfiguráciou Asterisku a 3CX telefónneho systému a tiež konfiguráciou dvoch IP telefónov. Obe riešenia ako aj IP telefóny sa mi podarilo funkčne nakonfigurovať a samotné IP telefóny sa úspešne zaregistrovali v spomínaných systémoch.

V poslednej kapitole som prekontroloval funkčnosť daných riešení pomocou protokolového analyzátora Wireshark.

37

Zoznam použitej literatúry

[1] 3CX telefónny systém pre Windows http://www.3cx.com/phone-system/ [2] WIJA, T., ZUKAL, D., VOZŇÁK, M. : Asterisk a jeho použití : technická zpráva. Cesnet, z.s.p.o. 2. vyd. Praha : 2005. Dostupná na http://www.cesnet.cz/doc/techzpravy/2005/voip/asterisk.pdf [3] MEGGELEN, J.V., SMITH, J., MADSEN, L. : Asterisk - The Future of Telephony. Tokyo : 2005. 376 s. ISBN: 0-596-00962-3 [4] Asterisk http://www.asterisk.sk [5] Prehľad softvérových serverov http://en.wikipedia.org/wiki/Comparison_of_VoIP_software#Server_software [6] SIP Express Router http://www.iptel.org/ser [7] SPENCER, M.: IAX versus SIP, 5. Júl 2004 http://www.voip-info.org/wiki/view/IAX+versus+SIP [8] SCHWARTZ, L.: IP SIETE. 1. vyd. Žilina : 2006. 176 s. ISBN 80-8070-504-6 [9] KUTHAN, J., JANAK, J., REBAHI, Y.: SIP Express Router v0.11.0 -Admin’s Guide. USA : 2002 http://ftp.iptel.org/pub/ser/0.8.12/doc/admin_guide/admin_guide.pdf [10] Telco PH 800N – návod na obsluhu http://www.telco.sk/download/navody/manPH800-N%20SKv1105.pdf [11] 3CX telefónna ústredňa http://www.softmania.sk/3cx-Softwarova-Telefonni-Ustredna.html [12] Signalizačný protokol pre prenos hlasu cez dátové siete- SIP, Ing. Michal Soumar http://www.elektrorevue.cz/clanky/03003/index.html#signalizace [13] Manuál k program Wireshark http://www.wireshark.org/docs/wsug_html_chunked/ [14] KATUŠČÁK, D. : Ako písať záverečné a kvalifikačné práce. 4. vyd. Nitra : 2007. ISBN 80-89132-10-3

38

ČESTNÉ VYHLÁSENIE

Vyhlasujem, že som diplomovú prácu vypracoval samostatne, pod odborným vedením vedúceho diplomovej práce Ing. Petra Kortiša, PhD. a používal som len literatúru uvedenú v práci.

Súhlasím so zapožičiavaním bakalárskej práce.

V Žiline, dňa 12.6.2009 ...... podpis

Žilinská univerzita v Žiline Elektrotechnická fakulta Katedra telekomunikácií a multimédií

Softvérová pobočková ústredňa na báze VoIP Prílohová časť

Martin Biel

2009

ZOZNAM PRÍLOH

Príloha A Rôzne programové riešenia Príloha B Konfiguračný súbor extensions.conf Príloha C Konfiguračný súbor sip.conf Príloha D Výstavba a rozpad spojenia pri 3CX telefónnom systéme Príloha E Výstavba a rozpad spojenia pri Asterisku

Príloha A: Rôzne programové riešenia

Program Operačné systémy Licencia Protokoly 3CX phone system Windows XP, 2000, 2003 freeware SIP 4PSA VoipNow Linux open source SIP, IAX Asterisk PBX Linux, BSD, Mac OS X voľný softvér SIP, H.323, IAX Axon PBX Windows, Linux voľná limitovaná verzia SIP, H263, H261 Brekeke PBX Windows, Linux voľný 60-dňový trial SIP Brekeke SIP Server Windows, Linux, Mac OS, Solaris voľný 60-dňový trial SIP BroadSoft BroadWorks Linux, Solaris ––––––––––––––––––––– SIP CallWeaver Linux, BSD, Mac OS X, Solaris ––––––––––––––––––––– SIP, H.323, IAX Customer Interaction Center Windows 2003/XP ––––––––––––––––––––– SIP Eyeball Server Suite Red Hat, Fedora ––––––––––––––––––––– SIP, XMPP, STUN

CommuniGate Pro Solaris, Linux, BSD, Mac OS X, freeware SIP, XMPP, XIMSS Windows ComunIP SIP Server Linux, Windows ––––––––––––––––––––– SIP, HTTP, Fast-CGI FreeSWITCH Windows, Linux, BSD, Solaris voľný softvér SIP, STUN, XMPP, Jabber, IAX GNU Gatekeeper Linux, Mac OS X, Windows voľný softvér H.323 XP/2000 miniSipServer windows NT,2000,XP,2003 ––––––––––––––––––––– SIP,SMB,SOHO Mysipswitch Linux voľný softvér SIP, Ajax Nortel's application ––––––––––––––––––––– Server Linux SIP , H.323 NetUP UTM billing ––––––––––––––––––––– software Linux, FreeBSD, Solaris, Windows H.323, SIP OpenSER Linux, BSD, Solaris voľný softvér SIP PACER Windows, Linux, Solaris, AIX ––––––––––––––––––––– ––––––––––––––––––––– Pbxnsip Windows, Linux ––––––––––––––––––––– SIP SIP Express Router (SER) BSD, Linux, Solaris voľný softvér SIP sipX ECS IP PBX Linux open source SIP SoftBX Windows ––––––––––––––––––––– SIP, H.323, CAPI TERAVoice Server Windows 2000, XP, 2003, Vista freeware SIP, H.323, ISDN TekSIP Windows 2000, XP, 2003, Vista freeware SIP TekIVR Windows 2000, XP, 2003, Vista freeware SIP

Príloha B: Konfiguračný súbor extensions.conf

[general] static=yes writeprotect=no

[sip] exten => 1728,1,Dial(SIP/1728,10); exten => 1728,2,Playback(vm-nobodyavail) exten => 1728,3,Hangup() exten => 1729,1,Dial(SIP/1729,10); exten => 1729,2,Playback(vm-nobodyavail) exten => 1729,3,Hangup() exten => _XXXX,1,SetCallerID,"sip:${CALLERIDNAME}" exten => _XXXX,2,Dial( SIP/${EXTEN}@158.193.1.12) ;presmerovanie volania z 2217 na 1729 ;exten => 2217,1,SetCallerID,"sip:${CALLERIDNAME}" ;exten => 2217,2,Dial(SIP/${EXTEN}@158.193.1.12,5) ;exten => 2217,3,Dial(SIP/1729,15) ;exten => 2217,4,Playback(vm-nobodyavail) ;presmerovanie volania z ľubovoľného čísla na 2217 exten => _XXXX,1,SetCallerID,"sip:${CALLERIDNAME}" exten => _XXXX,2,Dial(SIP/${EXTEN}@158.193.1.12,5) exten => _XXXX,3,Dial(SIP/[email protected]) ;pevné presmerovanie volania z 3333 na 1729 exten => 3333,1,Dial(SIP/1729);

Priloha C: Konfiguračný súbor sip.conf

[general] port = 5060 bindaddr = 0.0.0.0 disallow=all allow=alaw allow=gsm allow=h263 allow=h263p context =sip videosupport = yes [1728] username=1728 type=friend secret=1728 callerid="Martin" <1728> host=dynamic nat=never quality=no dtmfmode=rfc2833 [1729] username=1729 type=friend secret=1729 callerid="Jozo" <1729> host=dynamic nat=never quality=no dtmfmode=rfc2833 [3333] username=3333 type=friend secret=3333 host=dynamic nat=never quality=no dtmfmode=rfc2833 ;toto je nastavenie, aby bolo možné komunikovať so školským serverom [sip-proxy.utc.sk] type=user context=sip-proxy.utc.sk host=sip-proxy.utc.sk bindaddr = 0.0.0.0 disallow=all allow=ulaw allow=alaw allow=gsm

Príloha D: Výstavba a rozpad spojenia pri 3CX telefónnom systéme

Príloha E: Výstavba a rozpad spojenia pri Asterisku