razvoj sistema za obveŠČanje velikega Števila … · an increasingly versatile service-centric...

86
Marko Lubej RAZVOJ SISTEMA ZA OBVEŠČANJE VELIKEGA ŠTEVILA UPORABNIKOV TELEKOMUNIKACIJSKIH OMREŽIJ Diplomsko delo Maribor, maj 2009

Upload: others

Post on 16-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Marko Lubej

RAZVOJ SISTEMA ZA OBVEŠČANJE VELIKEGA ŠTEVILA UPORABNIKOV TELEKOMUNIKACIJSKIH OMREŽIJ

Diplomsko delo

Maribor, maj 2009

I

Diplomsko delo univerzitetnega študijskega programa

RAZVOJ SISTEMA ZA OBVEŠČANJE VELIKEGA ŠTEVILA UPORABNIKOV

TELEKOMUNIKACIJSKIH OMREŽIJ

Študent: Marko LUBEJ

Študijski program: Univerzitetni, Telekomunikacije

Smer: Telekomunikacije

Mentor: doc. dr. Bojan IMPERL

Somentor: doc. dr. Tomaž ROTOVNIK

Lektorica: Margit Berlič Ferlinc, prof.

Maribor, maj 2009

II

III

ZAHVALA

Zahvaljujem se mentorju doc. dr. Bojanu

IMPERLU in somentorju doc. dr. Tomažu

ROTOVNIKU za vso strokovno svetovanje,

potrpežljivost in vzpodbujanje v času nastajanja

diplomskega dela. Hvala tudi doc. dr. Andreju

ŽGANKU za pomoč in svetovanje.

Posebna zahvala velja tudi mojim staršem, ki so mi

omogočili študij.

IV

RAZVOJ SISTEMA ZA OBVEŠČANJE VELIKEGA ŠTEVILA UPORABNIKOV TELEKOMUNIKACIJSKIH OMREŽIJ

Ključne besede: telekomunikacije, storitve v telekomunikacijah, omrežja naslednje

generacije, VoiceXML, Parlay X, interaktivni glasovni odzivnik,

aplikacijski strežnik, klicni strežnik, VoIP.

UDK: 004.77:621.395(043.2)

Povzetek

Omrežja fiksne telefonije, podatkovna omrežja, omrežja mobilne telefonije in internet

danes niso več samostojni in neodvisni ločeni sistemi, temveč se povezujejo in zlivajo v

vedno bolj prepleteno in storitveno pestro platformo, ki odpira priložnosti za razvoj novih -

konvergenčnih storitev. Diplomsko delo predstavlja vse korake razvoja ene izmed takšnih

konvergenčnih storitev, sistema za obveščanje velikega števila uporabnikov

telekomunikacijskih omrežij, ki izkorišča zmožnosti sodobnih omrežij. Delo opisuje vse

faze razvoja, od analize omrežij naslednje generacije in njihovih elementov ter

informacijskih tehnologij, ki omogočajo implementacijo samih storitev, do analize

konkretnega problema in načrtovanja rešitve. Rezultat dela je sistem, napisan v

programskem jeziku Java, ki teče na operacijskem sistemu Windows in v veliki meri

izkorišča storitve vmesnika Parlay X, standardiziranega vmesnika za dostop do

funkcionalnosti telekomunikacijskih omrežij. Sistem je sestavljen iz dveh delov, prvi del je

spletni grafični uporabniški vmesnik, ki omogoča manipulacijo nad podatki v podatkovni

bazi, drugi del pa aplikacija, katera samodejno izvaja telefonske klice in s tem opravlja

funkcijo obveščanja uporabnikov telekomunikacijskih omrežij.

V

DEVELOPMENT OF A SYSTEM FOR INFORMING A LARGE NUMBER OF USERS OF TELECOMMUNICATION NETWORKS

Key words: telecommunications, services in telecommunications, next

generation networks, VoiceXML, Parlay X, interactive voice

response, application server, call server, VoIP.

UDK: 004.77:621.395(043.2)

Abstract

Fixed telephony networks, data networks, mobile telephony networks and the Internet

are no longer separate and independent systems, but they are connecting and merging in

an increasingly versatile service-centric platform that offers a variety of opportunities for

development of new convergent services. The diploma thesis represents the steps of the

development of one of such convergent services, a system for informing a large number of

users of telecommunication networks, which exploits the capabilities of modern networks.

The work describes all phases of development, from analysis of next generation networks

and their elements, and information technologies that enable the implementation of

services, to the analysis of the concrete problem and planning of a solution. The result of

the work is a system, written in the Java programming language that runs on the Windows

operating system and largely exploits services of the Parlay X interface, a standardized

interface for accessing the functionality of the telecommunication networks. The system

consists of two parts, the first part is a web graphical user interface that allows the

manipulation of data in the database, the second part is an application, which

automatically implements phone calls and thus performs the function of informing the

users of telecommunication networks.

VI

VSEBINA

1 UVOD...................................................................................................................................................... 1

2 KOMUNIKACIJSKA OMREŽJA....................................................................................................... 3

2.1 VODOVNO PREKLAPLJANJE ............................................................................................................. 3 2.2 PAKETNO PREKLAPLJANJE............................................................................................................... 5 2.3 PRIMERJAVA VODOVNEGA IN PAKETNEGA PREKLAPLJANJA ............................................................ 6 2.4 OMREŽJA NASLEDNJE GENERACIJE - NGN ...................................................................................... 7

3 GOVOR PREK IP ................................................................................................................................. 8

3.1 ZAKAJ VOIP?.................................................................................................................................. 8 3.2 PRENOS GOVORA Z IP.................................................................................................................... 11 3.3 RTP – TRANSPORTNI PROTOKOL ZA REALNI ČAS........................................................................... 12 3.4 H.323............................................................................................................................................ 13

3.4.1 Arhitektura H.323.................................................................................................................... 13 3.4.2 Klicni scenarij H.323............................................................................................................... 15

3.5 SIP – PROTOKOL ZA ZAGON SEJE................................................................................................... 16 3.5.1 Arhitektura SIP........................................................................................................................ 17 3.5.2 Vzpostavljanje klica SIP .......................................................................................................... 18 3.5.3 Prednosti SIP-a pred drugimi signalizacijskimi protokoli ...................................................... 20

4 KONCEPT NGN – ELEMENTI OMREŽJA.................................................................................... 21

4.1 CS – KLICNI STREŽNIK.................................................................................................................. 23 4.2 AS – APLIKACIJSKI STREŽNIK ....................................................................................................... 24 4.3 PREHODI........................................................................................................................................ 24

5 APLIKACIJSKI STREŽNIK ............................................................................................................. 26

6 TEHNOLOGIJE, UPORABLJENE PRI RAZVOJU SISTEMA.................................................... 31

6.1 PROGRAMSKI JEZIK JAVA .............................................................................................................. 31 6.2 PROGRAMSKI JEZIK SQL............................................................................................................... 33 6.3 PODATKOVNA BAZA MYSQL........................................................................................................ 34 6.4 PROGRAMSKI JEZIK VOICEXML ................................................................................................... 35 6.5 PARLAY X..................................................................................................................................... 38 6.6 RAZVOJNO OKOLJE NETBEANS...................................................................................................... 44

VII

7 SISTEM ZA OBVEŠČANJE VELIKEGA ŠTEVILA UPORABNIKOV

TELEKOMUNIKACIJSKIH OMREŽIJ ................................................................................................... 46

7.1 PREDSTAVITEV OKOLJA ................................................................................................................ 46 7.2 IZBIRA TEHNOLOGIJ ...................................................................................................................... 48 7.3 ARHITEKTURA IN ZASNOVA SISTEMA ............................................................................................ 49

7.3.1 Podatkovna baza...................................................................................................................... 49 7.3.2 Grafični uporabniški vmesnik.................................................................................................. 50 7.3.3 Funkcije grafičnega uporabniškega vmesnika......................................................................... 51 7.3.4 Aplikacija za obveščanje uporabnikov .................................................................................... 56 7.3.5 Scenarij klica ........................................................................................................................... 61 7.3.6 Glasovni odzivnik .................................................................................................................... 64

8 PRIMERJAVA DELOVANJA SISTEMA Z DELOM OPERATERJA......................................... 66

9 SKLEP .................................................................................................................................................. 67

VIRI, LITERATURA ................................................................................................................................... 69

PRILOGE ...................................................................................................................................................... 71

NASLOV ŠTUDENTA ..................................................................................................................................... 71 KRATEK ŽIVLJENJEPIS ................................................................................................................................. 71

VIII

SEZNAM SLIK

Slika 2.1: Prikaz vodovnega preklapljanja ............................................................................ 4

Slika 2.2: Prikaz paketnega preklapljanja.............................................................................. 5

Slika 3.1: Lega RTP-ja v protokolnem skladu in ugnezdenje paketa.................................. 12

Slika 3.2: Doseg H.323........................................................................................................ 14

Slika 3.3: Scenarij klica H.323 ............................................................................................ 16

Slika 3.4: Logična ločitev signalizacije SIP in medijev ...................................................... 17

Slika 3.5: Delovanje strežnika proksi .................................................................................. 18

Slika 3.6: Scenarij vzpostavljanja klica SIP ........................................................................ 19

Slika 4.1: Arhitektura NGN................................................................................................. 22

Slika 5.1: Aplikacijski strežnik v večslojni arhitekturi ....................................................... 28

Slika 5.2: Arhitektura AS in Parlay/OSA okolja................................................................. 30

Slika 6.1: Preprost programček, napisan v Javi................................................................... 33

Slika 6.2: Primer poizvedbe z jezikom SQL ....................................................................... 34

Slika 6.3: Arhitektura VoiceXML....................................................................................... 37

Slika 6.4: Arhitektura Parlay X ........................................................................................... 39

Slika 6.5: Third Party Call scenarij ..................................................................................... 42

Slika 6.6: Netbeans IDE ...................................................................................................... 45

Slika 7.1: Okolje sistema za obveščanje.............................................................................. 47

Slika 7.2: SoftPhone ............................................................................................................ 48

Slika 7.3: Arhitektura sistema za obveščanje uporabnikov................................................. 49

Slika 7.4: Struktura tabele v podatkovni bazi...................................................................... 50

IX

Slika 7.5: Arhitektura grafičnega uporabniškega vmesnika................................................ 51

Slika 7.6: Vstopni obrazec za prijavo v spletno aplikacijo.................................................. 52

Slika 7.7: Glavno okno spletne aplikacije ........................................................................... 53

Slika 7.8: Dodajanje novega vnosa...................................................................................... 53

Slika 7.9: Urejanje obstoječega vnosa................................................................................. 55

Slika 7.10: Brisanje vnosa iz baze ....................................................................................... 55

Slika 7.11: Umestitev aplikacije v omrežje ......................................................................... 57

Slika 7.12: Življenjski cikel aplikacije ................................................................................ 57

Slika 7.13: Potek pridobivanja telefonskih številk iz baze.................................................. 59

Slika 7.14: Potek klicanja številk iz seznama za klicanje.................................................... 60

Slika 7.15: Klic metode makeCall....................................................................................... 61

Slika 7.16: Potek klica ......................................................................................................... 62

Slika 7.17: Arhitektura glasovnega odzivnika..................................................................... 64

Slika 7.18: Scenarij delovanja glasovnega odzivnika ......................................................... 65

X

SEZNAM TABEL

Tabela 3.1: Metode SIP, definirane v osnovni specifikaciji................................................ 19

Tabela 6.1: Seznam Parlay X 3.0 specifikacij ..................................................................... 40

Tabela 6.2: CallStatus.......................................................................................................... 43

Tabela 6.3: CallTerminationCause...................................................................................... 43

Tabela 6.4: Struktura CallInformation................................................................................. 44

Tabela 7.1: Seznam vrednosti parametra »status«............................................................... 58

XI

UPORABLJENE KRATICE IN OZNAKE

3GPP Third Generation Partnership Project Partnerski projekt tretje generacije

ACF Admission Confirm potrditev sprejema

ANSI American National Standards Institute

Ameriški nacionalni inštitut za standardizacijo

API Application Programming Interface aplikacijski programski vmesnik

ARQ Admission request zahteva sprejema

AS Application Server aplikacijski strežnik

ASP Active Server Pages aktivne strežniške strani

ASR Automatic Speech Recognition samodejna razpoznava govora

ATM Asynchronous Transfer Mode asinhroni prenosni način

BGCF Breakout Gateway Control Function

funkcija krmiljenja prebojnega prehoda

CGI Common Gateway Interface splošni vmesnik prehoda

CLC Close Logical Channel zapri logični kanal

CS Call Server klicni strežnik

CSCF Call Session Control Function funkcija krmiljenja klicne seje

DTMF Dual-tone Multi-Frequency dvotonska večfrekvenčna signalizacija

ETSI European Telecommunications Standards Institute

Evropski inštitut za telekomunikacije

FR Frame Relay blokovno posredovanje

GUI Graphical User Interface grafični uporabniški vmesnik

HTML HyperText Markup Language jezik za označevanje hiperteksta

XII

HTTP Hypertext Transfer Protocol protokol za prenos hiperteksta

IDE Integrated Development Environment integrirano razvojno okolje

IIS Internet Information Server spletni informacijski strežnik

IMS IP Multimedia Subsystem IP multimedijski podsistem

IP Internet Protocol internetni protokol

ISDN Integrated Services Digital Network

digitalno omrežje z integriranimi storitvami

ISO International Organization for Standardization

Mednarodna organizacija za standardizacijo

ITU-T International Telecommunication Union – Telecommunication Standardization Sector

Mednarodna telekomunikacijska zveza – sektor za standardizacijo telekomunikacij

JAR Java ARchive javanska arhivska datoteka

JSP Java Server Pages javanske strežniške strani

JVM Java Virtual Machine javanska navidezna naprava

LAN Local Area Network lokalno omrežje

MCU Multipoint Control Unit večtočkovna kontrolna enota

MGCF Media Gateway Control Function funkcija krmiljenja medijskega prehoda

MGCP Media Gateway Control Protocol krmilni protokol za nadzor medijskih prehodov

MGW Media GateWay medijski prehod

MMS Multimedia Messaging Service storitev večpredstavnostnih sporočil

MSC Mobile Switching Center mobilni komutacijski center

MySQL My Structured Query Language ime podatkovne baze

NGN Next Generation Network omrežje naslednje generacije

OLC Open Logical Channel odpri logični kanal

OSA Open Services Architecture arhitektura odprtih storitev

XIII

PERL Practical Extraction and Report Language

priročni jezik za izvlečke in poročila

PCM Pulse-Code Modulation pulzno-kodna modulacija

PSTN Public Switched Telephone Network

javno komutirano telefonsko omrežje

RDBMS Relational Database Management System

sistem za upravljanje relacijskih podatkovnih baz

RPC Remote Procedure Call klic za oddaljeni postopek

RTCP Real-time Transport Control Protocol

krmilni transportni protokol v realnem času

RTSP Real-time Streaming protocol protokol strujanja v realnem času

RTP Real-time Transport Protocol transportni protokol v realnem času

SAP Session Announcement Protocol protokol za najavo seje

SBC Session Border Controller mejni krmilnik sej

SDP Session Description Protocol protokol za opis seje

SGW Signaling Gateway signalizacijski prehod

SIP Session Initiation Protocol protokol za zagon seje

SMS Short Message Service storitev kratkih sporočil

SOAP Simple Object Access Protocol protokol za izmenjavo XML sporočil preko omrežja

SS7 Signaling System No. 7 signalizacija številka 7

SQL Structured Query Language strukturirani jezik za poizvedovanje

TCP Transmission Control Protocol protokol za krmiljenje prenosa

TTS Text-To-Speech sinteza govora iz besedila

UAC User Agent Client klient uporabniškega agenta

UAS User Agent Server strežnik uporabniškega agenta

UDP User Datagram Protocol uporabniški datagramski protokol

URL Uniform Resource Locator enolični lokalizator vira

VoIP Voice Over IP govor prek IP

XIV

VoP Voice over Packet govor preko paketnega omrežja

VoiceXML Voice eXtensible Markup Language

glasovni razširljivi označevalni jezik

WAN Wide Area Network prostrano omrežje

WSDL Web Services Description Language jezik za opis spletnih storitev

XML eXtensible Markup Language razširljiv označevalni jezik

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 1

1 UVOD

Omrežja in storitve nove generacije so temeljito prevetrile način pojmovanja

komunikacije, kakršen je bil v veljavi do danes. Odprla so nova obzorja tako s

tehnološkega kot tudi s storitvenega in socialno-psihološkega stališča. Omrežja fiksne

telefonije, podatkovna omrežja, omrežja mobilne telefonije in internet danes niso več

samostojni in neodvisni ločeni sistemi. Korakoma se povezujejo in zlivajo v vedno bolj

prepleteno, tehnološko in storitveno pestro platformo, ki odpira priložnosti za nove

storitve. Arhitekturno gledano je koncept zasnovan zelo široko in integrira obsežen nabor

dostopovnih in jedrnih tehnologij. Skladno s tem so potrebni ustrezni signalizacijski

postopki in nadzor sistema kot celote. Potrebna je tudi učinkovita platforma za načrtovanje,

razvoj in vpeljavo tržno zanimivih storitev. Pri tem so ključni predvsem varnostni vidiki in

zanesljivost, tako s stališča omrežja kot celote in operaterja, ki ga upravlja, kot tudi

končnega uporabnika, ki dostopa do omrežja in koristi storitve. Vodilo in razlog za

uvajanje novih sistemov so vselej uporabniki. Le-ti s sodobnim načinom življenja,

potrebami, zahtevami in znanjem narekujejo nove trende. Izkazalo se je že, da v ospredje

stopa mobilni princip komuniciranja. Med storitvami so ključne prisotnost, lokalizacija,

personalizacija in prepletanje tehnološko in predstavnostno različnih principov sporočanja.

Poglavitni izziv pri zastavljenih ciljih je slediti potrebam, ki so se izkazale kot

pomanjkljivost preteklih sistemov. Obenem je potrebno poskrbeti za stabilnost, ki je

potreben pogoj za uspešnost tovrstnih rešitev. Nenazadnje ne gre zanemariti finančnih in

