pretoČni video v okolju moilne telefonijesistem pretočnega videa v okolju mobilne telefonije....

34
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Kristjan Kostrevc PRETOČNI VIDEO V OKOLJU MOBILNE TELEFONIJE Projektna naloga Maribor, september 2017

Upload: others

Post on 22-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO,

RAČUNALNIŠTVO IN INFORMATIKO

Kristjan Kostrevc

PRETOČNI VIDEO V OKOLJU MOBILNE TELEFONIJE

Projektna naloga

Maribor, september 2017

Page 2: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

I

PRETOČNI VIDEO V OKOLJU MOBILNE TELEFONIJE

Projektna naloga

Študent: Kristjan Kostrevc

Študijski program: Univerzitetni študijski program 1. stopnje

Telekomunikacije

Mentor: Red. prof. dr. Zdravko Kačič, univ. dipl. inž. el.

Somentor: Asistent Danilo Zimšek, univ. dipl. inž. tel.

Page 3: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

II

ZAHVALA

Zahvaljujem se mentorju in somentorju za vso pomoč pri izdelavi projektne naloge. Zahvaljujem se tudi družini za vso podporo v času študija.

Page 4: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

III

Pretočni video v okolju mobilne telefonije

Ključne besede: pretočni video, IMS, digitalna ločnica, mobilna aplikacija, IPTV

UDK:

Povzetek

Namen projektne naloge je razviti storitev, ki bo zmanjšala digitalno ločnico tako, da bo

poenostavila uporabo tehnologije pretočnega videa. V projektni nalogi so opisane osnovne

tehnologije za prenos podatkov med dvema stranema in tehnologije za prenos video vsebin.

Nato je določena zasnova sistema prenosa video vsebin, ki ji sledijo gradniki sistema

uporabljeni pri zasnovi. V zaključnem delu je opisana še implementacija sistema z android

aplikacijo in pretakanjem videa na IPTV.

Page 5: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

IV

Streaming video in a mobile phone environment

Key words: streaming video, IMS, digital divide, mobile application, IPTV

UDK:

Abstract

The purpose of the project work is to develop a service that will reduce the digital divide by simplifying the use of streaming video technology. The project work describes the basic technologies for data transfer between two ends and the technology for the transmission of video content. Next, the design of the video content transmission system is determined, followed by the building blocks of the system, used in the design. In the final part, the implementation of the system with android application and streaming video to IPTV is described.

Page 6: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

V

KAZALO

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

2 SPLOŠEN OPIS TEHNOLOGIJ ................................................................. 2

2.1 Internetni multimedijski podsistem (IMS) ........................................................... 2

2.2 Protokol za vzpostavitev seje (SIP) ...................................................................... 3

2.3 Protokol za opis seje (SDP) ................................................................................. 3

3 OPIS TEHNOLOGIJE PRENOSA VIDEO VSEBIN ....................................... 4

3.1 Protokol za prenos v realnem času (RTP) ............................................................ 4

3.2 Realno-časovni strujani protokol (RTSP) ............................................................. 4

4 ZASNOVA SISTEMA PRENOSA VIDEO VSEBIN ....................................... 5

4.1 Scenariji uporabe ............................................................................................... 5

5 GRADNIKI SISTEMA ............................................................................. 10

5.1 Programska knjižnica ZeroMQ .......................................................................... 10

5.1.1 Vzorec objava/naročilo .................................................................................. 11

5.1.2 Vzorec zahteva/odgovor................................................................................ 12

5.2 Multimedijska komunikacijska knjižnica pjsip ................................................... 14

5.3 Medijski predvajalnik Kodi ............................................................................... 16

5.4 Aplikacijski strežnik .......................................................................................... 16

5.5 Začetni kriterij filtriranja (iFC) ........................................................................... 17

Page 7: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

VI

6 IZVEDBA MOBILNE APLIKACIJE VIDEO TOKA ....................................... 18

6.1 Namestitev razvojnega okolja .......................................................................... 18

6.2 Nastavitev začetnega kriterija filtriranja (iFC) ................................................... 20

6.3 Komunikacija med pošiljateljem in strežnikom ................................................. 21

6.4 Opis delovanja Android aplikacije ..................................................................... 22

7 SKLEP .................................................................................................. 24

UPORABLJENI VIRI IN LITERATURA ............................................................ 25

Page 8: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

VII

KAZALO SLIK

SLIKA 4.1: POTEK KOMUNIKACIJE PRI PRENOSU VIDEO SIGNALA ............................................................ 7

SLIKA 4.2:GRAF GRADNIKOV SISTEMA S POTEKOM KOMUNIKACIJE PRI PRENOSU VIDEO SIGNALA ................. 9

SLIKA 5.1: GRADNIKI SISTEMA ..................................................................................................... 10

SLIKA 5.2: UPORABA VZORCA OBJAVA/NAROČILO ZEROMQ ............................................................. 12

SLIKA 5.3: UPORABA VZORCA ZAHTEVA/ODGOVOR ZEROMQ ........................................................... 13

SLIKA 5.4: ARHITEKTURA MEDIJSKE KNJIŽNICE PJSIP ......................................................................... 14

SLIKA 6.1: ZASLONSKI SLIKI APLIKACIJE .......................................................................................... 23

KAZALO TABEL

TABELA 6.1: KORAKI NAMESTITVE USTREZNE PROGRAMSKE OPREME ................................................... 18

TABELA 6.2: NASTAVITEV ZAČETNEGA KRITERIJA FILTRIRANJA ............................................................ 21

Page 9: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

1

1 UVOD

Zaradi hitrega razvoja tehnologije digitalnih komunikacij, starejše generacije ne morejo več

slediti tehnološkemu napredku in tako govorimo o digitalni ločnici. Digitalna ločnica ali

digitalni razkorak ponazarja razliko v dostopnosti in znanju uporabe tehnologij med

