POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

Similar documents
Atim - izvlečni mehanizmi

Pošta Slovenije d.o.o. Slomškov trg MARIBOR e pošta: espremnica Navodilo za namestitev aplikacije»espremnica«

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

INTEGRACIJA INTRANETOV PODJETJA S POUDARKOM NA UPRABNIŠKI IZKUŠNJI

VSD2 VARIABILNI VRTINČNI DIFUZOR VARIABLE SWIRL DIFFUSER. Kot lopatic ( ) / Angle of the blades ( ) 90 odpiranje / opening 85

Hydrostatic transmission design Tandem closed-loop circuit applied on a forestry cable carrier

Mentor: doc. dr. Janez Demšar

Študija varnosti OBD Bluetooth adapterjev

Sodoben razvoj prototipov uporabniških vmesnikov z orodjem Microsoft Expression Blend 4

Mobilna aplikacija za inventuro osnovnih sredstev

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO ANALIZA VZROKOV IN NAČINOV ODPOVEDI PROGRAMSKE REŠITVE E-TRANS

NAČRTOVANJE TESTIRANJA PRI RAZVOJU IS V MANJŠIH RAZVOJNIH SKUPINAH

Prikaz podatkov o delovanju avtomobila na mobilni napravi z uporabo OBDII

Diagnostika avtomobila z mikrokrmilnikom Arduino

Razvoj poslovnih aplikacij po metodi Scrum

RFID implementacija sledenja v preskrbovalni verigi

ZAGOTAVLJANJE KAKOVOSTI KLICA V SILI NA ŠTEVILKO 112 Providing the quality of emergency calls to 112

Ustreznost odprtokodnih sistemov za upravljanje vsebin za načrtovanje in izvedbo kompleksnih spletnih mest: primer TYPO3

Implementacija programske kode za vodenje tehnoloških operacij frezanja z robotom Acma XR 701

Evalvacijski model uvedbe nove storitve za mobilne operaterje

UVAJANJE AGILNE METODE SCRUM V RAZVOJ SPLETNEGA PORTALA ZA ZDRAVO PREHRANO

Prototipni razvoj (Prototyping)

Preprost prevajalnik besedil za platformo android

NAVODILA ZA UPORABO: Namestitev aplikacije Renault Media Nav Toolbox

IZVEDBA POTOVALNEGA RAČUNALNIKA ZA OSEBNO VOZILO S POMOČJO PLATFORME RASPBERRY PI

IZGRADNJA GRAFIČNEGA VMESNIKA ZA KRMILNIK LINEARNEGA MOTORJA

MARTIN VERSTOVŠEK UPORABA ORODIJ ZA VODENJE PROJEKTOV IT V MAJHNI RAZVOJNI SKUPINI DIPLOMSKO DELO NA VISOKOŠOLSKEM STROKOVNEM ŠTUDIJU

KONTROLNI SISTEM ZA KRMILJENJE MOTORJEV IN KOREKCIJSKIH TULJAV

Navodila za mrežne nastavitve PT-E550W

Nadzor in avtomatizacija funkcij v sobi

PLANIRANJE KADROV V PODJETJU UNIOR d.d.

IZDELAVA DOKUMENTACIJE STROJA ZA GLOBOKO VRTANJE

UPORABA ODPRTOKODNIH REŠITEV V SPLETNIH TRGOVINAH MALIH PODJETIJ

Uporabniški program za generator identifikatorjev UFI Priročnik za uporabnike. Julij 2018

Opis in uporaba strežnika Microsoft Team Foundation Server v projektnem delu

Aljoša Skočir PROGRAMSKI VMESNIK ZA PRIKLOP NAPRAVE ZA ZAJEM PODATKOV NA VODILO USB

LAHKE TOVORNE PRIKOLICE BREZ NALETNE NAPRAVE DO 750 KG

SAMODEJNI SISTEM ZA KRMILJENJE ZALIVALNO-NAMAKALNIH SISTEMOV

Optimizacija procesa izdelave nalepk

11/14. test NOKIINIH ZEMLJEVIDOV na Androidu ANDROID 5 nasveti za MAC in LINUX sam svoj MOJSTER. TEST vrhunskih telefonov od Appla do»kitajcev«12

AVTOMATIZIRANO KADROVANJE ZA OBLIKOVANJE VIRTUALNEGA TIMA MAGISTRSKO DELO

PRENOS PODATKOV V SISTEMU ZA POLNJENJE ELEKTRIČNIH VOZIL

Vodnik za omogočanje uporabe telefonov Cisco IP Phone 7800 Series in Cisco IP Conference Phone 7832 za več platform

Razvrščanje proizvodnih opravil z orodji za vodenje projektov

RAZISKAVA SEVANJA MOBILNIH TELEFONOV

Uporaba odprte kode kot osnova za razvoj programske opreme

TRŽENJE NA PODLAGI BAZE PODATKOV NA PRIMERU CISEFA

UPORABA CELOVITE REŠITVE ORACLE EBS V NABAVNEM PROCESU S PROTOTIPNO REŠITVIJO

Obvladovanje časa s pomočjo sodobne informacijske tehnologije

SLOVENŠ INA. Vodi za hiter za etek. Poslovni telefon VoIP. snom 320_v2.indd 1 11/09/14 11:08

Patenti programske opreme priložnost ali nevarnost?

INTELEKTUALNA LASTNINA IN PRAVNA ZAŠČITA MOBILNE APLIKACIJE

BREZŽIČNO KOMUNIKACIJSKO RAZVOJNO OKOLJE ZA ROBOTA ROBOSAPIEN

OCENJEVANJE DELOVNE USPEŠNOSTI ZAPOSLENIH - primer Pekarne Pečjak d.o.o.