socioloških parametrov, ki v širšem kontekstu oblikujejo sodobno informacijsko družbo.

S tem diplomskim delom bi radi predstavili razvoj sistema za obveščanje velikega

števila uporabnikov telekomunikacijskih omrežij. V vsakdanjem življenju se velikokrat

srečamo s primeri, ko se pokaže potreba po hitrem obveščanju velikega števila ljudi (npr.

obveščanje neplačnikov, obveščanje ob naravnih nesrečah …) in le malokrat obstajajo za

ta namen učinkovite rešitve. Namen dela je izdelati in predstaviti celovito rešitev ob

uporabi vseh funkcionalnosti in tehnologij, ki jih ponujajo omrežja naslednje generacije.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 2

Diplomsko delo predstavlja korak v smeri izpolnjevanja potreb operaterjev

telekomunikacij. Operaterji imajo omrežje, opremo in množico uporabnikov, kateri

zahtevajo vedno nove storitve. Sistem za obveščanje velikega števila uporabnikov

telekomunikacijskih omrežij, ki je predmet tega diplomskega dela, izkorišča zmožnosti

sodobnih omrežij in novih tehnologij, ter je tako idealen za operaterje, ki bi ga lahko brez

težav vključili v svoje omrežje in tako ponudili novo storitev. S pomočjo takšnega

avtomatiziranega sistema lahko operaterji učinkovito in z minimalnimi stroški rešujejo

problem obveščanja svojih uporabnikov, hkrati pa sistem prinaša korist tudi uporabnikom,

ki so lahko na ta način bolj pogosto in bolj podrobno obveščani o različnih zadevah.

Naša naloga je bila izdelati tako grafični vmesnik, preko katerega bo mogoče vstavljati,

brisati in urejati vnose v bazi podatkov, kot tudi samo aplikacijo, ki bo iz baze pridobila

vse potrebne informacije in samodejno izvajala telefonske klice. Ko bo klicani uporabnik

telekomunikacijskih omrežij odgovoril na prejeti telefonski klic, bo sistem aktiviral

glasovni odzivnik, ki bo uporabniku predvajal predvideno sporočilo.

Diplomsko delo je sestavljeno iz devetih poglavij. Najprej bomo za boljše razumevanje

pregledali komunikacijska omrežja. V ospredje bodo postavljena vodovno in paketno

preklapljana omrežja ter omrežja naslednje generacije. Predstavili bomo osnovne

značilnosti posamezne vrste omrežja in osnove njihovega delovanja. V tretjem poglavju

bomo predstavili govor prek IP. Povedali bomo, zakaj govor prek IP postaja vedno

popularnejši. Razložili bomo tudi, kako se govor sploh prenaša prek omrežja IP in kateri

protokoli so najpomembnejši pri tem. V četrtem poglavju bomo predstavili koncept

omrežij naslednje generacije. Opisali bomo najpomembnejše elemente omrežij NGN, ki so

potrebni za realizacijo sistema za obveščanja velikega števila uporabnikov. V petem

poglavju bo podrobno predstavljen osrednji element omrežij naslednje generacije,

aplikacijski strežnik. Povedali bomo, kje se uporablja in kakšne storitve ponuja. V šestem

poglavju bodo predstavljeni programski jeziki in tehnologije, ki smo jih uporabili pri

načrtovanju in implementaciji sistema za obveščanje velikega števila uporabnikov. V

sedmem poglavju bomo opisali razvoj sistema, ki je predmet tega diplomskega dela.

Predstavili bomo ves postopek – od ideje do realizacije. Predstavili bomo končni izdelek in

opisali težave, na katere smo naleteli pri razvoju. Osmo poglavje je namenjeno primerjavi

delovanja sistema z delom operaterja. V zadnjem, devetem poglavju, je podan sklep

diplomskega dela.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 3

2 KOMUNIKACIJSKA OMREŽJA

Podatki, to so lahko na primer glas, slika, video, navadni podatki (številke, besedilo), se

na večjem območju od izvora do cilja prenašajo po omrežju vmesnih preklopnih vozlišč,

imenovanih usmerjevalniki ali centrale. V tem poglavju si bomo najprej ogledali in med

seboj primerjali osnovni vrsti preklapljanja v komunikacijskih omrežjih, vodovno in

paketno. To sta tradicionalna preklopna načina. Preostali načini preklapljanja so ponavadi

izpeljanke iz teh dveh osnovnih načinov. Izmed bolj znanih sta še asinhroni prenosni način

(ATM – Asynchronous Transfer Mode) in blokovno posredovanje (FR – Frame Relay).

Podrobneje se bomo seznanili le z vodovnim in paketnim preklapljanjem, saj nam bo

poznavanje teh dveh omrežij pomagalo pri razumevanju strukture in delovanja omrežij

naslednje generacije (NGN – Next Generation Network), ki so ravno posledica zlivanja in

združevanja različnih vrst omrežij v eno transparentno, tehnološko in storitveno pestro

omrežje. Naslednji razvojni korak z bolje definiranimi omrežnimi elementi, nalogami,

zmogljivostmi, protokoli in vmesniki je IP multimedijski podsistem (IMS – IP Multimedia

Subsystem), ki je danes označen kot potencialno izhodišče za oblikovanje dejanske

arhitekture, ki bo upoštevala tako fiksne kot mobilne vidike omrežij.

2.1 Vodovno preklapljanje

Vodovno preklapljanje (»circuit switching«) je danes prevladujoča tehnologija za

glasovne komunikacije [2]. Podatki se na večjem območju od izvora do cilja prenašajo po

omrežju vmesnih preklopnih vozlišč, imenovanih usmerjevalniki ali centrale. Central ne

zanima vsebina podatkov, ampak le premikajo podatke do cilja. Končne naprave, ki želijo

komunicirati, imenujemo postaje. To so lahko računalniki, terminali, telefoni in druge

komunikacijske naprave. Vsaka končna naprava je povezana na neko vozlišče, vsa vozlišča

skupaj s povezavami pa tvorijo omrežje (sl. 2.1). Pri tem načinu prenosa je točno določena

komunikacijska pot med dvema postajama za čas trajanja komunikacije oz. zveze med

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 4

njima. Pot je zaporedje vodov med vozlišči. Na vsakem vodu je neki kanal dodeljen samo

tej zvezi.

Komunikacija z uporabo vodovnega preklapljanja je sestavljena iz treh faz:

1. Vzpostavljanje zveze

Preden se lahko pošiljajo (podatkovni) signali, se mora vzpostaviti zveza od konca

do konca (od izvorne do ciljne postaje). V omrežju na sliki 2.1 na primer postaja A

pošlje zahtevo vozlišču 1 za vzpostavitev zveze do postaje B. Vozlišče 1 mora

izbrati naslednjo linijo v poti do vozlišča 3. To se zgodi na osnovi usmerjevalne

informacije, razpoložljivosti ali morda cene. V našem primeru izbere vozlišče 1

linijo do vozlišča 4, dodeli prost kanal na liniji 1-4 in pošlje vozlišču 4 zahtevo za

zvezo do postaje B. Preostanek poti se izbira podobno.

2. Prenos signalov

Ko je zveza vzpostavljena, se lahko prenašajo signali po omrežju od A do B. Signali

gredo najprej po A-1, nato se interno preklopijo skozi 1, nato gredo po kanalu 1-4,

se preklopijo skozi 4 in potujejo po kanalu 4-3, se preklopijo skozi 3 in potujejo po

3-B. V splošnem je zveza popolno dvosmerna.

3. Brisanje zveze

Po prenosu podatkov se zveza konča. Ponavadi jo konča ena od obeh postaj.

Slika 2.1: Prikaz vodovnega preklapljanja

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 5

2.2 Paketno preklapljanje

Medkrajevna vodovno preklapljana telekomunikacijska omrežja so bila v osnovi

razvita za glasovni promet. Bistvo teh omrežij je, da se viri v omrežju dodelijo določenemu

klicu oz. zvezi. To pomeni, da je zveza oz. vzpostavljena fizična povezava dobro

izkoriščena, če se po njej izvaja glasovni promet. Če prenašamo podatke, pa se pojavi ena

večja pomanjkljivost. Pri značilni zvezi, kot je na primer zveza terminal – gostiteljski

računalnik, se velik del časa ne prenaša nič. Torej je vodovno preklapljanje tu neučinkovito

v smislu izkoriščenosti povezave. To težavo rešuje paketno preklapljanje.

Pri paketnem preklapljanju se podatki prenašajo v paketih (značilna zgornja meja

dolžine paketov je okoli 1000 oktetov). Predolga sporočila se razbijejo v zaporedje

paketov. Vsak paket vsebuje uporabniške podatke in neko nadzorno informacijo, ki

vsebuje najmanj informacijo, potrebno za usmerjanje paketa skozi omrežje in predajo

izbranemu cilju.

Poglejmo omrežje na sliki 2.2, ki je paketno preklapljano. Vzemimo, da morajo biti

paketi poslani od postaje A do postaje B. Vsak paket bo vseboval nadzorno informacijo, ki

bo označevala, da je cilj paketa postaja B.

Slika 2.2: Prikaz paketnega preklapljanja

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 6

Prvi paket se najprej pošlje od postaje A do vozlišča 1. Ta paket shrani, izbere

naslednjo etapo na poti (na primer do vozlišča 3) in da paket v izhodno vrsto za izbrano

linijo (1 – 3) . Ko je ta prosta, se paket pošlje v vozlišče 3, ki ga bo poslalo v vozlišče 5, ta

pa končno do postaje B. Podobno velja za ostale pakete sporočila. Paketi, ki potujejo med

isto izvorno in ponorno točko, lahko gredo skozi omrežje preko različnih vozlišč (paket P3

na sl. 2.2). Pravilno zaporedje prispelih paketov, ki se ponovno združijo v originalno

sporočilo, zagotovi sprejemna stran.

2.3 Primerjava vodovnega in paketnega preklapljanja

Pri vodovnem preklapljanju se mora najprej skozi omrežje cilju poslati signal zahteve

po klicu za vzpostavitev zveze do cilja. Če cilj ni zaseden, pošlje nazaj signal sprejema

klica. Med zahtevo po klicu se v vsakem vozlišču pojavi zakasnitev zaradi procesiranja

zaradi vzpostavljanja poti. Pri povratnem signalu pa te zakasnitve ni več, ker je zveza že

vzpostavljena. Potem se sporočilo pošlje v enem bloku, brez omembe vredne zakasnitve v

preklopnih vozliščih. Vodovno preklapljanje je transparentno in zagotavlja konstantno

hitrost prenosa podatkov skozi omrežje.

Paketno preklapljanje ima vrsto prednosti pred vodovnim:

• Večja je linijska učinkovitost (izkoriščenost linij), ker lahko eno linijo

uporabljajo paketi iz različnih zvez. Postavijo se v vrsto in pošljejo naprej takoj,

ko je mogoče. Pri vodovnem preklapljanju pa so določene časovne reže na liniji

med vozliščema vnaprej prirejene eni zvezi s sinhronim časovnim

multipleksiranjem. Lahko se zgodi, da je linija večino časa prosta, če so reže

dodeljene zvezi, v kateri se nič ne pošilja.

• Paketno omrežje lahko izvaja pretvorbo podatkovne hitrosti. Pakete si lahko

izmenjujeta postaji z različnima podatkovnima hitrostma, ker je vsaka povezana

na svoje vozlišče s svojo podatkovno hitrostjo.

• Če v vodovno preklapljanem omrežju postane promet gost, so nekateri klici

blokirani. Paketno omrežje pa ponavadi odposlane pakete kljub velikemu

prometu sprejme za prenos, poveča pa se zakasnitev prenosa.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 7

2.4 Omrežja naslednje generacije - NGN

Razvoj tehnologij in poslovnih modelov vodi v konvergenco omrežij in storitev. NGN

predstavlja pojem, pod katerim se skriva poenotenje oz. povezanost obstoječih omrežij, ki

omogočajo prenos oz. uporabo storitev, temelječih na IP (Internet Protocol – internetni

protokol) protokolu. IP protokol je bil razvit posebej za medomrežno povezovanje.

Protokol se uporablja za prenos podatkov v paketno preklapljanih omrežjih, ki smo jih

opisali v podpoglavju 2.2. Koncept omrežij in storitev naslednje generacije izhaja iz

obstoječe situacije na področju telekomunikacij, ki temelji na hierarhični arhitekturi,

zagotovljeni kakovosti storitev, upravljanju, nadzoru ter standardiziranih rešitvah.

Ključnega pomena je načelo interoperabilnosti »vsega in med vsem«. Lahko rečemo, da

gre za (r)evolucijo v razvoju velikih telekomunikacijskih sistemov. Nekdaj izrazito

tehnološko razmišljanje je danes v prvi vrsti usmerjeno k uporabniku, storitvam in

vsebinam.

Koncept omrežij naslednje generacije se širi od VoP (Voice over Packet – govor preko

paketnega omrežja) in VoIP (Voice over IP – govor prek IP), preko NGN vse do danes, ko

govorimo o IMS konceptu. Pri tem se poglavitne smernice ohranjajo, spreminjajo se le

imena, tehnološke rešitve pa se dograjujejo in prilagajajo realnim okoljem, v katerih naj bi

zaživele. Razvojni trendi v telekomunikacijah so usmerjeni k prehajanju na širokopasovna

paketna omrežja, razvoju novih storitev in zagotavljanju vsebin. Koncept NGN ne

opredeljuje sistemov podrobno, temveč le načela in cilje, po katerih naj bodo načrtovani.

Arhitekturna zasnova novih komunikacijskih sistemov je izrazito slojevita. Takšen

pristop pomeni večjo transparentnost in modularnost. Hkrati zagotavlja pregled

zmogljivosti in nalog, ki jih različni deli omrežja opravljajo. Po načelih koncepta omrežij

naslednje generacije sistem jasno ločuje sloj prenosa podatkov, sloj krmiljenja, storitve in

aplikacije ter sloj nadzora omrežja z ustreznimi podpornimi sistemi (beleženje,

zaračunavanje, statistična obdelava ipd.). Za komunikacije skrbijo protokoli, med katerimi

je bil pred leti najpomembnejši H.323, danes pa so to SIP (Session Initiation Protocol –

protokol za zagon seje), MGCP (Media Gateway Control Protocol – krmilni protokol za

nadzor medijskih prehodov), H.248/Megaco in vmesniki, kamor sodijo Parlay/Parlay X,

spletne storitve, XML (eXtensible Markup Language – razširljiv označevalni jezik) ipd. [7]

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 8

3 GOVOR PREK IP

Še pred nekaj leti je bilo precej dvomljivcev glede prenosa govora prek IP protokola.

Danes je teh vse manj, eden od razlogov pa je tudi ta, da uporabniki šele spoznavajo nove

možnosti, ki jih prinaša IP protokol. Ideja prenosa govora prek podatkovnih omrežij sicer

ni novost, kot bi marsikdo pomislil. V svojih prvih korakih pred desetletji je bil namen

predvsem zniževanje stroškov komunikacije. O kakršnihkoli dodatnih možnostih,

povezanih s tovrstno komunikacijo, ni bilo govora. Danes, ko postajajo uporabniki vse

zahtevnejši ter iščejo nove možnosti in storitve, se je pokazala še večja potreba po prehodu

govornega prometa na IP omrežja. Nesporno je prednost prenosa govora prek IP protokola

prav v novih storitvah ali lažji izvedbi obstoječih.

V tem poglavju bomo predstavili govor prek IP ter navedli nekaj dejstev, zakaj postaja

vedno bolj razširjen. Razložili bomo tudi, kako se govor sploh prenaša prek omrežja IP in

kateri protokoli so najpomembnejši pri tem.

3.1 Zakaj VoIP?

Govor prek IP preprosto pomeni prenos govornega prometa s protokolom IP.

Pravzaprav bi bilo bolj pravilno reči prenos glasovnega prometa (»voice«). Govor prek IP

ni isto kot govor prek interneta1, saj VoIP ne pomeni avtomatično, da se govor prenaša

prek interneta. V njem so včasih še težave z zagotavljanjem visokokakovostnega prenosa

govora, vendar je tudi teh vse manj. Problem se pojavlja predvsem v slabo načrtovanih

omrežjih [2].

1 V primeru internetne telefonije se za prenosno pot uporablja internet z vsemi svojimi morebitnimi

negativnimi vplivi na kvaliteto storitve. VoIP je moč izvesti tudi po lastnih poteh, na katerih lahko ponudnik

sam zagotavlja QoS od vstopne do končne točke, česar pri internetu praktično ni moč zagotoviti.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 9

Razvoj gre pravzaprav v smeri h »carrier-grade VoIP«. Temu bi lahko rekli tudi VoIP

na operaterski stopnji. S tem so mišljena omrežja VoIP, ki bi se v razpoložljivosti,

kapaciteti, zakasnitvah, kakovosti govora ipd. lahko primerjala z današnjimi običajnimi

vodovno preklapljanimi telefonskimi omrežji. Zaradi napredka v internetu (rast pasovnih

širin, izboljšana strojna oprema, protokoli …) in napredka algoritmov za kodiranje in

prenos govora lahko že danes govorimo o govoru prek interneta na operaterski stopnji.

Internetna telefonija naj bi pomenila telefonsko storitev prek IP, ki uporablja klasični

internetni pristop. To pomeni, da je nadzor storitve v sistemih končnih uporabnikov, na

primer v PC-jih. Protokol, ki omogoča, da je nadzor storitve v končnih sistemih, se

imenuje SIP. Protokol SIP bomo podrobneje opisali v nadaljevanju.

IP telefonija naj bi pomenila telefonsko storitev prek IP, pri kateri pa se nadzor storitve

zagotavlja z inteligenco znotraj omrežja, podobno kot v tradicionalnem telefonskem

omrežju, kjer so terminali ponavadi poceni naprave z malo funkcijami. Dejansko

opravljanje povezave prek omrežja izvajajo centrale, povezane na terminalsko opremo.

IP je privlačna izbira za prenos govora iz več vzrokov:

• Nižja cena opreme in obratovanja: sistemi za vodovno preklapljanje so ponavadi

lastniški. Sistem od določenega proizvajalca uporablja njegovo lastno strojno

opremo in operacijski sistem, aplikacije pa uporabljajo njegovo lastno programsko