različnimi generacijami uporabnikov. Namen tega projekta je definirati storitev, s katero bi

prispevati k zmanjšanju digitalne ločnice za uporabnike, ki so trenutno nevešči uporabe

določenih tehnologij oz. aplikacij. Ta storitev bo s pomočjo mobilne aplikacije skrbela za

realno časovni pretok videa. Tehnologijo bomo tem uporabnikom približali tako, da se bo

video pretakal na IPTV, saj menimo, da uporabniki, ki niso vešči rokovanja s pametnimi

telefoni obvladajo rokovanje z IPTV oz. televizorji, ki so že desetletja prisotni v svetu in so

množično uporabljani skozi več generacij uporabnikov.

Za dosego cilja bomo teoretično raziskali osnovne tehnologije, ki omogočajo komunikacijo

in pretakanje podatkov med dvema stranema, nato bomo raziskali tehnologije prenosa

video vsebin. Iz vseh znanih informacij bomo nato zasnovali sistem prenosa video vsebin,

ki bo primeren za implementacijo storitve realno časovne video razglednice. Pri zasnovi

bodo uporabljeni gradniki sistema, ki bodo prav tako opisani. V zaključni fazi bo sledila še

implementacija sistema z android aplikacijo in pretakanjem videa na IPTV.

Page 10: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

2

2 SPLOŠEN OPIS TEHNOLOGIJ

Poglavje opisuje osnovne tehnologije na katerih temelji storitev realno časovne video

razglednice. Te so Internetni multimedijski podsistem (IMS), protokol za vzpostavitev seje

(SIP) in protokol za opis seje (SDP). V nadaljevanju opisane tehnologije predstavljajo osnovo

pri načrtovanju komunikacijskega sistema.

2.1 Internetni multimedijski podsistem (IMS)

Internetni multimedijski podsistem (ang. IP Multimedia Subsystem oz. IP Multimedia Core

Network Subsystem), kratko IMS je arhitektura, ki skrbi za prenos multimedijskih storitev

preko protokola IP. Je ena izmed arhitekturnih platform omrežij novih generacij (ang. Next

Generation Network), kratko NGN in oblikuje strategijo prihodnosti, kjer bodo številni

operaterji ponujali svoje storitve preko IP tehnologij. Je alternativa klasični (PSTN/ISDN)

telefoniji in ponuja standardizacijo multimedijskih storitev, ki se prenašajo preko protokola

IP. Ena od prednosti te tehnologije je konvergenca naprav in dostopovnih tehnologij. S tem

omogočimo delovanje storitve tako na mobilnih telefonih, kot na IP televizorjih in tudi

ustrezno opremljenih fiksnih telefonih.

Pomembno vlogo kot gradnik IMS ima tudi funkcija krmiljenja klicne seje (ang. Call Session

Control Function), kratko CSCF. CSCF je namreč odgovoren za nadzor signalizacije

komunikacije med omrežjem IMS in uporabniško opremo (ang. User Equipment UE).

Kontrolira začetek seje, njen konec, avtentifikacijo uporabnika, varnost omrežja in kvaliteto

storitve (QoS). Imamo štiri tipe CSCF glede na funkcionalnosti, ki jih ponujajo. Ti tipi so: P-

CSCF (Proxy-CSCF), I-CSCF (Interrogating-CSCF), S-CSCF (Serving-CSCF) in E-CSCF

(Emergency-CSCF).

Page 11: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

3

2.2 Protokol za vzpostavitev seje (SIP)

Protokol za vzpostavitev seje (Session Initiation Protocol (SIP)) je komunikacijski tekstovni

protokol v IMS, ki skrbi za signalizacijo in komunikacijo med oddajno in sprejemno stranjo.

Kot tak vzpostavlja, ureja in končuje seje. Nahaja pa se v aplikacijskem sloju v referenčnega

protokolnega sklada ISO/OSI.

2.3 Protokol za opis seje (SDP)

Protokol za opis seje (Session Description Protocol (SDP)) deluje znotraj SIP protokola. Za

razliko od SIP-a, ki skrbi za signalizacijo in komunikacijo v sejah, SDP skrbi za medijske

vsebine v teh sejah. Za medijske vsebine skrbi na tak način, da z določenimi parametri opiše

vsebino. Tako ti parametri vsebujejo različne podatke kot so naslov izvora in ponora

medijske vsebine, parameter, ki pove, če medij vsebuje avdio in video zapis, pomemben je

tudi parameter, ki pove, kako je zakodirana medijska vsebina. Vsi ti parametri so

pomembni, da na naslovni strani lahko uspešno prejmemo medijsko vsebino.

Page 12: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

4

3 OPIS TEHNOLOGIJE PRENOSA VIDEO VSEBIN

V tem poglavju bomo opisali tehnologije, ki jih bomo uporabili za prenos video vsebin.

Izrednega pomena je, da vse te tehnologije spoznamo saj jih bomo združili v neko celoto in

tako morali poskrbeti, da bodo med seboj pravilno delovale, saj bo le tako lahko pravilno

deloval tudi celotni sistem. Tako bomo pri zasnovi storitve za potrebe realno časnega

prenosa video vsebin uporabili protokol RTP, za možnost kasnejšega ogleda videa pa

protokol RTSP.

3.1 Protokol za prenos v realnem času (RTP)

Protokol za prenos v realnem času (Real-time Transport Protocol (RTP)) je omrežni

protokol, ki je namenjen prenašanju avdio in video vsebin preko IP omrežij. Večinoma se

uporablja pri komunikaciji sistemov, ki prenašajo medijske vsebine. Spada pod aplikacijski

sloj protokolnega sklada ISO/OSI.

3.2 Realno-časovni strujani protokol (RTSP)

Realno-časovni strujani protokol (Real-Time Streaming Protocol (RTSP)) je omrežni protokol