UNIVERZA V NOVI GORICI POSLOVNO-TEHNIŠKA FAKULTETA MAGISTRSKA NALOGA RAZVOJ IN IMPLEMENTACIJA SISTEMA ZA UPRAVLJANJE SPLETNE VSEBINE.

EVROPSKO RIBIŠTVO V ŠTEVILKAH

RAVNATELJEVANJE PROJEKTOV

RAZVOJ APLIKACIJE ZA ZAJEM IN SPREMLJANJE PROIZVODNIH PODATKOV

Gonilnik za sistem hišne avtomatizacije Adhoco

RFID NADZORNI SISTEM

OPTIMIZACIJA ZUNANJEGA SKLADIŠČA V PODJETJU GORENJE KERAMIKA D.O.O. Z UVEDBO RFID TEHNOLOGIJE

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

OTS 2010 Sodobne tehnologije in storitve

KX-NS1000 / 700 / 500 cenovnik

RAZVOJ ROČAJA HLADILNIKA GORENJE PO MERI KUPCA

Dokumentni sistemi 03/13

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

IZBOLJŠAVA NOTRANJE LOGISTIKE IN SPOSOBNOSTI SLEDENJA V PODJETJU GIMPLAST D. O. O.

ZBIRANJE IN PROCESIRANJE PODATKOV PRIDOBLJENIH IZ OTLM NAPRAV, KI SO NAMEŠČENE NA PRENOSNIH VODNIKIH

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO STOLPČNO USMERJENI SISTEMI ZA UPRAVLJANJE PODATKOVNIH BAZ DIPLOMSKO DELO

Tomaž Avberšek NADZOROVANJE TELESKOPA S POMOČJO PLATFORME RASPBERRY PI. Diplomsko delo

PROIZVODNI INFORMACIJSKI SISTEM: IMPLEMENTACIJA IN VPLIV NA POSLOVANJE PODJETJA

UNIVERZA V LJUBLJANI FAKULTETA ZA DRUŽBENE VEDE. Žiga Cmerešek. Agilne metodologije razvoja programske opreme s poudarkom na metodologiji Scrum

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO OBVLADOVANJE VIROV V MULTIPROJEKTNEM OKOLJU S PROGRAMSKIM ORODJEM MS PROJECT SERVER

UGOTAVLJANJE DELOVNE USPEŠNOSTI V PODJETJU COMMEX SERVICE GROUP d.o.o.

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA

RAZPOREJANJE PROIZVODNJE Z METODO ISKANJA S TABUJI

Overview. Integrating Loway s WombatDialer in mobydick phone systems

Fotoaparati. namesto.pfckkamer 10/13 VARNOSTNO KOPIRANJE ZA PC IN MAC POSLOVNI PROJEKTORJI ZABAVNA ELEKTRONIKA I RAČUNALNIŠTVO I NOVE TEHNOLOGIJE

Šola = SERŠ MB. Avtor = Miran Privšek. Mentor = Zdravko Papič. Predmet = Soc. Spretnosti. Razred = 3Ap

Gigaset SX255isdn/SX205isdn

UNIVERZA V LJUBLJANI FAKULTETA ZA DRUŽBENE VEDE. Psihotronsko orožje mit ali realnost?

VALUTNI TRGOVALNI (IN ANALITIČNI) INFORMACIJSKI SISTEMI: PRIMER SISTEMA TRGOVANJA

JACKETS, FLEECE, BASE LAYERS AND T SHIRTS / JAKNE, FLISI, JOPICE, PULIJI, AKTIVNE MAJICE IN KRATKE MAJICE USA / UK / EU XS S M L XL XXL XXXL

Eratostenovo rešeto. Aleksandar Jurišić in Matjaž Urlep. Doma (v točki ena) nam postane dolgčas in podamo se na sprehod po številski premici.

Video igra kot oglas

VPLIV STANDARDOV NA KAKOVOST PROIZVODA IN VPLIV KAKOVOSTI NA PRODAJO IZDELKOV

BOGDAN DUGONIK FERI - MEDIJSKE KOMUNIKACIJE GRADIVO ZA VAJE. Navodilo za programsko orodje. Premiere 1.5 PRO

VZPOSTAVITEV KATASTRA STAVB REGISTRSKI PODATKI THE SETUP OF BUILDING CADASTRE REGISTRY DATA

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA SPECIALISTIČNO DELO SEBASTJAN ZUPAN

OBVLADOVANJE TVEGANJ PRI PROJEKTU IZGRADNJE PODATKOVNEGA OMREŽJA

D I P L O M S K O D E L O

VITKO DELAJ. Od načrta A do načrta, ki deluje. Ash Maurya. Alexis Zrimec, urednik slovenske izdaje Eric Ries, urednik angleške zbirke

Jamova cesta Ljubljana, Slovenija Jamova cesta 2 SI 1000 Ljubljana, Slovenia

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO MOJCA MAHNE

5 namigov za izbiro pravega prenosnega tiskalnika. Kako dosežemo največji izkoristek in hiter povratek investicije v prenosno informatiko

ANALIZA NAPAKE SLEDENJA PRI INDEKSNIH ETF SKLADIH PRIMER DVEH IZBRANIH SKLADOV

UNIVERZA V LJUBLJANI FAKULTETA ZA ELEKTROTEHNIKO MAGISTRSKO DELO KOMUNIKACIJSKI PROTOKOLI V ELEKTRONSKEM ŠTEVCU ELEKTRIČNE ENERGIJE

Avtomatizacija premikanja masažne kopeli

Kje kupovati? V slogu recepta: Potrebuješ