opremo. Ko se operater enkrat odloči za določenega proizvajalca, je popolnoma

vezan nanj. V svetu IP je drugače. Večina strojne opreme je standardna in

operacijski sistem in aplikacije tudi niso tako tesno vezane na strojno opremo. Tako

imajo operaterji več možnosti izbire.

• Integriranje govornih in podatkovnih aplikacij – konvergenčne aplikacije: IP je

danes standard za podatkovne aplikacije. To pomeni za vse vrste aplikacij – od

elektronske pošte do brskanja po spletu in elektronskega poslovanja. Če tem

storitvam dodamo še govor, dobimo množico naprednih storitev, ki temeljijo na

integraciji - konvergenci obojega. Obstaja že kar nekaj konvergenčnih aplikacij, ki

združujejo govorne in podatkovne funkcije: univerzalno sporočanje, govorni

portali, klicni centri IP, govorni dostop do spletnih vsebin, aplikacije, ki povezujejo

SMS s spletnimi ali govornimi storitvami in podobno ...

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 10

• Potencialno nižje zahteve po pasovni širini: vodovno preklapljana telefonska

omrežja prenašajo govor s hitrostjo 64 kbps. Ta hitrost je dobljena z digitalizacijo

PCM (Pulse-Code Modulation – pulzno-kodna modulacija) z 8000 otipki v sekundi

in njihovo predstavitvijo z 8 biti. Za standardno telefonijo se uporablja ta način,

obstaja pa še veliko drugih kodirnih načinov, ki uporabljajo bolj izpopolnjene

kodirne algoritme in omogočajo prenos govora z manjšimi hitrostmi (npr. 32, 16,

6.3, 5.3 kbps). Nekateri od teh znajo tudi izločati tišino, tako da se promet prenaša

samo, ko je kaj rečeno. Rešitve za VoIP na splošno podpirajo te kodirne načine.

Prav tako pa standardi za VoIP omogočajo, da se konca klica pogajata, kateri način

bo uporabljen. Tako naj bi bil VoIP zmožen zmanjšati potrebe po pasovni širini na

eno osmino tiste, ki je uporabljena v vodovnih omrežjih.

• Splošna razširjenost IP-ja: IP je danes praktično povsod, celo v dlančnikih in

različnih brezžičnih napravah. Posledica tega je, da je znanje o IP zelo razširjeno in

da obstaja ogromno podjetij za razvijanje na njem temelječih aplikacij.

Da bi VoIP lahko resnično konkuriral vodovno preklapljani telefoniji, mora zagotavljati

enako zanesljivost in kakovost govora kot slednja. To pa pomeni, da mora zagotavljati

99.999 – odstotno razpoložljivost (»pet devetk«), ter kakovost govora iz fiksne telefonije.

Če hoče VoIP resno konkurirati tehnologiji z vodovnim preklapljanjem, mora biti kakovost

govora vsaj tako dobra kot v današnjih telefonskih omrežjih in se ne sme spreminjati.

Govorni promet ima drugačne zahteve glede kakovosti kot podatkovni, v nekaterih

pogledih prav nasprotne. Pri govoru je sprejemljiv večji odstotek izgubljenih paketov,

vendar mora biti manjši od 5 odstotkov. Nasprotno pa je zelo zahteven glede zakasnitve.

Priporočilo ITU-T (International Telecommunication Union – Telecommunication

Standardization Sector – Mednarodna telekomunikacijska zveza - sektor za standardizacijo

telekomunikacij) pravi, da mora biti krožna zakasnitev pri telefoniji 300 ms ali manj.

Druga pomembna zahteva pri govoru je, da mora biti čim manjše trepetanje (»jitter«).

To pomeni, da četudi obstaja določena zakasnitev, mora biti vsaj konstantna. To dosežemo

z medpomnilniki (»buffer«) za trepetanje, kjer se paketi shranijo, da se lahko redno

predvajajo sprejemniku. Žal pa medpomnjenje nekoliko prispeva k zakasnitvi. Trepetanje v

omrežjih IP se pojavlja iz dveh razlogov. Prvi je ta, da paketi lahko od oddajnika do

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 11

sprejemnika potujejo po različnih poteh. Drugi pa je, da paketi, četudi potujejo po isti poti,

lahko različno dolgo čakajo v vrstah, ker so omrežni viri, kot so čakalne vrste v

usmerjevalnikih, poleg govora namenjene še za drug promet. Za visoko kakovost se ne

sme med govorcem in poslušalcem izgubiti skoraj nič govora. Ravno zaradi polnih vrst v

paketnih omrežjih pa se lahko paketi izgubljajo.

Ena od velikih prednosti VoIP je, da bi lahko uporabljali eno omrežje za zelo različne

aplikacije, na primer podatke, govor in video. Res pa je, da je treba v enem omrežju

različne vrste prometa obravnavati različno. Danes predstavlja VoIP že resno konkurenco

vodovno preklapljani telefoniji. Nekateri današnji prehodi VoIP že lahko obravnavajo več

gigabitov govornega prometa na sekundo. Vse to z opremo, ki zavzema zelo malo prostora.

3.2 Prenos govora z IP

Za prenos govora prek IP se uporablja UDP (User Datagram Protocol – uporabniški

datagramski protokol) in TCP (Transmission Control Protocol – protokol za krmiljenje

prenosa), čeprav UDP ne zagotavlja zanesljivega prenosa, TCP pa. Pri pogovoru nas toliko

ne moti, če se občasno izgubita eden ali dva paketa, ker govorni promet na splošno

uporablja kratke pakete (s trajanjem od 10 do 40 ms). Sodobne kodirne metode za govor

delujejo bolje, če ni izgub paketov, vendar pa vseeno lahko kodirni in dekodirni algoritmi

občasne izgube nekako popravijo, tako da niso zelo opazne. TCP potrebuje določen čas za

vzpostavitev povezave in prihaja tudi do zakasnitev zaradi potrjevanja in ponovnih oddaj

ob izgubi paketov. To pa nam seveda ni všeč pri prenosu govora. Pomembno je tudi, da so

izgube dovolj enakomerno porazdeljene. Izgube skupin zaporednih paketov lahko

odpravimo z uporabo metod za upravljanje in rezervacijo virov. Pri UDP je možno tudi, da

se spremeni vrstni red paketov, vendar pa je to malo verjetno, saj je pri VoIP narejeno

tako, da v eni seji oz. klicu vsi paketi potujejo po eni poti. Do pomešanja vrstnega reda

paketov lahko pride le v primeru odpovedi. UDP v osnovi ni bil narejen za prenos govora,

vendar pa se je izkazal za primernejšega kot TCP. Nekatere slabosti pri UDP, ki so moteče

pri aplikacijah v realnem času (govorne in video aplikacije), pa odpravljamo z drugimi

protokoli. Eden izmed njih je RTP (Real-time Transport Protocol – transportni protokol v

realnem času).

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 12

3.3 RTP – transportni protokol za realni čas

Multimedijske aplikacije v realnem času, kot so internetni radio, internetna telefonija,

videokonference, video na zahtevo, potrebujejo ustrezen transportni protokol. Tako je

nastal RTP, ki se še zdaj na široko uporablja. Poznamo pa tudi krmilni protokol RTP-ja

(RTCP – RTP Control Protocol). Določeno je bilo, da se bo RTP nahajal v uporabniškem

delu protokolnega sklada in da se bo izvajal prek UDP. Na splošno bi lahko rekli, da RTP

zagotavlja storitev prenosa od konca do konca. To je posebej primerno za aplikacije, ki

oddajajo podatke v realnem času.

Delovanje RTP: Multimedijska aplikacija je sestavljena iz več avdio, video, tekstovnih

in tudi drugih tokov. Speljani so v knjižnico RTP, ki je v uporabniškem prostoru skupaj z

aplikacijo. Ta knjižnica nato tokove multipleksira in kodira v pakete RTP, te pa pošilja v

vtičnico (»socket«). Na drugem koncu vtičnice (v jedru operacijskega sistema) se iz njih

tvorijo paketi UDP in ugnezdijo v pakete IP. Če je računalnik priključen na ethernet, se

paketi IP za prenos ugnezdijo v ethernet okvirje (sl. 3.1).

Slika 3.1: Lega RTP-ja v protokolnem skladu in ugnezdenje paketa

Čeprav morda zgleda, kot da je RTP aplikacijski protokol v aplikacijskem sloju, temu

ni povsem tako. Je splošen protokol, od aplikacije neodvisen, in le zagotavlja transportne

zmožnosti. Najbolje je reči, da je transportni protokol implementiran v aplikacijskem sloju.

Paketi RTP vsebujejo zaporedno številko, da lahko aplikacija, ki uporablja RTP,

odkrije, da se je nekaj paketov izgubilo, ter da zagotovi dostavo paketov v pravilnem

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 13

vrstnem redu. RTP paketi vsebujejo tudi časovni zaznamek, ki ustreza času, ko je bil paket

ustvarjen z vzorčenjem njegovega izvornega medijskega toka. Ciljna aplikacija lahko

uporabi ta zaznamek za zagotovitev sinhronega predvajanja ciljnemu uporabniku ter za

izračun zakasnitve in trepetanja.

3.4 H.323

V tradicionalnih telefonskih omrežjih se pred in med klicem izvajajo posebni

signalizacijski protokoli za zahtevo po vzpostavitvi klica, spremljanje napredovanja klica

in za končanje seje. Tudi v sistemih VoIP so potrebni signalizacijski protokoli, ki

opravljajo isto funkcijo. V ta namen je ITU-T razvil priporočilo H.323, ki je bil prvi

uporaben standard v omrežjih VoIP. Danes je že nekoliko zastarel, saj ga je nadomestil SIP

protokol. Prva različica H.323 je bila izdana leta 1996. Bila je razvita za multimedijske

komunikacije prek LAN-ov (Local Area Network – lokalno omrežje). V tej različici še

niso bile implementirane funkcije, potrebne za podporo VoIP v širšem okolju. Zato je ITU-

T leta 1998 izdal različico 2, katera je vsebovala nekaj novih funkcij in kmalu so začeli

H.323 bolj uporabljati. Kasneje so specifikacijo še izpopolnili in prišle so nove različice z

novimi funkcijami. Zadnja različica H.323 (iz leta 2006) nosi številko 6 [14].

3.4.1 Arhitektura H.323

H.323 ni oz. ne specificira enega samega protokola. Je eno tistih priporočil ITU-T, ki

specificirajo neko celotno arhitekturo in metodologijo ter vključujejo več drugih priporočil

(npr. H.225 in H.245). Doseg H.323 je prikazan na sliki 3.2. Arhitektura vsebuje terminale

H.323, prehode, vratarje in enote večtočkovnih krmilnikov (MCU – Multipoint Controller

Unit). Namen H.323 je omogočiti izmenjavo medijskih tokov med končnimi točkami

H.323. Končna točka je terminal, prehod ali MCU.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 14

Slika 3.2: Doseg H.323

Terminal H.323 je končna točka, ki ponuja komunikacijo v realnem času z drugimi

končnimi točkami H.323. Ponavadi je terminal komunikacijska naprava končnega

uporabnika, ki podpira vsaj en avdio kodek, lahko pa še druge avdio ali video kodeke.

Prehod je končna točka H.323, ki ponuja storitve prevajanja med omrežjem H.323 in

drugo vrsto omrežja, na primer PSTN (Public Switched Telephone Network – javno

komutirano telefonsko omrežje) ali ISDN (Integrated Services Digital Network – digitalno

omrežje z integriranimi storitvami). Ena stran prehoda podpira signalizacijo H.323 in

zaključuje paketne medije v skladu z zahtevami H.323, druga stran prehoda pa je vmesnik

proti vodovno preklapljanemu omrežju in podpira prenosne lastnosti in signalizacijske

protokole tega omrežja. Prevajanje med signalizacijskimi protokoli in medijskimi formati

ene in druge strani se izvaja znotraj prehoda in je transparentno za druga vozlišča vodovno

preklapljanega omrežja in omrežja H.323.

Vratar je opcijski element znotraj omrežja H.323. Kadar je prisoten, nadzira terminale

H.323, prehode in MCU-je. Vratar daje dovoljenja za omrežni dostop eni ali več končnim

točkam in lahko dovoli ali zavrne klic od končne točke, ki jo ima pod nadzorom. Vratar

lahko izvaja tudi storitve nadzora pasovne širine in storitve prevajanja naslovov in s tem

omogoča uporabo aliasov v omrežju.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 15

MCU je končna točka H.323, ki upravlja večtočkovne konference med tremi ali več

terminali ali prehodi. Za takšne konference MCU vzpostavi medije, katerih skupno

uporabo lahko omogoči z oddajo nabora zmožnosti različnim udeležencem konference.

MCU lahko v primeru, da se konferenci pridružijo nove končne točke ali da jo nekatere

končne točke zapustijo, nabor zmožnosti spremeni.

3.4.2 Klicni scenarij H.323

Pred pričetkom klicne signalizacije mora končna točka najprej dobiti dovoljenje od

vratarja. Lahko ga dobi z izmenjavo sporočil ARQ/ACF (ali pa ji ga je dal vratar vnaprej

pri registraciji). Sporočilo ARQ (Admission request – zahteva sprejema) vsebuje

zahtevano pasovno širino za celoten medijski tok. Sporočilo ACF (Admission Confirm –

potrditev sprejema) odobri zahtevo (sl. 3.3). Sledi izmenjava sporočil H.245 OLC (Open

Logical Channel – odpri logični kanal), ki so namenjena odprtju logičnega kanala za

vzpostavitev medijskega toka od ene končne točke do druge. Medijski tokovi RTP potujejo

vedno neposredno med končnima točkama. Po končanem prenosu medija stran, ki je

zahtevala odprtje logičnega kanala, pošlje sporočilo H.245 CLC (Close Logical Channel –

zapri logični kanal), ki pomeni zahtevo po zaprtju logičnega kanala. Seja se konča s

sporočilom »End Session« v eni in z enakim odgovorom nanj v drugi smeri. Na koncu

klica mora končna točka obvestiti vratarja, da je klic končan.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 16

Slika 3.3: Scenarij klica H.323

3.5 SIP – protokol za zagon seje

Včasih je SIP protokol predstavljal močno alternativo H.323, danes pa ga je že skoraj

povsem izpodrinil. SIP je prožnejši, preprostejši kot H.323, lažji za implementacijo,

primernejši za pametne uporabniške naprave in za implementacijo naprednih storitev.

SIP so zasnovali kot del arhitekture za multimedijske podatke. Kot tak se SIP uporablja

skupaj z mnogimi drugimi protokoli, kot so SDP (Session Description Protocol – protokol

za opis seje), RTSP (Real-Time Streaming Protocol – protokol strujanja v realnem času) in

SAP (Session Announcement Protocol – protokol za najavo seje).

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 17

SIP je signalizacijski protokol, ki skrbi za vzpostavljanje, spreminjanje in sproščanje

multimedijskih sej [2] [15]. SIP se skupaj z drugimi protokoli uporablja za opisovanje

lastnosti seje morebitnim udeležencem seje. Čeprav je SIP napisan tako, da medij,

uporabljen v seji lahko uporablja katerikoli transportni protokol, se mediji običajno

prenašajo z RTP. Zelo verjetno je, da sporočila SIP potujejo skozi nekatere iste fizične

naprave kot prenašani medij. Kljub temu pa SIP obravnavamo ločeno od medijev (sl. 3.4).

Ločitev je pomembna, ker lahko signalizacija potuje skozi enega ali več proksijev ali

preusmeritvenih strežnikov, medijski tokovi pa po neposrednejši poti. Strežnik proksi (tudi

posredovalni strežnik), deluje podobno kot strežnik proksi za spletni dostop. Odjemalci

pošiljajo zahteve proksiju in ta jih obravnava sam ali pa pošlje drugim strežnikom, morda

po izvedbi določenega prevajanja. Tem drugim strežnikom se zdi, kot da je sporočilo prišlo

od proksija in ne od kakšnega osebka, skritega za njim. Ker proksi sprejema zahteve in jih

oddaja, vsebuje funkcionalnost strežnika in odjemalca.

Slika 3.4: Logična ločitev signalizacije SIP in medijev

3.5.1 Arhitektura SIP

SIP definira dva osnovna razreda omrežnih osebkov, to so odjemalci in strežniki.

Odjemalec (UAC – User Agent Client) je aplikacijski program, ki pošilja zahteve SIP.

Strežnik (UAS – User Agent Server) je osebek, ki odgovarja na zahteve. SIP je torej

protokol odjemalec – strežnik. Klici VoIP, ki uporabljajo SIP, se začenjajo pri odjemalcu

in zaključijo pri strežniku. Odjemalec je lahko v uporabnikovi napravi, ki je lahko na

primer PC s slušalkami ali SIP telefon, lahko pa se nahaja tudi na isti platformi kot

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 18

strežnik. SIP namreč omogoča uporabo proksi strežnikov, ki so hkrati odjemalci in

strežniki. Slika 3.5 prikazuje delovanje strežnika proksi. Vidimo, da se lahko

funkcionalnost takšnega strežnika uporabi za preusmeritev klica, usmerjanje po dnevnem

času ali sledilne storitve.

Slika 3.5: Delovanje strežnika proksi

3.5.2 Vzpostavljanje klica SIP

Gledano na visokem nivoju, kot prikazuje slika 3.6, je vzpostavljanje klica SIP

preprosto. Proces pošlje sporočilo SIP INVITE, ki se uporablja od kličočega h klicanemu.

To sporočilo povabi klicanega k sodelovanju v seji, torej klicu. Na INVITE se lahko pošlje

več odgovorov, preden klicana stran sprejme sodelovanje v klicu. Kličoči je na primer

lahko informiran, da je klic postavljen v vrsto ali da je klicani opozarjan (da mu zvoni

telefon). Nato klicani odgovori na klic, pri čemer se tvori odgovor OK in ta se pošlje

kličočemu. Kličoči odjemalec potrdi prejem odgovora klicanega z oddajo sporočila ACK.

Uporaba zaporedja INVITE, OK in ACK pomeni, da je za vzpostavljanje klica

uporabljeno tako imenovano »trojno rokovanje«. Nato se izmenjujejo podatki oz. medij.