v aplikacijskem sloju. Uporabljamo ga za kontrolo medijskih strežnikov za pretakanje videa,

torej, da vzpostavi in kontrolira seje med dvema koncema. Klienti medijskih strežnikov

izdajajo ukaze za predvajanje, snemanje in ustavljanje, s čimer olajša kontrolo realno-

časovnega pretakanja medijskih vsebin.

Page 13: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

5

4 ZASNOVA SISTEMA PRENOSA VIDEO VSEBIN

Poglavje opisuje kako smo s tehnologijami, ki smo jih opisali v prejšnjih poglavjih, zasnovali

sistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne

scenarije uporabe storitve in na podlagi le-teh ustvarili dva grafa, ki prikazujeta

komunikacijo v sistemu ter ju opisali. Sistem pretočnega videa v okolju mobilne telefonije

v osnovi omogoča prenos video signala, zajetega s kamero mobilnega telefona, na IP

televizor v realnem času.

4.1 Scenariji uporabe

Uporabnik aplikacije se bo med uporabo storitve srečal z različnimi scenariji uporabe.

• IPTV na prejemnikovi strani je izključen ali je v stanju hibernacije:

V primeru, da je IPTV na prejemnikovi strani izključen, bo imel pošiljatelj oz. uporabnik

aplikacije možnost, da vseeno začne s pretokom videa ali pa, da videa ne pretaka. V

primeru, da se bo odločil za pretok videa, se bo ta shranil in prejemniku bo ob vklopu

ponujena možnost, da uporabnik video naknadno pogleda ali pa, da ga zavrže. Če se bo

odločil za ogled, se bo video predvajal, v nasprotnem primeru pa se bo shranjen video

izbrisal.

• IPTV na prejemnikovi strani je vključen:

Če je IPTV na prejemnikovi strani vključen, bo prejemnik najprej dobil obvestilo, da mu

pošiljatelj želi posredovati video v živo. Ob tem bo imel možnost izbire, da video gleda takoj,

da ga shrani in ga pogleda kasneje, ali da videa ne želi pogledati in ga zavrže. Pošiljatelj bo

nato dobil obvestilo o prejemnikovi odločitvi. V primeru, da želi video shraniti se bo

pošiljatelj odločil ali želi nadaljevati s pretokom videa ali ne. Za slednje se bo odločil v

primeru, da shranjen video ob kasnejšem ogledu ne bo več aktualen ali zaradi kakega

drugega razloga. Prav tako bo prejemnik v vsakem trenutku imel možnost, da preneha z

gledanjem videa. V tem primeru bo spet dobil možnost izbire, da se celoten video shrani za

Page 14: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

6

kasnejši ogled. Pošiljatelj bo prejel obvestilo o prejemnikovem prenehanju gledanja videa.

V primeru, da bo prejemnik želel shraniti video za kasnejši ogled se bo pošiljatelj lahko

odločil ali želi nadaljevati s pretakanjem videa ali ne.

Page 15: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

7

Slika 4.1: Potek komunikacije pri prenosu video signala

Iz predvidenih scenarijev uporabe smo izdelali graf (slika 4.1), ki prikazuje komunikacijo v

sistemu med klientom mobilne naprave, IMS-om, aplikacijskim strežnikom ter IPTV-jem.

Najprej klient mobilne naprave pošlje povabilo oz. INVITE na katerega dobi odgovor »100

Trying« kar pomeni, da se zahteva izvaja in, da bo treba počakati na odgovor. To povabilo

pride vse do končnega uporabnika na IPTV-ju, kar v praksi pomeni, da ta dobi obvestilo, da

mu pošiljatelj želi pretakati video klic v živo. Od tu naprej pa sta mogoča dva scenarija. 1.

da naslovnik sprejme povabilo, kar pomeni, da IPTV pošlje signal 180 Ringing do

aplikacijskega strežnika, od tam pa dobi odgovor 200 OK. Ko pride do tega se sproži signal

RTP Media in začne se pretakanje videa od klienta mobilne naprave do IPTV-ja.

2. možnost pa je, da naslovnik zavrne pretok videa. V tem primeru gre od IPTV-ja do

aplikacijskega strežnika signal Cancel + Message, ki pomeni, da je uporabnik zavrnil

ponudbo za pretok videa, v sporočilu pa je zapisano ali želi, da se video vseeno shrani na

Page 16: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

8

aplikacijski strežnik in se kasneje pretaka ali, da tudi kasneje ne želi gledati videa.

Aplikacijski strežnik na to odgovori s signalom Message, ki je ponudba sprejemniku, da

kasneje predvaja shranjen video. V primeru, da sprejemnik želi shraniti video za kasneje, se

vseeno sproži signal RTP Media, le, da tokrat potekla pretakanje videa le do aplikacijskega

strežnika kjer se vsebina shrani za kasnejše pretakanje do IPTV-ja, ko bo to želel naslovnik.

Po zaključku katerega koli od teh scenarijev oz. tudi v primeru, da naslovnik zavrne takojšnje

predvajanje videa in shranjevanje videa se komunikacija nadaljuje s tem, da aplikacijski

strežnik do klienta mobilne naprave pošlje signal 180 Ringing in dobi za odgovor 200 OK.

Klient mobilne naprave odgovori s ACK signalom, kar pomeni, da je bil odgovor na začetni

INVITE oz. povabilo sprejet. IPTV prejme signal ACK in odgovori s signalom BYE, ki ga pošlje

v smeri IPTV ter s tem zaključi direktno komunikacijo s klientom mobilne naprave, seveda

pa dobi tudi potrditev, da je bil signal BYE sprejet v obliki signala 200 OK. Ko je direktna

komunikacija med klientom mobilne naprave in IPTV zaključena, lahko pride še do