Transcription:

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Smetanova ul. 17 2000 Maribor VISOKOŠOLSKI STROKOVNI ŠTUDIJ Računalništvo in informatika Programska oprema POROČILO PRAKTIČNEGA IZOBRAŽEVANJA V Aditus d.o.o. - Velenje Čas opravljanja: Od 1.6.2009 do 30.11.2009 Mentor: Miloš Kocbek Študent: Sašo Sečnjak Vpisna številka: 93622748 E-pošta: saso.secnjak@gmail.com Telefon: 040 886 561

2

3

Kazalo 1. Uvod... 6 2. Opis gospodarske družbe in produktov... 6 2.1. ucrm... 7 2.2. SovaConf... 8 2.3. IP Phone... 8 2.4. IP Telefonske centrale... 10 2.5. Opis praktičnega izobraževanja projektnega dela študenta... 11 2.5.1. Debian... 11 2.5.2. Asterisk*... 11 2.5.3. Asterisk Add-Ons... 13 2.5.4. DAHDi Linux / DAHDi Tools... 13 2.5.5. LibPRI... 13 2.5.6. FreePBX... 14 3. Projekt Integracija IP telefonije v podjetje... 15 3.1. Izbira strežnika oziroma strojne opreme... 15 3.2. Nalaganje distribucije Debian na strežnik/centralo... 16 3.3. Nalaganje ostalih aplikacij... 16 3.3.1. Nalaganje paketov iz skladišča (repository)... 17 3.3.2. Nalaganje gonilnikov, aplikacij in knjižnic... 18 3.4. Nastavitve centrale... 19 3.4.1. Vpis telefonov v aplikacijo IP Phone... 19 3.4.2. Vnos podatkov v aplikacijo SovaConf... 20 3.4.3. Uvoz podatkov na centralo... 21 3.4.4. Konfiguracijske datoteke na centrali... 25 3.4.5. Klicni načrt (Dial plan)... 26 Prevzem klica ki je na drugi interni...27 Klicanje iz ene centrale na drugo po internih številkah...28 Nastavitev trunka v FreePBX...30 4. Sklep... 31 5. Priloge... 32 4

Kazalo slik Slika 1: ucrm oprema... 7 Slika 2: SovaConf spisek usmerjevalnikov... 8 Slika 3: IP Phone spisek telefonov... 9 Slika 4: IP Phone podrobnosti nastavitev... 9 Slika 5: Asterisk logo... 10 Slika 6: Debian logo... 11 Slika 7: Asterisk začetek klica... 12 Slika 8: FreePBX - Status sistema... 14 Slika 9: IP Phone - vnos podatkov... 20 Slika 10: SovaConf podatki... 20 Slika11: FreePBX podatki za trunk... 23 Slika 12: FreePBX podatki za izhodno pot... 24 Slika 13: Snom 370 LED lučke... 27 Slika 14: FreePBX ročna nastavitev trunk-a... 30

1. Uvod Podjetje Aditus d.o.o. sem spoznal pri predmetu Razvoj programskih sistemov, kjer smo se po skupinah lotili projektov katere so ponudila podjetja. Odločili smo se za projekt, pri katerem smo morali narediti portal, pri katerem si bo lahko uporabnik kreiral in urejal svojo virtualno sobo ter si kupoval izdelke namenjene tej sobi, vključevati pa je morala tudi portal, objavljanje slik in ocenjevanje objav. Po končanem projektu so mi ponudili delo v podjetju ter štipendijo, kar sem seveda sprejel in začel s študentskim delom in kasneje prakso. V samem podjetju sem pristal v oddelku za IP telefonijo, kjer smo se ukvarjali z integracijami IP telefonskih central v podjetja. Te IP centrale pa temeljijo na odprtokodni rešitvi Asterisk. Dela ki sem jih opravljal v podjetju so bila dokaj obširna, saj je moje delo pokrivalo pripravo opreme, kar je pomenilo nameščanje celotnega sistema na strežnik, administracijo Asterisk central, administracijo raznih VoIP usmerjevalnikov in telefonov, pisanje skript za generiranje konfiguracijskih datotek ter lažjo administracijo celotnega sistema. 2. Opis gospodarske družbe in produktov Podjetje se v glavnem ukvarja z IP telefonijo, poleg tega pa razvija tudi spletne aplikacije za lastne in prav tako za tuje potrebe. 6

2.1. ucrm Spletna apikacija ucrm je bila razvita v podjetju Aditus d.o.o. za upravljanje odnosov s strankami, kasneje se je razširila v aplikacijo za dodeljevanje zadolžitev ter pisanje poročil. Poleg tega omogoča tudi vodenje zaloge v skladiščih, tiskanje prevzemnih zapisnikov, evidenca prodane, v najemu ali posojene opreme k stranki. Aplikacija je vsebovala tudi modul IP Phone, ki ga bom opisal kasneje. Izgled aplikacije je lahko viden spodaj (Slika 1: ucrm oprema). ika 1: ucrm oprema Sl 7

2.2. SovaConf Spletno aplikacijo SovaConf so prav tako razvili v podjetju Aditus d.o.o. namenjena pa je za upravljanje s podatki za VoIP usmerjevalnike (centrale) kateri so pod njihovo administracijo. S pomočjo te aplikacije so se generirale konfiguracijske datoteke za centrale. Izgled aplikacije pri izpisu usmerjevalnikov je lahko viden spodaj (Slika 2: SovaConf spisek usmerjevalnikov ). Slika 2: SovaConf spisek usmerjevalnikov 2.3. IP Phone IP Phone aplikacija je bila najprej razvita kot samostojna spletna aplikacija, ki je temeljila na JSP, kasneje pa se je uvedla v sam ucrm kot njen modul. S pomočjo te aplikacije smo lahko masovno nastavljali telefone glede na njihove MAC naslove. Primer aplikacije oziroma modula lahko vidite na naslednji sliki (Slika 3: IP Phone spisek telefonov), ter podrobnejše nastavitve telefona na sliki (Slika 4: IP Phone podrobnosti nastavitev) 8

