Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
I
Tine Uršič
UPORABA TEHNOLOGIJE VOIP NA MOBILNIH NAPRAVAH SYMBIAN
Diplomsko delo Visokošolski strokovni študijski program
Maribor, januar 2013
II
Diplomsko delo visokošolskega strokovnega študijskega programa
UPORABA TEHNOLOGIJE VOIP NA MOBILNIH NAPRAVAH SYMBIAN
Študent: Tine Uršič
Študijski program: VS Računalništvo in informatika
Smer: Informatika
Mentor:
Lektorica:
prof. dr. MARJAN HERIČKO
Tjaša Petkovšek Tončič
Maribor, januar 2013
III
IV
ZAHVALA
Zahvaljujem se mentorju za pomoč in vodenje
pri opravljanju diplomskega dela.
Posebna zahvala gre članom družine in
prijateljem za pomoč, spodbudo in potrpežljivost
v času mojega študija.
V
UPORABA TEHNOLOGIJE VOIP NA MOBILNIH NAPRAVAH SYMBIAN
Ključne besede: programska oprema, prenos govora, Tehnologija VoIP UDK: 004.41:004.5(043.2)
Povzetek V sklopu diplomskega dela smo razvili aplikacijo, katere cilj je nižanje stroškov
klicev s pomočjo tehnologije VoIP. Ta za komunikacijo uporablja protokol IP in
zaobide potrebo po navadnih in dražjih GSM klicih.
V času načrtovanja aplikacije je bilo okolje Symbian najbolj razširjena mobilna
platforma za dovolj zmogljive, t.i. »pametne telefone«, ki lahko poganjajo VoIP
aplikacije. Izbrali smo skupek knjižnic, poimenovanih Qt, ki omogočajo enostavno
prenosljivost na druge platforme.
Podrobno je opisan postopek izbire orodij in razvoja aplikacije, ki vsebuje
načrtovanje, gradnjo, namestitev in testiranje na mobilni napravi.
V zaključku so na realnih podatkih mobilnih operaterjev izračunani stroški VoIP
klicev, ki so znatno nižji od navadne tehnologije GSM. Predstavljena so tudi izhodišča
za optimizacijo in nadgradnjo obstoječe rešitve, ki bi omogočila v celoti izkoristiti
potencial tehnologije VoIP.
VI
VOIP TEHNOLOGY ON SYMBIAN MOBILE PHONES
Key words: software, voice transfer, VoIP technology
UDK: 004.41:004.5(043.2)
Abstract
The purpose of this B.Sc. diploma is to present the development of an application
aiming to reduce the call costs using VoIP technology. It uses the IP protocol for
communication and thus circumvents the need for standard and more expensive GSM
calls.
At the time of the planning, the Symbian environment had been the most widespread
mobile platform for the more advanced, so called »smart phones«, which are able to
run VoIP applications. We have chosen a framework called Qt, which also enables
easier transfer to other platforms.
The dissertation provides a detailed description of the procedure of tool-selection
and application development, which includes planning, building, installing and testing
on the mobile device.
In the conclusion we have provided the calculations of the costs of VoIP calls,
based on real data obtained from mobile service providers. The VoIP costs are
substantially lower than those of standard GSM technology. Apart from the analysis we
have also added some ideas for optimization and upgrade of the current solution, which
put to light the untapped potential of the VoIP technology.
VII
VSEBINA
1 UVOD ........................................................................................................................ 1
2 TRG MOBILNIH KOMUNIKACIJ ...................................................................... 3
2.1 CENE POGOVOROV ................................................................................................ 3
2.2 CENE APARATOV .................................................................................................. 4
2.3 IZBIRA CILJNE SKUPINE MOBILNIH NAPRAV .......................................................... 5
3 UPORABLJENE TEHNOLOGIJE ........................................................................ 7
3.1 PLATFORMA SYMBIAN .......................................................................................... 7
3.1.1 Definicija ...................................................................................................... 7
3.1.2 Zgodovina ..................................................................................................... 7
3.1.3 Različice ........................................................................................................ 8
3.1.4 Razvoj aplikacij ............................................................................................ 9
3.2 KNJIŽNICE QT ....................................................................................................... 9
3.2.1 Kaj je Qt? ...................................................................................................... 9
3.2.2 Knjižnica Qt in platforma Symbian ............................................................ 10
3.3 TEHNOLOGIJA VOIP ........................................................................................... 11
3.3.1 Kaj je VoIP? ............................................................................................... 11
3.3.2 Protokol SIP ............................................................................................... 12
3.3.2.1 Standard IMS ....................................................................................... 14
3.4 KNJIŽNICA PJSIP ................................................................................................ 14
3.4.1 Kaj je PJSIP? .............................................................................................. 14
3.4.2 Odločitev za knjižnico PJSIP ...................................................................... 15
4 RAZVOJ APLIKACIJE ........................................................................................ 16
4.1 VZPOSTAVITEV RAZVOJNEGA OKOLJA ................................................................ 16
4.1.1 Kaj potrebujemo? ....................................................................................... 16
4.1.2 Namestitev in konfiguracija ........................................................................ 16
4.2 OSNOVNI PRIMER ................................................................................................ 17
4.3 UPORABA KNJIŽNICE PJSIP ................................................................................ 18
4.3.1 Prevajanje ................................................................................................... 18
4.3.2 Testi preko ukazne vrstice ........................................................................... 19
VIII
4.3.3 Rezultati prvih testov .................................................................................. 20
4.3.4 Optimizacija ................................................................................................ 21
4.3.5 Tehnologija VAS ......................................................................................... 21
4.3.6 Rezultati z uporabo tehnologije VAS .......................................................... 22
4.4 ARHITEKTURNI NAČRT APLIKACIJE ..................................................................... 23
4.5 RAZVOJ VMESNIKA ............................................................................................. 25
4.6 RAZVOJ GRAFIČNEGA UPORABNIŠKEGA VMESNIKA IN GLAVNE FUNKCIONALNOSTI
28
4.6.1 Definicija osnovnih podprtih funkcij .......................................................... 28
4.6.2 Grafično oblikovanje .................................................................................. 29
4.6.2.1 Izbira in postavitev gradnikov ............................................................. 30
4.6.2.2 Uporaba CSS ....................................................................................... 31
4.6.2.3 Izdelava grafične podobe ..................................................................... 32
4.6.3 Podpora zvočnim zapisom .......................................................................... 34
4.6.4 Razvoj izbranih funkcionalnosti ................................................................. 35
4.6.5 Testiranje .................................................................................................... 36
4.7 PODPISOVANJE SYMBIAN APLIKACIJ ................................................................... 38
4.8 NAMEŠČANJE IN UPORABA .................................................................................. 39
4.8.1 Orodje Nokia Smart Installer ..................................................................... 39
4.8.2 Uporaba ...................................................................................................... 40
5 ANALIZA STROŠKOV ......................................................................................... 43
5.1 MERITVE PRENOSA PODATKOV ........................................................................... 43
5.2 IZRAČUN DEJANSKIH STROŠKOV ......................................................................... 44
5.3 PRIMERJAVA Z GSM KLICI ................................................................................. 44
6 IDEJE ZA OPTIMIZACIJO IN NADGRADNJO .............................................. 46
6.1 OPTIMIZACIJA ..................................................................................................... 46
6.2 AVDIO KODEKI ................................................................................................... 46
6.3 DODATNE FUNKCIONALNOSTI ............................................................................. 47
6.4 PREHOD NA DRUGE PLATFORME ......................................................................... 48
7 SKLEP ..................................................................................................................... 50
8 VIRI, LITERATURA ............................................................................................. 51
IX
UPORABLJENE KRATICE
3G – 3rd generation mobile telecommunications (mobilno omrežje tretje generacije)
3GPP – Third Generation Partnership Programme (partnerski projekt za tretjo
generacijo)
API – Application Programming Interface (aplikacijski programski vmesniki)
APS – Audio Proxy Server (zvočni namestniški strežnik)
CSS – Cascading Style Sheets (prekrivni slogi)
DLL – Dynamic Link Library (knjižnica dinamičnih povezav)
EPL – Eclipse Public Licence (splošna Eclipse licenca)
EU – European Union (Evropska unija)
GPL – General Public License (licenca splošnega dovoljenja)
HTTP – Hypertext Transfer Protocol (hipertekstovni transportni protokol)
IETF – Internet Engineering Task Force (delovna skupina za internetsko inženirstvo)
iLBC – internet Low Bitrate Codec (internetni kodek z nizko bitno hitrostjo)
IM – Instant Messaging (takojšnje sporočanje)
IMS – IP Multimedia Subsystem (IP multimedijski podsistem)
KDE – K Desktop Environment (namizno okolje K)
LAN – Local Area Network (lokalno omrežje)
MGCP – Media Gateway Control Protocol (krmilni protokol za nadzor medijskih
prehodov)
POP3 – Post Office Protocol version 3 (protokol za dostavo elektronske pošte)
RFC – Request for Comments (zahteva po razlagi)
RTP – Real-time Transport Protocol (realno-časovni protokol)
SCTP – Stream Control Transfer Protocol (protokol za krmiljenje prenosa podatkov)
SDK – Software Development Kit (razvojni paket)
X
SF – Symbian Foundation
SFL – Symbian Foundation License (licenca Symbian Foundationa)
SIP – Session Initiation Protocol (protokol za vzpostavitev seje)
SMTP – Simple Mail Transfer Protocol (preprost protokol za prenos elektronske pošte)
SRTP – Secure Real-time Transport Protocol (varni realno-časovni protokol)
TCP – Transmission Control Protocol (protokol za nadzor prenosa)
TLS – Transport Layer Security (zaščita prenosne ravni)
UDP – User Datagram Protocol (nepovezovalni protokol za prenašanje paketov)
USB – Universal Serial Bus (univerzalno serijsko vodilo)
VAS – VoIP Audio Services (zvočne storitve VoIP)
VoIP – Voice over IP (govor preko IP)
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 1
1 UVOD
Primarni cilj diplomskega dela je razvoj aplikacije za mobilno platformo Symbian, ki
združuje in izkorišča tehnologije za prenos govora preko podatkovne povezave, hkrati pa
želimo čim bolj znižati stroške pogovorov.
V diplomskem delu so prikazani rezultati analize trga mobilnih telekomunikacij s
poudarkom na stroških pogovorov in prenosa podatkov. Cene pogovorov z mobilnimi
telefoni so znotraj omrežja operaterja praviloma dokaj ugodne. Pri klicih v druga, mobilna
ali stacionarna, omrežja pa so nekajkrat višje. Še višji strošek predstavlja cena pogovora v
primeru mobilnega gostovanja v tujini (roaming).
Morebitna rešitev je tehnologija VoIP. Ta omogoča cenovno ugodne pogovore preko
podatkovne povezave. Problem nastane, ker ni vsaka naprava dovolj zmogljiva za tako
zahtevne operacije, kot je realnočasovno kodiranje zvoka. Na srečo velik delež trga
predstavljajo t.i. pametni mobilniki, katerih zmogljivost omogoča integracijo zahtevnejše
programske opreme, zato se v diplomskem delu osredotočamo nanje. Za implementacijo te
tehnologije smo izbrali knjižnico PJSIP.
V nadaljnjem raziskovanju je bila izbrana osnovna mobilna platforma Symbian, za
katero smo razvili aplikacijo s podporo tehnologiji VoIP. Platforma Symbian je opisana v
tretjem poglavju. V času načrtovanja po raziskavah v Evropski Uniji platforma Symbian na
področju pametnih mobilnih naprav številčno prevladuje nad ostalimi konkurenti. Za
poenostavitev razvoja je Nokia kupila knjižnice Qt, ki jih podpira večina novejših
aparatov.
Nokia, kot lastnik platforme Symbian, se v zadnjih letih zelo trudi poenostaviti razvoj
aplikacij. To se kaže v pospešenem razvoju knjižnic Qt in lastnega razvojnega okolja, na
katerem so osnovani predvsem novejši aparati. Med podprtimi so najštevilčnejši Symbian
S60 tretje in pete izdaje, ki posledično predstavljajo glavno ciljno skupino uporabniške
rešitve – aplikacije, razvite v tem diplomskem delu.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 2
Opisan je celoten razvojni cikel aplikacije. Začne se z namestitvijo razvojnega okolja,
nato je podan primer uporabe izbranih knjižnic. V nadaljevanju je izdelan podroben načrt
aplikacije, ki mu sledi razvoj API vmesnika in grafičnega vmesnika, podpisovanje
Symbian aplikacije, nameščanje in uporaba na mobilni napravi.
Cilj aplikacije je znižanje stroškov komuniciranja preko mobilnih aparatov. Analiza
stroškov klicev je predstavljena v petem poglavju. S pomočjo specifičnih orodij merimo
prenos podatkov med klici in na podlagi uradnega cenika mobilnega operaterja izračunamo
dejanske stroške. Sledi primerjava stroškov med GSM in VoIP klici.
Osredotočili smo se tudi na optimizacijo delovanja aplikacije, njenega grafičnega
vmesnika in zvočnih zapisih. Navedene so tudi številne morebitne funkcionalne
nadgradnje, saj uporabljene tehnologije omogočajo še veliko več, kot je predstavljeno v tej
diplomski nalogi. Mogoč je celo prehod na druge platforme.
Delo se zaključi s sklepom, ki predstavlja sedmo poglavje. Poleg opisanega temeljnega
okvirja diplomske naloge je izpostavljena tudi ideja o globalnem prehodu s starejšega
GSM sistema na novejši in naprednejši sistem VoIP.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 3
2 TRG MOBILNIH KOMUNIKACIJ
2.1 Cene pogovorov
Eden izmed glavnih razlogov za izdelavo te diplomske so visoki stroški pogovorov
preko mobilnih omrežij. V Tabeli 2.1 so razvidne trenutno aktualne cene klicev največjega
operaterja pri nas – Mobitela.
Tabela 2.1: Mobitelov cenik pogovorov za osnovni paket (dne 1. 12. 2012)
Storitev Cena Klic v Mobitelovo omrežje 0,08763 €/min Klic v druga mobilna omrežja 0,16274 €/min Klic v stacionarna omrežja 0,17944 €/min Klici v Slovenijo in države EU-območja 0,348 €/min Sprejeti klici v državah EU 0,096 €/min Odhodni klic v slovenijo (Hrvaška – Evropa, izven EU) 1,150 €/min Dohodni klic (Hrvaška – Evropa, izven EU) 0,400 €/min Odhodni klic v slovenijo (ZDA) 3,700 €/min Dohodni klic (ZDA) 2,000 €/min
Iz razpredelnice je razvidno, da so cene pogovorov znotraj operaterja dokaj ugodne in
ne predstavljajo večjega stroška, zaradi katerega bi bilo vredno iskati alternativne rešitve.
Sploh za nezahtevnega uporabnika, katerega trajanje pogovorov obsega le po nekaj minut
dnevno. Znesek je lahko pod 20 € mesečno, brez posebnih varčevalnih ukrepov.
Drugačna zgodba se odvija v primeru zahtevnejšega uporabnika mobilnega telefona.
Za primerjavo vzemimo poslovneža, ki govori po več ur na dan, pri tem kliče tudi v druga
omrežja: mobilna in stacionarna, lokalna in mednarodna. Določeno število dni preživi v
tujini, kjer se mobilnik povezuje v načinu gostovanja. Stroški takšnega uporabnika lahko
narastejo nad 500 € mesečno, kar ni več zanemarljiva vsota. Jasno je, da bo poslovnež iskal
alternativno vrsto komunikacije, ki pa funkcionalno ne sme odstopati od trenutnega
delovanja.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 4
2.2 Cene aparatov
Pri višini mesečnih izdatkov, ki je nakazana z zgornjim primerom, se napredni
uporabnik ne sprašuje več, kateri mobilni telefon kupiti. Za ceno mesečnih pogovorov si
lahko privošči aparat visokega ranga, ki ima večjo procesorsko moč in številne dodatne
funkcije.
Po drugi strani si dandanes takorekoč že vsakdo lahko privošči boljšo napravo, saj so
relativno poceni. Če bi uporabnikom ponudili enostavno in uporabno rešitev, bi jo
preizkusil praktično vsak.
Današnji aparati srednjega razreda so že dovolj zmogljivi za napredno uporabo. To
pomeni, da nanje lahko naložimo lastne domorodne (angl. native) aplikacije in izvajamo
tudi tako zahtevne operacije, kot je realnočasovno kodiranje zvoka. Pogoji za uspešno
delovanje so:
• zmogljivejši procesor,
• nalaganje zahtevnejših aplikacij,
• hitrejše brezžične povezave in
• dovolj ostalih potrebnih resursov.
Natančni podatki o zadostni zmogljivosti se od naprave do naprave razlikujejo zaradi
različnih verzij operacijskega sistema in različnega nabora funkcij, ki jih ta podpira.
Povsem mogoče je, da nekoliko starejši aparat deluje bolje kot novejši z zmogljivejšim
procesorjem. Zato se je za naš projekt zastavil drugačen pogoj: aparat mora imeti
specifično podporo za kodiranje zvoka. To je samo po sebi izločilo naprave, ki bi bile
premalo zmogljive.
S temi lastnostmi že zadostimo glavnim pogojem za izvedbo zastavljenega projekta.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 5
2.3 Izbira ciljne skupine mobilnih naprav
V EU je imela v času zasnove diplomskega dela platforma Symbian na področju
pametnih mobilnih naprav številčno prevlado nad ostalimi konkurenti. To prikazuje
»comScore« raziskava za leto 2010, objavljena na »allaboutsymbian.com« (slika 2.1).
Slika 2.1: Delež naročnikov pametnih mobilnikov glede na platformo [3]
Diagram na sliki 2.1 prikazuje deleže naročnikov glavnih petih platform, na katerih
delujejo pametni mobilniki.
Po podatkih podjetja comScore za leto 2011 se je delež pametnih mobilnikov v Evropi
povečal za 44 odstotkov. Od vseh aktivnih uporabnikov mobilne telefonije je kar 38
odstotkov takih, ki uporabljajo pametno mobilno napravo [22].
Symbian je glede na 2010 leto izgubil 16 odstotkov trga. Številka se je znižala
predvsem na račun platforme Android, ki je v velikem vzponu. Kljub temu je Symbian še
vedno ostal na prvem mestu [22].
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 6
Razvidno je, da platforma Symbian v času zasnove diplomskega dela uživa prevlado
nad konkurenti, kar pa ne pomeni, da lahko ostale platforme zanemarimo. Idealna bi bila
skupna med-platformska rešitev, ki bi delovala na napravah različnih proizvajalcev in
operacijskih sistemov.
Nokia, ki je lastnik platforme Symbian, se v zadnjih letih zelo trudi poenostaviti
razvoj aplikacij. To se kaže v pospešenem razvoju knjižnic Qt in lastnega razvojnega
okolja, na katerem bazirajo predvsem novejši aparati. Med podprtimi so najštevilčnejši
Symbian S60 tretje in pete izdaje, ki posledično predstavljajo glavno ciljno skupino našega
dela. V letu 2011 je izšlo že nekaj Symbian^3, ki predstavljajo najnovejšo različico naprav
Symbian. Te imajo knjižnice Qt že prednaložene; več dejstev o tem sledi v naslednjih
poglavjih.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 7
3 UPORABLJENE TEHNOLOGIJE
3.1 Platforma Symbian
3.1.1 Definicija
Symbian je operacijski sistem in programska platforma, namenjena pametnim
mobilnikom, ki se razvija pod okriljem Nokie [5].
Zadnja različica, poimenovana Symbian^3, je bila uradno izdana v zadnjem četrtletju
2010. Prvi aparat s tem sistemom je bil Nokia N8. Maja 2011 je prišla nadgradnja »Anna«
in nato avgusta še »Nokia Belle«. Najnovejši telefon, ki temelji na tej platformi, je »Nokia
808 PureView«, ki je izšel junija 2012 [5].
Symbian OS je bil izvirno produkt podjetja Symbian Ltd. in je potomec Psion
programske opreme EPOC. Deluje izključno na procesorjih ARM, obstajala pa je tudi
neuradna različica za platformo x86 [5].
Platforma Symbian je zelo razširjena po vsem svetu. Zadnja različica je prevedena v
48 jezikov, ki so dostopni v dodatnih jezikovnih paketih. Vsi paketi privzeto vsebujejo
angleščino. V prvem četrtletju 2011 je, kljub pet-odstotnemu padcu v primerjavi z letom
prej, vodil na lestvici tržnega deleža z 29.2 odstotki. Skupaj s starejšo različico (t.i.
»Symbian OS«), naj bi bilo do junija 2010 prodanih 385 milijonov naprav [5].
3.1.2 Zgodovina
Platforma Symbian je produkt združitve programskih rešitev več podjetij: Nokia, NTT
DoCoMo, Sony Ericsson in Symbian Ltd.
Decembra 2008 je Symbian Ltd. kupilo podjetje Nokia in posledično postalo glavni
akter razvoja, saj je od tedaj imelo v lasti Symbian OS in uporabniški vmesnik. Symbian
naj bi gradila odprtokodna skupnost pod vodstvom SF (Symbian Foundation), ki se je
uradno začel z delom aprila 2009. Osnovni cilj je bil objaviti izvorno kodo celotne
platforme Symbian pod določenimi licencami. Težava je nastala, ker so bile nekatere
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 8
komponente licencirane s tretje strani. Tako se je delež kode objavil le v omejeni licenci
SFL (Symbian Foundation License). Določena koda pa je bila dostopna le podjetjem –
članicam združenja SF [5].
Novembra 2010 je zaradi slabe podpore ustanovnih članic SF postal le organizacija za
licenciranje, medtem pa je Nokia objavila, da bo sama prevzela neposreden nadzor nad
platformo Symbian. Do aprila 2011 je Nokia dokončno opustila odprtokodni projekt
platforme [5].
3.1.3 Različice
Symbian^1, ki je prva različica, vsebuje Symbian OS in peto izdajo S60. Ta verzija
nikoli ni bila vključena v odprtokodni projekt.
Symbian^2 je bila prva različica, ki je bila deloma izdana pod licenco EPL, večina
izvorne kode pa je bila dostopna članicam SF.
Symbian^3 je bil napovedan februarja 2010. Predstavljal naj bi naslednjo generacijo
platforme, namenjene pametnim mobilnim napravam. Vsebuje veliko novih
funkcionalnosti, kot na primer: 2D in 3D grafično arhitekturo, izboljšan uporabniški
vmesnik, podporo zunanjim zaslonom preko vmesnika HDMI. Omogoča tudi več domačih
zaslonov (homescreen), ki jih lahko uporabnik prilagodi svojim potrebam [5].
Najbolj zanimiva različica za diplomsko delo je Symbian^1, ker predstavlja najbolj
razširjeno platformo med uporabniki v času zasnove diplomskega dela [23]. Symbian^1
delimo na tretjo (3rd) in peto (5th) izdajo. Glavna razlika med njima je na dotik občutljiv
zaslon pete izdaje, ki je praviloma tudi večji, z višjo gostoto slikovnih točk (en. pixels).
Predstavniki mobilnih aparatov tretje izdaje so: Nokia 5730 XpressMusic, C5-00, E5-00,
E71, E78 itd. Predstavniki pete izdaje pa: Nokia 5800 XpressMusic, C5-03, C6-00, X6 itd
[5].
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 9
3.1.4 Razvoj aplikacij
Za izbrano platformo in ciljno skupino aparatov smo nato poiskali primerno razvojno
okolje.
Skozi leta obstoja platforme Symbian se je osnovala velika skupnost razvijalcev, ki so
zgradili ogromno število aplikacij, velik del odprtokodnih. Standardno razvojno okolje je
temeljilo na Symbian C++.
Več platform Symbian je nudilo svoja razvojna orodja (angl. »software development
kit« – SDK). To so knjižnice in dokumentacija, ki omogočajo razvoj aplikacij za to
platformo. Vključen je bil tudi Symbian emulator za operacijski sistem Windows. Med
največje platforme spadata UIQ in S60. Posamezni produkti ali družine mobilnih telefonov
so pogosto omogočali prenos SDK oziroma SDK razširitev tudi preko proizvajalčevih
spletnih strani [5].
Slaba stran programskega okolja Symbian C++ je čas učenja, ki ga razvijalec porabi,
da lahko začne graditi aplikacije. Nujna je namreč uporaba naprednih funkcij, ki otežujejo
razvoj predvsem enostavnih programov. Ta kompleksnost naj bi izhajala še iz devetdesetih
let, ko so bile strožje strojne omejitve mobilnih naprav. Razvijalec se je moral osredotočiti
na nižjenivojske podrobnosti, namesto na specifične funkcije aplikacije. Zahteven je bil
tudi razvoj uporabniškega vmesnika [5].
Z razvojnim okoljem C++ s Qt SDK, ki se je uveljavil leta 2010, so bile naštete
slabosti odpravljene.
3.2 Knjižnice Qt
3.2.1 Kaj je Qt?
C++ je programski jezik, ki je še danes med razvijalci zelo razširjen. Sam po sebi ne
zagotavlja obsežnih knjižnic razredov, ki bi olajšale razvoj grafičnih uporabniških
vmesnikov (angl. graphical user interface, GUI). Razvijalec mora tako sam ustvariti
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 10
potrebne gradnike, uporabiti že obstoječe okrnjeno ogrodje ali pa kupiti komercialno
rešitev drugih proizvajalcev.
Knjižnica Qt je odgovor na veliko razvojnih težav – je namreč celovita rešitev za
razvoj predvsem grafičnih uporabniških vmesnikov in ena izmed najpreprostejših za
uporabo. Na voljo je pod različnimi licencami, med drugim tudi pod prosto licenco GPL.
Dodatna pomembna lastnost ogrodja Qt je med-platformska kompatibilnost. To pomeni, da
lahko z njim ustvarjeni programi tečejo na različnih operacijskih sistemih, kot so npr.
GNU/Linux, Mac OS X, Microsoft Windows in trenutno, nam pomembnejši, Symbian.
Zaradi teh lastnosti je knjižnica Qt na splošno vse bolj priljubljena, posledično pa se je tudi
njen razvoj v zadnjem času občutno pospešil. Aplikacije, ki bazirajo na knjižnicah Qt, so
med drugim tudi Autodesk Maya, Google Earth, Skype, VLC media player, VirtualBox in
Mathematica. Knjižnica Qt je tudi osnova namiznemu okolju KDE (»K Desktop
Environment«) [6].
3.2.2 Knjižnica Qt in platforma Symbian
Knjižnica Qt in platforma Symbian sta dobila skupno točko, ko je Nokia kupila
podjetje Trolltech ASA junija 2008. Začel se je pospešen razvoj knjižnic Qt za platformo
Symbian. Prva različica razvojnega okolja Nokia Qt SDK je postala dostopna javnosti
junija 2010. Obenem je bila dana na voljo tudi izvorna koda. Namen tega je bil, da se
privabi še več razvijalcev; ne samo uporabnikov teh knjižnic, ampak tudi razvijalcev, ki bi
pripomogli k izboljšavi in razvoju Qt gradnikov. Dodatna sprememba je bila nova licenca
LGPL, ki je prišla v veljavo januarja 2009. Ta je pritegnila še različne odprtokodne ne-
GPL projekte [5].
Trenutna verzija okolja SDK vsebuje: Qt 4.7.3, Qt Creator, Qt Mobility 1.3 in Qt
simulator. Qt Creator je integrirano razvojno okolje (integrated development environment,
oziroma IDE). Razvito je posebej za delo s knjižnico Qt, podprto je na več platformah,
vsebuje pa tudi zmogljivo orodje za gradnjo uporabniškega vmesnika. Qt Mobility so
dodatne knjižnice, ki omogočijo lažji dostop do standardnih funkcij mobilnih telefonov,
kot so: kontakti, kamera, lokacija, večpredstavnost, senzorji itd. Qt simulator je hitra,
procesorsko nezahtevna aplikacija, ki simulira delovanje mobilne naprave [6].
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 11
Naštete funkcionalnosti so pripomogle, da odločitev glede izbire programskega okolja
za izvedbo diplomskega projekta ni bila težka. Edina alternativa za razvoj domorodnih
aplikacij na platformi Symbian je Symbian C++, ki je omenjen v poglavju 3.1.4. Tam je že
omenjena slaba stran, to je čas učenja, ki ga razvijalec porabi, da doseže polno
produktivnost.
Prihod knjižnic Qt, ki sicer izhajajo iz enakega jezika kot Symbian C++, je s svojim
naprednim ter hkrati enostavnim konceptom zelo olajšal delo razvijalcem na platformi
Symbian.
3.3 Tehnologija VoIP
3.3.1 Kaj je VoIP?
VoIP oziroma »Voice over Internet Protocol« je na področju telefonije tehnologija
prihodnosti. VoIP izkorišča širokopasovni internetni dostop za usmerjanje telefonskih
klicev tako do drugih VoIP telefonskih priključkov oziroma rešitev, kot tudi do klasičnih
telefonskih priključkov [14].
Z uvedbo VoIP dobimo cenejšo rešitev, kot jo ponuja mobilna telefonija. To velja za
primer, ko je na voljo dovolj poceni podatkovna povezava. Za izvedbo rešitve VoIP
namreč ni potrebnih nobenih sprememb na komunikacijski infrastrukturi, saj se uporabi
obstoječa povezava do interneta, ki pa mora biti dovolj zmogljiva in zanesljiva. To pomeni,
da je zanesljivost delovanja povsem odvisna od hitrosti in zanesljivosti podatkovne
povezave.
Pri tem je pomembno izbrati pravo vrsto implementacije protokola. Obstaja več
različnih implementacij: H.323, IP Multimedia Subsystem (IMS), Media Gateway Control
Protocol (MGCP), Real-time Transport Protocol (RTP), Session Description Protocol
(SDP) in Session Initiation Protocol (SIP).
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 12
3.3.2 Protokol SIP
Protokol SIP (Session Initiation Protocol) je signalizacijski protokol, ki se uporablja za
upravljanje predvsem govornih, pa tudi ostalih večpredstavnostnih komunikacijskih sej z
enim ali več udeleženci. Protokol SIP omogoča tudi izvedbo konferenčnih sistemov,
takojšnje sporočanje (IM – instant messaging), deljenje informacij o statusu posameznih
odjemalcev (presence) in pretočne (streaming) prenose podatkov. Podpira torej tudi
prenose datotek in videotelefonijo [18].
Signalizacijski protokol SIP sta izdelovala Henning Schlzrinne in Mark Handley.
Njuno delo se je začelo leta 1996. Najnovejša različica specifikacije je RFC 3261, ki ga je
oblikovala medmrežna delovna skupina IETF. Novembra 2000 je bil protokol SIP potrjen
in sprejet kot 3GPP signalizacijski protokol. Od takrat je stalen element IP
multimedijskega podsistema (IMS), zgrajenega za pretakanje na IP temelječih
večpredstavnostnih storitev v mobilnih sistemih [18].
Protokol SIP je protokol na aplikacijskem nivoju. Napisan je tako, da sicer lahko
medij, uporabljen v seji, uporablja katerikoli transportni protokol, a se običajno uporablja
RTP (Real-time Transport Protocol). Je neodvisen od osnovnega transportnega sloja, kar
pomeni, da ga lahko izvajamo na protokolih TCP, UDP ali SCTP. V osnovi je zelo
enostaven z omejenim naborom ukazov. Je berljivega tekstovnega tipa, ki vključuje
nekatere elemente protokolov HTTP (Hypertext transfer protocol) in SMTP (Simple Mail
Transfer Protocol) [18].
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 13
Slika 3.1: Struktura nešifriranega SIP protokola [20]
Kar se tiče varnosti, je rešitev za samo signalizacijo šifriranje nad nivojem prometa
paketov. To opravlja Transport Layer Security (TLS), ki je standardna rešitev za širšo
paleto medmrežnih protokolov, kot so HTTP, IMAP, POP3 itd.
Za šifriranje pogovora se uporablja standard SRTP (Secure Real-time Transport
Protocol), ki je tokovni kodirno-dekodirni protokol (stream cipher). Pogoj uporabe teh
tehnologij je, da jih poznajo vse naprave, ki med seboj komunicirajo.
Protokol SIP smo izbrali zato, ker je najbolj razširjen in omogoča najlažjo
implementacijo na ciljni platformi. Uporabljamo lahko storitve kateregakoli ponudnika, ki
podpira omenjeni protokol. S tem je omogočena takorekoč neomejena uporaba, ker je
izbira ponudnikov velika.
Nekateri telefoni podjetja Nokia privzeto že vsebujejo enostavnega odjemalca VoIP,
kar pomeni, da je implementacija tega protokola izvedljiva. Da nismo uporabili
obstoječega odjemalca, je več razlogov. Glavni je ta, da te podpore nimajo vsi telefoni. Naš
cilj pa je namestiti aplikacijo na čim več različnih aparatov. Drugi razlog je kompatibilnost
med različnimi izvedbami in neodvisnost od prednaložene implementacije. Potrebujemo
čim bolj univerzalno rešitev.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 14
Naslednji logičen korak je bil najti že razvito implementacijo protokola SIP, ki bo
kompatibilna z večjim delom platforme Symbian.
3.3.2.1 Standard IMS
IMS oziroma IP multimedijski podsistem je 3GPP standard, ki definira vzpostavitev
omrežja za kontrolo seje in omogoča konvergenco storitev. Omogoča multimedijske
storitve, storitve z dodano vrednostjo in nove možnosti uporabe naprav pri komuniciranju.
To ni storitev, ampak je arhitektura, ki je osnovana na protokolu SIP in omogoča napredne
storitve in aplikacije na vrhu paketno preklapljanega omrežja. Cilj pa ni le omogočanje
trenutnih novih storitev, ampak tudi vseh morebitnih storitev v prihodnosti.
Temelječ na standardnem protokolu IP, IMS omogoča aplikacijam na IP napravah, da
vzpostavijo povezavo z drugimi IP napravami na enostaven in varen način. Torej,
multimedijska seja med dvema IMS uporabnikoma, med IMS uporabnikom in
uporabnikom na internetu ter med dvema uporabnikoma na internetu je vzpostavljena
preko popolnoma enakega protokola [19].
3.4 Knjižnica PJSIP
Posebna analiza za izbiro izmed množice implementacij protokola SIP ni bila
potrebna, saj je ena izmed prvih najdenih rešitev zadostila pogojem. To je knjižnica PJSIP.
3.4.1 Kaj je PJSIP?
PJSIP je množica odprtokodnih knjižnic, napisanih v programskem jeziku C, ki
omogočajo enostavnejši razvoj VoIP aplikacij.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 15
Slika 3.2: Arhitekturni diagram knjižnic PJSIP [8]
Glavne prednosti knjižnice PJSIP [8]:
• prenosljivost – podprte so različne platforme (med drugim: MS Windows,
Windows Mobile, Linux, Unix, MacOS X in tudi Symbian);
• majhnost – celotna paleta SIP funkcij zasede manj kot 150KB prostora;
• visoka zmogljivost – pomeni manjšo porabo procesorskega časa in opravljenih
več SIP transakcij/klicev na sekundo;
• veliko število funkcij;
• velika zbirka dokumentacije.
3.4.2 Odločitev za knjižnico PJSIP
Dokaj jasen odgovor poda opis lastnosti v prejšnji točki. Torej glavne prednosti, ki so
odločale o uvedbi teh knjižnic, so:
• podpora platformi Symbian,
• zmogljivost,
• majhnost in
• dobra dokumentacija.
Vse osnovne zahteve so pokrite, sledi začetek razvoja aplikacije.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 16
4 RAZVOJ APLIKACIJE
V tem poglavju je opisan razvoj aplikacije, ki bo omogočala pogovore preko brezžične
oziroma 3G povezave na mobilnem aparatu.
4.1 Vzpostavitev razvojnega okolja
4.1.1 Kaj potrebujemo?
Na uradni strani Qt so navodila za namestitev okolja. V osnovi so to: knjižnice Qt, Qt
Creator in Symbian 3rd SDK. To zadošča za razvoj Qt aplikacij za platformo Symbian. Pri
tem manjka še podpora za dostop do standardnih funkcij mobilnih telefonov, kot sta dostop
do kontaktov in nadzor omrežnih povezav. Zato je potrebna še dodatna knjižnica: Qt
Mobility.
Za uporabo knjižnic PJSIP potrebujemo še dodatno aplikacijo: Carbide C++. PJSIP je
namreč preveden za nekoliko starejši Symbian OS, ki je sicer v osnovi enak, a je celoten
projekt napisan z orodjem Carbide C++. To ne predstavlja težave, saj je potrebno le
prevesti projekt in nato v Qt projektu uporabiti kreirano knjižnico PJSIP (Dynamic Link
Library ali krajše: DLL).
4.1.2 Namestitev in konfiguracija
Qt knjižnice, Qt Creator, Symbian 3rd in Carbide C++ imajo svoje namestitvene
čarovnike, ki vodijo uporabnika skozi korake namestitve. Pri tem je potrebno paziti, da se
vse skupaj namesti na isti disk (posledica prenosa Qt tehnologije iz Linux okolja). Qt
Mobility pa je le dodatek k obstoječim Qt knjižnicam in Symbian SDK.
Po uspešni namestitvi so na voljo, v možnostih pod menijem »Qt4«, podatki zaznanih
različicah Symbian SDK, Qt in Carbide, kot kaže slika 4.1.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 17
Slika 4.1: Qt Creator okno z možnostmi, ki prikazuje nastavitve
4.2 Osnovni primer
Za prikaz delovanja okolja je podan sledeč osnoven primer:
V aplikaciji Qt Creator v glavnem meniju izbira »new project« ustvari nov projekt.
Odpre se okno, kjer čarovnik med drugim ponudi možnost »Qt Gui Application«. Vpraša
še po ciljni poti, kjer se bo projekt nahajal. V naslednjem koraku lahko kot ciljno napravo
ponudi Symbian mobilnik ali Symbian emulator. Ob koncu čarovnika se ustvarijo potrebne
projektne datoteke. Mainwindow.ui predstavlja formo aplikacije. Na to formo smo dodali
oznako (QLabel) z vsebino »Hello world!«, kar po tradiciji predstavlja eno najosnovnejših
testov delovanja.
Ker smo za ciljno napravo izbrali emulator, se pri zagonu aplikacije ta odpre in prikaže
formo, kot je vidno na sliki 4.2.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 18
Slika 4.2: Prikaz rezultata v emulatorju
4.3 Uporaba knjižnice PJSIP
4.3.1 Prevajanje
PJSIP nudi na svoji spletni strani navodila, kako prevesti knjižnice za platformo
Symbian. Slediti je potrebno korakom: prenos aktualne verzije (1.6), namestitev Carbide
C++, Symbian S60 3rd SDK, Nokia PC Suite.
Po uspešnem uvozu projekta v Carbide je po navodilih potrebna še konfiguracija
knjižnic PJSIP. To je prikladno omogočeno preko ene same datoteke »config_site.h«. V
tem začetnem stadiju smo pustili kar privzete nastavitve. Potrebno je bilo le preimenovati
vzorčno »sample_config_site.h« v omenjeno »config_site.h«. Brez te datoteke se projekt
ne prevede.
Ostane še prevajanje projekta. Tukaj se je pokazala prva napaka, saj je protokol SRTP
(omenjen v SIP poglavju) privzeto omogočen, razvojno okolje pa še ni vsebovalo podpore
za protokol SRTP. Začasno smo v nastavitvah izključili SRTP z dodano vrstico:
# undef PJMEDIA_HAS_SRTP
Po tem posegu se je PJSIP projekt prvič uspešno prevedel brez napak.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 19
4.3.2 Testi preko ukazne vrstice
Knjižnicam je priložena testna aplikacija, ki deluje preko ukazno vrstičnega vmesnika.
Sledili smo navodilom iz namestitvenega postopka, ki vsebujejo dodatne korake za
ustvarjanje in uspešen zagon aplikacije.
Pomemben je dodaten korak, ki ga tukaj prvič srečamo – podpisovanje aplikacije.
Platforma Symbian ima namreč dokaj zaprt sistem nameščanja aplikacij in ne dovoli
namestitve nepravilno podpisanih aplikacij na mobilni aparat. Nivoji podpisovanja so
natančno določeni. Za razvijalce obstaja tudi možnost samo-podpisanega (angl. self-
signed) certifikata, ki ima sicer omejene pravice, a še vedno zadostne za testno aplikacijo.
Ta nastavitev se nahaja v orodju Carbide C++, kot kaže slika 4.3.
Slika 4.3: Možnosti podpisovanja v orodju Carbide C++
Po uspešnem kreiranju in podpisovanju je bila Symbian namestitvena datoteka
(končnica .sis) pripravljena. Zaradi realnejših testov smo emulator zamenjali s pravo
mobilno napravo. V našem primeru je bil to model Nokia N78.
Za poganjanje aplikacij na aparatu preko orodja Carbide je potrebno nanj namestiti
dodatek, ki omogoča komunikacijo med mobilnikom in računalnikom. Ta se imenuje »App
TRK«. Namestitev je enostavna preko čarovnika znotraj orodja Carbide C++. TRK se
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 20
požene na aparatu, v nastavitvah se lahko izbere vrsto povezave, ki je lahko Bluetooth ali
USB. Status povezave je viden tudi v orodju Carbide.
PJSIP testna aplikacija je bila nato uspešno pognana na aparatu (slika 4.4).
Slika 4.4: Ukazno vrstična aplikacija
Ker so naslov in nastavitve strežnika SIP vpisane v kodo projekta, je potrebno za
testiranje klicev postaviti vrednosti povezave. Uporabili smo obstoječi lokalni strežnik
Asterisk1 in nanj preko etherneta povezan samostojen telefonski aparat. Nato smo
aplikacijo ponovno prevedli in namestili. Povezava mobilne naprave je bila vzpostavljena
preko lokalnega brezžičnega omrežja.
4.3.3 Rezultati prvih testov
Testni sistem je deloval. Lahko smo izvedli klic in se na drugi strani oglasili, prav tako
je bilo uspešno prejetje klica. Malce težaven je špartanski uporabniški vmesnik ukazno
vrstične aplikacije, a kljub temu so bili omenjeni testi uspešno izvedeni.
Na večjo težavo smo naleteli pri sami kvaliteti zvoka. Le-ta je bil nečist, se zatikal in
časovni zamik je bil nepričakovano dolg, tudi po nekaj sekund.
Prvi rezultati testnega sistema so bili slabši od pričakovanih. Prvi pomislek je bil, da
testni srednjerazredni mobilnik ne bi imel dovolj procesorske moči za obdelavo zvoka.
1 Asterisk je odprtokodna programska oprema, ki omogoča implementacijo IP telefonije.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 21
Tudi pri pregledu telefonov, ki imajo prednaložen odjemalec VoIP, smo opazili, da med
njimi ni modela N78 [17].
4.3.4 Optimizacija
Dokumentacija knjižnice PJSIP opisuje postopke za uporabo tehnologij APS (Audio
Proxy Server – https://trac.pjsip.org/repos/wiki/APS) in VAS (VoIP Audio Services).
Uporaba ene ali druge tehnologije omogoča manjši časovni zamik (ang. »low latency«),
usmerjanje zvoka (ang. »audio routing«) in že vgrajeno izločevanje odbojev (ang. »echo
cancelling). Tehnologija VAS je podprta na skoraj vseh S60 tretje in pete izdaje, medtem
ko tehnologija APS podpira le nekatere naprave s S60 tretje izdaje. VAS je novejša, bolje
zastopana tehnologija in je priporočena rešitev podjetja Nokia za razvoj nedomorodnih
(ang. »3rd party«) VoIP aplikacij [10].
Zaradi podanih razlogov smo izbrali tehnologijo VAS.
4.3.5 Tehnologija VAS
Na vrsti je bil naslednji test: z VAS podprta verzija testne PJSIP aplikacije. Najprej je
potrebno spremeniti datoteko z nastavitvami:
• omogočiti VAS:
#define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 1
in
• določiti VAS verzijo:
#define PJMEDIA_AUDIO_DEV_SYMB_VAS_VERSION 1
Potrebno je še aktivirati VAS v vsaki izmed uporabljenih datotek .mmp1, kar omogoči
ukaz:
#define SND_HAS_VAS 1
1 Datoteka projekta, uporabljena pri razvoju Symbian aplikacij.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 22
S temi spremembami se je aplikacija uspešno prevedla, kar pa ni dovolj za uspešen
test. Prva težava je ta, da tehnologija VAS ni podprta na Symbian emulatorju, kar niti ne
moti, saj smo za izvajanje testov uporabili namensko napravo (N78). Drugi in edini večji
problem se je pokazal pri podpisovanju aplikacije.
Za uporabo tehnologije VAS (ali APS) je potreben gonilnik t.i. MultimediaDD
(Multimedia Device Driver), ki omogoča neposreden dostop do določenih sistemskih
modulov, kot so multimedijski aplikacijski vmesniki (API – Application programming
interface). Med te spada tudi zvok. MultimediaDD spada v skupino omejenih zmogljivosti
in se lahko omogoči le s certifikatom razvijalca (angl: developer certificate). Postopek za
pridobitev certifikata je zapleten in dolgotrajen, a brez tega ni mogoče nadaljevati projekta,
zato mu je potrebno slediti. Koraki so podrobneje opisani v poglavju 4.7.
S pridobljenim certifikatom smo končno lahko podpisali aplikacijo in jo pognali na
mobilnem telefonu.
4.3.6 Rezultati z uporabo tehnologije VAS
Testni sistem je bil delujoč, kot že prvič. Prav tako je bilo moč izvajati klice v obeh
smereh. Na uporabniškem vmesniku ni bilo sprememb, zato je testiranje enako nerodno, a
še vedno zadostno.
Rezultati so bili več kot zadovoljivi. Zvok je čist in brez zatikanj. Časovni zamik je
dobrih 300ms, kar je za neoptimizirani sistem zelo dobro. Razlika glede na prve teste je
bila očitna, pogovor po odprti liniji je postal nemoteč in razumljiv. Testni aparat Nokia
N78 je zlahka procesiral zvok in promet paketkov.
Za testiranje kvalitete zvoka nismo uporabili dragih naprav ali posebnih pripomočkov.
Obstaja namreč kar nekaj različnih standardov za določanje kvalitete zvoka, kot je npr.
točkovanje MOS, in razne namenske aplikacije za testiranje zvoka, kot je npr. AQuA
(Audio Quality Analyser). Kljub temu je test pokazal, da tehnologija VoIP deluje na
srednjem rangu aparatov zadovoljivo dobro.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 23
4.4 Arhitekturni načrt aplikacije
Da bo aplikacija delujoča, ni potrebno uvajanje posebne strukture. Dovolj bi bilo, če bi
obstoječo PJSIP aplikacijo dodelali z nekaj grafičnimi gradniki kar v Carbide C++. To bi
sicer omejilo uporabo le na platformo Symbian. Pomenilo bi tudi, da mora biti celotna
aplikacija odprtokodna, kot narekuje PJSIP licenciranje.
Ta rešitev ne bi bila najbolj smiselna, saj je na eni strani knjižnica PJSIP, ki je podprta
na več platformah in je lahko predstavljena kot dinamična knjižnica povezav, na drugi
strani pa ogrodje Qt, ki prav tako deluje na več platformah. Izkoristiti te prednosti je
logičen korak. Čeprav je v začetku nekaj več dela, taka aplikacija postane neodvisna od
operacijskega sistema, kar pomeni lažji morebitni prenos na druge platforme. Poleg
naštetega je razvoj grafičnega vmesnika v okolju Carbide C++ zelo zahteven, predvsem
glede naprednih gradnikov, saj jih tako rekoč ni.
Strukturo aplikacije smo razdelili na štiri nivoje.
1. nivo je grafični uporabniški vmesnik, preko katerega se uporabniku signalizira
stanje linije in druge indikatorje, hkrati pa sprejema ukaze uporabnika.
2. nivo predstavlja zgornji del funkcionalnosti aplikacije, ki upravlja s statusi
klicev, pravilno signalizacijo, upošteva posebnosti platforme Symbian,
predvaja zvokovne datoteke, hkrati pa sprejema, posreduje in izvaja ukaze
prvega nivoja.
3. nivo je ovojnica (angl. wrapper), ki skrbi za komunikacijo med knjižnico in
aplikacijo. Predstavljen je kot API vmesnik.
4. spodnji nivo je knjižnica PJSIP.
Prvi trije nivoji so strnjeni v svojo aplikacijo, ki se licencira po potrebi, medtem ko se
spodnji nivo (knjižnica) pusti odprtokoden, kot narekuje licenca GPL. Ta ločitev je
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 24
smiselna tudi pri nadgradnji, ker se lahko aplikacija nadgrajuje neodvisno od knjižnice.
Podobno velja za podpisovanje aplikacije s strani podjetja Nokia, ki je potrebno za širšo
distribucijo.
Slika 4.5: Diagram glavnih razredov z osnovnimi metodami aplikacije
Na sliki 4.5 prikazan glavni razred »MainWindow« uporablja ostale razrede aplikacije.
Predstavlja centralni razred aplikacije. Med drugim vsebuje več metod, ki omogočajo
delovanje in povezovanje vseh nivojev: od spodnje knjižnice do uporabniškega grafičnega
vmesnika. Poleg metod so še pripadajoči objekti za kontakte, SIP račun in poseben objekt
razreda »TLIB_PJSIP_Library«, poimenovan »SipLibrary«. Preko SipLibrary se tvori
komunikacija spodnjega nivoja med aplikacijo in knjižnico PJSIP.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 25
4.5 Razvoj vmesnika
V arhitekturnem načrtu aplikacije je kot tretji nivo opisana ovojnica (angl. wrapper) in
omogoča lažji dostop do dinamične knjižnice PJSIP. Funkcije knjižnice interpretira in
poenostavi na način, da so lažje za uporabo z vidika aplikacije. Ta nivo zato imenujemo
API vmesnik za knjižnico.
Sama knjižnica je že prevedena za Symbian. Poskrbeti je bilo še potrebno, da je
skupek uporabljenih metod izpostavljen in tako dostopen iz zunanjih aplikacij. Izdelali smo
nov razred, ki zna komunicirati s to knjižnico. Ker bo celotni grafični vmesnik izdelan z
orodjem Qt Creator, je smiselno, da se z njim ustvari nov projekt »Qt Gui Application«.
Za začetek smo dodali novo datoteko: pjsip_api.h (slika 4.6 in slika 4.7), ki je zaglavna
datoteka (angl. header file). Hkrati dodamo še pjsip_api.cpp (slika 4.8), kjer je izvorna
koda.
Slika 4.6: Del pjsip_api.h kode; razred, ki predstavlja klic in pripadajoče podatke
class TLIB_PJSIP_Call : public QObject { Q_OBJECT public: TLIB_PJSIP_Call(unsigned int CallID, unsigned short CallType) { LIB_CallID = CallID ; LIB_CallType = CallType ; } ~TLIB_PJSIP_Call() ; QString LIB_RemoteAddress ; QString LIB_LocalAddress ; QString LIB_RemoteContact ; QString LIB_LocalContact ; unsigned int LIB_CallID ; unsigned short LIB_CallState ; unsigned short LIB_CallType ; } ;
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 26
Slika 4.7: Del pjsip_api.h kode; razred, ki predstavlja knjižnico PJSIP
Slika 4.8: Del pjsip_api.cpp kode; razred, ki predstavlja knjižnico PJSIP
1. //PJSIP direktive 2. #define PJMEDIA_SRTP_DISABLED 1
3. #define PJMEDIA_HAS_THREADS 0 4. #define PJMEDIA_HAS_SRTP 0 5. #define SND_HAS_APS 0 6. #define SND_HAS_VAS 1 7. #define SND_HAS_MDA 0 … 20. //Inicializacija knjižnice dinamičnih povezav 21. int TLIB_PJSIP_Library::LIB_InitInstance(void) 22. { 23. if (LIB_LibraryHandle == NULL) { 24. LIB_LibraryHandle = new QLibrary("LIB_PJSIP.dll", this) ; 25. return 1; 26. } 27. return 0 ; 28. } …
55. //Funkcija, ki prikliče obstoječ klic, ki je na čakanju 56. int TLIB_PJSIP_Library::LIB_UA_CallRetrieve(int CallID, char * MessageData) 57. { 58. TLIB_PJSIP_Call* Call = LIB_FindCallID(CallID) ; 59. if (LIB_LibraryHandle == NULL) 60. return -1 ; 61. 62. PJSIP_UA_CallRetrieve _CVP_UA_CallRetrieve = 63. (PJSIP_UA_CallHold)LIB_LibraryHandle->resolve("PJSIP_UA_CallRetrieve") ; 64. if ((_CVP_UA_CallRetrieve) && (Call)) { 65. return _CVP_UA_CallRetrieve(Call->LIB_CallID, MessageData) ; 66. } else 67. return -1 ; 68. }
1. class TLIB_PJSIP_Library : public QObject 2. { 3. Q_OBJECT 4. public: 5. TLIB_PJSIP_Library() ; 6. int LIB_InitInstance(void) ; 7. void LIB_DoneInstance(void) ; 8. public: 9. TLIB_PJSIP_Call* LIB_ActiveCall ; 11. TLIB_PJSIP_Call* LIB_FindCallID(unsigned int CallID) ; 12. void LIB_SetActiveCall(TLIB_PJSIP_Call* NewActiveCall) ; 13. void LIB_AddCall(TLIB_PJSIP_Call* Call) ; 14. void LIB_RemoveCall(TLIB_PJSIP_Call* Call) ; … 30. public: 31. QLibrary* LIB_LibraryHandle ; 32. int LIB_UA_InitSocket() ; 33. int LIB_UA_Initialize(int OwnerData) ; 34. void LIB_UA_Finalize(void) ; 35. int LIB_UA_Listen(char* LocalAddress, int LocalPort, void* EventHandler) ; 36. int LIB_UA_AccountAdd(char* UserDisplayName, char* UserName, char* UserDomain, char* 37. UserPassword, char* RegistrarServer, char* Realm, int Expires, int OnlineStatus) ; 38. int LIB_UA_AccountDelete(pj_uint32_t AccountID) ; 39. int LIB_UA_CallMake(int AccountID, char* RemoteAddress) ; 41. int LIB_UA_CallAnswer(int CallID, int StatusCode) ; 42. int LIB_UA_CallHangup(int CallID, int StatusCode) ; 43. int LIB_UA_CallHold(int CallID, char * MessageData) ; 44. int LIB_UA_CallRetrieve(int CallID, char * MessageData) ; 45. public slots: 46. void LIB_SetCallState(TLIB_PJSIP_Call* Call, unsigned int NewCallState) ; 47. signals: 48. void LIB_CallStateHandler(TLIB_PJSIP_Call* Call, unsigned int NewCallState) ; 49. private: 50. QList<TLIB_PJSIP_Call*> LIB_CallList ; 51. } ; 52. 53. //Glavni upravljavec dogodkov/sporočil 54. typedef void TLIB_SIP_MessageHandler(TLIB_SIP_MessageStruct* MessageStruct) ;
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 27
Zaenkrat so implementirane le osnovne metode za nadzor klicev. Na sliki 4.7 so
razvidne metode za nov odhodni klic, dvig prihajajočega klica, prekinitev aktivnega klica,
priklic klica, ki je na čakanju, in postavitev aktivnega klica na čakanje.
Iz programske kode na sliki 4.8 je razvidno delovanje programskega vmesnika, ki
komunicira s knjižnico. Najprej se naloži knjižnica PJSIP (»LIB_PJSIP.dll«), nato se po
potrebi kliče njene vsebovane metode. Na primeru (slika 4.8) je prikazana funkcija
»LIB_UA_CallRetrieve« (vrstica 56), ki prikliče nazaj klic, ki je bil postavljen na čakanje.
Sprejema parametra ID klica in kazalec na vsebino sporočila, ki vsebuje dodatne
informacije o klicu. Najprej se preveri obstoj knjižnice PJSIP in nato proži metodo za
priklic klica »PJSIP_UA_CallRetrieve«. Funkcija vrne rezultat uspešnosti priklica, da se
lahko zgornji sloj odzove in uporabniku na zaslonu prikaže ustrezno stanje.
V tej fazi so grafični gradniki le osnovni – tolikšni, da je moč testirati metode
vmesnika. Podrobnejša izdelava celotnega grafičnega vmesnika je opisana v naslednjem
poglavju (4.6). Uporabljeni gradniki so: osnovni QMainWindow, QPushButton, QLineEdit
in QGridLayout. Razen zadnjega so vsi osnovni, podobne poznamo že iz drugih razvojnih
okolij. QGridLayout je Qt novost in predstavlja enega izmed elementov, ki pripomore k
boljši razporeditvi grafičnih objektov na formi. Tukaj je uporabljen za razporeditev
gumbov in tekstovnega polja (slika 4.9), predvsem zaradi spremembe velikosti okna.
Glavno okno se namreč vedno prilagodi ločljivosti zaslona in s tem se morajo dinamično
prilagoditi vse vidne komponente, tako po velikosti kot po poziciji.
Slika 4.9: Izgled aplikacije na N78
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 28
V začetnem nalaganju aplikacije je dodana izvorna koda za celozaslonski način
prikaza, inicializacijo PJSIP knjižnice in prijavo na strežnik.
Slika 4.10: Del kode mainwindow.cpp; zagon
Dodamo še nekaj osnovnih funkcij na prikazane gumbe. Med njimi je glavna zelena
»call/answer« tipka, preko katere lahko sprožimo nov klic ali pa se oglasimo na
prihajajočega.
Z manjšimi začetnimi težavami in popravki v kodi je bila aplikacija delujoča. Tako kot
pri knjižnici PJSIP priloženi testni aplikaciji je bila mogoča osnovna manipulacija klicev.
Ker je spodnja knjižnica DLL praktično enaka, je tudi kvaliteta prenesenega zvoka na
istem nivoju.
4.6 Razvoj grafičnega uporabniškega vmesnika in glavne funkcionalnosti
Pred nami je bil obsežnejši del razvoja. Spodnji nivoji, opisani v prejšnjih poglavjih, so
v večini že bili razviti in testirani, mi smo jih le uporabili. Manjkal je celoten zgornji nivo
aplikacije, vključno z grafičnim vmesnikom. Potrebna je dobra kombinacija oblike in
funkcionalnosti, da bo končni produkt uporaben in bo služil svojemu namenu.
4.6.1 Definicija osnovnih podprtih funkcij
SIP kot protokol je opisan že v poglavju 3.3.2. Ta tehnologija omogoča več načinov
komunikacije: glasovne ali video klice in takojšnje sporočanje. Poleg tega podpira tudi
deljenje statusa odjemalcev, prenose datotek in poleg ostalega tudi nekatere spletne igre.
71. //Delovanje v celozaslonskem načinu 72. MainWindow::showFullScreen(); 73. 74. LIB_PJSIP_DefaultLibrary = new TLIB_PJSIP_Library(); 75. if (LIB_PJSIP_DefaultLibrary != NULL) 76. { 77. //Inicializacija knjižnice 78. LIB_PJSIP_DefaultLibrary->LIB_UA_Initialize(1000); 79. 80. //Povezava posredovalca sporočil 81. LIB_PJSIP_DefaultLibrary->LIB_UA_Listen(NULL, 0x0000, (void*)LIB_PJSIP_MessageHandler); 82. 83. //Povezava na SIP strežnik (parametri računa so fiksni) 84. LIB_PJSIP_DefaultLibrary->LIB_UA_AccountAdd("101", "101", "192.168.1.10", "123", 85. "192.168.1.10", "asterisk", 120, 0); …
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 29
Tudi Qt in Symbian imata nekaj možnosti za nadgradnjo, kot na primer: naprednejši
uporabniški vmesnik, predvajanje videa in zvoka, napredno povezljivost itd.
Implementacija vsega naštetega bi bila sicer zanimiva, a je bila za ta projekt prevelik
zalogaj. Osredotočili smo se na glasovne klice in naprednejši uporabniški vmesnik. To
pokrije osnovno platformo, ki jo bo v bodoče enostavneje nadgrajevati z dodatno
funkcionalnostjo. Natančneje, podprte morajo biti sledeče funkcije:
• osnovna povezljivost na internet na platformi Symbian,
• grafični uporabniški vmesnik, ki se bo znal prilagoditi vsakemu zaslonu ne
glede na njegovo ločljivost. Uporaben mora biti tako na starejših napravah S60
tretje generacije, ki za navigacijo uporabljajo tipke, kot tudi na aparatih pete
generacije, ki imajo na dotik občutljiv zaslon. Mogoča naj bo morebitna
kompatibilnost s Symbian^3,
• povezava na SIP strežnik,
• osnovna manipulacija klicev: klicanje, prejemanje klica, zavrnitev, prekinitev.
Na uporabniškem vmesniku se morajo odražati vsa stanja klica.
4.6.2 Grafično oblikovanje
Do te faze se je porajalo že kar nekaj idej, kakšen naj bi bil osnovni izgled. To gre
predvsem na račun spoznavanja orodja Qt Creator. Ta predstavlja zmogljivo orodje za
oblikovanje in s tem odpira veliko možnosti za olepšavo in poenostavitev, hkrati pa ne
omejuje funkcionalnosti.
Omejitve in zahteve, ki jih je potrebno opredeliti, so predvsem na nivoju platforme
Symbian. Aparati, na katerih bo tekla aplikacija, imajo več različnih vrst ekranov. Pri tem
ni mišljena le gola ločljivost zaslona, temveč tudi gostota slikovnih pik (angl. »pixel
density«) in razmerje stranic (pokončna oziroma ležeča lega). Poleg tega pridejo v poštev
tudi na dotik občutljivi zasloni, ki so v zadnjih letih čedalje bolj priljubljeni. Ti ponavadi
omogočajo tudi dinamično spremembo orientacije zaslona glede na lego aparata, čemur bi
se morala aplikacija samodejno odzvati in po potrebi prilagoditi.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 30
Grafični uporabniški vmesnik mora podpreti tudi vse funkcionalnosti telefona SIP, ki
jih podpira API. To pomeni, da se morajo odražati vsa stanja klica in trenutna povezava s
strežnikom. Uporabniku mora omogočati interakcijo s klici, ki se dinamično spreminja
glede na stanje klica. Na voljo naj bodo še zgodovina klicev in kontakti.
4.6.2.1 Izbira in postavitev gradnikov
Ker Symbian nima določenega standardnega stila, ki bi narekoval obliko in postavitev
objektov, kot je to npr. na operacijskem sistemu iOS (iPhone, iPad), moramo sami določiti
uporabniku čim bolj prijazno postavitev. Edina priporočena praksa je ta, da naj glavni
menijski gumbi stojijo na spodnjem robu ekrana.
Upoštevajoč vse prednosti in omejitve platforme Symbian in knjižnic Qt je nastala
grafična struktura objektov aplikacije, razvidna iz diagrama na sliki 4.11.
Slika 4.11: Diagram osnovne postavitve grafičnih elementov aplikacije
Na glavno okno, poimenovano MainWindow, so postavljeni trije gradniki. Zgornji
»TopFrame« predstavlja glavo, na kateri so logo, ime in ikone, ki prikazujejo različna
stanja. Spodnji »BottomFrame« vsebuje le dva gumba: levi »btnLeft« in desni »btnRight«.
Ta dva gumba predstavljata t.i. softkeys1, katerih funkcija se dinamično spreminja glede na
stanje aplikacije. Desni odpre aktualni meni, medtem ko levi zapre odprti meni oziroma
izvede trenutno akcijo.
Centralni del aplikacije prikazuje vsebino. Za lažjo navigacijo med okni skrbi
komponenta z zavihki (angl. tabs). Vsak zavihek ima svojo ikono in svoj namen. Za prikaz
vseh podatkov je potrebnih pet zavihkov:
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 31
• prvi zavihek »tbHome« predstavlja domačo stran, kjer je poleg logotipa prikazan še
trenutni čas in datum,
• »tbNumpad« predstavlja številčnico - tukaj lahko odtipkamo telefonsko številko,
• »tbHistory« je seznam preteklih klicev,
• na zavihku »tbContacts« je seznam kontaktov,
• nastavitve aplikacije lahko spreminjamo na zadnjem oknu »tbSettings«.
4.6.2.2 Uporaba CSS
Poleg pravilne izbire in postavitve komponent je pomemben tudi njihov izgled. Okna,
teksti, ozadja, robovi, ikone, slike in ostali elementi imajo veliko različnih lastnosti, kot so:
barva, prosojnost, oblika in debelina črt. Ti parametri se lahko tudi dinamično spreminjajo
glede na stanje določene komponente. Primer je gumb, ki je lahko neoznačen, označen ali
udrt/aktiviran.
Iz drugih orodij smo vajeni, da je za kaj več kot spremembo barve ozadja že potrebno
pisati novo komponento, ki morda izhaja iz osnovne, a z novimi lastnostmi, ki jih je
potrebno razviti. Medtem pa Qt že v osnovi podpira večino oblikovnih parametrov pri
vsaki grafični enoti. Osnova enotam je namreč QWidget, ki podpira prekrivne sloge (CSS
– »Cascading style sheet«). Komponente, ki izhajajo iz nje, imajo še svoje dodatne
parametre, tako da lahko oblikujemo praktično vse vidne dele. To olajša delo tako
oblikovalcem, kot tudi razvijalcem, ki morajo ustvarjeno obliko nato implementirati.
Slika 4.12: Primer oblikovanja s pomočjo CSS
QPushButton { background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #000000, stop:1 #666666); border: 2px solid black; border-radius: 6px; color: white; font: arial; font-size: 24px; } QPushButton:pressed { background-color: black; color: gray; border: 2px solid red; }
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 32
Koda slike 4.12 oblikuje gumb (QPushButton). Za barvo ozadja je izbran poševni
gradient. Začne se s črno iz levega zgornjega kota, nato se proti spodnjem desnem prelije v
siv odtenek. Debelina zunanjega roba je 2 slikovni točki, je črne barve in ima zaobljen rob
v velikosti 6 slikovnih točk. Pisava je Arial, bele barve in velikosti 24 slikovnih točk.
Drugi del oblikuje isti gumb, ampak v pritisnjenem (angl. pressed) stanju. Upoštevajo se le
spremembe glede na osnovno stanje, ki so: menjava barve ozadja v popolnoma črno, barva
pisave postane siva in zunanji rob se obarva rdeče. Slika 4.13 prikazuje obe stanji, kot ju
vidi uporabnik.
Slika 4.13: Izgled obeh stanj gumba (Levo je osnovno, desno pa pritisnjeno stanje.)
4.6.2.3 Izdelava grafične podobe
Osnovni gradniki so določeni. Sledi podrobnejše oblikovanje:
• izbira osnovnih barv in stilov,
• izbira ikon in slik,
• velikost in postavitev komponent.
Vse mora sovpadati z določeno funkcionalnostjo, ki jo mora podpirati celoten
uporabniški vmesnik.
Za osnovno verzijo je bil določen temnejši stil, privzeta Arial pisava. Gumbi imajo dve
stanji, osnovno in pritisnjeno, kot kaže slika 4.13.
Pri grafičnem oblikovanju pa ni pomemben le stil, ampak tudi velikost in postavitev.
To predstavlja svojevrsten izziv za oblikovalca, ki oblikuje za mobilne naprave. Te imajo
lahko zelo različne lastnosti zaslonov, ki se jim je potrebno prilagajati.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 33
Kot omenjeno, ni razlika le v številu slikovnih točk (angl. pixels), ampak tudi v
razmerju stranic, ki se lahko spreminja celo med samim delovanjem aplikacije in ne le ob
zagonu. Primeren bi bil N71 (tretja izdaja), kjer je osnovna postavitev zaslona ležeča, kar
je redkost, a se med delovanjem ne spreminja. Z razvojnega vidika je zahtevnejši X6 (peta
izdaja), ki lahko svojo privzeto pokončno lego dinamično spreminja z ležečo, glede na
orientacijo telefona.
Poleg tega je pomembna tudi gostota slikovnih točk (angl. »pixel density«), ki se
razlikuje predvsem med Symbian tretje in pete izdaje. Torej, če je velikost pisave določena
statično v slikovnih točkah, se lahko zgodi, da bo na zaslonu z nizko gostoto slikovnih točk
besedilo (pre)veliko, hkrati pa bo na drugem zaslonu z visoko gostoto skoraj neberljivo
majhno.
X6 ima, kot drugi aparati pete izdaje, na dotik občutljiv zaslon. Tudi to je potrebno
upoštevati pri razvoju grafične podobe, kar pomeni, da morajo biti grafične komponente
temu prilagojene, posebno gumbi.
Eden izmed pomembnejših ciljev projekta je podpreti čim širši nabor različnih
zaslonov. Zato je potrebno nasloviti vse opisane probleme. V ta namen imajo že osnovni
Qt gradniki napredne oblikovne lastnosti s poudarkom na prilagajanju različnih ločljivosti.
Za začetek se določijo velikosti objektov, a ne le osnovna višina in širina, temveč tudi
njune minimalne in maksimalne vrednosti. Poleg tega označimo še horizontalno in
vertikalno politiko obnašanja pri spremembah velikosti, kjer lahko izbiramo med
nespremenljivo, samodejno, maksimalno, minimalno in drugimi.
Naslednji korak je uporaba razporeditvenih gradnikov, ki znajo dinamično prilagajati
velikost in postavitev vsebovanih objektov. QGridLayout je omenjen že v poglavju 4.5 in
prikazan na sliki 4.9. Poleg te razporeditve se uporabljata tudi QHBoxLayout in
QVBoxLayout. Oba znata razporediti objekte, a vsak le v svojo smer, horizontalno ali
vertikalno. Uporabljata se za razporeditev teksta, panelov, gumbov, vnosnih polj itd.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 34
Za pravilne razmike med objekti skrbi »Spacer«, ki je prav tako razdeljen v dve
komponenti, vertikalno in horizontalno. Ta razmika osnovna »softkey« gumba (»btnLeft«
in »btnRight«), ki sta postavljena na spodnjem panelu.
Slika 4.14: Končni izgled osnovne maske
Pred končnim izdelkom je bilo izdelanih nekaj prototipnih različic, a večjih težav pri
samem izgledu aplikacije ni bilo. Na sliki 4.14 je poleg omenjenih grafičnih prijemov
razvidnih še nekaj dodatnih manjših oblikovnih in funkcionalnih komponent.
Kot načrtovano, je grafična podoba ostala relativno enostavna.
4.6.3 Podpora zvočnim zapisom
Knjižnica PJSIP omogoča uporabo široke palete kodekov. Najširše uporabljeni so:
G.711, G.722, G.723.1, G.726, G.729, GSM, iLBC in Speex [21].
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 35
Za osnovni kodek je bil izbran iLBC zaradi sledečih faktorjev:
• na voljo je brezplačno in ne potrebuje nikakršnih licenc;
• široka kompatibilnost;
• širok frekvenčni razpon;
• visoka odpornost pri izgubi paketkov;
• lokalne podpore testnega sistema.
4.6.4 Razvoj izbranih funkcionalnosti
Aplikacija mora podpirati knjižnico SIP, tudi v navezi z uporabniškim vmesnikom, ki
mora odražati ne samo stanja linij, ampak opravljati še druge naloge. Izbrane so bile še
sledeče dodatne funkcionalnosti:
• prikaz stanja povezave (povezan/nepovezan),
• prikaz datuma in časa,
• maska s tipkovnico z možnostjo izvedbe klica,
• seznam zgodovine klicev,
• seznam kontaktov in
• osnovne nastavitve SIP računa.
Predpogoj prikaza stanja uspešne povezave je delujoče omrežje in uspešen klic metode
LIB_UA_AccountAdd, ki vrne status povezave na SIP strežnik. PJSIP zna sam javiti, ko
povezava pade. V tem primeru se status povezave obarva rdeče in aplikacija se samodejno
poskuša ponovno povezati na omrežje in SIP strežnik.
Maska s tipkovnico je povsem standardna številčnica, ki je del tako rekoč vsakega
telefona. Omogoča vnos in klicanje poljubne številke.
Po vsakem končanem klicu se tvori nov zapis na seznamu zgodovine klicev. Vsak tak
zapis vsebuje naslednje podatke:
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 36
• smer klica oziroma zgrešen klic,
• ime in priimek kontakta,
• telefonsko številko,
• datum in čas klica.
V kolikor številke ni bilo mogoče najti med kontakti na aparatu, se ime in priimek ne
izpišeta, ostali podatki pa še vedno ostanejo prikazani. Seznam je voden lokalno v začasni
datoteki. Trenutno je prikazanih le zadnjih 30 klicev.
Še en modul, brez katerega si je težko zamisliti telefon, je seznam kontaktov. Vsak
kontakt ima ikono, ki je trenutno generična, ime, priimek in pripadajočo številko. Poleg
tega je za lažje izbiranje dodan še dinamični iskalnik, ki za vsak podan znak najde
najustreznejši kontakt. Tega seznama trenutno ni moč spreminjati v sami aplikaciji.
4.6.5 Testiranje
Najprej se je testiralo obnašanje novega uporabniškega vmesnika. V nekaterih primerih
so se grafični gradniki napačno raztegnili po ekranu, kar je bilo z nekaj prilagajanja CSS
nastavitev odpravljeno. Potrebno je bilo tudi prilagoditi barve in velikosti ozadij in ikon.
Večjih težav pri tem ni bilo.
Sledi testiranje povezave na strežnik in testi klicev. Po opravljeni konfiguraciji
lastnega lokalnega strežnika se nov testni SIP račun uspešno poveže. Pojavi se prva večja
težava: klici se prekinejo takoj po vzpostavitvi povezave, torej takoj po dvigu
prihajajočega klica. Po nekaj ponovitvah in poskusu izločevanja razlogov za napako, se
stanje ne izboljša.
Ker protokol SIP temelji na enostavni tekstovni vsebini in ne uporabljamo zaščite
SRTP, pomeni, da bi lahko zajemali prenos podatkov in lažje razhroščevali komunikacijo s
strežnikom. Strežnik SIP smo namesto na mrežno stikalo povezali kar na mrežni HUB, ki
omogoča spremljanje vsega mrežnega prometa na vseh vratih. Na HUB smo priključili še
osebni računalnik in namestili vsestranski Wireshark (aplikacija za analizo paketov).
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 37
Iz paketkov ni bilo težko razbrati težave. Pri pogajanju za kodek (angl. codec
negotiation) je prišlo do napake. Izbrani iLBC namreč ni bil podprt na strani strežnika.
Potrebna je bila rekonfiguracija strežnika in težava je bila odpravljena. Po tem so se klici
brez težav izvajali.
Naslednja večja napaka se je dogajala pri testiranju na X6 (peta izdaja). V nekaterih
primerih se je prenos glasu popolnoma ustavil za nekaj sekund. To se pri generičnem
testiranju, z aparatom na mizi, ni dogajalo. Po nekaj testih je postalo očitno, da je za
napako kriva aplikacija sama. Ob določeni rotaciji telefona med pogovorom se je namreč
menjavala tudi orientacija telefona iz ležeče v pokončno ali obratno. »Prijazen«
uporabniški vmesnik je ob tem ponovno izrisal vse objekte in jih prilagodil novi postavitvi.
Ob tem je prišlo do dodatnega procesiranja in centralna procesna enota ni več zmogla
hkrati obdelovati še zvoka.
Razne optimizacije prehoda med stanji, kot so zmanjšanje ozadja in odstranjevanje ne
nujnih sprememb velikosti, so sicer omilile očitno prekinitev, a brez zadovoljivega učinka.
Začasna rešitev je bila, da se za čas klica samodejna prilagoditev orientacije kar izklopi.
Čeprav to ni najbolj elegantna poteza, je bil problem odpravljen in ni več prihajalo do
nevšečnih zamikov med pogovorom.
Po opravljenih osnovnih testih je bila večina hroščev odpravljenih. Testiranje je sicer
potekalo v lokalnem, nadzorovanem okolju, a potrebno je poudariti, da je kvaliteta
pogovora venomer presenečala. Zvok je bil čist, brez zatikanj, šumenja ali pretiranega
časovnega zamika, vse dokler so bile povezave preko LAN omrežja.
Testiranje izven laboratorijskega okolja predstavlja naslednji korak testiranja. Rezultati
pri povezavi preko interneta (vsaj preko drugega ponudnika dostopa) niso veliko odstopali
od lokalnih testov. Edina razlika je bila v nekoliko povišanem časovnem zamiku, a skoraj
neopazna.
Nekoliko večje težave je predstavljala 3G povezava, saj je njena kvaliteta zelo nihala.
Ob zelo dobri povezavi je bil pogovor jasen s še vedno nemotečim časovnim zamikom. Ko
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 38
se je signal poslabšal, a bi glede na hitrost prenosa podatkov še moral zadostovati, se je
tudi kvaliteta občutno poslabšala. Prihajalo je tudi do izgube glasu za sekundo ali dve. Še
slabše je bilo ob izgubi signala, saj je klic nemalokrat obvisel.
Poleg izbire kodekov knjižnica PJSIP omogoča konfiguracijo veliko dodatnih
parametrov, s katerimi bi lahko odpravili omenjene hrošče ali vsaj optimizirali do meje
uporabnosti tudi v slabših situacijah.
Kljub nekaterim težavam so opravljeni testi pokazali, da je koncept delujoč do
predvidene meje.
4.7 Podpisovanje Symbian aplikacij
Zaradi uporabe gonilnika, ki omogoča neposreden dostop do določenih sistemskih
modulov, je potrebno aplikacijo podpisati s posebnim certifikatom. V nadaljevanju so na
kratko opisani koraki postopka podpisovanja, ki običajno traja več dni.
1. Nakup TC certifikata TrustCenter (Verisign in ostali niso več podprti). Sledimo
čarovniku na trustcenter.de. Preden lahko certifikat prevzamemo, je potrebno
plačilo, ki znaša 150 €.
2. Sledi izvoz privatnega in javnega ključa iz TC certifikata, čemur pravijo
»Publisher ID«.
3. S to identifikacijo pošljemo na Nokio zahtevek za certifikat razvijalca. To
storimo s posebnim orodjem: »Developer Certificate Request creation tool«.
Poleg naštevanja potrebnih zmogljivosti (na primer »MultimediaDD«), je
potrebno vnesti tudi IMEI1 kode vseh naprav, na katerih bo aplikacija tekla.
1 IMEI je 15-mestna serijska številka aparata. Ponavadi se nahaja na nalepki pod baterijo, dostopna pa je tudi
programsko.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 39
Omejitev je sicer visoka (1000 naprav), a je postopek neroden za večje število
ciljnih aparatov.
S pridobljenim certifikatom smo končno lahko podpisali aplikacijo in jo pognali na
mobilnem telefonu.
Opisani koraki so sicer zamudni, a ne preveč zapleteni. Nekaj težav predstavlja slaba
dokumentacija, predvsem zaradi strani www.symbiansigned.com, ki opravlja delo
podpisovanja. V času razvoja je bilo več spletnih povezav za pomoč več mesecev
nedelujočih. Tudi povezava do orodja za podpisovanje ni delovala. Aplikacijo je potrebno
poiskati preko foruma za podporo na www.nokia.com.
Po opravljenem postopku je podpisovanje za dodatne telefone zelo hitro, saj le
vpišemo potrebne kode IMEI v orodje »Developer Certificate Request creation tool« in na
spletni strani oddamo ustvarjeno datoteko. Nekaj trenutkov kasneje je na voljo nov
certifikat.
4.8 Nameščanje in uporaba
Namestitev aplikacije lahko sprožimo na več načinov:
• Nokia PC Suite (povezava preko USB kabla oziroma Bluetooth vmesnika);
• prenos datoteke na napravo preko USB kabla (naprava deluje kot zunanji disk), kjer
se požene namestitev;
• prenos datoteke na SD kartico (preko čitalca kartic); kartica se vtakne v telefon in
namestitev se požene lokalno.
4.8.1 Orodje Nokia Smart Installer
Nokia Smart Installer je rešitev, ki pripomore k enostavnejši namestitvi aplikacij, ki
bazirajo na knjižnicah Qt.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 40
Po uspešno ustvarjeni .SIS datoteki aplikacije je priporočljivo pripeti še Smart
Installer. Pri tem se velikost namestitvene .SIS datoteke poveča za približno 1MB. To
lahko omogočimo v orodju Qt Creatorju ali pa ročno iz ukazne vrstice.
Ob korakih namestitve na aparat se najprej požene Smart Installer, ki preveri, katere
knjižnice Qt aplikacija potrebuje in jih po potrebi samodejno nadgradi. V primeru, da
ciljna naprava še nima niti osnovnega Qt Core, se ta prenese preko podatkovne povezave z
interneta in namesti pred aplikacijo. Ko so vse potrebne knjižnice nameščene, se
namestitev aplikacije nadaljuje.
V primeru, da Nokia Smart Installer ni uporabljen, je potrebno manjkajoče knjižnice
ročno namestiti, preden se lahko aplikacija, ki bazira na Qt, požene.
4.8.2 Uporaba
Po uspešni namestitvi na aparatu N78 se lahko aplikacija požene. Prikaže se osnovno,
domače okno, kot kaže slika 4.14. V zgornjem desnem robu je prikazan status povezave na
strežnik. Zelen obroček pomeni, da je povezava vzpostavljena. V spodnjem, glavnem
meniju lahko poleg domačega okna izbiramo med številčnico (slika 4.15), zgodovino
klicev (slika 4.16) in kontakti (slika 4.17).
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 41
Slika 4.15: Številčnica
Slika 4.16: Zgodovina klicev
Slika 4.17: Kontakti
Slika 4.18: Nastavitve računa
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 42
Slika 4.18 prikazuje nastavitve računa, ki so dostopne preko desnega spodnjega gumba
»Menu«. Za dodatne informacije in lažje testiranje je dodano tudi okno, ki izpiše sistemske
informacije, kot kaže slika 4.19.
Slika 4.19: Izpis sistemskih informacij
Klice lahko izvedemo na več načinov:
• s pomočjo številčnice, kjer odtipkamo želeno številko in pritisnemo zeleni
gumb za klicanje;
• na zgodovini se označi želen klic in pritisne levi spodnji gumb za klicanje;
• na seznamu kontaktov se kliče izbrani kontakt z levim spodnjim gumbom.
Ob prihajajočem klicu levi spodnji gumb dvigne klic, desni pa ga zavrne.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 43
5 ANALIZA STROŠKOV
Primarni cilj aplikacije je znižanje stroškov komuniciranja preko mobilnih aparatov.
Ker je aplikacija razvita do meje uporabnosti, smo lahko začeli z meritvami dejanskega
prenosa podatkov in na tej podlagi tudi izračun stroškov.
5.1 Meritve prenosa podatkov
Za ugotavljanje dejanskega prenosa podatkov med SIP klicem lahko uporabimo več
načinov. V tem primeru je najlažja in tudi uporabljena opazovanje v Symbian vgrajenega
števca. Čeprav bi to že zadostovalo za potrebe te analize, smo rezultate dodatno preverjali
še s programom Wireshark1.
Generični koraki postopka testa:
• ponastavitev števca za prenos podatkov in štoparice;
• SIP klic iz aplikacije na drugega odjemalca SIP, hkrati začnemo meriti čas in
podatke;
• prekinitev klica po petih minutah, zaustavitev prenosa podatkov in štoparice;
• beleženje rezultatov.
Izvedenih je bilo več testov. Končne rezultate predstavlja povprečje vseh zabeleženih
testov. Posebnih odstopanj pri testiranju na lokalnem brezžičnem omrežju ali 3G povezavi
ni bilo.
Za vse klice smo uporabili kodek iLBC, katerega povprečna poraba prenosa podatkov
po specifikacijah je 15,2 Kb/s. To je enosmerna poraba. Rezultati, doseženi pri opravljenih
testih, so bili, kot pričakovano, višji.
1 Wireshark je aplikacija za analizo omrežnega prometa. Služi za analizo prometa neposredno iz omrežja, zna
pa tudi shranjevati promet za kasnejšo analizo.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 44
Celotna poraba dvosmernega pogovora, ki je trajal 5 minut, je znašala 2758 KB. To
pomeni, da se je vsako sekundo preneslo skoraj 9,2 KB podatkov. Opravljenih je bilo še
več testnih pogovorov, a večjih odstopanj ni bilo.
5.2 Izračun dejanskih stroškov
Pri testih na brezplačnem brezžičnem omrežju so stroški seveda nični. Vendar
brezplačne povezave niso vedno na voljo. V takih primerih pride v poštev prenos podatkov
preko omrežja 3G. Pokritost je sicer precej obširna, ampak uporaba tega omrežja
predstavlja dodatne stroške. Na podlagi doseženih rezultatov lahko sedaj izračunamo
okvirne stroške, ki nastanejo ob pogovorih preko 3G povezave.
Predpostavimo, da smo povezani na Mobitelovo mobilno omrežje. Cena prenesenih
podatkov ni enaka za vse naročniške pakete, zato vzemimo vsem paketom enotni zakup
500MB podatkov, kar po trenutnem ceniku stane 12 €. Upoštevajoč porabo 9,2 KB/s bi
pomenilo, da bi z zakupljeno količino lahko opravili preko 905 minut oziroma dobrih 15 ur
pogovorov. Po tej predpostavki bi znašala cena za minuto pogovora le 0,01326 €.
5.3 Primerjava z GSM klici
Zaradi raznolikih ugodnosti in različnih paketov vsakega ponudnika je težko
neposredno primerjati navadno GSM telefonijo in prenos podatkov. Najbližje realnemu
primeru bi bil Mobitelov Osnovni paket, katerega naročnina stane 8,99 € mesečno in ne
vsebuje posebnih ugodnosti. Najcenejša možnost klica je klic v omrežje Mobitel, ki stane
0,08763 €/min. V primerjavi s stroški pogovorov preko podatkovne povezave,
izračunanimi v točki 5.2, je cena šest in pol krat višja.
Torej, kolikšno skupno dolžino klicev bi morali opraviti, da se investicija v zakup
500MB prenosa podatkov izplača? Odgovora ni težko pridobiti iz podanih podatkov. Če bi
opravili mesečno 137 minut pogovorov na GSM omrežju znotraj operaterja, bi nastali
stroški enaki zakupu 500 MB podatkov. To pomeni, da v kolikor čas pogovorov presega
izračunanih 137 minut, postane zakup podatkov cenejša varianta.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 45
Poudariti je potrebno, da je primer vzet za klice izključno znotraj operaterjevega
omrežja, kar je najcenejša izmed GSM storitev, tudi brezplačna brezžična povezava sploh
ni bila upoštevana. Poleg tega obstajajo še drugi paketi, tako za GSM klice, kot tudi za
podatkovni prenos podatkov. Izbrati bi morali individualno glede na potrebe uporabnika.
Drugi, bolj kontrasten primer bi temeljil na pogovorih s tujino. Za klic v sosednjo
Hrvaško odštejemo v redni tarifi 0,35887 €/min, v nižji pa 0,28376 €/min. To pomeni za
klicatelja 27-krat višjo ceno po redni tarifi in 21-krat višjo po nižji, kot preko 3G omrežja.
Vse to pod pogojem, da tudi klicani uporablja SIP račun. Prav tako ne smemo
zanemariti njegovih stroškov prenosa podatkov. Vsekakor v tujini ne bi bilo smiselno
uporabljati lastne 3G podatkovne povezave, saj lahko stroški narastejo nerazumljivo
visoko. Če nadaljujemo na primeru Hrvaške, cenejša varianta znaša za 100kB podatkov 0,4
€ ali drugače zapisano 4 €/MB. Za primerjavo – zakup 500MB paketa pri nas stane le 0,03
€/MB, kar je vratolomnih 133-krat manj kot enaka količina porabljena na Hrvaškem.
Skratka prenos podatkov v mobilnem gostovanju v tujini ni priporočljiv. Ena izmed rešitev
je brezžična povezava, ki ponavadi ni težko dostopna. Druga pa je zakup paketa za prenos
podatkov ponudnika mobilnih storitev v gostujoči državi.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 46
6 IDEJE ZA OPTIMIZACIJO IN NADGRADNJO
6.1 Optimizacija
Aplikacija je v trenutni obliki zadovoljivo delujoča tako na starejših, kot tudi novejših
različicah mobilnih telefonov. Ostalo pa je še kar nekaj prostora za optimizacijo predvsem
grafičnega uporabniškega vmesnika.
Na modelu N78 so kljub nekaterim osnovnim prilagoditvam ostali teksti in nekateri
grafični objekti preveliki. Po drugi strani pa je marsikaj premajhno na večjih, na dotik
občutljivih ekranih. Razlike v uporabniški izkušnji so opazne. Knjižnice Qt omogočajo še
marsikaj več, kot je uporabljeno. Potrebno bi bilo podrobneje proučiti možnosti in jih
vključiti, da bi se aplikacija še bolj prilagodila vsaki napravi.
Hitrost delovanja je sicer zadovoljiva, ampak bi lahko še zmanjšali odzivne čase.
Nekaj mogočih izboljšav:
• menjava .png z .gif (kjer je smiselno),
• optimizacija drugih grafičnih objektov,
• boljše dinamično kreiranje objektov,
• uporaba vmesnega pomnilnika,
• optimizacija večjih seznamov (kontakti, zgodovina).
Nekatere izmed naštetih bi rešili že z uporabo dodatnih naprednih objektov knjižnice
Qt, ki so že optimizirane.
6.2 Avdio kodeki
V tej verziji aplikacije je uporabljen iLBC kot edini kodek. To omeji kompatibilnost in
s tem tudi uporabnost. Prav tako ni dostopnih dodatnih nastavitev.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 47
Uporabljena knjižnica PJSIP podpira tudi sestavo lestvice uporabe kodekov. To
pomeni, da se ob prvi povezavi na drugo napravo sistem samodejno dogovori za
uporabljen kodek. Upošteva se tudi prioriteta lestvice. V primeru, da ni medsebojno
združljivih kodekov, se postopek klica prekine.
Uporaba te funkcionalnosti bi povečala obseg naprav in programske opreme, s
katerimi se lahko aplikacija povezuje.
6.3 Dodatne funkcionalnosti
Naštetih je bilo že več različnih dodatnih funkcij, ki jih podpirajo uporabljene knjižnice in
arhitektura. Med njimi najbolj uporabne:
• takojšnje sporočanje (instant messaging),
• indikacija prisotnosti (presence),
• SMS sporočila,
• večjezičnost,
• snemanje klica,
• prenos datotek ali videa.
Poleg teh bi lahko dodali tudi več možnosti, ki bi pripomogle k prijaznejši uporabniški
izkušnji:
• več podatkov o klicih,
• več podatkov in možnost urejanja kontaktov,
• prenos imenika z aparata,
• statistika porabe (trenutna in pretekla),
• prikaz porabe baterije,
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 48
• sekundarni klic,
• lastni zvokovni učinki,
• lastna grafična podoba,
• shranjevanje seznama strežnikov,
• izbira med brezžično in 3G povezavo,
• vklop/izklop gostovanja v tujini,
• zaznava navadnih GSM klicev, itd.
6.4 Prehod na druge platforme
Ena glavnih prednosti izbranih knjižnic, tako PJSIP kot okolja Qt, je podpora različnim
platformam. Ker je tudi arhitektura aplikacije grajena po teh načelih, je morebitna podpora
drugih sistemov ne samo omogočena, ampak tudi zelo poenostavljena. Paziti je potrebno
na Symbian specifične ukaze, ki jih je potrebno nadomestiti z ustreznimi ukazi na ciljnem
sistemu. Količina takih ukazov je odvisna od namena uporabe. Vzemimo, da aplikacija
dostopa do telefonskega imenika, stanja osnovnih klicev, posebnih poti na disku,
orientacije telefona in podobno. V takem primeru bo več izjem v kodi, ki jih je potrebno
ločiti pri implementaciji na različnih platformah. Še vedno to pomeni le nekaj dodatnih
vrstic kode, ki v celotnem ciklu prehoda ne pomenijo veliko dodatnega dela. Večino teh
izjem pokrivajo same knjižnice s svojimi vmesniki in ovojnicami, razvijalec jih mora le
pravilno uporabiti.
Pri prehodu na drugo platformo ne smemo pozabiti na morebitno prestrukturiranje
grafičnega uporabniškega vmesnika. Nekatere platforme imajo povsem začrtan stil in
postavitev elementov, kar je priporočeno ali pa celo zahtevano upoštevati.
PJSIP podpira poleg Symbiana med drugim tudi: Windows, MacOS X, Unix in Linux
na različnih procesorjih. Obstajata tudi različici za Android in iOS. Qt je podprt na
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 49
sistemih: Symbian, Windows, Linux in Max OS X. Prav tako pa obstaja neuradna različica
za Android, ki je bil v času zaključka diplomskega dela še v razvoju.
Med samim razvojem odjemalca SIP je bila že izdelana tudi različica za Windows,
ampak le kot prototip. Za uspešen prevod kode aplikacije je bilo potrebno popraviti le
nekaj nastavitev Qt Creatorja (npr. menjava prevajalnika) in pa seveda prevod nove
knjižnice PJSIP za okolje Windows, ki ni vsebovala tehnologije VAS. Razen zvočnih
učinkov, katerih Symbian koda in knjižnice so bile določene z direktivami prevajalnika, je
bilo moč tako klicati, kot prejemati klice. Konceptna različica, ki je dokazala enostavnost
prehoda na drugo plaftormo, je bila izdelana v pičlih nekaj urah.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 50
7 SKLEP
Primarni cilj diplomskega dela je bil razvoj aplikacije za mobilno platformo Symbian,
ki združuje in izkorišča novejše in nekatere starejše tehnologije za prenos govora preko
podatkovne povezave.
Za dosego zastavljenega cilja smo izbrali več tehnologij, protokolov in orodij, ki
nudijo široko paleto načinov uporabe in s tem napredek za razvoj storitev naslednje
generacije: knjižnice Qt, s katerimi je poenostavljen razvoj zahtevnega in dinamičnega
uporabniškega vmesnika, ter knjižnico PJSIP s svojo implementacijo protokola SIP, ki je
hitra, majhna in zanesljiva. Vse skupaj na temeljih, ki jih nudi tehnologija VoIP.
Življenjski cikel nastale aplikacije še ni končan, saj omenjene tehnologije omogočajo
še veliko možnosti za optimizacijo in nadgradnjo.
Sekundarni cilj dela je bil potrditi, da je mogoče s skupkom obstoječih in enostavno
dostopnih tehnologij znatno zmanjšati stroške na tako razširjenem področju, kot so mobilni
pogovori. Pri tem pa celo izboljšati uporabniško izkušnjo, bodisi z izboljšanim prenosom
zvoka, ki ga omogočajo že uveljavljeni protokoli in kodeki, bodisi z drugimi razširitvami,
kot je na primer varnost.
Izdelan delujoč prototip s svojo večnivojsko fleksibilnostjo nakazuje, da je prišel čas,
ko bi že bilo smiselno v celoti, ali vsaj delno, mobilno telefonijo prenesti na novejše in
naprednejše tehnologije. Trenutno privzeti – a stari – standardi nas omejujejo s svojimi
redkimi, nerazširljivimi storitvami in pretiranimi stroški.
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 51
8 VIRI, LITERATURA
[1] Frank H. P. Fitzek, Tommi Mikkonen, Tony Torp, Qt for Symbian, 1. Izd., John Wiley & Sons Ltd., 2010
[2] Jasmin Blanchette, Mark Summerfield. C++ GUI Programming with Qt 4, 2. izd., Prentice Hall Open Source Software Development Series, February 04, 2008
[3] All about Symbian, comScore data shows smartphone situation in Europe, http://www.allaboutsymbian.com/news/item/11342_comScore_data_shows_smartphone.php (pridobljeno dne 1. 9. 2011)
[4] Nokia, Qt - A cross-platform application and UI framework, http://qt.nokia.com/products/ (pridobljeno dne 1. 9. 2011)
[5] Wikipedia, the free encyclopedia, Symbian, http://en.wikipedia.org/wiki/Symbian (pridobljeno dne 1. 9. 2011)
[6] Wikipedia, the free encyclopedia, Qt (framework), http://en.wikipedia.org/wiki/Qt_(framework) (pridobljeno dne 1. 9. 2011)
[7] Symbian.org, Qt Quick Start, http://developer.symbian.org/wiki/index.php/Qt_Quick_Start (pridobljeno dne 1. 9. 2011)
[8] PJSIP, http://www.pjsip.org/ (pridobljeno dne 1. 9. 2011)
[9] PJSIP, Building and Debugging PJSIP on Symbian S60 3rd Edition Device using Carbide C++, http://trac.pjsip.org/repos/wiki/Getting-Started/Symbian (pridobljeno dne 1. 9. 2011)
[10] PJSIP, VAS, https://trac.pjsip.org/repos/wiki/VAS (pridobljeno dne 1. 9. 2011)
[11] Nokia, VoIP Audio Service API, http://wiki.forum.nokia.com/index.php/VoIP_Audio_Service_API (pridobljeno dne 1. 9. 2011)
[12] Nokia, The Style Sheet Syntax, http://doc.qt.nokia.com/4.6/stylesheet-syntax.html (pridobljeno dne 1. 9. 2011)
[13] Symbian Signed, https://www.symbiansigned.com (pridobljeno dne 1. 6. 2011)
[14] Alarix, VoIP, http://www.alarix.si/Rešitve/VoIP/tabid/73/Default.aspx (pridobljeno dne 1. 6. 2011)
[15] Wikipedia, the free encyclopedia, Transport Layer Security, http://en.wikipedia.org/wiki/Transport_Layer_Security (pridobljeno dne 1. 9. 2011)
[16] Mobitel, Cenik, http://www.mobitel.si/ceniki.aspx (pridobljeno dne 1. 6. 2011)
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 52
[17] Nokia, VoIP support in Nokia devices, http://wiki.forum.nokia.com/index.php/VoIP_support_in_Nokia_devices (pridobljeno dne 1. 6. 2011)
[18] Wikipedia, the free encyclopedia, Session Initiation Protocol, http://en.wikipedia.org/wiki/Session_Initiation_Protocol (pridobljeno dne 1. 9. 2011)
[19] Wikipedia, the free encyclopedia, IP Multimedia Subsistem, http://en.wikipedia.org/wiki/IP_Multimedia_Subsystem (pridobljeno dne 1. 9. 2011)
[20] Oracle, The SIP Servlet Tutorial, http://docs.oracle.com/cd/E19502-01/821-0203/gflsc/index.html (pridobljeno dne 1. 6. 2011)
[21] About.com, VoIP Codecs, http://voip.about.com/od/voipbasics/a/voipcodecs.htm (pridobljeno dne 1. 6. 2011)
[22] comScore.com, Android Captures #2 Ranking Among Smartphone Platforms in EU5, http://www.comscore.com/Press_Events/Press_Releases/2011/9/Android_Captures_number_2_Ranking_Among_Smartphone_Platforms_in_EU5 (pridobljeno dne 15. 3. 2012)
[23] Wikipedia, the free encyclopedia, S60 (software platform), http://en.wikipedia.org/wiki/S60_(software_platform) (pridobljeno dne 1. 9. 2011)
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 53
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 54
Uporaba tehnologije VoIP na mobilnih napravah Symbian Stran 55