komunikacije med aplikacijskim strežnikom in IPTV. Ko se namreč naslovnik odloči, da si želi

ogledati shranjen video signala RTP Media in RTSP poskrbita, da se video iz aplikacijskega

strežnika predvaja na IPTV.

Celotna arhitektura sistema z vsemi signali je tudi na spodnji sliki 4.2.

Page 17: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

9

Slika 4.2:Graf gradnikov sistema s potekom komunikacije pri prenosu video signala

Page 18: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

10

5 GRADNIKI SISTEMA

Poglavje opisuje gradnike sistema in tehnologije, ki smo jih uporabili za njegovo gradnjo.

Sistem sestoji iz omrežja IMS, klienta na mobilni napravi, klienta za televizor in

aplikacijskega strežnika. V nadaljevanju so opisani posamezni gradniki in koncepti

uporabljeni pri implementaciji gradnikov. Protokol ZeroMQ uporabimo pri implementaciji

klienta za televizor in ima različne vzorce delovanja. Sledi pjsip, ki je pri izvedbi projekta

pomembna tehnologija in ga uporabljamo za signalizacijo in upravljanje pretoka medijskih

vsebin med klientoma, omrežjem IMS in aplikacijskim strežnikom. Kodi je medijski

predvajalnik, ki ga uporabimo kot osnova za klient, ki deluje na televizorju. Uporabljamo še

začetni kriterij filtriranja, ki zahteve s strani klientov, ki izpolnjujejo pogoje in zadevajo

storitev posreduje do aplikacijskega strežnika. Celoten sistem vidimo na spodnji sliki 5.1.

Slika 5.1: Gradniki sistema

5.1 Programska knjižnica ZeroMQ

Programska knjižnica ZeroMQ, ki je lahko imenovana tudi ØMQ, 0MQ ali ZMQ, je

programska knjižnica namenjena pošiljanju sporočil. Omogoča izdelavo kompleksnega in

visoko zmogljivega komunikacijskega sistema. ZeroMQ je v ravnovesju med tehnologijami

Page 19: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

11

nizkega nivoja kot so Berkeley vtičnice in visokonivojskimi profesionalnimi tehnologijami za

sporočanje. Ponuja namreč fleksibilnost in izvedbo nizkonivojskih sistemov, ter

enostavnost izvajanja visokonivojskih tehnologij. Njegove glavne prednosti so zanesljiva

izvedba, preprostost in prilagodljivost.

Tok poslanih sporočil je odvisen od izbranega vzorca, med katerimi so naslednji štirje:

• vzorec objava/naročilo: uporabljen za distribucijo podatkov od enega procesa

(publisher) do več prejemnikov (subscribers)

• vzorec zahteva/odgovor: uporabljen za pošiljanje zahteve in prejetje odgovora na

vsako poslano prošnjo

• vzorec cevovod: uporabljen za distribucijo podatkov do izbranih vozlišč

• vzorec izključni par: uporabljen za povezavo dveh vrstnikov med seboj

5.1.1 Vzorec objava/naročilo

Vzorec ZeroMQ, ki uporablja vtičnice »publish« in »subscribe« uporabimo, ko želimo

objaviti tok podatkov in omogočimo poljubnemu številu klientov, da uporabljajo oziroma

pridobivajo ta tok podatkov (slika 5.2).

Page 20: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

12

Najprej ustvarimo založnika, ki nato objavlja vsebino. Sporočila od založnika niso poslana

neposredno naročniku ampak so sporočila objavljena. Naročnik se nato naroči na vsebino

in prejema sporočila. Založnik objavi vsebino in ne ve, če je nanjo sploh naročen kateri

naročnik. Komunikacija pri vzorcu objava/naročilo je asinhrona, založnik in naročnik sta

neodvisna en od drugega. Če založnik nekaj objavi in se naročnik šele nato prijavi na

vsebino, vsebine za nazaj ne bo dobil. Prav tako se naročnik lahko poveže na več kot enega

založnika z uporabo enega klica »poveži« za vse povezave.

5.1.2 Vzorec zahteva/odgovor

Vzorec zahteva/odgovor je najbolj osnoven in vzorec. Njegovo uporabo vidimo na sliki 5.3.

Sestavljen je iz dveh vtičnikov, prvi REQ tip vtičnika deluje kot klient in pošilja zahteve in

nato prejema odgovore. Drugi tip vtičnika je REP, ki prejema zahteve in pošilja odgovore.

Slika 5.2: Uporaba vzorca objava/naročilo ZeroMQ

Page 21: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

13

Na spodnji sliki vidimo primer, ko klient kot zahtevo pošlje »Hello«, strežnik pa na to

odgovori z »World«.

Slika 5.3: Uporaba vzorca zahteva/odgovor ZeroMQ

Kot prikazuje slika (slika 5.1) se ZeroMQ uporabi pri implementaciji klienta na televizorju.

Medijski predvajalnik Kodi podpira razvoj vtinikov preko katerih dodajamo funkcionalnosti

v programskem jeziku Python. Knjižnica pjsip pa ima podporo za video samo v

implementaciji v jeziku C++. Za medsebojno komunikacijo med grafičnim delom klienta, ki

je implementiran v programskem jeziku Python in komunikacijskim delom v jeziku C++ se

uporabi protokol ZeroMQ.

Page 22: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

14

5.2 Multimedijska komunikacijska knjižnica pjsip

Slika 5.4: Arhitektura medijske knjižnice pjsip

V sistemu potekata signalizacija in prenos videa. Medijska knjižnica pjsip (slika 5.4)

implementira tako vso signalizacijo, kot tudi protokole za prenos vsebin. Pjsip je napisan v

jeziku C in implementira protokole, kot so: SIP, SDP, RTP, STUN, TURN, in ICE. Osnovne

komponente in funkcionalnosti, ki jih nudi knjižnica pjsip, so podpora prehajanju NAT, pjsua