Slika 3: IP Phone spisek telefonov Slika 4: IP Phone podrobnosti nastavitev 9

2.4. IP Telefonske centrale Glavna tema razvoja v podjetju Aditus d.o.o. pa so IP telefonske centrale, ki temeljijo na odprto kodni rešitvi Asterisk. Asterisk telefonska centrala je dokaj mlada, saj je leta 2009 dopolnila komaj 10 let. Njen prvotni razvijalec je Mark Spencer, ki je imel svojo lastno računalniško podjetje in je iskal rešitev za telefonsko centralo, ker ni našel nič ustreznega, se je odločil da jo bodo razvili sami. Sedaj spada Asterisk pod podjetje Digium Inc. kjer razvijajo tudi strojno opremo za priklop ISDN in analognih telefonov na računalnik. Slika 5: Asterisk logo 10

2.5. Opis praktičnega izobraževanja projektnega dela študenta Kot sem že omenil je moje delo obsegalo različna področja računalništva, kot so administracija strežnikov, programiranje in nekaj malega tudi montiranje strojne opreme oziroma računalniških komponent. 2.5.1. Debian Debian je distribucija Linux operacijskega sistema, ki ga podjetje uporablja za različne strežnike, kot tudi za Asterisk centrale. Debian je v svetovnem merilu eden najbolj popularnih operacijskih sistemov, ki temeljijo na Linux-u. Ta sloves si je pridobil z dokaj enostavno uporabo in obliko ukazne vrstice. Veliko je pripomogel k temu tudi njegov upravljavec paketov, ki je zelo dovršen in enostaven za uporabo. Sama distribucija Debian pa se uporablja tudi kot osnova za mnoge druge distribucije, kot so vse *ubuntu distribucije, ter nekaj distribucij, ki so namenjene za vgrajene sisteme. Slika 6: Debian logo 2.5.2. Asterisk* Asterisk je v svetovnem merilu najbolj popularni odprtokodni projekt za telefonijo. Razvijajo ga že od leta 1999 in je popolnoma zastonj. Za delovanje potrebujemo le navaden računalnik ter mrežno kartico in že ga lahko spremenimo v zelo uporabno telefonsko centralo. Izvorno kodo je prvotno napisal Mark Spencer iz podjetja Digium Inc. sedaj pa ima podjetje že zaposlene razvijalce, ki se posvečajo Asterisku in karticam za pretvorbo med analogno, ISDN in IP telefonijo. 11

Trenutno naj bi jo uporabljalo nekje 2 milijona uporabnikov po celem svetu. Prednosti Asteriska so da podpira široki spekter TDM (Time Division Multiplexing) protokole za prenose med navadnimi analognimi ali ISDN telefoni in VoIP paketi kot so SIP (Session initiation protocol) in IAX (Inter-Asterisk exchange). Podpira pa prav tako standardne signalizacije, ki se uporabljajo v Združenih državah ali v Evropi. Za lažjo namestitev pa že obstaja tako imenovani AsteriskNOW, ki se ga lahko sname s spleta ter posname na CD, ki samodejno namesti na računalnik vse potrebno za delujočo centralo. Na spodnji sliki (Slika 7: Asterisk začetek klica) pa lahko vidimo kako v Asterisk konzoli zgleda začetek klica v kateri lahko najdemo napako, če pride do nje. 12

Slika 7: Asterisk začetek klica 13

2.5.3. Asterisk Add-Ons V tem paketu so, kot je že iz imena razvidno, razni dodatki za Asterisk, na primer številni dodatni gonilniki in pripomočki, kot so podpora za predvajanje mp3 datotek, povezava do MySQL podatkovne baze in podpora za CDR (Call detail record), potem še vsebuje module za mobilne kanale, kar omogoča da lahko preko Bluetooth-a na računalnik priklopimo GSM aparat in ga uporabljamo za klice ali tekstovna sporočila. Določene stvari v tem paketu pa so še vedno eksperimentalne. 2.5.4. DAHDi Linux / DAHDi Tools DAHDi Linux je odprtokodno ogrodje oziroma vmesnik za gonilnike naprav, ki se uporablja za upravljanje z Digium in drugimi telefonskimi karticami. DAHDi je zamenjal oziroma se je preimenoval iz nekdanjega Zaptel-a. 2.5.5. LibPRI LibPRI je odprtokodna knjižnica, ki se uporablja za signalizacije ISDN-PRI (ISDN Primary Rate Interfaces) vmesnikov. Vse zgoraj opisane aplikacije in dodatke pa se lahko brezplačno sname iz spletnega naslova http://www.asterisk.org/downloads. 14

2.5.6. FreePBX FreePBX je grafični uporabniški vmesnik napisan v PHP in teče na sami centrali. Uporablja se za lažjo kontrolo in upravljanje z nastavitvami Asterisk centrale. Sistem je popolnoma brezplačen in si ga lahko snamete s spleta s strani http://www.freepbx.org/. Tudi v podjetju Aditus d.o.o. se poleg ročnega vnosa in zgeneriranih konfiguracjskih datotek uporablja FreePBX sistem, ker je zelo enostaven za uporabo ter zelo učinkovit. Primer zaslona ko smo prijavljeni lahko vidite na spodnji sliki (Slika 8: FreePBX - Status sistema). Slika 8: FreePBX - Status sistema 15