Medij je običajno govor, lahko pa je tudi video ali kaj drugega. Na koncu ena od strani

odloži pogovorko, kar povzroči, da se pošlje sporočilo BYE. Stran, ki prejme BYE, pošlje

OK, da potrdi njegov prejem. Tako se klic konča.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 19

Slika 3.6: Scenarij vzpostavljanja klica SIP

V osnovi je definiranih šest različnih SIP metod. To so INVITE, ACK, OPTIONS,

BYE, CANCEL in REGISTER. Pregled metod podaja tabela 3.1.

Tabela 3.1: Metode SIP, definirane v osnovni specifikaciji

Metoda Opis

INVITE Zahteva po pričetku seje

ACK Potrditev, da je bil sprejet končni odgovor

BYE Konča sejo

OPTIONS Povpraševanje strežnika po njegovih zmožnostih

CANCEL Končanje obstoječe zahteve

REGISTER Informira strežnik o uporabnikovi trenutni lokaciji

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 20

3.5.3 Prednosti SIP-a pred drugimi signalizacijskimi protokoli

Vprašamo se lahko, kaj je tako posebnega pri SIP protokolu, kar ga dela zanimivega.

Vsak protokol mora za klicno signalizacijo imeti način, da ena stran pokliče drugo, za

oznanitev pripravljenosti na sodelovanje v klicu in za njegovo sprostitev. SIP izvaja te

akcije in še malenkost več. Kar pa SIP loči od drugih protokolov in predvsem od

protokolov tradicionalne telefonije je to, da nam ponuja veliko prožnost. SIP-a ne zanima,

katera vrsta medijev se bo izmenjavala med sejo ali vrsta transporta, uporabljenega za te

medije. Dejansko se SIP lahko izvaja prek mnogo različnih transportnih protokolov.

Sporočila SIP lahko vsebujejo veliko opcijskih polj, ki lahko vsebujejo uporabniško

specificirane informacije. Ta pristop omogoča pošiljanje nestandardnih uporabniško

specificiranih informacij, ki omogočajo, da uporabniki in naprave sprejemajo inteligentne

odločitve za ravnanje s klici. Sporočilo INVITE lahko na primer vsebuje polje o predmetu

(»subject«) klica. Oseba, ki sprejme INVITE, se tako lahko na podlagi informacije o

kličočem in predmetu klica odloči, ali bo sprejela ali zavrnila klic.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 21

4 KONCEPT NGN – ELEMENTI OMREŽJA

V tem poglavju bomo predstavili koncept omrežij naslednje generacije (NGN). Na

kratko si bomo ogledali arhitekturo NGN ter opisali ključne entitete NGN okolja.

Koncept omrežij naslednje generacije temelji na nekaterih osnovnih arhitekturnih

načelih, ki predstavljajo odločilno točko razlikovanja med klasičnimi in novimi

telekomunikacijskimi sistemi. Arhitektura NGN je osnovana na logično ločenih ravninah,

ter predstavlja preplet vseh osnovnih in dodatnih funkcionalnosti, ki so poznane že v

klasičnih telekomunikacijskih sistemih. To so funkcionalnost za zagotavljanje krmiljenja,

zagotavljanje storitev, delo z medijem in povezljivost v druga omrežja [6] [7].

Sistem temelji na paketnem transportnem omrežju in novih internetno orientiranih

tehnologijah. Povezljivost med omrežnimi elementi, ravninami in celotnim sistemom proti

zunanjemu okolju je osnovana na standardiziranih vmesnikih. To zagotavlja odprtost in

medsebojno povezljivost različnih operaterjev ter tudi ponudnikov in uporabnikov.

Standardiziranost omogoča tudi bodoče posodobitve in nadgradnje sistema kot celote.

Ključnega pomena pri načrtovanju arhitekture in pripadajočih funkcionalnosti je izrazita

storitvena orientiranost. Namen NGN je vzpostaviti zmogljivo, prilagodljivo in uporabniku

prijazno okolje za razvoj in izvajanje uporabniško zanimivih storitev.

Arhitektura NGN je sestavljena iz treh ravnin: dostopovna in transportna ravnina,

krmilna in signalizacijska ravnina ter storitvena ravnina (sl. 4.1).

Dostopovna in transportna ravnina temelji na paketni hrbtenici. Na tej ravnini se

nahajajo tudi NGN uporabniki, ki preko terminalne opreme z ustrezno protokolno podporo

neposredno dostopajo do krmilne in signalizacijske ravnine (tipični podprti protokoli so

SIP, H.323, MGCP/Megaco). Dostop do krmilne ravnine iz hrbteničnih omrežij je

omogočen preko robnega nadzornika sej (SBC – Session Border Controller), ki skrbi za

zaščito krmilne ravnine in skrbi za pravilno izvajanje sistemske politike.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 22

Slika 4.1: Arhitektura NGN

Na krmilni ravnini se nahajajo funkcionalnosti, ki omogočajo izvedbo celovite

uporabniške in medsistemske komunikacije ter funkcionalnosti usmerjanja, proženja in

zagotavljanja storitev. Najpomembnejši omrežni element na tej ravnini je klicni strežnik.

Klicni strežnik opravlja signalizacijo in usmerjanje, krmili delovanje ostalih omrežnih

elementov, namenjen pa je tudi proženju in izvajanju storitev. Poleg modula za krmiljenje

in signalizacijo so pomembne funkcionalnosti, ki jih klicni strežnik implementira, krmilnik

medijskih prehodov (MGCF – Media Gateway Control Function) in krmilnik prehoda v

druga omrežja (BGCF – Breakout Gateway Control Function) ter lokalna baza podatkov z

uporabniškimi in storitvenimi podatki. Na robovih te ravnine so nameščeni različni tipi

medijskih in dostopovnih prehodov (MGW – Media/Access Gateway), ki predstavljajo

vstopno točko različnim med seboj tehnološko nezdružljivim dostopovnim omrežjem ter

drugim ne-NGN hrbteničnim omrežjem (npr. PSTN/ISDN). Na krmilno ravnino sodijo tudi

signalizacijski prehodi (SGW – Signaling Gateway), ki v sodelovanju z medijskimi

prehodi omogočajo medsistemsko povezljivost omrežja. Tu so tudi medijski strežniki z viri

za delo z medijem.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 23

Aplikacijska ravnina je ostalim ravninam dosegljiva preko klicnega strežnika. Na njej

se nahajajo aplikacijski strežniki, ki predstavljajo funkcionalnosti za gostovanje, izvajanje

ter načrtovanje in razvoj kompleksnejših storitev z dodano vrednostjo. Aplikacijski

strežniki delujejo v tesnem sodelovanju s klicnim strežnikom in prevzemajo tisti del

storitvene logike, ki je za klicni strežnik preobsežen, hkrati pa časovno in zanesljivo

izvajanje le-te ni kritično.

4.1 CS – Klicni strežnik

Klicni strežnik, pogosto imenovan tudi programsko stikalo (»Softswitch«), je osrednja

naprava v telefonskem omrežju, ki povezuje klice iz ene telefonske linije na drugo. V

bistvu je to programska oprema, ki teče na računalniškem sistemu. Včasih je to delo

opravljala strojna oprema s fizičnimi preklopnimi elementi, ki je usmerjala klice. Klicni

strežnik se ponavadi uporablja za nadzor povezav na meji med vodovno preklapljanim in

paketnim omrežjem. Klicni strežnik je ena sama naprava, ki vsebuje preklopno logiko in

preklopni sistem. Med nalogami, ki jih opravlja klicni strežnik, so najpomembnejše

zaračunavanje, usmerjanje klicev, signalizacija in klicne storitve. Poleg teh nalog klicni

strežnik krmili tudi medijske prehode. Nadzoruje lahko več različnih medijskih prehodov

na geografsko razpršenem področju preko TCP/IP povezav. Klicni strežnik poleg

osnovnega krmiljenja klicev lahko opravlja tudi nekatere druge storitve, kot so

preusmeritev klica, čakajoči klic, vrnitev zadnjega klica idr. Za zagotavljanje vseh teh

storitev klicni strežnik pogosto sodeluje tudi z medijskim strežnikom.

V IMS omrežjih je klicni strežnik predstavljen kot kombinacija različnih elementov za

nadzor klicnih sej (CSCF – Call Session Control Function) in krmilnikov medijskih

prehodov MGC.

V čistih SIP okoljih SIP uporablja še proksi strežnike kot pomoč pri usmerjanju zahtev

do uporabnikove trenutne lokacije, avtentikaciji in avtorizaciji uporabnikov storitev.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 24

4.2 AS – Aplikacijski strežnik

Aplikacijski strežnik nudi podobna funkcionalna opravila, kot jih ima tradicionalni

gostujoči računalnik kot odziv na zahtevo terminala ali katere druge komunikacijske

naprave. V modelu odjemalec/strežnik se te storitve nudijo za celotna opravila ali pa le za

posamezne dele opravil. Storitve se zahtevajo s klici oddaljenih procedur (RPC – Remote

Procedure Call) ali podobnimi tehnologijami. Pri določenem opravilu lahko sodeluje več

aplikacijskih strežnikov. Strežniki lahko imajo različne operacijske sisteme in lahko jih

sestavlja različna strojna oprema.

V povezavi z aplikacijskim strežnikom pogosto najdemo tudi Parlay X prehod, ki na

eni strani (proti uporabniku) izpostavlja vmesnik spletnih storitev, na drugi pa vmesnik za

komunikacijo s centralnim vozliščem (klicni strežnik ali TDM centrala, odvisno od

implementacije proizvajalca Parlay X prehoda). Popularna storitev, ki jo lahko

implementiramo s Parlay X in aplikacijskimi strežniki, je klik na izbiranje (»Click-to-

dial«). Gre za storitev, kjer na primer uporabnik v brskalniku na domačem računalniku

klikne na neko telefonsko številko in se klic avtomatsko vzpostavi. Parlay X omogoča še

celo paleto zanimivih storitev. Ena izmed njih je tudi sistem za obveščanje velikega števila

uporabnikov, kar je tema te diplomske naloge.

Podrobno bomo aplikacijski strežnik in Parlay X prehod ter njuno vlogo v omrežjih

naslednje generacije opisali v naslednjih poglavjih.

4.3 Prehodi

Za skupno delovanje omrežij VoIP in vodovno preklapljanih uporabljamo prehode.

Osnovna naloga prehoda je, da naredi, da omrežja različnih vrst drugo drugemu delujejo

kot omrežja iste vrste. Omrežja VoIP morajo sprejemati signalizacijo in medije iz vodovno

preklapljanih omrežij v prvotnem formatu in jih pretvoriti v format, uporabljen v omrežju

IP. Ker lahko signalizacija potuje po poti, zelo različni od poti medijev, uporabljamo dve

vrsti prehodov. Prvi so prehodi za pretvorbo signalizacije (SGW), drugi pa prehodi za

pretvorbo medijev (MGW). Ker obstaja logična ločitev, ni nobenega vzroka, da ne bi bila

ločitev tudi fizična. Fizična ločitev prehodov pa ima tudi nekatere prednosti. Omogoča, da

medijska pretvorba poteka čim bliže izvoru ali cilju prometa v vodovno preklapljanem

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 25

omrežju, medtem ko so funkcije ravnanja s klici centralizirane. Prednost je tudi ta, da

lahko majhno število krmilnikov prehodov z bolj osrednjo lego krmili več prehodov, ki se

nahajajo na različnih mestih.

MGW pogosto vsebuje tudi prehod VoiceXML (Voice eXtensible Markup Language –

glasovni razširljivi označevalni jezik) in tako MGW zagotavlja okolje za interpretiranje in

izvajanje skript VoiceXML, ki so lahko shranjena lokalno na MGW-ju ali pa jih dinamično

generira poljubni zunanji aplikacijski strežnik. MGW se lahko povezuje po protokolu IP s

TTS komponentami (Text-To-Speech – sinteza govora iz besedila), ASR (Automatic

Speech Recognition – samodejna razpoznava govora) in aplikacijskim strežnikom.

Vsakega od njih uporablja za določene naloge. TTS strežnik uporablja za sintezo govora iz

besedila, ASR strežnik za samodejno razpoznavanje govora, aplikacijski strežnik pa za

generiranje VoiceXML skript in bazo podatkov. Aplikacijski strežnik MGW-ju posreduje

VoiceXML skripte, ki krmilijo povezovanje MGW-ja s TTS in ASR strežnikom.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 26

5 APLIKACIJSKI STREŽNIK

V tem poglavju bomo razložili pojem aplikacijskega strežnika. Povedali bomo, kaj je

aplikacijski strežnik, kje se uporablja ter kakšne storitve ponuja.

V računalništvu ima strežnik dva pomena:

• program, ki daje na voljo storitve drugim programom,

• računalnik v omrežju, ki daje svoja sredstva (npr. disk) v uporabo drugim

računalnikom.

Na splošno je strežnik programska oprema (strežniški operacijski sistem oz. strežniški

program), ki zagotavlja dostop do storitev drugim računalniškim programom na istem ali

drugem računalniku. Ponavadi je strežnik v računalniškem omrežju »odjemalec/strežnik«

enojen specializiran računalnik (strežniška strojna oprema), ki služi shranjevanju in

upravljanju s podatki in drugimi viri iz ene centralizirane lokacije. Strežnik ima nameščeno

strežniško programsko opremo, ki je izdelana za izvajanje točno določenih nalog in

storitev, kot je strežba zahtevanih podatkov, upravljanje tiskalnikov, gostovanje internetne

povezave in strežba ostalih informacijskih storitev v računalniškem omrežju.

Definicija aplikacijskega strežnika

Izraz aplikacijski strežnik se ne nanaša nujno na posebej specializiran računalnik v

omrežju, ampak je ponavadi kar kos programske opreme, ki znotraj večjega sistema služi

svojemu namenu. Zelo splošno bi lahko rekli, da je vsaka programska oprema, ki s

centralizirane lokacije procesira podatke za večje število porazdeljenih odjemalskih

računalnikov, aplikacijski strežnik. Naloga aplikacijskega strežnika je skrbeti za »poslovno

logiko« znotraj večslojne arhitekture. Poslovna logika preprosto pomeni funkcionalnost, ki

jo programska oprema izvaja nad podatki. Slojevitost arhitekture se najpogosteje nanaša na

tri sloje: odjemalec – aplikacijski strežnik – podatkovna baza (sl. 5.1).

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 27

Aplikacijski strežnik je napisan za točno določene naloge, ki jih narekujejo potrebe

posameznika ali organizacije, ki želi koristiti storitve aplikacijskega strežnika. Osnovna

naloga aplikacijskega strežnika je pridobitev, obdelava in predstavitev podatkov

uporabniku preko uporabniškega vmesnika. Strežnik opravlja tudi vrsto drugih opravil, kot

je obdelava najrazličnejših vhodnih podatkov, bodisi razne poizvedbe ali posodobitve,

vključno z validacijo, verifikacijo in varnostnimi pregledi, ki morajo biti izvršeni. Kaj

točno so podatki in procesi, ki jih izvaja aplikacijski strežnik, ni točno določeno. Obdeluje

lahko najrazličnejše vrste podatkov in opravlja različne procese, odvisno od potreb

odjemalca.

Značilen primer aplikacijskega strežnika je internetni iskalnik. V tem primeru so

odjemalci katerikoli računalniki, ki se prijavijo na spletno stran iskalnika ter vpišejo iskane

podatke. Aplikacijski strežnik vzame vhodne podatke, ki jih je podal odjemalec ter požene

nekaj operacij iskanja, ki se nanašajo na sam iskalni algoritem. Nato se izvedejo poizvedbe

v podatkovno bazo spletnih vsebin in na koncu se vrnjeni podatki servirajo nazaj k

odjemalcu.

Drugi pogosti primeri aplikacijskega strežnika:

• spletni sistemi za rezervacije,

• centraliziran nadzor blaga,

• spletno bančništvo,

• spletni slovarji in ostali viri.

Slojevitost arhitekture

Mnogo omrežij še vedno uporablja dvoslojni pristop, v katerem so odjemalci povezani

na osrednji aplikacijski strežnik, vendar pa ima vsak odjemalec nameščeno svojo kopijo

posamezne aplikacije. To pomeni, da se vsi procesi odvijajo na računalnikih odjemalcev in

je povezava s strežnikom namenjena samo izmenjavi podatkov. Trislojna arhitektura,

včasih imenovana tudi n-slojna ali multi-slojna, razbremenjuje odjemalce procesiranja

podatkov, saj se ta naloga prenese na strežnik. Odjemalcu je prepuščeno le prikazovanje

podatkov. V tem modelu arhitekture odjemalca pogosto imenujejo »tanki odjemalec«.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 28

Čeprav so trije sloji ponavadi razdeljeni vsak na svoj ločen računalnik, je še vedno

mogoče, da so vsi trije sloji (vmesnik, aplikacija in podatkovna baza) implementirani na

enem samem računalniku. Slika 5.1 prikazuje značilni model ločene trislojne arhitekture.

Slika 5.1: Aplikacijski strežnik v večslojni arhitekturi

Prednosti in slabosti aplikacijskih strežnikov

Prednosti uporabe aplikacijskih strežnikov v omrežju so številne. S postavitvijo

aplikacije na centralni računalnik ločimo odjemalca od procesiranja in s tem omogočimo

odjemalcem, da dostopajo do aplikacije iz različnih platform. Z drugimi besedami,

katerikoli računalnik, ki poganja brskalnik na kateremkoli operacijskem sistemu

(Windows, Linux, Macintosh idr.), se lahko poveže na spletni aplikacijski strežnik, ne

glede na njegove individualne specifikacije. Centralizacija aplikacij predstavlja prednost

tudi glede vzdrževanja in upravljanja. Računalnik, na katerem teče aplikacijski strežnik, se

z lahkoto vzdržuje in posodablja, ko je to potrebno. Programsko opremo pa je mogoče

načrtovati in razvijati z zanesljivostjo okolja, kar ne bi bilo mogoče, če bi procesiranje

podatkov teklo na množici porazdeljenih računalnikov.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 29

Imajo pa aplikacijski strežniki tudi tri večje pomanjkljivosti. Prva je ta, da če strežnik