za c++, podpora ipv6, pjmedia, SDL in za FFmpeg.

Omogočanje sejnega prehoda NAT (STUN) - prehod NAT s pomočjo posrednikov (TURN) in

vzpostavitvijo medsebojne povezave (ICE) so tehnologije za prehajanje NAT (prevajanje

omrežnih naslovov oz. angleško Network Address Translate). Protokol STUN (ang. Session

Traversal Utilities for NAT) je protokol, ki služi kot orodje drugim protokolom pri prehajanju

NAT. Lahko ga uporabimo kot končno točko za določitev IP naslova in vrat. Razširitev TURN

(ang. Traversal Using Relays around NAT) je razširitev STUN in protokol za pomoč pri

prehajanju NAT, za kar uporablja releje. ICE (ang. Interactive Connectivity Establishment)

in je protokol, ki uporablja STUN in njegovo razširitev TURN. Protokol ICE je uporaben pri

vseh protokolih, ki uporabljajo model ponudba/odgovor, kot npr. SIP. Ti protokoli namreč

težko delujejo skozi NAT. ICE izmenja množico IP naslovov in vrat za vsak medijski pretok.

Opisani protokoli so nujni pri implementaciji v omrežjih s protokolom IP verzije 4, saj se pri

Page 23: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

15

teh uporablja NAT. PJSIP ponuja tudi podporo za IP verzije 6, kjer teh funkcionalnosti ni

potrebno vključevati.

Knjižnica pjsip tako podpira komunikacijo preko ipv6. V želji, da aplikacija podpira UDP

transport ipv4 in ipv6 morata biti ustvarjena dva ločena transporta po protokolu UDP, po

en za vsako verzijo internetnega protokola.

Za razvoj aplikacijskih strežnikov je primerna knjižnica pjsip za programski jezik C, ki je nizko

nivojska. Ima podporo za pjmedia in FFmpeg. Pjmedia upravlja z avdiom in videom, ter tudi

s snemanjem. Je izjemno prenosljiva po številnih namiznih sistemih in mobilnih platformah

in celo takih brez operacijskega sistema. Porablja malo pomnilnika, ob tem pa omogoča

dobro kvaliteto, dobro obvlada tresenje tudi na nižjih pasovnih širinah. Je tudi razširljiv in

podpira strojno opremo, »firmware« in je primerna tudi za implementacijo na vgrajenih

napravah.

V pjsip je prav tako že vključena razširitev za programski jezik c++ in Python (samo knjižnica

pjsua). Pjsua je visokonivojska knjižnica, ki jo uporabljamo na strani klienta in je

enostavnejša za implementacijo lastnih klientov.

Kot prikazuje shema na sliki (slika zgradbe knjižnice pjsip) knjižnica pjsip vsebuje za potrebe

razvoja aplikacij na platformi android knjižnico pjsua v programskem jeziku Java. Pri razvoju

uporabimo razvojno orodje Android studio, v projekt pa vključimo Pjsua kot zunanjo

knjižnico. Imena metod in razredov so enaka kot pri implementaciji v jeziku c++.

Knjižnica SDL ali Simple DirectMedia Layer je knjižnica napisana v jeziku C, ki na različnih

platformah nudi možnost dostopa do strojnega nivoja na katerega je nato mogoče zapisati

visoko zmogljive igre ali multimedijske aplikacije. Zaradi zapisa na strojnem nivoju lahko te

igre in aplikacije delujejo na različnih aplikacijskih sistemih. SDL upravlja s komponentami

kot so avdio, video in vhodne naprave. V primeru uporabe knjižnice pjsua, uporabimo

knjižnico SDL za prikazovanje videa.

Page 24: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

16

FFmpeg je brezplačna programska oprema oz. projekt pri katerem razvijajo knjižnice in

programe, ki rokujejo z multimedijskimi podatki. FFmpeg je sposoben kodirati, dekodirati,

multipleksirati, demultipleksirati, prekodirati, pretakati, filtrirati in predvajati

multimedijsko vsebino. Kljižnici pjsip in pjsua lahko za potrebe kodiranja, odkodiranja in

prekodiranja videa vključujeta FFmpeg.

5.3 Medijski predvajalnik Kodi

Medijski predvajalnik Kodi je brezplačen, odprto kodni medijski predvajalnik, ki ga lahko

naložimo na različne operacijske sisteme in se lahko uporabi tudi za implementacijo

klientov za IPTV. Podprti operacijski sistemi so Windows, Linux ter Mac OS, obstajajo pa

tudi različice, ki podpirajo namestitev na majhnih poceni kartičnih računalnikih kot je

Raspberry Pi, . Teče tudi na igralni konzoli Microsoft Xbox, za katero je bil tudi razvit in se

prvotno imenoval XBMC (Xbox Media Center). Podpira vse najpogostejše avdio in video

formate, ob tem pa lahko prikazuje tudi slike, sezname predvajanja, vremensko napoved,

novice. Dodatno pa lahko namestimo tudi različne dodatke preko vtičnikov v jeziku Python

in tako s skriptami razširimo funkcionalnosti Kodi-ja. Tako lahko s skriptami v programskem

jeziku Python dodamo funkcionalnosti kot so: prikaz TV sporeda, klienti za upravljanje z e-

pošto, funkcionalnost prikaza napovednikov filmov, internetna TV, programi za spremljanje

in snemanje kanalov linearne televizije, igre ter še mnogo več. V naši implementaciji bomo

preko vtičnika dodali klient za IMS s prikazom videa.

5.4 Aplikacijski strežnik

Aplikacijski strežnik ali AS je programska oprema, ki omogoča ustvarjanje spletnih aplikacij

in strežniško okolje za njihovo izvajanje. Glede na delovanje ločimo več tipov aplikacijskih