3. Projekt Integracija IP telefonije v podjetje Na podlagi ponudbe in predstavitve, se je podjetje odločilo, da zamenja obstoječo telefonijo z IP telefonijo podjetja Aditus d.o.o., nato so predstavili še njihove zahteve in želje. Stranka je želela, da imajo IP telefonijo na vseh poslovnih enotah po Sloveniji in prav tako so želeli, da se med seboj kličejo brez stroškov in hkrati po kratkih oziroma internih številkah. Projekt je bil zastavljen tako, da se poslovalnice, ki imajo manj oziroma do 8 telefonov opremijo le z IP telefoni, mrežnim stikalom in navadnim mrežnim usmerjevalnikom, kar zadostuje, da se telefoni povezujejo na najbližjo centralo. Na lokacijah, kjer pa je telefonov več, pa se mora ta lokacija opremiti tudi s centralo, katere zmogljivost je odvisna od števila telefonskih aparatov. Njihova želja je še bila, da imajo možnost klicanja preko programskih telefonov (softphone), da imajo različni uporabniki različne pravice klicanja (samo Slovenija, samo interno,...), da se določeni prejeti faksi shranjujejo na strežnik in druge podobne uporabne funkcionalnosti. V dobro stranke smo tudi predlagali da večje poslovalnice, ki imajo več telefonov za telefonijo uporablja ločeno internetno povezavo, kot pa jo imajo za povezovanje računalnikov v splet, kjer pa ločene povezave ne bo, pa morajo uporabljati QOS (Quality of service). 3.1. Izbira strežnika oziroma strojne opreme Za stranko smo na glavni lokaciji izbrali dva strežnika z naslednjo konfiguracijo: Ohišje: rack višine 2U Matična plošča: SuperMicro X7SLM-L Procesor: dvojederni Intel Celeron 2.20 GHz RAM: Kingston 1 GB Disk: WD 160 GB. Uporabili smo dva strežnika, ker smo uporabili High-Availability oziroma visoko razpoložljiv sistem. To pomeni da imata dva strežnika popolnoma enako konfiguracijo in neprestano komunicirata med seboj ter če ugotovita, da je aktivni naletel na morebitno napako, avtomatsko drugi prevzame aktivno vlogo, kar po izkušnjah v tem dotičnem primeru pomeni nekje v 20 sekundah. Na dveh drugih lokacijah pa smo uporabili strežnik z naslednjo konfiguracijo: 16

Ohišje: rack višine 2U Matična plošča: SuperMicro X7SLM-L Procesor: dvojederni Intel Celeron 2.20 GHz RAM: Kingston 1 GB Disk: 2x WD 160 GB Tukaj nismo uporabili dveh strežnikov, ker samo manjši izpad ni tako bistven za poslovanje kot pa na glavni lokaciji. Podatke pa smo zavarovali s tem, ko smo diska povezali v RAID 1 sistem, kar pomeni, da se podatki replicirajo na drugi disk. Na ostalih lokacijah, kjer ni strežnikov pa smo telefone priklopili v njihovo obstoječo mrežo, če so jo imeli, in uporabili njihova mrežna stikala in usmerjevalnike. Na vseh lokacijah smo uporabljali IP telefonske aparate podjetja Snom technology AG iz Nemčije. Za povezovanje analognih telefonskih aparatov, kot so faksi ali navadni telefoni, če IP telefona ni bilo mogoče uporabiti, pa smo uporabili pretvornik Meditrix 1102 ali 1104 odvisno od potrebe. 3.2. Nalaganje distribucije Debian na strežnik/centralo Ko smo izbrali vso strojno opremo sem pričel z nalaganjem operacijskega sistema na strežnik. V tem primeru sem uporabil Debian Lenny, ki je ravno tisti čas izšla. Pri inštalaciji ni nobenih posebnih nastavitev razen v primeru ko smo imeli dva diska, smo ta dva povezali v sistem RAID 1, v primeru dveh strežnikov pa smo ustvarili posebej particijo velikosti približno 9 GB, ki se uporablja za skupne konfiguracije obeh strežnikov, deluje pa kot RAID 1, le da poteka sinhronizacija preko mrežne kartice ali COM vrat. Kot sem že omenil nismo namestili nobenih dodatnih paketov (kot so grafični vmesnik, DHCP strežnik, ipd) le osnovni sistem. 3.3. Nalaganje ostalih aplikacij Za nalaganje vseh potrebnih aplikacij sem si zaradi neprestanega ponavljanja (zaradi nalaganja večih strežnikov) napisal skripto ki to naredi sama, kasneje pa smo naredili repliko sistema in je inštalacija bila še hitrejša. Sedaj pa bom zaradi boljšega razumevanja opisal ročni postopek. 17

3.3.1. Nalaganje paketov iz skladišča (repository) Namestiti moramo določene pakete, ker smo pri sami inštalaciji namestili le osnovni sistem. Namestimo pa jih s pomočjo ukaza apt-get install. Tukaj bom opisal nekaj bolj znanih paketov: ssh-server, uporablja se za povezavo na strežnik v njegovo ukazno vrstico make, s pomočjo ukaza make lahko zaganjamo Makefile skripte, ki so napisane za prevajanje in povezovanje izvorne kode programov. gcc, je GNU C prevajalnik g++, je GNU C++ prevajalnik mysql-server-5.0, je strežnik MySQL podatkovne baze apache2, je spletni strežnik php5, je interpreter za php5 kodo perl, je interpreter za perl skriptni jezik sox, je paket za pretvarjanje avdio datotek v različne formate screen, 18