slučajno odpove ali pa se iz kakršnih koli razlogov izklopi, odjemalci ne morejo dostopati

do aplikacij. Drugič, odvisnost od omrežnih povezav, vključno z internetom, izpostavlja

ranljivost glede izpada omrežja, ki prav tako onemogoča odjemalcem dostop do aplikacije.

Na koncu je tu še vidik varnosti, saj se med odjemalcem in aplikacijskim strežnikom

velikokrat prenašajo zelo občutljivi podatki, nemalokrat tudi preko javnih omrežij.

Prva dva problema rešujemo s postavitvijo redundančnih elementov in povezav v

omrežju. S tem se izognemo daljšim izpadom, saj nedelujoči strežnik nadomesti drugi,

vendar pa je tako skoraj nemogoče predvideti in poskrbeti za vse možne scenarije. Na

primer večino WAN (Wide Area Network – prostrano omrežje) omrežja nimamo pod

nadzorom in stopnja varovanja pred izpadom je pogojena samo s pomembnostjo aplikacije,

ki teče na aplikacijskem strežniku. Reševanje varnostnih problemov je vedno težavno,

vseeno pa imamo na voljo danes številne metode, kriptiranja in varovane povezave, ki so

uporabne za vse oblike občutljivih spletnih transakcij.

Razvojne platforme

Referenca na področju razvoja aplikacijskih strežnikov je prav gotovo Java EE

platforma, znana tudi kot J2EE. Posledica tega je velika razširjenost programskega jezika

Java kot izbire za aplikacijski strežnik. Tudi Microsoftova ASP.NET platforma je zelo

zmogljiva in precej razširjena. Mnogo razvijalcev še vedno uporablja CGI (Common

Gateway Interface – splošni vmesnik prehoda) in PERL (Practical Extraction and Report

Language – priročni jezik za izvlečke in poročila). Izbira platforme za aplikacijski strežnik

je včasih težavna naloga, saj smo mnogokrat vezani na tehnične omejitve. Naloga

sistemskih analitikov in razvijalcev pa je, da predvidijo potrebe in zmožnosti postavitve

aplikacijskega strežnika.

Parlay X v povezavi z aplikacijskim strežnikom

Parlay/OSA (Open Services Architecture – arhitektura odprtih storitev) je storitvena

arhitektura, razvita za povečanje števila potencialnih telekomunikacijskih storitev in se

običajno zelo prepleta s pojmom aplikacijskega strežnika. S pomočjo Parlay arhitekture

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 30

lahko razvijalci ustvarjajo množico novih telefonskih aplikacij brez poglobljenega znanja

telekomunikacij. V upanju, da bi tehnologija dosegla še širši krog razvijalcev, je bil

predstavljen Parlay X kot razširitev Parlay/OSA. Parlay X funkcionalnost omogoča

aplikacijam, ki se nahajajo na internetu, uporabo omrežnih zmogljivosti iz

telekomunikacijskih omrežij preko tako imenovanih spletnih storitev (»web service«).

Aplikacija, ki se nahaja na internetu, lahko uporablja omrežne zmogljivosti preko

aplikacijskega strežnika, ki Parlay X gradnike pretvarja v primerne za komunikacijo z

omrežjem. Aplikacijski strežnik je povezan s Parlay/OSA okoljem in na ta način s stališča

aplikacije igra vlogo prehoda med aplikacijo in omrežjem. AS je porazdeljen sistem, ki

opravlja preslikave med Parlay X ukazi in Parlay/OSA ukazi. Porazdeljenost AS pomeni,

da vsebuje različna obdelovalna vozlišča, ki so lahko vključena med zahtevami storitev.

Slika 5.2 prikazuje arhitekturo AS in Parlay/OSA okolja.

Slika 5.2: Arhitektura AS in Parlay/OSA okolja

Storitvena arhitektura je lahko uporabljena v kateremkoli telekomunikacijskem

omrežju in ni določeno, v katerem omrežju morajo biti uporabniki, da lahko uporabljajo to

arhitekturo. Ena izmed najbolj obetajočih topologij predvideva končnega uporabnika

aplikacije, priključenega na internet. Parlay/OSA arhitektura povezana na internet se

pogosto nanaša na Parlay X arhitekturo, kjer so omrežni viri abstraktni in jih imenujemo

Parlay X spletne storitve.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 31

6 TEHNOLOGIJE, UPORABLJENE PRI RAZVOJU SISTEMA

V tem poglavju bomo predstavili vse programske jezike in tehnologije, s katerimi smo

se srečali pri izdelavi sistema za obveščanje velikega števila uporabnikov. Nekaj od teh

tehnologij se nanaša na aplikacijski strežnik (poglavje 5), katerega smo tudi uporabili pri

razvoju sistema. Na aplikacijskem strežniku kot osrednjem in bistvenem elementu omrežja

se lahko uporablja veliko različnih tehnologij, vendar pa bomo mi predstavili le tiste

najpomembnejše, ki smo jih uporabili. Med njimi je prav gotovo najpomembnejši Parlay

X.

6.1 Programski jezik Java

Java je objektno orientiran, prenosljiv programski jezik, ki ga je razvil James Gosling s

sodelavci v podjetju Sun Microsystems [16]. Projekt, ki se je v začetku (leta 1991)

imenoval Oak (hrast), je bil razvit kot zamenjava za C++. Jave ne smemo zamenjevati z

jezikom JavaScript, ki ima podobno ime ter podobno, C-jevsko sintakso. Različica Java 1.0

je bila objavljena leta 1996, zadnja različica je 6 Update 10 (oktober 2008). Javo vzdržuje

in posodablja Sun Microsystems.

Tolmač za Javo je vgrajen v večino spletnih brskalnikov, s tem se javanski programčki

(»applet«) lahko izvajajo kot del HTML (HyperText Markup Language – jezik za

označevanje hiperteksta) dokumenta. Zanimivo, da so danes javanski programčki s spletnih

strani skoraj povsem izginili. Vendar pa je Javina prilagodljivost omogočila pohod na

številna druga področja, med drugim tudi na novo, povsod prisotno tehnologijo – na

področje prenosnih naprav, kot so mobilni telefoni in dlančniki. Na drugi strani pa Java

danes prevladuje kot podlaga za razvoj porazdeljenih poslovnih programov in kot

najpogostejši programski jezik, s katerim se prvič srečajo študenti računalništva po vsem

svetu.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 32

Java je torej podlaga, ki jo sestavlja več pomembnih členov:

• programski jezik,

• programske knjižnice,

• izvajalno okolje.

Programski jezik Java je olajšal razvoj, bogata knjižnica pa je poskrbela za cel kup

sestavin sodobnih programov. Prava revolucija pa je bil način, kako se ta koda izvaja. Pred

uveljavitvijo Jave je bila učinkovitost izvajanja pomembnejša od udobja programerjev.

Uveljavljeni programski jeziki se zato prevajajo v strojno kodo, ki omogoča najhitrejše

izvajanje, vendar je takšna koda lahko izjemno nevarna, če ni popolna.

Java je nastala v želji izdelave programskega jezika za potrošniško elektroniko.

Naprave, ki naj bi jih krmilila Java, nimajo velikih zmogljivosti in so si medsebojno precej

različne, zato je bil cilj razvoja preprost jezik, ki izdela strnjeno kodo, sposobno izvajanja v

različnih napravah. Tvorci Jave so se ozrli na raziskave navideznih strojev in ta koncept

uspešno uporabili. Programska koda v Javi se zato ne prevaja v strojno, temveč v vmesno

kodo (»bytecode«). Ta koda se na običajnih procesorjih ne more izvajati, ker potrebuje

tolmača (»interpreter«). Vendar se program v vmesni kodi lahko izvaja na poljubni

napravi, za katero obstaja ustrezen tolmač. S tem je osnovni pogoj za obljubo »napiši

enkrat, poganjaj povsod« izpolnjen. Javino izvajalno okolje, poimenovano tudi Javanski

navidezni stroj (JVM – Java Virtual Machine), je postalo mnogo več kot tolmač vmesne

kode, ki omogoča programom, da se izvajajo na različnih strojnih podlagah. JVM ponuja

nadzorovano izvajalno okolje, ki skrbi za nekatere temeljne storitve (npr. samodejno

sproščanje pomnilnika), hkrati pa ponuja visoko stopnjo varnosti [3]. Številne prednosti

nadzorovanega okolja imajo seveda svojo ceno. Težko bi pričakovali, da se vmesna koda,

ki jo je treba tolmačiti, hkrati pa se kar naprej preverja zaradi varnosti, izvaja pri hitrosti,

primerljivi s strojno kodo, ki neovirano teče neposredno v procesorju. Vendar so tudi te

negativne posledice ublažili v novejših različicah Jave. Javanska zrna (»Java Beans«) so

majhne, ponovno uporabljive komponente, ki se uporabljajo za gradnjo večjih javanskih

programov. Javanske strežniške strani (JSP – Java Server Pages) in javanski strežniški

programčki (»servlets«) se na strežniški strani uporabljajo za dinamično generiranje

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 33

spletnih strani. Slika 6.1 prikazuje preprost programček, napisan v programskem jeziku

Java. Na začetku je definiran razred »Pozdravljen svet«, ki ima isto ime, kot je ime

datoteke, v kateri je shranjen program, torej »PozdravljenSvet.java«. Znotraj glavne

metode »main« kličemo še metodo »System.out.println«, ki izpiše na zaslon sporočilo

»Pozdravljen Svet!«.

Slika 6.1: Preprost programček, napisan v Javi

6.2 Programski jezik SQL

SQL (Structured Query Language – strukturirani jezik za poizvedovanje) je

računalniški jezik namenjen za delo s podatkovnimi bazami. Oblikovan je za upravljanje

podatkov v sistemih relacijskih podatkovnih baz (RDBMS – Relational Database

Management System). SQL je standardiziran interaktivni programski jezik, namenjen za

iskanje, spreminjanje in upravljanje podatkov v podatkovnih bazah ter je ISO

(International Organization for Standardization – Mednarodna organizacija za

standardizacijo) in ANSI (American National Standards Institute – Ameriški nacionalni

inštitut za standardizacijo) standard.

Jedro jezika SQL predstavlja zmožnost iskanja, vstavljanja, posodabljanja in brisanja

podatkov ter upravljavske in administrativne funkcije. SQL prav tako vključuje CLI (Call

Level Interface – vmesnik klicnega nivoja), ki omogoča dostop in upravljanje z bazo tudi

na daljavo.

Prva različica SQL je bila razvita v podjetju IBM v začetku leta 1970. Ta različica, ki je

bila sprva imenovana SEQUEL, je bila zasnovana za manipulacijo podatkov shranjenih v

IBM-ovi relacijski podatkovni bazi. IBM je patentiral njihovo različico SQL leta 1985,

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 34

medtem ko jezik SQL ni bil formalno standardiziran do leta 1986, ko ga je standardiziral

ANSI. Kasnejše verzije SQL standarda so bile izdane kot ISO standard.

Slika 6.2 prikazuje poizvedbo z rezervirano besedo SELECT, ki vrne seznam dragih

knjig. Poizvedba pridobi vse vrstice iz tabele z imenom »Knjige«, pri katerih je vrednost v

stolpcu z imenom »cena« večja kot 10.000. Rezultat je sortiran po naslovih v naraščajočem

vrstnem redu.

Slika 6.2: Primer poizvedbe z jezikom SQL

6.3 Podatkovna baza MySQL

Podatkovna baza je sklop zbirke dokumentov, medsebojnih sklicevanj na dokumente in

sistema za razvrščanje, iskanje in urejanje podatkov v bazi. Podatkovna baza je torej tudi

klasična knjižnica, a v vsakdanjem pogovoru baza pomeni računalniški sistem za hrambo

podatkov. Podatkovne baze so se pojavile zaradi potrebe po hitrem dostopu do informacij,

saj hramba podatkov iz preteklosti omogoča premišljeno odločanje o prihodnosti.

Za našo aplikacijo smo uporabili podatkovno bazo MySQL (My Structured Query

Language), zato jo bomo tudi bolj podrobno predstavili.

MySQL je sistem za upravljanje s podatkovnimi bazami. Je odprtokodna

implementacija relacijske podatkovne baze, ki za delo s podatki uporablja jezik SQL.

MySQL deluje na principu odjemalec – strežnik, pri čemer lahko strežnik namestimo kot

sistem, porazdeljen na več strežnikov. Obstaja veliko število odjemalcev, zbirk ukazov in

programskih vmesnikov za dostop do podatkovne baze MySQL.

Vse skupaj se je začelo z namenom uporabe mSQL, ki bi ga priključili tabelam z

uporabo hitrih rutin nizke stopnje. Po nekaj preizkusih so ugotovili, da mSQL ni dovolj

hiter in fleksibilen za potrebe zahtevnih uporabnikov. Po tem so razvili nov SQL vmesnik

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 35

za bazo podatkov, ampak s skoraj enakim programskim vmesnikom kot mSQL. Ta je bil

zasnovan tako, da dovoljuje tretji kodi, ki je bila napisana za uporabo z mSQL, da se lahko

prenese za uporabo z MySQL.

Lastnosti MySQL:

• Napisana je v jezikih C in C++.

• Deluje na več različnih operacijskih sistemih (Windows, Linux …).

• Za prenosljivost med OS uporablja GNU Automake, Autoconf in Tcl.

• Obstajajo programski vmesniki za C, C++, Eiffel, Java, Perl, PHP, Python …

• Bistvene programske niti mreže so večopravilne. Zna izkoristiti toliko

centralnih procesnih enot, kolikor jih je na voljo.

• Uporablja zelo hitre diskovne tabele MyISAM, s stiskanjem indeksov.

6.4 Programski jezik VoiceXML

Večina ljudi pozna avtomatske telefonske storitve, ki ponujajo uporabnikom različne

informacije, kot so urniki letov, bančni tečaji, spored filmov v kinu ipd. Skokovito širjenje

interneta in z njim povezanih tehnologij je omogočilo ponudnikom tradicionalnih

telefonskih storitev razvoj povsem novih storitev, ki uporabljajo omrežne tehnologije za

posredovanje informacij uporabnikom. Čeprav v večini primerov uporabniki še zmeraj

uporabljajo telefon za dostop do avtomatskih glasovnih storitev, pa ponudniki storitev

vedno bolj spoznavajo prednosti pri razvoju novih storitev, ki izkoriščajo prednosti in moč

internetnih in omrežnih tehnologij.

VoiceXML ponuja najboljše rešitve iz obeh svetov. Ponudniki storitev lahko preko

spletnih servisov ponudijo nove spletne storitve, ki so zasnovane na označevalnih jezikih,

kot je VoiceXML, uporabniki pa do njih dostopajo kar preko telefona. Razvijalci lahko

hitro razvijejo avtomatsko glasovno storitev na podoben način in z uporabo podobnih

tehnologij kot pri izdelovanju spletnih strani, s tem pa je mogoče občutno zmanjšati stroške

razvijanja aplikacije in storitev približati uporabnikom tradicionalnih telefonov.

VoiceXML ima svoje korenine v raziskovalnem projektu, imenovanem PhoneWeb, ki

so ga razvijali v laboratorijih AT&T. Kasneje so se projektu pridružili še IBM, Motorola in

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 36

Lucent, kar je privedlo do ustanovitve VoiceXML Foruma leta 1999. Forum je danes

globalna industrijska organizacija, ki promovira in pospešuje razvoj VoiceXML aplikacij

po vsem svetu.

VoiceXML je označevalni jezik, ki se uporablja za realizacijo govornih odzivnikov.

Razvit je bil z namenom, da s tehnologijama sintetiziranja in prepoznavanja govora

omogoči interakcijo med uporabnikom in internetom [11]. Preko vmesnikov, zgrajenih s

tehnologijo VoiceXML, uporabnik komunicira z glasovnim brskalnikom na tak način, da

posluša glasovna sporočila, katera so lahko vnaprej posneta ali pa jih v realnem času

pripravlja sistem za sintezo govora (TTS). Vhodne podatke lahko uporabnik podaja preko

tipkovnice (DTMF – Dual-tone Multi-Frequency, dvotonska večfrekvenčna signalizacija)

ali v govorni obliki, ki jo obdela sistem za avtomatsko prepoznavo govora (ASR).

Izven obsega jezika VoiceXML so aplikacijska logika, upravljanje stanj, generiranje

dialoga ter operacije nad podatkovno bazo. Te komponente so rešene na aplikacijskih

strežnikih z običajnimi tehnikami programiranja spletnih aplikacij.

V arhitekturi VoiceXML (sl. 6.3) nastopajo:

• Aplikacijski strežnik, ki je tipično spletni strežnik, na katerem teče

aplikacijska logika. Ta lahko vsebuje podatkovno bazo ali vmesnike do zunanje

podatkovne baze.

• Medijski prehod, na katerem teče VoiceXML interpreter in deluje kot

odjemalec aplikacijskega strežnika. Interpreter razume VoiceXML dialoge in

nadzoruje govorne in telefonske vire: ASR, TTS, avdio predvajanje in snemanje

ter vmesnik telefonskega omrežja.

• Omrežje, ki temelji na protokolu TCP/IP in povezuje aplikacijski strežnik in

medijski prehod preko HTTP.

• Telefonsko omrežje: PSTN/ISDN, privatno telefonsko omrežje ali omrežje

internetne telefonije.

• Kličoči uporabnik, ki je lahko katerikoli terminal, ki se lahko povezuje s

telefonskim omrežjem.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 37

Slika 6.3: Arhitektura VoiceXML

V govornih storitvah ima VoiceXML podobno vlogo kot jezik HTML na svetovnem

spletu. To pomeni, da omogoča oblikovanje govornih »spletnih strani« oz. scenarijev

VoiceXML za izdelavo govornih storitev. Uporabnik z govorno aplikacijo komunicira

preko tipkovnice ali v govorni obliki ter posluša vnaprej posneta ali v realnem času

tvorjena sporočila. Govorna aplikacija omogoča tudi snemanje uporabnikovega govora in

preusmeritev uporabnika na poljubno telefonsko številko.

Govorne storitve VoiceXML temeljijo na scenarijih VoiceXML, ki med uporabnikom

in storitvijo definirajo dialog. Eno govorno storitev običajno tvori več scenarijev