strežnikov. Eden od tipov je uporabniški agent B2B, ki smo ga uporabili v implementaciji

storitve pretočnega videa v okolju mobilne telefonije. Uporabniški agent B2B (Back-to-back

user agent), poznan tudi pod kratico B2BUA, je element protokola SIP. Deluje med obema

komunikacijskima koncema tako, da pomaga pri vzpostavitvi in preklicu seje. B2BUA je

Page 25: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

17

pravzaprav kombinacija dveh manjših SIP komponent. To sta UAC (User Agent Client) in

UAS (User Agent Server). UAC je komponenta, ki pošilja SIP sporočila in sprejema SIP

odgovore, UAS pa pošilja SIP odgovore in sprejema SIP sporočila. Na ta način oba elementa

SIP rokujeta s povratno signalizacijo od enega do drugega konca. IMS preusmeri SIP zahteve

do ustreznega aplikacijskega strežnika glede na IFC, ki je opisan v nadaljevanju.

5.5 Začetni kriterij filtriranja (iFC)

Začetni kriterij filtriranja (Initial Filter Criteria (iFC)) je IMS standard, ki je zapisan v obliki

XML. XML dokument vsebuje informacije o identiteti uporabnika in pravila usmerjanja.

Vsebuje prioriteto, sprožilno točko in aplikacijski strežnik. Prioriteta določi vrstni red

preverjanja točk proženja. Točka proženja mora ustrezati iskani lastnosti. Če je ta pogoj

izpolnjen iFC prepusti SIP zahteve do aplikacijskega strežnika. Poznamo dva tipa začetnih

kriterijev filtriranja: deljeni in nedeljeni. Pri deljenem je naročniku razkrita le referenčna

številka. Ob registraciji je tako CSCF-ju poslana le ta številka in ne celoten XML dokument,

saj je bil ta že predhodno shranjen v CSCF. Pri nedeljenem iFC-ju pa se v CSCF ob registraciji

pošlje celoten XML dokument.

Page 26: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

18

6 IZVEDBA MOBILNE APLIKACIJE VIDEO TOKA

Poglavje opisuje praktično izvedbo projekta. Najprej opišemo namestitev razvojnega

okolja, nato komunikacijo med omrežjem IMS in aplikacijskim strežnikom, kar zajema

implementacijo začetnega kriterija filtriranja, sledi implementacija komunikacije med

pošiljateljem in strežnikom. Prikazana je tudi implementacija vtičnika klienta medijskega

predvajalnika Kodi. Na koncu smo zasnovali še klient mobilne aplikacije za operacijski

sistem android.

6.1 Namestitev razvojnega okolja

Za izvedbo praktičnega dela projekta je bilo najprej potrebno namestiti razvojno okolje na

katerem bomo razvili storitev. Sam razvoj bo potekal na dveh računalniških sistemih, saj

bomo morali komunikacijo testirati od začetka do konca, torej od pošiljateljeve do

naslovnikove strani. Na prvem sistemu smo imeli nameščen operacijski sistem Raspberry Pi

Raspbian GNU/Linux 8, na drugem pa operacijski sistem Ubuntu 17.04. Na oba sistema smo

namestili v prejšnjih poglavjih opisane komponente, kot so: pjsip, FFmpeg in ostale

potrebne knjižnice. Koraki namestitve razvojnega okolja so navedeni v tabeli 6.1.

Tabela 6.1: Koraki namestitve ustrezne programske opreme

mkdir -p ~/Install_development_enviroment/download_dir #ustvari mapo

cd ~/Install_development_enviroment/download_dir #premaknemo se v ustvarjeno

mapo

sudo apt install build-essential binutils libasound2-dev libv4l-dev libsdl1.2-dev git nasm

libsdl2-dev yasm qt-sdk bzip2 #tam namestimo določeno aplikacijo

wget https://github.com/cisco/openh264/archive/v1.6.0.tar.gz #wget pridobi datoteko

iz spleta

tar xvzf v1.6.0.tar.gz #razširimo pridobljen arhiv

cd openh264-1..6.0/ #dalje se premaknemo v mapo openh264-1..6.0

Page 27: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

19

make -j4 #naredimo oz. prevedemo datoteke iz izvorne kode

sudo make install #ukaz kopira datoteke v končne lokacije oz. program se namesti

cd .. #premaknemo se iz trenutne mape

wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 #pridobimo

datoteko iz spleta

tar jxf last_x264.tar.bz2 #razširimo arhiv

cd x264-s* #se premaknemo v mapo x264-s*

wget http://ftp.br.debian.org/debian/pool/main/n/nasm/nasm_2.13.01-2_amd64.deb

#pridobimo datoteko iz spleta

sudo dpkg -i nasm_2.13.01-2_amd64.deb #namestimo enake pakete kot so bili na

izvorni strojni opremi

./configure --enable-static –extra-asflags="-fPIC" #preveri ali so vse potrebne knjižnice

za prevajanje programa

make -j4 #naredimo oz. prevedemo datoteke iz izvorne kode

sudo make install-lib-static #ukaz kopira datoteke v končne lokacije oz. program se

namesti

cd .. #premaknemo se iz trenutne mape

wget http://ffmpeg.org/releases/ffmpeg-3.0.2.tar.bz2 #pridobimo datoteko iz spleta

tar jxf ffmpeg-3.0.2.tar.bz2 #razširimo pridobljen arhiv

cd ffmpeg-3.0.2 #dalje se premaknemo v mapo

./configure --enable-gpl --enable-libx264 --enable-nonfree –enable-version3 #preveri ali

so vse potrebne knjižnice za prevajanje programa nameščene na sistemu

make -j4 #naredimo oz. prevedemo datoteke iz izvorne kode

sudo make install #ukaz kopira datoteke v končne lokacije oz. program se namesti

cd .. #premaknemo se iz trenutne mape