omogoča odpiranje večih virtualnih konzol dhcp3-server, je dhcp strežnik, ki dodeljuje novim napravam IP naslove tcpump, je paket, kateri vsebuje orodje za zajem mrežnega prometa. Poleg teh paketov si moramo prenesti še linux-source in linux-headers, saj se prevajanje in povezovanje določene kode navezuje na izvorno kodo jedra. 3.3.2. Nalaganje gonilnikov, aplikacij in knjižnic Ko smo naložili vse potrebne pakete iz skladišča, moramo naložiti še ostale potrebne stvari in to v naslednjem zaporednju: knjižnico LibPRI, LibPRI je odprtokodna knjižnica, ki skrbi za signaliziranje ISDN-PRI (ISDN Primary Rate Interfaces) vmesnikov gonilnike DAHDi Linux, te gonilnike potrebujemo za telefonske kartice ki se priključijo na računalnik preko PCI ali katerega koli drugega vodila DAHDi Tools, so orodja s pomočjo katerih komuniciramo s telefonskimi karticami, ki so priključene na strežnik Asterisk, je odprtokodna programska telefonska centrala, ki omogoča veliko funkcionalnosti Asterisk Add-Ons, so dodatki za telefonsko centralo kot so možnost predvajanja mp3 formata, povezovanje 19

na MySQL podatkovno bazo, shranjevanje CDR-jev ter razni dodatni kanali za povezovanje s centralo Asterisk perl, je samo dodatek, ki omogoča da Asterisk proži PERL skripte. FreePBX je grafični vmesnik za določene nastavitve Asteriska. 3.4. Nastavitve centrale Ko imamo vse skupaj nameščeno, se lotimo samih nastavitev. Ker ima podjetje napisano aplikacijo IP Phone za masovno dodelitev nastavitev telefonom, je stvar veliko lažja oziroma veliko hitrejša kot če bi vse skupaj nastavljali ročno. 3.4.1. Vpis telefonov v aplikacijo IP Phone Najprej smo iz skladišča vzeli približno 70 telefonov tipa Snom 300, in nekje 10 telefonov tipa Snom 370, ki se razlikujeta po obliki in funkcionalnosti. Ko smo imeli pripravljene telefone, smo si prepisali vse njihove MAC (Media Access Control) naslove, nato se je začel vnos MAC naslovov v aplikacijo IP Phone. Za vsak telefon je potrebno vnesti vse podatke, nekaj se jih lahko vidi spodaj na sliki (Slika 9: IP Phone - vnos podatkov). Ker je količina podatkov velika in so od telefona do telefona podatki zelo podobni, ima aplikacija možnost kopiranja nastavitev telefonskega aparata in tako skrajša čas vpisa telefonov. 20

Slika 9: IP Phone - vnos podatkov 3.4.2. Vnos podatkov v aplikacijo SovaConf V aplikacijo SovaConf vnesemo vse ostale podatke, kot so zunanji IP naslov, vrata do ssh strežnika, do spletnega strežnika, vrata za SIP protokol, lokacijo stranke, naziv priključka in podobno. Nekaj od teh podatkov lahko vidimo na spodnji sliki (Slika 10: SovaConf podatki). 21

Slika 10: SovaConf podatki Za klice izven interne mreže, pa potrebujemo povezavo do enega izmed operaterjev, ki ponujajo tako imenovane IP trunk-e (operater je lahko T-2, Amis, Tuš mobil, Telekom, ali kateri koli drug tudi tuj operater). IP trunk je točka preko katere gredo vsi klici od stranke do neke točke v zunanjem omrežju. Kot IP trunk lahko uporabimo tudi GSM vmesnike, v katerih so SIM kartice preko katerih gredo klici. Ko imamo IP trunk ponudnika, od njega dobimo podatke kam in kako se mora naša centrala povezovat. Ti podatki pa so: IP naslov ponudnika (kamor se mora naša centrala povezovati), IP naslov, ki ga mora imeti naša centrala, maska omrežja za našo centralo, ter prehod preko katerega naša centrala dostopa do ponudnika. Določeni ponudniki še dodelijo tudi uporabniško ime ter geslo, ki ga mora centrala uporabljati pri povezovanju. 3.4.3. Uvoz podatkov na centralo Podatke smo na centralo uvozili s pomočjo skripte, ki se poveže na centralni računalnik, tam zažene drugo skripto, ki zgenerira vse potrebne datoteke ter si jih prenese na centralo, ko so datoteke na centrali, pa jih skopira na pravo mesto (npr. datoteka dhcpd_generated_from_sova.conf se prenese v /etc/dhcp3). 22

Podatki iz aplikacija IP Phone se zapišejo v takšno obliko, da jih zna dhcp strežnik prebrati in pravilno dodeliti IP naslove. Primer takšne oblike lahko vidimo spodaj: host ipphone2 { hardware ethernet 00:04:13:26:0B:6A; fixed-address 192.168.254.10; } Takšen blok se zgenerira za vsak telefonski aparat. Seveda ni dovolj, da skopiramo datoteko dhcpd_generated_from_sova.conf v /etc/dhcp3 ampak moramo to datoteko vključiti še v glavno datoteko dhcpd.conf, ki je v isti mapi, vključimo pa jo z ukazom include (include "/etc/dhcp3/dhcpd_generated_from_sova.conf";). Sedaj bi morali vnesti še za vse telefone svoje interne številke v FreePBX aplikacijo, ki se nahaja na sami centrali, vendar lahko izkoristimo možnost, da pogledamo strukturo podatkovne baze aplikacije FreePBX, ki uporablja MySQL in ugotovimo, da lahko iz podatkovne baze iz aplikacije IP Phone preberemo vse interne številke, ki spadajo k tej centrali in za vsako interno številko oblikujemo INSERT stavek za MySQL podatkovno bazo in tako avtomatsko vpišemo vse interne številke v aplikacijo FreePBX. Potrebni MySQL stavki za en telefon bi zgledali nekako takole: INSERT INTO devices (id,tech,dial,devicetype,user,description) VALUES (566,'sip','SIP/566','fixed','566','566'); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'accountcode','',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'dial','SIP/566',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'allow','',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'disalow','',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'pickupgroup','',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'callgroup','',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'qualify','yes',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'port','5060',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'nat','yes',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'type','friend',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'host','dynamic',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'context','from-ip-phone',0); 23