VoiceXML. Ti so lahko zelo preprosti in predvidevajo samo predvajanje vnaprej posnetih

kratkih sporočil, lahko pa so tudi zelo kompleksni in omogočajo prepoznavo tonov DTMF,

pošiljanje podatkov na strežnik, prepoznavo in sintezo govora ipd. Za izvedbo

kompleksnejših govornih storitev se na spletnem strežniku pogosto uporabljajo strežniške

skripte in programi. Z uporabo ASR uporabnik ni več omejen le na pritiskanje tipk na

tipkovnici terminala, temveč lahko s sistemom vzpostavi dialog, ki je veliko bolj podoben

človeškemu pogovoru. Izvajanje govorne storitve se prične, ko uporabnik pokliče

telefonsko številko, na kateri je nastavljena storitev VoiceXML. Telekomunikacijsko

vozlišče preusmeri klic na strežnik VoiceXML, ki uporabi ustrezen scenarij, ga interpretira

ter izvede predpisano storitev (npr. predvaja zvočni posnetek). Glede na uporabnikov ukaz

lahko strežnik VoiceXML izvede drug scenarij, ki z uporabnikom prične nov dialog.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 38

6.5 Parlay X

Parlay X je poenostavljena in visoko abstraktna različica Parlay-a, standardiziranega

vmesnika za dostop do funkcionalnosti telekomunikacijskih omrežij. Parlay X predstavlja

skupek aplikacijskih programskih vmesnikov (API – Application Programming Interface),

definiranih s strani ETSI (European Telecommunications Standards Institute – Evropski

inštitut za telekomunikacije), Parlay Group in 3GPP (3rd Generation Partnership Project –

Partnerski projekt tretje generacije), ki razvijalcem aplikacij ponujajo funkcionalnosti

spletnih storitev. S pomočjo Parlay X naj bi bilo po podatkih 3GPP možno izvesti 80%

vseh najaktualnejših storitev za omrežja naslednje generacije. Parlay X storitve so

abstraktne storitve osnovnih komunikacijskih zmožnosti, ki so na voljo razvijalcem preko

XML podatkovnih shem in WSDL (Web Services Description Language – jezik za opis

spletnih storitev) opisov. Razvijalec lahko uporabi WSDL za generiranje primerne

komunikacijske odjemalske kode za uporabo znotraj aplikacij. Parlay X storitev je lahko

ponujena neposredno od aplikacijskega strežnika, ki uporablja WSDL, podobno kot so

druge »internetne« zmožnosti ponujene znotraj arhitekture spletnih storitev. Tako ponujene

storitve omogočajo razvijalcu uporabo orodij za avtomatsko generiranje primernih

odjemalcev iz WSDL dokumenta, katerega dobi od aplikacijskega strežnika [10].

Za razvijalca je pomembno le to, da razume XML shemo, ki ponuja zahtevane

definicije podatkov, povezane z implementiranimi metodami znotraj Parlay X storitve. Te

definicije podatkov prispejo z WSDL dokumentom kot XML shema. Razvijalec ne

potrebuje poglobljenega znanja telekomunikacij, saj je Parlay X neodvisen od katerekoli

implementacije na tem nivoju. Razvijalec prav tako ne potrebuje poznavanja kakšnega

novega kompleksnega programskega jezika ali razvojnega okolja, saj lahko piše kodo v

poznanem Java ali .NET okolju ter uporablja orodja iz teh okolij. Izpostavitev

telekomunikacijskih funkcionalnosti kot storitev znotraj arhitekture spletnih storitev je

nedvomno velik korak naprej od kompleksnih in pogosto visoko specializiranih lastniških

vmesnikov, katere je razumela le peščica specializiranih strokovnjakov na področju

telekomunikacij.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 39

Arhitektura Parlay X

Slika 6.4 prikazuje možne komponente, ki lahko sodelujejo v sestavi Parlay X

arhitekture. Storitve, ki pripadajo telekomunikacijski domeni (1), so izpostavljene preko

Parlay X storitvenega vmesnika. Ta storitveni vmesnik je abstrakten (manj kompleksnosti)

v primerjavi z nižje-nivojskimi telekomunikacijskimi funkcionalnostmi. Storitve so

registrirane ali objavljene kot spletne storitve (2). Navzven se kažejo z uporabo WSDL

opisa. Koda aplikacije dostopa do storitve preko registra spletnih storitev (3). Register je

opcijski element, saj lahko njegovo funkcionalnost prevzameta aplikacijski strežnik ali

prehod. Programskega odjemalca, uporabljenega v aplikaciji, ustvari razvijalec iz opisa

WSDL datoteke. Aplikacija nato komunicira s telekomunikacijsko domeno (4). Interakcija

med aplikacijo in telekomunikacijsko domeno poteka z izmenjavo XML sporočil preko

SOAP (Simple Object Access Protocol – protokol za izmenjavo XML sporočil preko

omrežja) protokola.

Slika 6.4: Arhitektura Parlay X

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 40

Z uporabo arhitekture spletnih storitev Parlay X omogoča razvijalcem aplikacij, da

enostavno vključijo v svoje aplikacije funkcionalnosti, kot so telekomunikacijski klic,

pošiljanje sporočil in ostale. Aplikacije lahko dostopajo do virov v javnem omrežju, kjer so

Parlay X storitve objavljene in izpostavljene.

Parlay X je lahko implementiran na Parlay ali drugem storitvenem prehodu, ki se v

omrežju nahaja med aplikacijskimi strežniki ter omrežnimi elementi. Ob dogodkih v

omrežju ali na strani aplikacijskega strežnika se med Parlay X prehodom in aplikacijskim

strežnikom pošiljajo HTTP zahteve, ki vsebujejo XML vsebino. Zahteve predstavljajo klic

metode določene spletne storitve, XML pa vsebuje parametre, potrebne za izvajanje

storitve. Trenutne izvedbe Parlay X so omejene na Parlay prehode. Uvajanje Parlay

prehodov v omrežja je zahtevno, dodaten faktor pa predstavlja cena. Dejstvo, da je Parlay

X predviden kot eden ključnih v arhitekturi IMS, bo nedvomno vplivalo na nove

implementacije, tudi takšne, ki ne bodo temeljile zgolj na Parlay X.

Parlay X specifikacije

Parlay X aplikacijski programski vmesniki so objavljeni kot skupek specifikacij.

Tabela 6.1: Seznam Parlay X 3.0 specifikacij

Parlay X 3.0 specifikacija Funkcionalnost

Part 1: Common definira skupne zmožnosti, kot so podatkovne definicije in WSDL opisi vmesnikov

Part 2: Third Party Call vzpostavljanje in kontrola klicev s strani aplikacije

Part 3: Call Notification obveščanje aplikacij o klicih

Part 4: Short Messaging pošiljanje in prejemanje sporočil SMS

Part 5: Multimedia Messaging pošiljanje in prejemanje sporočil MMS

Part 6: Payment zaračunavanje storitev in predplačna funkcionalnost

Part 7: Account Management upravljanje z uporabniškim računom

Part 8: Terminal Status status terminala (npr. dosegljiv, zaseden …)

Part 9: Terminal Location pridobivanje informacij o lokaciji terminala

Part 10: Call Handling upravljanje z uporabniškimi nastavitvami (npr. bele/črne liste klicev, preusmeritve)

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 41

Part 11: Audio Call izvajanje avdio klicev na osnovi teksta, zvočnih datotek ali VoiceXML ter vplivanje na njihov potek

Part 12: Multimedia Conference upravljanje multimedijskih konferenc

Part 13: Address List Management upravljanje s skupinami naročnikov

Part 14: Presence pridobitev informacije o prisotnosti registriranih uporabnikov

Part 15: Message Broadcast pošiljanje sporočil vsem terminalom na določenem geografskem področju

Part 16: Geocoding pridobivanje informacij o lokaciji naročnikov (npr. država, mesto, ulica …)

Part 17: Application-driven quality of Service (QoS)

dinamično spreminjanje kvalitete storitve (npr. pasovne širine)

Part 18: Device Capabilities and Configuration pridobivanje informacij o zmožnostih naprave

Part 19: Multimedia Streaming Control nadzor pretoka multimedijskih vsebin do naročnika

Part 20: Multimedia Multicast Session Management nadzor sej pri oddajanju več različnim prejemnikom

Third Party Call

Spletna storitev Third Party Call omogoča vzpostavljanje in kontrolo klicev s strani

aplikacije. Namen te spletne storitve je ponuditi razvijalcem aplikacij preproste funkcije za

vzpostavljanje klica. S pomočjo te storitve lahko razvijalci uporabljajo funkcije za

obravnavanje klica brez poglobljenega znanja telekomunikacij.

Slika 6.5 prikazuje scenarij uporabe spletne storitve Third Party Call. V tem scenariju

aplikacija najprej z metodo makeCall da poziv za vzpostavitev zveze med UporabnikomA

in UporabnikomB. Nato spletna storitev Third Party Call preko Parlay/OSA SCS-CC (Call

Control – nadzor klica) vmesnika kliče Parlay API metodo. SCS obravnava poziv in pošlje

sporočilo proti MSC (Mobile Switching Center – mobilni komutacijski center) za

vzpostavitev klica med uporabnikoma A in B. Najprej začne zvoniti telefon pri

UporabnikuA. Ko se javi, začne zvoniti še telefon UporabnikaB in ko se javi, se vzpostavi

zveza med njima.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 42

Slika 6.5: Third Party Call scenarij

Definicija vmesnika spletne storitve in podatkovni tipi

• Metoda: makeCall

Klic metode makeCall zahteva vzpostavitev glasovnega klica med dvema

naslovoma, callingParty in calledParty. Opcijsko lahko aplikacija zazna tudi

informacijo o stroških (»charging«). S klicem te metode lahko aplikacija spremlja

status zahtevanega klica. Metoda vrača parameter callIdentifier, ki je uporabljen za

identificiranje posameznega klica. Za pridobitev informacije o statusu klica mora

aplikacija klicati metodo getCallInformation.

• Metoda: getCallInformation

Metoda getCallInformation poizve o trenutnem statusu klica, ki ga identificira na

podlagi parametra CallIdentifier. Metodo lahko kličemo večkrat, tudi če se je klic

že končal.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 43

• Metoda: endCall

Klic metode endCall zahteva parameter callIdentifier in zaključi klic, ki ga

identificira na podlagi identifikatorja klica. Če je klic še vedno v fazi

vzpostavljanja, ima metoda enak učinek kot metoda cancelCall.

• Metoda: cancelCall

Klic metode cancelCall prekine predhodno zahtevo po klicu, identificirano na

podlagi parametra callIdentifier. Ta metoda se razlikuje od metode endCall po

tem, da poskusi prekiniti vzpostavitev klica, vendar pa nima učinka, če je klic že

vzpostavljen.

• CallStatus

Tabela 6.2: CallStatus

Vrednost Opis

CallInitial Klic je bil vzpostavljen.

CallConnected Aktiven klic.

CallTerminated Klic je bil prekinjen.

• CallTerminationCause

Tabela 6.3: CallTerminationCause

Vrednost Opis

CallingPartyNoAnswer Kličoča stran ni odgovorila.

CalledPartyNoAnswer Klicana stran ni odgovorila.

CallingPartyBusy Kličoča stran zasedena.

CalledPartyBusy Klicana stran zasedena.

CallingPartyNotReachable Kličoča stran nedosegljiva.

CalledPartyNotReachable Klicana stran nedosegljiva.

CallHangUp Klic je bil končan s prekinitvijo ene od strani.

CallAborted Klic je bil prekinjen (katerikoli drugi vzrok).

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 44

• CallInformation struktura

Tabela 6.4: Struktura CallInformation

Vrednost Opis

callStatus Označuje trenutni status klica.

startTime Označuje čas začetka klica (ko je izpolnjen pogoj callStatus <> CallInitial).

duration Označuje trajanje klica izraženo v sekundah (ko je izpolnjen pogoj callStatus = = CallTerminated).

termiantionCause Označuje vzrok prekinitve klica (ko je izpolnjen pogoj callStatus = = CallTerminated).

6.6 Razvojno okolje Netbeans

Netbeans se nanaša na platformo za razvoj javanskih aplikacij in tudi na integrirano

razvojno okolje (IDE – Integrated Development Environment), razvito z uporabo Netbeans

platforme. Netbeans platforma omogoča, da so aplikacije razvite iz vrste modularnih

programskih komponent, ki se imenujejo moduli. Modul je javanska arhivska datoteka

(JAR – Java ARchive), ki vsebuje javanske razrede, napisane za interakcijo z aplikacijskim

programskim vmesnikom in datoteko z imenom manifest, ki ga označuje za modul.

Aplikacije, ki so zgrajene iz modulov, se lahko kadarkoli razširi z novimi moduli. Ker so

lahko moduli razviti povsem neodvisno, lahko aplikacije, ki temeljijo na Netbeans

platformi, dopolnjuje in dalje razvija tudi tretji, neodvisni razvijalec.

Začetki razvojnega okolja Netbeans segajo v leto 1997, ko je bil to eden izmed

študentskih projektov v okviru Fakultete za matematiko in fiziko na Univerzi v Pragi.

Roman Stanek je kasneje na osnovi projekta ustanovil podjetje, ki je izdelovalo

komercialno verzijo Netbeans IDE, dokler podjetje ni bilo odkupljeno od podjetja Sun

Microsystems leta 1999. Sun je Netbeans IDE objavil kot odprtokodni produkt junija leta

1999. Od takrat je Netbeans skupnost neprestano rasla, zahvaljujoč posameznikom in

podjetjem, ki so Netbeans uporabljali in pomagali razvijati. Slika 6.6 prikazuje Netbeans

IDE.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 45

Slika 6.6: Netbeans IDE

Netbeans IDE je odprtokodno integrirano razvojno okolje, v celoti napisano v

programskem jeziku Java, z uporabo Netbeans platforme. Netbeans podpira razvoj vseh

vrst Java aplikacij (J2SE, web, EJB, mobilne aplikacije …). Vse funkcije IDE-ja so

ponujene z moduli. Vsak modul ponuja dobro opredeljene funkcije, kot je na primer

podpora za programski jezik Java. Netbeans vsebuje vse module, potrebne za razvoj Java

aplikacij, in s tem omogoča uporabniku, da začne delati takoj, ko si naloži okolje Netbeans.

Moduli tudi omogočajo razširitev okolja Netbeans. Nove funkcije, kot je podpora za druge

programske jezike, je mogoče dodati z namestitvijo dodatnih modulov.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 46

7 SISTEM ZA OBVEŠČANJE VELIKEGA ŠTEVILA

UPORABNIKOV TELEKOMUNIKACIJSKIH OMREŽIJ

V tem poglavju bomo predstavili razvoj sistema za obveščanje velikega števila

uporabnikov telekomunikacijskih omrežij. Naša naloga je bila izdelati celovit sistem,

katerega primarna naloga bi bila avtomatsko, preko telefonskega klica in glasovnega

odzivnika, obveščati večje število uporabnikov telekomunikacijskih omrežij. Prvotna ideja

je bila izdelava sistema za obveščanje neplačnikov telefonskih storitev. Temu namenu je

prirejen tudi naš sistem, vendar pa ga je mogoče z manjšimi popravki spremeniti v sistem

za obveščanje katerekoli vrste uporabnikov telekomunikacijskih omrežij. Namen sistema je

s pomočjo tehnologij, ki jih ponujajo omrežja naslednje generacije, vpeljati storitev z

dodano vrednostjo, ki bi dopolnjevala ali povsem nadomestila klasične načine obveščanja

uporabnikov telekomunikacijskih omrežij, kot jih poznamo danes. S tem bi bilo mogoče

zmanjšati stroške, ki nastanejo ob pošiljanju sporočil preko navadne pošte, na primer

opominov v primeru neplačnikov oz. stroške dela operaterjev, ki opravljajo klice v klicnem

centru. Sistem bi bil uporaben tudi v številnih drugih primerih, na primer ob naravnih

nesrečah, kjer bi lahko v zelo kratkem času obvestili veliko število ljudi o dogajanju in s

tem preprečili poslabšanje situacije. Z malo domišljije bi sistem lahko uporabili tudi v

oglaševalske namene itd.

7.1 Predstavitev okolja

Sistem za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij je

potrebno integrirati v okolje, kjer bo le-ta deloval. Naš sistem smo razvijali in testirali v

testnem telekomunikacijskem omrežju Fakultete za elektrotehniko, računalništvo in

informatiko v Mariboru (sl. 7.1). Jedro testnega omrežja je večstoritveno krmilno vozlišče

SI3000 – MSCN, produkt podjetja Iskratel. Vozlišče sestavljajo tri ključne komponente

omrežij naslednje generacije, aplikacijski strežnik, klicni strežnik ter signalizacijski in

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 47

medijski prehod. Znotraj signalizacijskega in medijskega prehoda je integriran VoiceXML

interpreter, nanj pa sta povezana še ASR strežnik in VoiceXML strežnik, ki interpreterju

dostavlja VoiceXML skripte. Na aplikacijskem strežniku, ki je povezan s klicnim

strežnikom, se nahaja vmesnik Parlay X, ki preko spletnih storitev omogoča sistemu

uporabo in izvajanje funkcionalnosti telekomunikacijskih omrežij (izvajanje klicev).

Celoten sistem za obveščanje, vključno s podatkovno bazo, se nahaja na PC-ju, ki se preko

protokola HTTP povezuje z aplikacijskim strežnikom in preko protokola H.323 s klicnim

strežnikom.

Slika 7.1: Okolje sistema za obveščanje

Za testiranje klicev smo uporabili tako imenovani »softphone« oz. programsko opremo,

ki se lahko namesti na poljuben PC, kjer opravlja funkcije telefona. Za takšno rešitev smo

se odločili, ker je preprosta in poceni, hkrati pa nismo imeli v testnem prostoru nameščenih

dovolj IP telefonov. Uporabili smo Iskratelovo programsko opremo SoftPhone (sl. 7.2), ki

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 48

podpira H.323 protokol, tega pa uporablja tudi klicni strežnik za izvajanje klicev.

SoftPhone je nameščen na PC-ju, na katerem je sistem za obveščanje.

Slika 7.2: SoftPhone