wget http://www.pjsip.org/release/2.6/pjproject-2.6.tar.bz2 #pridobimo datoteko iz

spleta

tar jxf pjproject-2.6.tar.bz2 #razširimo pridobljen arhiv

cd pjproject-2.6pjlib/include/pj/ #dalje se premaknemo v mapo

cd pjlib/include/pj #dalje se premaknemo v mapo

Page 28: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

20

mv config_site_sample.h config_site.h #premaknemo config_site_sample.h v

config_site.h

nano config_site.h #v config_site.h skopiramo spodnji vrstici #define

#define PJMEDIA_HAS_OPENH264_CODEC 1

#define PJMEDIA_HAS_VIDEO 1

cd ../../../ #premaknemo se iz trenutne mape

./configure #preveri ali so vse potrebne knjižnice za prevajanje programa nameščene

na sistemu

make -j4 #naredimo oz. prevedemo datoteke iz izvorne kode

sudo make install #ukaz kopira datoteke v končne lokacije oz. program se namesti

cd pjsip-apps/src/vidgui #dalje se premaknemo v mapo

qmake-qt4 #qmake je ukaz, ki poenostavi stvaritev makefile-a po različnih platformah

make -j4 #naredimo oz. prevedemo datoteke iz izvorne kode

6.2 Nastavitev začetnega kriterija filtriranja (iFC)

Za pravilno komunikacijo sistema smo nastavili začetni kriterij filtriranja (tabela 6.2), tako,

da omrežje IMS prepušča do aplikacijskega strežnika samo relevantne zahteve

uporabnikov, ki imajo vključeno storitev. V dokument XML smo tako nastavili pogoje, da

filter prepušča pakete z metodo INVITE in imajo v glavi SIP okvirja pod kategorijo »To:« v

vsebini besedo »pc«. Slednja kategorija namreč pove kam je paket namenjen in v kolikor je

namenjen storitvi realno časovne video razglednice, ima v naslovu besedno zvezo »pc«.

Tako smo določili z namenom, da iFC ve, katere pakete prepušča in katerih ne.

Prav tako smo pod značko »Server Name« določili SIP naslov aplikacijskega strežnik

sip:postcard_as.ietkims.uni-mb.si, ki ga sistem uporablja za delovanje.

Page 29: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

21

Tabela 6.2: Nastavitev začetnega kriterija filtriranja

<?xml version="1.0" encoding="UTF-8"?>

<ServiceProfile>

<InitialFilterCriteria>

<Priority>1</Priority>

<TriggerPoint>

<ConditionTypeCNF>0</ConditionTypeCNF>

<SPT>

<ConditionNegated>0</ConditionNegated>

<Group>0</Group>

<Method>INVITE</Method>

<SIPHeader>

<Header>To</Header>

<Content>"pc"</Content>

</SIPHeader>

<Extension></Extension>

</SPT>

</TriggerPoint>

<ApplicationServer>

<ServerName>sip:postcard_as.ietkims.uni-mb.si</ServerName>

<DefaultHandling>0</DefaultHandling>

</ApplicationServer>

</InitialFilterCriteria>

</ServiceProfile>

6.3 Komunikacija med pošiljateljem in strežnikom

Za vzpostavitev komunikacije med pošiljateljem in sprejemnikom oz. med klientom

mobilne aplikacije in medijskim predvajalnikom Kodi smo vzpostavili sistem z IMS-om in

Page 30: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

22

Aplikacijskim strežnikom. V medijski predvajalnik Kodi smo dodali vtičnik imenovan »IETK

IMS client«. Za komunikacijo slednjega s sistemom IMS skrbi zaledni sistem implementiran

v C++.

Vtičnik "IETK IMS client" je napisan v programskem jeziku Python in skrbi, da se uporabnik

registrira v SIP ter prejema video tok in ga prikazuje. Implementiran je na naslednji način.

Najprej uvozimo knjižnice, med katerimi so zelo pomembne knjižnice za »xbmc« in knjižnica

»zmq«. Knjižnice xmbc poskrbijo, za povezljivost s programom Kodi in prikaz grafičnih

gradnikov. Knjižnica ZeroMQ pa poskrbi za komunikacijo do zalednega sistema klienta

implementiranega v c++ . Po uvozu naštetih knjižnic se vtičnik poveže na pravi IP naslov in

vrata kamor pošlje nastavitve zalednemu sistemu. V nastavitvah pošlje uporabniško ime in

geslo za registracijo v omrežje IMS. Nato se naroči na sporočila zalednega sistema in ob

prejetju sporočil »ONREG«, »ONCALL« in »ONREJECT prikaže primeren dialog uporabniku

in pošilja povratno informacijo zalednemu sistemu.

6.4 Opis delovanja Android aplikacije

V tem podpoglavju bomo opisali načrtovano delovanje in izgled mobilne aplikacije. Glavna

naloga Android aplikacije je prenašati video tok iz mobilne naprave preko omrežja IMS do

medijskega predvajalnika Kodi. Klient mobilne aplikacije je razvit v razvojnem orodju

Android Studio z uporabo programskega jezika Java. Pri razvoju se uporabi knjižnica pjsip z

vključeno podporo za video. Podprti načini kodiranja vsebin so odvisni od posamezne

naprave in od kodekov, ki jih ta podpira. Aplikacija je zasnovana tako, da izbere skupni

kodek med klicanima napravama. Če jima noben kodek ni skupen se storitev ne izvede.

Aplikacija vsebuje dva zaslona, ki ju vidimo na spodnji sliki (slika 6.1). Na prvem glavnem

zaslonu najprej izberemo naslovnika, kamor bomo pošiljali video. Ko izberemo prejemnika

lahko začnemo z zajemom videa in avdia ter pošiljanjem vsebin v živo. Drugi zaslon je