INSERT INTO sip (id,keyword,data,flags) VALUES (566,'canreinvite','no',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'dtmfmode','rfc2833',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'secret','*******',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'mailbox','566@device',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'account','566',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'callerid','device <566>',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'recordin','Adhoc',0); INSERT INTO sip (id,keyword,data,flags) VALUES (566,'recordout','Adhoc',0); INSERT INTO users (extension,password,name,voicemail,ringtimer,noanswer,recording,outboundcid,sipname) VALUES ('566','','Saso Secnjak','novm',0,'','out=Adhoc in=adhoc','',''); Po tem pa je potrebno le še ponovno zagnati aplikacijo FreePBX (oz. Reload), da prebere nove nastavitve in sama zgenerira še datoteke, ki so potrebne. V konfiguracijske datoteke se zapišejo še podatki iz aplikacije SovaConf, to pa so podatki o IP trunku. V plikcijo FreePBX še vpišemo trunk, ki smo ga zgenerirali kot prikazuje spodnja slika (Slika11: FreePBX podatki za trunk). Nato moramo še nastaviti izhodno pot za klic kot je na sliki (Slika 12: FreePBX podatki za izhodno pot). 24

Slika11: FreePBX podatki za trunk Slika 12: FreePBX podatki za izhodno pot V polje Dial rules pri vpisu trunka lahko napišemo pravila za dodajanje ali odstranjevanje določenih števil v klicani številki (npr. 03+ZXXXXXX, to pomeni, da številki ki ima prvo celo število in ji nato sledi 6 števil od 0 do 9 se doda pred njo 03, se pravi številki 6203566 se doda 03 kar pomeni,da kličemo 036203566). Pri vpisu podatkov za izhodno pot pa lahko napišemo 25

pravila katere številke klicane številke lahko gredo po tej poti (npr. 0590XXXXX pomeni da lahko gredo po tej poti vse številke ki se začnejo z 0590 in jim sledi 5 števil, če pa bi napisali X. Pa bi to pomenilo da lahko gredo po tej poti čisto vsa števila). Razlaga znakov: X se ujema z vsakim številom od 0 do 9, Z se ujema z vsakim številom od 1 do 9, N se ujema z vsakim številom od 2 do 9, [1237-9] se ujema na primer z 1,2,3,7,8,9,. se ujema z enim ali večim znakom ki se nahaja pred piko, loči številko kot na primer 9 55670 v samo 55670 in jo da dalje do trunka. 3.4.4. Konfiguracijske datoteke na centrali Ko so bili v aplikacijo FreePBX vpisani vsi dodatni podatki, lahko pogledamo konfiguracijske datoteke. Vse interne številke se vpišejo v datoteko sip_additional.conf, ki jo zgenerira in ustvari aplikacija FreePBX, če pa bi želeli ročno dodati interno šteilko, pa bi jo morali vpisati v datoteko sip.conf ali sip_custom.conf. Primer interne številke lahko vidimo tukaj: [566] deny=0.0.0.0/0.0.0.0 type=friend secret=******* qualify=yes port=5060 pickupgroup= permit=0.0.0.0/0.0.0.0 nat=yes mailbox=566@device host=dynamic 26

dtmfmode=info dial=sip/566 context=from-ip-phone canreinvite=no callgroup= callerid=device <566> accountcode= call-limit=50 Podatki o SIP trunku se prav tako zapišejo v datoteko sip.conf ali sip_custom.conf vendar podatki, ki so zgenerirani v aplikaciji SovaConf se zapišejo v datoteko sip_trunks_generated_from_sova.conf. Primer podatkov o trunku pa je tukaj: [VOIP_T2-peer] type=peer reinvite=no qualify=no port=5060 host=[ip NASLOV OD T2 TRUNKa] context=from-t2 disallow=all allow=alaw [VOIP_T2-user] type=user reinvite=no qualify=no port=5060 host=[ip NASLOV OD T2 TRUNKa] context=from-t2 disallow=all allow=alaw 27

3.4.5. Klicni načrt (Dial plan) Klicni načrti so sestavljeni iz kontekstov in makrojev, ko se prestavimo v določen kontekst se za tem izvršijo ukazi, ki so napisani v tem kontekstu. Enako je pri makrojih, vendar lahko pri makrojih uporabljamo argumente pri samem klicu. V kontekst se prestavimo z klicem include => _ime_konteksta_, makro pa pokličemo s pomočjo funkcije Macro, sam klic pa zgleda tako: exten => Macro(_ime_makroja_, arg1,arg2,...). Druge aplikacije in ukazi, ki so v Asterisku, pa se prav tako pokličejo z exten => [razširitev/klicana številka/interna], prioriteta, ukaz. V prvo polje kjer sem napisal razširitev/klicana številka/interna se napiše tako imenovan extension kar pa lahko prevedemo v različne pojme. Za tem sledi prioriteta ukaza, kar pomeni da se ukaz s številko 1 izvrši pred ukazom s številko 2, po prioriteti pa sledi še dejanski ukaz. Začetek vsakega klica se začne v tistem kontekstu, ki ga ima interna številka zapisanega v konfiguraciji (primer: context=from-ip-phone), se pravi da se bo klic začel v kontekstu from-ip-phone, kjer pa se na primer izvede include => ext-local v kontekstu extlocal pa so za vsako vpisano interno napisani makroji, ki posledično pripeljejo klic do telefona oziroma interne številke. Prevzem klica ki je na drugi interni Stranka je želela imeti možnost, da če v podjetju zvoni neka interna številka, lahko klic prevzame katera koli oseba v podjetju na svojem telefonu, zato smo morali napisati svojo aplikacijo, ki pa zgleda tako: [aplikacija-prevzem-klica] exten => _*8XXX,1,Pickup(${EXTEN:2}@ext-did) exten => _*8XXX,2,Pickup(${EXTEN:2}@ext-local) exten => _*8XXX,3,Pickup(${EXTEN:2}@from-ip-phone) exten => _*8XXX,4,PickupChan(SIP/${EXTEN:2}) To je aplikacija, ki s sekvenco *8[interna številka] prevzame klic, ki zvoni na tisti interni številki. Aplikacija Pickup lahko prevzame katerikoli klic v kateremkoli kontekstu, ki še zvoni, aplikacija PickupChan pa lahko prevzame katerikoli kanal, ki še ni bil javljen. Večina telefonskih aparatov omogoča, da za določene interne številke dobiva obvestila, kot so na primer kdaj določena interna številka zvoni ali kadar je med pogovorom, kar se prikazuje 28