7.2 Izbira tehnologij

Prve korake pri razvoju sistema smo začeli z izbiro programskega jezika in razvojnega

okolja. Ugotovili smo, da bi bil najprimernejši programski jezik Java, tako s stališča

uporabe različnih spletnih storitev kot tudi prenosljivosti programske kode. Pri izbiri

razvojnega okolja je bilo več težav, saj je na voljo veliko število dobrih in brezplačnih

razvojnih okolij. Odločili smo se, da bomo programsko kodo pisali in testirali v razvojnem

okolju Netbeans, ki je po našem mnenju eno izmed boljših in uporabniku prijaznih okolij,

predvsem kar se tiče podpore za programski jezik Java. Kot spletni strežnik smo uporabili

strežnik Tomcat, ki je med drugim integriran tudi v razvojno okolje Netbeans. Na tem

strežniku se tako izvajajo skripte JSP grafičnega vmesnika. Za shranjevanje podatkov smo

uporabili relacijsko podatkovno bazo MySQL, ki zadostuje vsem potrebam sistema, prav

tako pa je upravljanje z njo relativno enostavno. Za izvajanje klicev smo uporabili vmesnik

Parlay X, ki teče na aplikacijskem strežniku. Za predvajanje glasovnih sporočil pa skrbi

VoiceXML interpreter (integriran v medijskem prehodu) v povezavi z VoiceXML

strežnikom.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 49

7.3 Arhitektura in zasnova sistema

Arhitekturno gledano je sistem sestavljen iz dveh delov (sl. 7.3). Prvi del predstavlja

grafični uporabniški vmesnik (GUI – Graphical User Interface), ki omogoča

administratorju oz. pooblaščeni osebi dostop do vseh podatkov uporabnikov telefonskih

številk v podatkovni bazi. GUI omogoča tudi vnos novih uporabnikov v podatkovno bazo,

urejanje podatkov že obstoječih uporabnikov ter brisanje iz baze. Drugi del sistema je

računalniška aplikacija, ki iz podatkovne baze, kjer so shranjeni vsi uporabniki, katere je

potrebno obvestiti, pridobi telefonske številke in druge pomembne parametre ter

samodejno opravi klice na te številke in uporabnikom predvaja vnaprej posneto sporočilo.

Slika 7.3: Arhitektura sistema za obveščanje uporabnikov

Aplikacija klice izvaja s pomočjo spletne storitve Third Party Call, ki je le ena izmed

mnogih storitev vmesnika Parlay X. Predvajanje sporočila klicanemu pa opravlja glasovni

odzivnik s pomočjo VoiceXML. Podroben opis in delovanje grafičnega uporabniškega

vmesnika ter same aplikacije, ki izvaja klice, bomo opisali v podpoglavjih.

7.3.1 Podatkovna baza

Jedro našega sistema za obveščanje predstavlja MySQL podatkovna baza, kjer so

shranjeni vsi podatki, s katerimi operira sistem. Ključnega pomena pred začetkom pisanja

programske kode je bilo razmisliti o strukturi baze in o tem, kateri podatki se bodo vanjo

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 50

shranjevali. Po temeljiti analizi in premisleku smo se odločili, da bomo uporabili le eno

tabelo v bazi. Tabela vsebuje vse pomembne podatke o lastnikih telefonskih številk. Sem

sodijo ime, priimek, naslov, telefonska številka, naslov elektronske pošte in drugi

parametri. Parametri so pomembni predvsem s stališča aplikacije, ki opravlja klice, saj se

na podlagi vrednosti parametrov odloči, katerega uporabnika bo poklicala. Pomembni

parametri so »datum vnosa«, »datum zadnjega klica«, »število klicev«, »število uspešnih

klicev«, »status«, »nedosegljiv/zaseden«. Slika 7.4 prikazuje strukturo tabele v podatkovni

bazi.

Slika 7.4: Struktura tabele v podatkovni bazi

7.3.2 Grafični uporabniški vmesnik

Grafični uporabniški vmesnik mora administratorju omogočati pregled vseh

uporabnikov telefonskih številk v bazi, vstavljanje novih, urejanje že obstoječih vnosov ter

brisanje iz baze. V ta namen smo s tehnologijo JSP izdelali spletno aplikacijo, ki je

naložena na spletnem strežniku Tomcat in je preko spleta dostopna od kjerkoli in

kadarkoli. Spletni strežnik je lahko tudi kateri drugi, vendar pa mora biti takšen, ki

podpirati programski jezik Java in podatkovno bazo MySQL. Administrator oz. uporabnik

spletne aplikacije potrebuje samo dostop do spleta in URL (Uniform Resource Locator –

enolični lokalizator vira) naslov spletne aplikacije, ki ga vpiše v spletni brskalnik (Mozilla

Firefox, Internet Explorer …). Pred vstopom v aplikacijo se mora prijaviti še z

uporabniškim imenom in geslom, nato pa mu je omočen dostop do vseh podatkov, ki jih

lahko pregleduje in poljubno spreminja.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 51

7.3.3 Funkcije grafičnega uporabniškega vmesnika

Grafični uporabniški vmesnik je zasnovan modularno (sl. 7.5). Preko prijavnega

obrazca se uporabnik prijavi v spletno aplikacijo, kjer ima na glavni strani aplikacije na

voljo štiri funkcionalne sklope. Uporabnik lahko doda novi vnos v podatkovno bazo, uredi

že obstoječe vnose, briše vnose ter išče med vnosi v bazi. Po končanem delu se uporabnik

odjavi iz spletne aplikacije.

Slika 7.5: Arhitektura grafičnega uporabniškega vmesnika

Prijava v spletno aplikacijo

V podatkovni bazi se nahajajo občutljivi osebni podatki, zato je bilo potrebno poskrbeti

za varnost le-teh. Dostop do spletne aplikacije je mogoč samo preko prijave z

uporabniškim imenom in geslom. Ta varnostni mehanizem omogoča dostop do kritičnih

podatkov samo pooblaščenim osebam. Problema smo se lotili na nivoju spletnega strežnika

in v konfiguraciji strežnika določili potrebne parametre za varnost. V nastavitvah strežnika

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 52

je mogoče dodajati nove uporabnike, katerim se dodeli uporabniško ime in geslo, ter

pravice oz. vsebina spletne aplikacije, do katere imajo dostop. Prav tako smo izdelali

spletni obrazec (sl. 7.6), preko katerega se lahko uporabnik prijavi v spletno aplikacijo.

Slika 7.6: Vstopni obrazec za prijavo v spletno aplikacijo

Osnovna stran spletne aplikacije

Po uspešni prijavi v aplikacijo se na zaslonu pojavi osnovna stran s tabelo (sl. 7.7), ki

vsebuje podatke o lastnikih telefonskih številk. Tabela v spletni aplikaciji se polni direktno

iz baze podatkov, kjer so zbrani vsi zapisi. V programski kodi je to realizirano s pomočjo

jezika SQL. Najprej se vzpostavi povezava z bazo, nato pa se vrstico po vrstico zapis iz

baze prepiše v tabelo na zaslonu. Uporabniku aplikacije niso na voljo vsi podatki iz baze.

Vidni so samo ime, priimek, naslov, naslov elektronske pošte in telefonska številka. Ti

podatki se lahko tudi spreminjajo pri že obstoječih vnosih v bazi. Ostali parametri, kot so

»datum_vnosa« ali »datum_posodobitve«, v spletni tabeli niso vidni in jih tudi ni mogoče

spreminjati, saj se tvorijo samodejno ob novem vnosu ali posodobitvi podatkov o že

obstoječem lastniku telefonske številke. Ob vsaki vrstici v tabeli, ki predstavlja enega

lastnika telefonske številke v bazi, je dodan izbirni gumb. S klikom na gumb lahko

izberemo točno določenega lastnika telefonske številke in ga tako označimo za urejanje oz.

brisanje iz baze. Pod tabelo je polje z gumbi, ki omogočajo dodajanje novega vnosa,

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 53

urejanje in brisanje. Desno zgoraj ob tabeli so podatki o tem, kdo je prijavljen v spletno

aplikacijo in možnost odjave.

Slika 7.7: Glavno okno spletne aplikacije

Dodajanje novega vnosa

S klikom na gumb »Dodaj« se pod tabelo odpre nova vnosna forma, preko katere

vnesemo podatke o novem lastniku telefonske številke, ki ga želimo dodati v bazo (sl. 7.8).

Slika 7.8: Dodajanje novega vnosa

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 54

Vpisani podatki se pred samim vnosom v bazo preverjajo, da se izognemo nepravilnostim

med delovanjem celotnega sistema. Ime in priimek lahko vsebujeta samo črke oz. znake

abecede, brez številk ali katerih drugih posebnih znakov. Telefonska številka lahko vsebuje

le števke, naslov elektronske pošte pa mora ustrezati točno določenim pravilom zapisa, ki

so določena v standardih za obliko elektronskih naslovov (npr.: [email protected]).

Naslov lastnika telefonske številke je načeloma lahko kakršnekoli oblike in lahko vsebuje

vse znake. Če uporabnik v katero od vnosnih polj vnese nedovoljene znake, ga aplikacija

na to opozori in ne dovoli vpisa v bazo, dokler uporabnik ne popravi vnosa. Šele ko vsi

vpisani podatki ustrezajo pravilom, lahko s klikom na gumb »Dodaj zapis«, zapišemo

podatke v bazo, hkrati pa se nov vnos pojavi tudi v prikazni tabeli spletne aplikacije.

Urejanje obstoječih vnosov

Kadar želimo spremeniti podatke o že obstoječem vnosu v bazi, moramo s klikom na

izbirni gumb izbrati točno določenega lastnika telefonske številke v tabeli, kateremu

želimo spreminjati podatke. Podobno kot pri vnosu novega lastnika telefonske številke, se

tudi ob kliku na gumb »Posodobi« pod tabelo pojavi vnosna forma. Razlika je le ta, da

vnosna polja v tem primeru že vsebujejo podatke o osebi, katero smo izbrali v zgornji

tabeli. Podatke lahko zdaj poljubno spreminjamo in jih na koncu shranimo. Tudi tukaj se

vneseni podatki preverjajo in šele ko zadostujejo vsem pogojem, je omogočen zapis

posodobljenih podatkov v bazo. Po kliku na gumb »Posodobi zapis« se podatki posodobijo

tudi v bazi, hkrati pa se spletna aplikacija v brskalniku osveži in v tabeli so takoj vidni novi

posodobljeni podatki. Na sliki 7.9 je prikazano urejanje podatkov o lastniku telefonske

številke, ki smo ga predhodno s klikom na izbirni gumb izbrali v tabeli. Izbrali smo osebo

pod identifikacijsko številko 14, ki nosi ime Lojze in priimek Novak.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 55

Slika 7.9: Urejanje obstoječega vnosa

Brisanje vnosov

Kadar želimo določenega lastnika telefonske številke izbrisati oz. odstraniti iz baze, ga

moramo najprej s klikom na izbirni gumb izbrati v tabeli in nato pritisniti še gumb »Briši«.

Ob kliku nam aplikacija odpre pogovorno okno z opozorilom (sl. 7.10), da želimo trajno

izbrisati podatke o izbrani osebi iz baze in nam ponudi dvoje možnosti. V primeru

potrditve izbrisa se vnos nemudoma izbriše iz baze, drugače pa se spletna aplikacija

osveži, podatki pa ostanejo nespremenjeni.

Slika 7.10: Brisanje vnosa iz baze

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 56

Iskanje

Spletni aplikaciji smo dodali tudi možnost iskanja. Ta funkcija pride zelo prav v realnih

situacijah, ko je v bazi veliko število lastnikov telefonskih številk (nekaj tisoč), mi bi pa

radi poiskali in spremenili podatke točno določeni osebi oz. jo izbrisali iz baze, ker ni več

potrebe po obveščanju te osebe.

Na osnovni strani spletne aplikacije se nahaja vnosno polje za iskanje, kamor vpišemo

iskano besedo ali niz. Ob kliku na gumb »Išči« se zažene iskalni algoritem v programski

kodi, ki pregleda celotno tabelo vnosov ter poišče ujemajoče se besede. Tiste vnose v bazi,

ki vsebujejo iskano besedo ali niz, izpiše v novi tabeli in jo prikaže uporabniku na zaslonu.

Postopek urejanja ali brisanja najdenega vnosa je identičen tistemu, ki smo ga opisali že

prej. Nekatere omejitve oz. težave se pokažejo, ko je v bazi resnično veliko število vnosov

(nekaj deset tisoč). Pojavijo se lahko zakasnitve pri iskanju in izpisu najdenih vnosov na

zaslon. Problem ni v transakcijah med aplikacijo in bazo, te so zelo hitre, ampak časovno

zakasnitev vnašata sam grafični uporabniški vmesnik in spletni strežnik, ki imata v takem

primeru ogromno dela z indeksiranjem posameznih vrstic v tabeli in izpisom na zaslon.

7.3.4 Aplikacija za obveščanje uporabnikov

Aplikacija za obveščanje uporabnikov (v nadaljevanju aplikacija) je bistveni del

celotnega sistema, saj samodejno vzpostavlja klice med osebami v bazi, ki jih je potrebno

obvestiti in glasovnim odzivnikom, ki obveščanemu predvaja določeno, vnaprej posneto

sporočilo. Aplikacija je v celoti napisana v programskem jeziku Java in je v svoji osnovi

preprosta namizna javanska aplikacija, ki jo poženemo z javansko izvršljivo datoteko.

Grafični vmesnik aplikacije je zelo preprost in vsebuje le gumb, s katerim sprožimo

izvajanje aplikacije in polje za prikaz besedila, v katerem se izpisujejo nekateri pomembni

podatki med izvajanjem aplikacije. Aplikacija za obveščanje je odjemalska aplikacija, ki jo

je bilo potrebno integrirati v telekomunikacijsko omrežje. V našem testnem okolju se

aplikacija nahaja na PC-ju, ki ima povezavo z aplikacijskim strežnikom in klicnim

strežnikom, ki smo ju podrobneje opisali v poglavju 4. Na istem PC-ju je tudi baza s

podatki o osebah, ki jih je potrebno obveščati. Slika 7.11 prikazuje umestitev aplikacije za

obveščanje v telekomunikacijsko omrežje.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 57

Slika 7.11: Umestitev aplikacije v omrežje

Aplikacija pridobi telefonske številke iz baze ter s pomočjo storitve Third Party Call,

vmesnika Parlay X na aplikacijskem strežniku, vzpostavi klic med uporabnikom in

glasovnim odzivnikom. Življenjski cikel delovanja aplikacije je sestavljen iz treh delov (sl.

7.12). Takoj po zagonu aplikacija vzpostavi povezavo s podatkovno bazo in iz nje prebere

vse uporabnike, za katere mora vzpostaviti klic. Uporabnike skupaj z vsemi atributi vpiše v

seznam, iz katerega nato jemlje telefonske številke za vzpostavljanje klica. Na koncu

aplikacija na podlagi informacij o klicu posodobi parametre za določenega uporabnika in

jih shrani nazaj v bazo.

Slika 7.12: Življenjski cikel aplikacije

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 58

Pridobitev telefonskih številk iz baze

Pred vzpostavljanjem klicev mora aplikacija pridobiti iz baze telefonske številke, ki jih

nato uporabi za klicanje. Ker smo našo aplikacijo načrtovali za primer obveščanja

neplačnikov telefonskih storitev, igrajo veliko vlogo pri izbiri uporabnikov iz baze

parametri, ki so dodeljeni posameznemu neplačniku. Parameter »status« nam pove stopnjo

kritičnosti neplačnika. Status lahko ima vrednosti od 0 do 3. Pri tem 0 pomeni, da je

neplačnik na novo v bazi in ga še nismo obveščali, status 3 pa označuje neplačnika, ki smo

ga že velikokrat obvestili, vendar še vedno ostaja neplačnik. Tiste neplačnike z višjim

statusom kličemo bolj pogosto kot tiste z nižjim. Pri neplačnikih z višjim statusom igra

pomembno vlogo še parameter »datum zadnjega klica«. Preden damo neplačnika v seznam

za klicanje, preverimo časovno razliko med trenutnim datumom in datumom zadnjega

klica. V primeru, da časovna razlika ustreza vnaprej določeni vrednosti za posamezni

status, dodamo neplačnika v seznam za klicanje. Posebni parameter »nedosegljiv_zaseden«

lahko nosi vrednosti 0 ali 1. Parameter dobi vrednost 1, kadar smo neplačnika klicali,

vendar pa ni bil dosegljiv, je bil zaseden ali pa je prekinil zvezo predčasno. Kadar ima

neplačnik postavljen ta parameter na 1, ga damo v seznam za klicanje nemudoma in ga

pokličemo spet takoj, ko je mogoče. Slika 7.13 prikazuje potek pridobivanja neplačnikov

iz baze, tabela 7.1 pa pomen posameznih vrednosti parametra »status«.

Tabela 7.1: Seznam vrednosti parametra »status«

Status Opis

0 Prvi vnos neplačnika, nismo še klicali => dodaj v seznam za klicanje.

1 Neplačnika smo že klicali, vendar neuspešno => če je razlika med trenutnim datumom in datumom zadnjega klica več kot 7 dni, dodaj v seznam za klicanje.

2 Neplačnika smo že klicali, vendar neuspešno => če je razlika med trenutnim datumom in datumom zadnjega klica več kot 3 dni, dodaj v seznam za klicanje.

3 Neplačnika smo že klicali, vendar neuspešno => če je razlika med trenutnim datumom in datumom zadnjega klica več kot 1 dan, dodaj v seznam za klicanje.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 59

Slika 7.13: Potek pridobivanja telefonskih številk iz baze

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 60

Vzpostavljanje klicev

Ko imamo vse neplačnike v seznamu za klicanje, lahko pričnemo dejansko

vzpostavljati klice na njihove telefonske številke. Aplikacija iz seznama vzame telefonsko

številko prvega neplačnika in vzpostavi klic med njim in glasovnim odzivnikom. Na

podlagi informacij o klicu se odloči, katere parametre bo nastavila in nato vzame

telefonsko številko naslednjega neplačnika iz seznama. Slika 7.14 prikazuje potek klicanja

številk iz seznama za klicanje.