namenjen nastavitvam, kjer lahko nastavimo kvaliteto videa, dodamo stike v imenik,

upravljamo s standardnimi nastavitvami našega računa in dobimo več informacij o verziji in

razvijalcih aplikacije.

Page 31: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

23

Slika 6.1: Zaslonski sliki aplikacije

Page 32: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

24

7 SKLEP

Ob končani projektni nalogi lahko zaključimo, da je končna storitev realno časovne video

razglednice preprosta za uporabo in bi lahko pomagala zmanjšati digitalno ločnico. Ob tem

smo tehnologijo pretočnega videa predstavili na nov način in tako ustvarili novo storitev. Iz

teh razlogov predpostavljamo, da takšna rešitev pripomore k lažji uporabi storitev s strani

neveščih uporabnikov. Za potrditev te domneve bi bilo potrebno izvesti primerno

testiranje. Prav tako bi bilo dobro v prihodnosti sistem izboljšati, da bi deloval robustneje.

V sistem bi v nadaljevanju kazalo vključiti storitev omrežnega imenika, kar bi pripomoglo k

enostavnejši uporabi storitve.

Page 33: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

25

UPORABLJENI VIRI IN LITERATURA

[1] Powell, H. A quick and dirty introduction to ZeroMQ, dostopno na

http://blog.scottlogic.com/2015/03/20/ZeroMQ-Quick-Intro.html [5. 9. 2017].

[2] About SDL, dostopno na https://www.libsdl.org/ [5. 9. 2017].

[3] Application server, dostopno na https://en.wikipedia.org/wiki/Application_server

[5. 9. 2017].

[4] Application Server Guide, dostopno na

http://clearwater.readthedocs.io/en/stable/Application_Server_Guide.html [5. 9. 2017].

[5] Macioszczyk, E. Catis Blog, dostopno na http://catis-blog.com/ [5. 9. 2017].

[6] FFmpeg, dostopno na https://www.ffmpeg.org/ [5. 9. 2017].

[7] FFmpeg Wikipedia, dostopno na https://en.wikipedia.org/wiki/FFmpeg [5. 9. 2017].

[8] How To Work with the ZeroMQ Messaging Library, dostopno na

https://www.digitalocean.com/community/tutorials/how-to-work-with-the-zeromq-

messaging-library [5. 9. 2017].

[9] Initial Filter Criteria, dostopno na

https://docs.oracle.com/cd/E23521_01/doc.60/e23532/sbors_app_ifc.htm [5. 9. 2017].

[10] IP Multimedia Subsystem, dostopno na

https://en.wikipedia.org/wiki/IP_Multimedia_Subsystem [5. 9. 2017].

[11] IP Multimedia Subsystem (IMS) Call Flows, dostopno na

http://www.eventhelix.com/ims/#.Wa5HZMgjHIU [5. 9. 2017].

[12] IPv6 support, dostopno na https://trac.pjsip.org/repos/wiki/IPv6 [5. 9. 2017].

[13] Real Time Streaming Protocol, dostopno na

https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol [5. 9. 2017].

[14] Real-time Transport Protocol, dostopno na https://en.wikipedia.org/wiki/Real-

time_Transport_Protocol [5. 9. 2017].

[15] Session Initiation Protocol, dostopno na

https://en.wikipedia.org/wiki/Session_Initiation_Protocol [5. 9. 2017].

[16] Session Traversal Utilities for (NAT), dostopno na https://tools.ietf.org/html/draft-

ietf-behave-rfc3489bis-18 [5. 9. 2017].

Page 34: PRETOČNI VIDEO V OKOLJU MOILNE TELEFONIJEsistem pretočnega videa v okolju mobilne telefonije. Najprej smo preučili vse možne scenarije uporabe storitve in na podlagi le-teh ustvarili

26

[17] Simple DirectMedia Layer, dostopno na

https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer [5. 9. 2017].

[18] SIP (Session Initiation Protocol) Introduction, dostopno na

http://www.siptutorial.net/SIP/ [5. 9. 2017].

[19] Kodi, dostopno na https://sl.wikipedia.org/wiki/Kodi [5. 9. 2017]

[20] Pjmedia, dostopno na

http://www.pjsip.org/docs/latest/pjmedia/docs/html/index.htm [5. 9. 2017].

[21] Pjsip, dostopno na http://www.pjsip.org/ [5. 9. 2017].

[22] Pjsua Python Module, dostopno na

https://trac.pjsip.org/repos/wiki/Python_SIP_Tutorial [5. 9. 2017].

[23] Publish/Subscribe ZeroMQ, dostopno na http://learning-0mq-with-

pyzmq.readthedocs.io/en/latest/pyzmq/patterns/pubsub.html [5. 9. 2017].

[24] Python SIP, Build and Installation, dostopno na

https://trac.pjsip.org/repos/wiki/Python_SIP/Build_Install [5. 9. 2017].

[25] Traversal Using Relays around NAT, dostopno na

https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT [5. 9. 2017].

[26] Prokop, A. Understanding Session Description Protocol (SDP), dostopno na

https://andrewjprokop.wordpress.com/2013/09/30/understanding-session-description-

protocol-sdp/ [5. 9. 2017].

[27] Anritsu. Understanding IMS. Izdaja 2. 2013. Dostopno na http://www.hke-

auditech.cz/download/files/Understanding-IMS.pdf [5. 9. 2017].

[28] What Does CSCF (Call Session Control Function) Do in Your IMS Network?, dostopno

na http://gonorthforge.com/what-does-cscf-call-session-control-function-do-in-your-ims-

network/ [5. 9. 2017].

[29] ZeroMQ, dostopno na https://en.wikipedia.org/wiki/ZeroMQ [5. 9. 2017].

[30] Piël, N. ZeroMQ an introduction, dostopno na http://nichol.as/zeromq-an-

introduction [5. 9. 2017].