preko LED lučk in na podlagi tega lahko oseba prevzame pravi klic (Slika 13: Snom 370 LED lučke). Slika 13: Snom 370 LED lučke Klicanje iz ene centrale na drugo po internih številkah Zaradi te zahteve je bilo s stranko dogovorjeno, da imajo na vseh lokacijah različne številke, ker se lahko naredi tako, da z interno številko pokličeš na drugo lokacijo. Če se to nebi dogovorili, bi morali za klic na drugo lokacijo, ki ima isto interno kot lokalna centrala dodati predpono k interni številki (npr. 8130 če je interna 130) kar pa je vseeno krajše kot cela številka s 7 ali 9 številkami. Postopek da lahko povežemo dve centrali pa je takšen, da na obeh centralah naredimo za drugo centralo tako imenovan trunk. V tem primeru bomo naredili SIP trunk, ki pa zgleda takole: [voip-centrala-celje-peer] context=voip-centrala-celje disallow=all allow=alaw 29

allow=ulaw port=5060 nat=yes insecure=port qualify=yes canreinvite=no type=peer host=[naslov do te centrale] [voip-centrala-celje-user] context=voip-centrala-celje disallow=all allow=alaw allow=ulaw port=5060 nat=yes qualify=yes insecure=port canreinvite=no type=user host=[naslov do te centrale] Razlaga pojmov, ki se nahajajo v konfiguraciji trunka: na začetku lahko opazimo da je imenu trunka enkrat na koncu peer, enkrat pa user, tip user nam pove, da je tista povezava narejena za dohodne klice, tip peer pa je za izhodne klice, context nam pove v kateri kontekst gre klic, za dohodne in izhodne klice lahko določimo posebej kontekst, allow s tem definiramo dovoljene kodeke, disallow nam da možnost katere kodeke ne bomo dovolili med klicem, zato v tem primeru 30

najprej damo disallow=all nato pa allow=ulaw in allow=alaw, kar pomeni da bomo dovolili kodeka ulaw in alaw in nobenega drugega, port s tem definiramo vrata preko katerega potega komunikacija, nat s tem definiramo ali je centrala za NAT-om, qualify pomeni da se povezava ves čas preverja če je dosegljiva, insecure je za nastavitve avtentikacije to pomeni da bo insecure=port za primerjavo če je peer pravi, uporabil le IP naslov in ne tudi vrat, canreinvite je nastavitev s katero povemo kaj naj centrala naredi, če dobi ponovno povabilo ko je klic že vzpostavljen (to je predvsem zato, ker se lahko kakšna oprema zruši in se začne pošiljati ponovno povabilo za vzpostavitev povezave), type s tem določimo tip trunk-a, možnosti so peer, user, friend. 31

Nastavitev trunka v FreePBX Trunk lahko nastavimo tudi v FreePBX aplikaciji, ki pa je enako kot pa sem že opisal za trunk z zunanjim operaterjem, lahko pa ga nastavimo ročno(slika 14: FreePBX ročna nastavitev trunk-a). Tukaj lahko vidimo še dodatno možnost za registracijo, kjer se lahko vpiše uporabniško ime in geslo ločeno z podpičjem, to se seveda da narediti tudi ko vpisujemo trunk v konfiguracijske datoteke. Slika 14: FreePBX ročna nastavitev trunk-a Ko so napisane vse nastavitve za registracijo telefonov in trunka, in ko so se vsi telefoni registrirali, ter se je centrala registrirala na trunk do zunanjega ponudnika lahko začne stranka s klici kakor je želela. 32

4. Sklep Ob praktičnem delu mojega izobraževanja sem se naučil veliko novega ter podkrepil znanje, ki sem ga dobil med časom študija na fakulteti. Veliko sem se naučil glede vzdrževanja strežnikov, skriptnega programiranja za linux ukazno vrstico, različnih podatkovnih baz, še največ pa sem odnesel o IP telefoniji ter mrežnih protokolih. Zelo pomembno znanje ki sem ga pridobil pri praksi pa je delo z ekipo in kako je pomembno da se ekipa dobro razume. V času prakse pa sem imel priložnost obiskati tudi konferenco AstriCon 09, ki je potekala v Phoenix, Arizona o novostih Asterisk centrale. Ob tej priložnosti pa bi se rad zahvalil podjetju Aditus d.o.o. za možnost opravljanja praktičnega dela izobraževanja in obiska konference ter svojemu mentorju, ki mi je pomagal pri pridobivanju novega znanja. 33

5. Priloge - Pogodba o praktičnem usposabljanju 34