Slika 7.14: Potek klicanja številk iz seznama za klicanje

Posodobitev baze

Aplikacija med opravljanjem klicev sproti beleži in posodablja parametre za vsakega

uporabnika v seznamu za klicanje. Ko opravi vse klice, so tako v seznamu že vsi

posodobljeni podatki. Naloga aplikacije je zdaj samo še posodobitev vseh podatkov v bazi.

V ta namen vzpostavi povezavo z MySQL podatkovno bazo in prepiše vrednosti atributov,

ki so se spremenile, z novimi s seznama. S tem je delovanje aplikacije zaključeno, baza pa

pripravljena na novo obveščanje.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 61

7.3.5 Scenarij klica

Aplikacija za vzpostavljanje klica uporablja storitev Third Party Call vmesnika Parlay

X. Za vsako telefonsko številko s seznama za klicanje aplikacija kliče metodo makeCall.

Metoda zahteva dva parametra, telefonsko številko kličočega in telefonsko številko

klicanega, da lahko vzpostavi telefonsko zvezo med njima. Telefonska številka kličočega

je številka neplačnika s seznama, ki ga nameravamo obveščati in je ob vsakem klicu

metode drugačna (drugi neplačnik). Številka klicanega pa ves čas izvajanja aplikacije

ostaja ista, saj se za njo skriva glasovni odzivnik. Učinek je podoben, kot da bi uporabnik

sam poklical na številko odzivnika, le da v našem primeru aplikacija sama poskrbi za

vzpostavitev zveze in se uporabnik tega niti ne zaveda.

Poglejmo scenarij klica, kjer želimo neplačnika s telefonsko številko 082023 obvestiti,

da naj čim prej poravna račun za telefonske storitve. Glasovni odzivnik se nahaja na

številki 082024. Aplikacija uporabi ti dve številki kot parametra pri klicu metode

makeCall. Najprej sistem pokliče na številko neplačnika, zato pri njemu zvoni telefon. Ko

se ta javi, sistem pokliče še na številko odzivnika in ko se odzivnik aktivira, sistem

vzpostavi zvezo med neplačnikom in glasovnim odzivnikom. Zdaj odzivnik predvaja

sporočilo neplačniku in zveza se konča, ko uporabnik odloži slušalko.

Na sliki 7.15 je izsek programske kode, ki vzpostavi klic med neplačnikom in

odzivnikom. Vidimo, da lahko samo z eno vrstico programske kode vzpostavimo klic.

Ostale tri vrstice poskrbijo za inicializacijo telefonskih številk in storitve Third Party Call.

Slika 7.15: Klic metode makeCall

Slika 7.16 prikazuje potek klica, ki je vzpostavljen in nadzorovan s strani aplikacije

(Third Party Call). Prikazan je primer seje, v kateri se kličeta metodi makeCall in

getCallInformation vmesnika Parlay X. Najprej aplikacija kliče metodo makeCall. Parlay

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 62

X se odzove na klic metode s kreiranjem posebnega identifikatorja seje CallIdentifier, ki je

za vsako sejo edinstven in jo enoznačno določa. Hkrati s posredovanjem identifikatorja

seje proti aplikaciji, Parlay X pošlje tudi zahtevo za vzpostavitev klica proti klicnemu

strežniku. Ta poskrbi za vzpostavitev telefonske zveze med uporabnikom in glasovnim

odzivnikom (telefonski številki obeh strani sta argumenta metode makeCall). Najprej

pokliče uporabnika in počaka, da se ta javi. Ko se uporabnik javi na klic, klicni strežnik

zadrži zvezo in pokliče še glasovni odzivnik. Ko se aktivira še glasovni odzivnik, klicni

strežnik vzpostavi zvezo med njima in lahko se prične dialog.

Slika 7.16: Potek klica

Ves čas od klica metode makeCall pa do konca zveze lahko aplikacija poizveduje in

pridobiva informacije o klicu. S klicem metode getCallInformation lahko aplikacija

ugotovi, kdaj je bila zveza med uporabnikom in glasovnim odzivnikom vzpostavljena, kdaj

je bila zveza končana in kako dolgo je trajala ter tudi vzrok, zaradi katerega je bila zveza

prekinjena in katera stran jo je končala. Vse te informacije so za delovanje sistema zelo

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 63

pomembne, saj se ravno na podlagi teh aplikacija odloči, kako bo spremenila vrednosti

atributov posameznemu uporabniku v bazi. Na primer, če aplikacija ugotovi, da je zveza

trajala prekratek čas, to pomeni, da neplačnik ni do konca poslušal sporočila predvajanega

s strani odzivnika in zato se mu atribut »nedosegljiv/zaseden« postavi na vrednost 1 oz.

»TRUE«. To pa pomeni, da bo ob naslednjem pregledu baze izbran za ponovni klic, čeprav

smo ga pred kratkim že klicali. Atribut »nedosegljiv/zaseden« se postavi na vrednost 1

tudi, kadar aplikacija ugotovi, da je klicani neplačnik nedosegljiv, zaseden ali pa se

preprosto ni javil na klic oz. ga je prekinil in se zveza med njim in glasovnim odzivnikom

niti ni mogla vzpostaviti. Aplikacija sproti ob vsakem klicu posodablja parametre v

seznamu za klicanje. Na podlagi identifikatorja seje aplikacija ve, kateri uporabnik je bil

udeležen pri klicu in kateremu mora prirediti nove vrednosti parametrov.

Aplikacija je zasnovana tako, da vzpostavi naenkrat samo en klic. Premika se po

seznamu za klicanje od prvega uporabnika do zadnjega in za vsakega vzpostavi klic. Ko se

klic zaključi in se parametri v seznamu posodobijo, začne vzpostavljati novi klic za

naslednjega uporabnika v seznamu. Zavedamo se, da v realnih razmerah, kjer je potrebno v

kratkem času obvestiti nekaj tisoč uporabnikov telekomunikacijskih omrežij, takšen pristop

ne bi bil najboljša izbira, saj bi obveščanje trajalo predolgo. Potrebno bi bilo uvesti hkratno

vzpostavljanje klicev za večje število uporabnikov, kar vmesnik Parlay X, klicni strežnik in

drugi elementi omrežja tudi omogočajo. Za implementacijo tega koraka se nismo odločili

zaradi povečanja kompleksnosti sistema, ki bi ga tak korak prinesel. V programski kodi bi

bilo potrebno implementirati paralelno izvajanje velikega števila operacij (niti). Soočili bi

se tudi z ogromno množico podatkov, ki bi jih bilo potrebno obdelati, hkrati pa bi morali

ob določenem trenutku prestreči točno določen podatek za posamezni klic izmed množice

drugih, kar pa ni ravno lahka naloga. Takšen pristop bi zahteval mnogo več časa za razvoj

in testiranje, zavedamo pa se, da bo v prihodnosti potrebno tudi ta korak implementirati, če

bo hotel sistem izpolniti vsa pričakovanja uporabnikov in služiti namenu.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 64

7.3.6 Glasovni odzivnik

Za potrebe glasovnega odzivnika je bilo potrebno uporabiti strežnik VoiceXML, ki

VoiceXML interpreterju (ki je del signalizacijskega in medijskega prehoda) predaja

VoiceXML skripte, da jih ta lahko zaganja ter uporabniku predvaja sporočila.

Na VoiceXML strežniku imamo dve skripti, ki služita kot vstopna in izstopna skripta.

Za naše potrebe je to dovolj, saj uporabniku želimo le predvajati sporočilo. Uporabnik

lahko interaktivno komunicira z odzivnikom le po koncu predvajanja sporočila, kjer lahko

z DTMF izbiro ponovno posluša sporočilo ali pa konča pogovor. Na sliki 7.17 je prikazana

arhitektura in princip delovanja glasovnega odzivnika.

Slika 7.17: Arhitektura glasovnega odzivnika

Skripte na VoiceXML strežniku tečejo pod strežnikom Tomcat, ki skrbi za generiranje in

predstavljanje skript. Tomcat omogoča, da so VoiceXML skripte napisane v programskem

jeziku Java in predstavljene kot servleti. Na sliki 7.18 je prikazan primer komunikacije

med uporabnikom in glasovnim odzivnikom.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 65

Slika 7.18: Scenarij delovanja glasovnega odzivnika

Aplikacija je pred tem že poklicala uporabnika, sedaj pa kliče še odzivnik in ko se

odzivnik aktivira, vzpostavi zvezo med njima, tako da lahko uporabnik posluša sporočila,

ki mu jih predvaja odzivnik.

Na centrali je številka odzivnika vezana na VoiceXML skripto. Centrala pošlje zahtevo

za main VoiceXML skripto proti VoiceXML strežniku, ki ga ima vpisanega v bazi za to

številko. Strežnik na zahtevo vrne VoiceXML skripto, ki jo centrala v VoiceXML

interpreterju prevede in izvede. Uporabniku se predvaja sporočilo, na koncu pa se ga

pozove, da izbere eno od sledečih možnosti. Uporabnik na tipkovnici telefona pritisne

ustrezno tipko in na podlagi izbire interpreter pošlje VoiceXML strežniku zahtevo po novi

skripti. Scenarij se nadaljuje, dokler uporabnik ne prekine zveze (odloži telefonsko

slušalko) ali izbere DTMF izbiro za končanje pogovora.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 66

8 PRIMERJAVA DELOVANJA SISTEMA Z DELOM

OPERATERJA

Namen sistema za obveščanje uporabnikov je dopolniti delo ljudi (operaterjev) oz. ga

popolnoma nadomestiti. Razvoj sistema je začetni strošek, ki pa se kmalu povrne, če

upoštevamo, da sistem deluje avtomatizirano in opravi mnogo več klicev naenkrat, kot jih

zmore človek. Sistem je sposoben vzpostaviti nekaj sto klicev naenkrat (odvisno od

zmogljivosti opreme), medtem ko človek lahko opravi le en klic v določenem trenutku. Za

isto delo, kot bi ga opravil sistem, bi torej potrebovali nekaj sto operaterjev, kar pa

predstavlja ogromen strošek. Za uspešno in pravilno delovanje sistema je potrebno le

osebje, ki skrbi za vnos in urejanje podatkov v podatkovni bazi, in osebje, ki skrbi za

pravilno delovanje sistema in njegovo vzdrževanje. Število teh ljudi je zanemarljivo

majhno v primerjavi s številom, ki bi ga potrebovali, če bi hoteli opraviti v določenem času

isto število klicev, kot ga zmore sistem. Ljudje so sicer dokaj zanesljivi in predvsem

nadomestljivi, kar za sistem ne moremo trditi. Možnosti napak v sistemu so vedno

prisotne, prav tako pa je ob odpovedi najmanjše komponente sistema moteno delovanje

celotnega sistema. Če nimamo rezervnega scenarija, je lahko izpad precejšen, vendar pa se

te zadeve lahko rešujejo tudi z operaterji, ki bi priskočili na pomoč v času nedelovanja

sistema. Sama administracija sistema je zelo preprosta, saj uporablja preprost grafični

vmesnik z malo funkcijami. Vstavljanje v bazo in urejanje vnosov poteka preko spletnega

brskalnika, kjer je grafični vmesnik preprost in jasno definiran. Zagon sistema za

vzpostavljanje klicev je mogoč preko namizne aplikacije, ki ima »okenski« uporabniški

vmesnik, ki je prav tako zelo preprost za uporabo, saj vsebuje le gumb za začetek izvajanja

klicev in končanje delovanja ter okno, v katerem se izpisujejo trenutne operacije sistema za

lažje spremljanje delovanja. S stališča uporabniške izkušnje je sistem zelo primeren, saj ne

zahteva dodatnega izobraževanja ljudi, ki bi z njim upravljali.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 67

9 SKLEP

Razvoj telekomunikacij ter omrežja naslednje generacije v modernem času prinašajo

eno poglavitnih prednosti – nove konvergenčne storitve, ki predstavljajo pomemben

dejavnik tudi pri vse večji razširjenosti govora prek IP. Za množičen razvoj storitev so

ključni odprti aplikacijski vmesniki, ki omogočajo selitev inteligence iz omrežnih

elementov v aplikacijske strežnike. Omrežja naslednje generacije bodo tako preko le-teh

ponudila dostop do zmogljivosti telekomunikacijskih omrežnih elementov. Hitrejši razvoj

novih aplikacij bodo omogočili predvsem vmesniki, ki temeljijo na skriptnih jezikih in so

dostopni preko spleta, in ki bodo na voljo množični skupnosti razvijalcev internetnih

aplikacij.

Cilj diplomskega dela je bil izdelati sistem za obveščanje velikega števila uporabnikov

telekomunikacijskih omrežij, ki bi nadomestil ali dopolnil že obstoječe načine obveščanja.

Sistem temelji v prvi vrsti na klicnem obveščanju, vendar pa je zasnovan tako, da ga je v

prihodnosti mogoče dopolniti in razširiti tudi z drugimi načini obveščanja (SMS,

elektronska pošta ...). V nalogi smo opisali vse postopke ter probleme, ki smo jih imeli v

fazi razvoja sistema. Največji izziv, s katerim smo se srečali že na začetku načrtovanja, je

bil prav gotovo izbira tehnologij, s katerimi bi se dalo sistem realizirati. Velik izziv je bil

tudi spojitev vseh tehnologij v sinergijsko celoto, da na eni strani z vidika administratorja

sistema in na drugi strani uporabnika telekomunikacijskih omrežij sistem deluje usklajeno

in učinkovito. Rezultat dela je delujoč sistem, ki cilja predvsem na integracijo in uporabo

znotraj večjega sistema, na primer v omrežju nacionalnega operaterja telekomunikacij ali

katerega drugega operaterja, ki razpolaga z dovolj zmogljivo opremo in omrežjem. Ko

govorimo o obveščanju preko telefona, danes mislimo predvsem na ljudi (operaterje), ki

opravljajo telefonske klice. Ključen problem pri tem je hitrost in s tem povezani stroški. Za

vzpostavitev velikega števila klicev v kratkem času potrebujemo danes tudi veliko število

ljudi, kar pa povečuje stroške. Z uporabo našega avtomatiziranega sistema za obveščanje bi

se izognili tem stroškom, hkrati pa bi ogromno pridobili na hitrosti in času, kar po našem

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 68

mnenju komercialno in finančno opravičuje razvoj in integracijo takšnega sistema. Za

uspešno delovanje sistema je potrebna le peščica usposobljenih ljudi, ki bi skrbeli za

pravilno delovanje in vzdrževanje sistema. Z vidika uporabnika telekomunikacijskih

omrežij pa je sistem dobrodošel iz razloga, da je vedno pravočasno in kvalitetno obveščen

o pomembnih zadevah.

Realizacija tega projekta mi je dala veliko novih izkušenj in znanja, ki mi bodo pri

nadaljnjem delu zelo koristila, hkrati pa naj bo to diplomsko delo vzpodbuda bralcu pri

razmišljanju in razvoju novih storitev, ki jih omrežja naslednje generacije prav gotovo

ponujajo. Diplomsko delo sem napisal na podlagi raziskovalnega dela in izkušenj, ki sem

jih pridobil med študijem na Fakulteti za elektrotehniko, računalništvo in informatiko v

Mariboru.

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 69

VIRI, LITERATURA

[1] T. Kapus, Telekomunikacijska omrežja I, zapiski predavanj, Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor, 2006.

[2] T. Kapus, Telekomunikacijska omrežja II, zapiski predavanj, Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor, 2005.

[3] U. Mesojedec, B. Fabjan, Java 2, temelji programiranja, Pasadena, Ljubljana, 2004.

[4] L. Zebec, I. Humar, A. Kos, J. Bešter, Razvoj storitev v 21CN na osnovi XML, Laboratorij za telekomunikacije, Fakulteta za elektrotehniko, Univerza v Ljubljani, Ljubljana, 2005, http://www.ltfe.org/wp-content/pdf/Storitve_21CN.pdf

[5] A. Kos, M. Volk, J. Bešter, NGN, VoIP ali Skype?, Laboratorij za telekomunikacije, Fakulteta za elektrotehniko, Univerza v Ljubljani, Ljubljana, 2005, http://www.ltfe.org/wp-content/pdf/NGN_VoIP_Skype.pdf

[6] Uvod v NGN, Laboratorij za telekomunikacije, Fakulteta za elektrotehniko, Ljubljana, 2008, http://lt.fe.uni-lj.si/gradiva/NVTSS/Jagodic%20-%202007-2008/15-uvod-v-ngn-akos.pdf

[7] Wikipedia, Next Generation networking, http://en.wikipedia.org/wiki/Next_Generation_Networking

[8] Wikipedia, IP Multimedia Subsystem, http://en.wikipedia.org/wiki/IP_Multimedia_Subsystem

[9] J. Andersson, M. Kihl, D. Söbirk, Overload Control of Parlay X Application Server, Department of Communication Systems Lund Institute Of Technology, Sweden, http://www.scs.org/getDoc.cfm?id=2895

[10] Parlay Group, http://www.parlay.org

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 70

[11] VoiceXML Forum, http://www.voicexml.org

[12] D. Bodnaruk, K. Peternel, Parlay X komponenta, Funkcijska specifikacija, (Iskratel – interni dokument), Kranj, 2008.

[13] M. Lepener, Govorni vmesnik za osebni komunikacijski portal, diplomska naloga univerzitetnega študijskega programa, Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor, 2006.

[14] H.323 Forum, http://www.h323forum.org/

[15] Wikipedia, Session Initiation Protocol, http://en.wikipedia.org/wiki/Session_Initiation_Protocol

[16] Wikipedia, Java,

http://en.wikipedia.org/wiki/Java_(programming_language)

Razvoj sistema za obveščanje velikega števila uporabnikov telekomunikacijskih omrežij 71

PRILOGE

Naslov študenta

Marko Lubej

Mladinska ul. 2

2000 Maribor

Tel.: 040 616 748

e-mail: [email protected]

Kratek življenjepis

Rojen: 29. 5. 1984 v Mariboru

Šolanje: 1991-1999 Osnovna šola Bojana Ilicha Maribor

1999-2003 II. gimnazija Maribor

2003-2009 Fakulteta za elektrotehniko, računalništvo in informatiko, Maribor

Univerzitetni študijski program Telekomunikacije