Závěrečná zpráva CESNET projektu - LIPTEL

Transkript

Závěrečná zpráva CESNET projektu - LIPTEL
Technická zpráva projektu 519/2014
Pilotní projekt využití infrastruktury
sdružení CESNET pro akademickou
experimentální mobilní síť
Datum:
Autor:
Kontakt:
září 2015
Ing. Martin Mikulec
[email protected]
Obsah
Úvod ........................................................................................................................................... 2
OpenBTS projekt........................................................................................................................ 2
OpenBTS mobilní síť ................................................................................................................. 3
Instalace OpenBTS mobilní sítě ................................................................................................. 6
Měření kvality hovoru v budově N na katedře telekomunikační techniky v Ostravě ................ 6
Měření kvality hovoru v otevřeném prostoru ............................................................................. 9
Mobilní měřicí stanice .......................................................................................................... 10
Výsledky měření .................................................................................................................. 10
Konvergence mezi OpenBTS a OpenIMS projekty ................................................................. 12
Výsledky laboratorního měření ............................................................................................ 13
Vytvoření experimentální mobilní sítě mezi VŠB-TU Ostrava a ČVUT Praha ...................... 16
Výsledky měření kvalitativních parametrů sítě NREN mezi laboratoří IP telefonie
v Ostravě a ČVUT Praha. ..................................................................................................... 16
Doplňkové aktivity projektu..................................................................................................... 18
Doplňková aktivita I. – Vliv transkódovaní na kvalitu hovoru ............................................ 18
Doplňková aktivita II. – Zprovoznění LTE technologie na USRP B210............................. 20
Příloha - Instalace OpenBTS stanice ........................................................................................ 22
Příloha - Instalace OpenIMS .................................................................................................... 27
Skript pro vkládání uživatelů do systému OpenBTS ............................................................... 32
1
Úvod
Svět mobilních sítí a jejich infrastruktury je v dnešní době reprezentován de facto uzavřenými,
komplexními systémy, které spolu komunikují prostřednictvím protokolů navrženými před
příchodem Internetu. Architektura těchto systémů prošla téměř 40 letým vývojem a je zaměřena
na konkrétní specifickou práci. Avšak dny uzavřených, proprietárních řešení postavených na
specifickém hardware jsou již nekompromisně sečteny a otevírá se prostor pro nové inovace
v oblasti mobilních sítí a infrastruktury. Tato změna je možná díky nástupu otevřených
protokolů a Internetu obecně. Mostem mezi oběma světy je projekt OpenBTS, který vznikl
mimo jiné díky uvolnění zdrojových kódů kodeku GSM používaného v mobilních sítích.
OpenBTS přináší konverzi z bezdrátového radiového rozhraní do IP protokolů, umožňuje tak
komukoliv s IP konektivitou realizovat mobilní síť. Kombinace OpenBTS a softwarově
řízeného rádia mění způsob, jakým můžeme nahlížet na mobilní sítě. Tato technologie
umožňuje konstrukci komplexních rádiových sítí čistě na software.
Testovaná GSM infrastruktura byla vybudována na Universal Software Radio Peripheral
(USRP N210) hardware od Ettus Research ™ v kombinaci s Daughterboard WBX. Po
zprovoznění celé platformy byly provedeny kvalitativní testy jak v prostředí uvnitř budovy, tak
v otevřeném prostoru. Dalším logickým krokem bylo propojení naši BTS stanice s okolním
světem. Jakožto potenciálního VoIP poskytovatele jsme si zvolili projekt OpenIMS, který jsme
s BTS stanicí propojili pomocí SIPové trunk linky. Tuto linku jsme v laboratorních podmínkách
testovali a zjišťovali, jaké síťové parametry jsou nutné k zabezpečení dostatečně kvalitního
provozu mezi OpenBTS a OpenIMS platformami. Jakmile jsme tyto parametry určili, nasadili
jsme tyto projekty jak v laboratoři v Ostravě tak v laboratoři v Praze a navzájem je propojili
prostřednictvím sítě NREN. Měřením byla prokázána dostatečná kapacita a vhodné kvalitativní
parametry sítě NREN pro zajištění kvalitní hlasové služby mezi GSM telefony a SIPovými
terminály v Ostravě a Praze.
OpenBTS projekt
Samotný OpenBTS projekt je tvořen několika aplikacemi, které dohromady zajišťují plnou
funkcionalitu BTS stanice. Jedná se o následující aplikace s popisem jejich účelu:
 OpenBTS – samotná OpenBTS aplikace, která obsahuje implementaci GSM stacku
fungujícím nad radiomodemem.
 Transceiver – software radiomodemu a rozhraní pro kontrolu hardware
 SMQueue – RFC-3428 server pro příjem a posílání textových SMS zpráv
 Asterisk – softwarově definovaná pobočková ústředna
 SIPAuthServe – aplikace obsahující databázi registrovaných uživatelů
OpenBTS je program napsaný v C++, který implementuje GSM stack. Jakoukoliv další funkci
je tedy možné doplněním software přidat. Odstraňuje tak problém s přístupem do uzavřených
řešení s každou novou změnou.
OpenBTS aplikace obsahuje:
 L1 TDM funkce (GSM 05.02)
 L1 FEC funkce (GSM 05.03)
 L1 kontrolu napájení uzavřených smyček a časování (GSM 05.08 a GSM 05.10)
2





L2 LAPDm (GSM 04.06)
L3 řízení rádiových zdrojů (GSM 04.08)
L3 GSM – SIP bránu pro řízení mobility
L3 GSM – SIP bránu pro řízení hovorů
L4 GSM – SIP bránu pro textovou komunikaci
Transceiver aplikace poskytuje funkce radiomodemu a řídí USB rozhraní pro propojení
s USRP.
SMQueue aplikace poskytuje posílání krátkých zpráv (SMS) mezi koncovými zařízeními.
Asterisk zprostředkovává řízení hovorů, které by bylo normálně realizované prostřednictvím
MSC (Mobile Switching Center) v konvenčních mobilních sítích. Hovory je možné směrovat
také do jiných připojených IP sítí.
SIPAuthServe je aplikace implementující Subscriber Registry, databázi informací o
uživatelích. Tato databáze nahrazuje jak registrace v Asterisku, tak GSM Home Location
Register (HLR) v konvenčních mobilních sítích.
Aplikace mezi sebou komunikují prostřednictvím IP sítě a otevřených protokolů dle schématu
níže.
Obrázek 1 - Schéma OpenBTS projektu
OpenBTS mobilní síť
Tradiční mobilní síť, jak byla v průběhu vývoje mnoha let vyvíjena, se skládá z mnoha
komponent a rozhraní, které zajišťují kompletní funkcionalitu mobilní sítě. Jak ukazuje
Obrázek 2, koncové zařízení (Handset nebo Modem) jsou pomoci Um rozhraní připojena
k BTS stanici. Jednotlivé BTS stanice jsou řízeny pomocí BSC (Base Station Controller) a dále
MSC (Mobile Switching Center). Informace o uživatelích jsou uchovávány buď v Home
Location Database nebo Visitor Location Database a kromě toho v síti nalezneme různé brány
pro připojení do veřejné telefonní sítě nebo do Internetu.
3
Obrázek 2 - Schéma tradiční mobilní sítě
Na rozdíl od tradičního GSM schématu je schéma OpenBTS mobilní sítě značně zjednodušeno.
Z radiové části zůstává Um rozhraní mezi koncovým zařízením a rádiovým vysílačem, zbytek
sítě už je postaven na IP protokolu a dalších aplikačních protokolech SIP (Session Initiation
Protocol) pro signalizaci nebo RTP (Real Time Protocol) pro přenos multimédií (hlasu).
Obrázek 3 - Schéma OpenBTS mobilní sítě
4
K vytvoření vlastní sítě je kromě OpenBTS projektu potřeba hardware, na kterém je celá stanice
postavena. Naši BTS stanici jsme realizovali na následujícím hardware
 PC s operačním systémem Linux (Ubuntu Server 12.04 LTS) – aplikace jsou psány
především pro x86 architekturu s 32-bitovým procesorem, kde dosahují nejlepších
výsledků. Obecně se (pro 7 současných hovorů) doporučuje minimálně Intel i5 procesor
nebo jiný podobného výkonu a 2 GB RAM paměti. Dále musí obsahovat buďto 1 Gbps
síťové rozhraní nebo USB 3.0 rozhraní k propojení s USRP.
 USRP N210 – softwarově definované rádio je klíčovou komponentou k vytvoření BTS
stanice z hardwarového pohledu. Výrobcem zařízení byl Ettus Research ™ , který byl
v nedávné době koupen firmou National Instruments. USRP je postaveno na FPGA
modulu Xilinx Spartan 3A-DSP 3400 a jeho aktuální cena i s příslušenstvím se na trhu
pohybuje okolo 60 tis. Kč
Obrázek 4 - USRP N210





Daughterboard WBX – modul do USRP pro řízení kanálů rádia s následujícími
parametry
o Provozní rozsah 50 – 2200 MHz Rx/Tx
o Až 100 mW vysílací výkon
o Vhodný pro pozemní a námořní komunikaci, BTS stanice (800 MHz, 900 MHz,
1800 MHz, 1900 MHz), vysílání v amaterském pásmu popř. televizním pásmu
Antény v příslušenství
Mobilní telefony nebo modemy – standardní koncová zařízení fungujících v GSM
pásmech 800 MHz, 900 MHz, 1800 MHz, 1900 MHz
SIM karty – běžné SIM karty popř. speciální nebrandované SIM karty
Software
o Linux
o Gnu Radio
o OpenBTS
5
Na obrázku 5 je zobrazeno schéma mobilní sítě z pohledu použitého hardware. Signál z
koncového zařízení UE (User Equipment) je zachycen přijímací anténou USRP. Signál je poté
demodulován a kódován do digitální podoby. FPGA modul poté zajistí časování a vzorkování
samotného hlasu a ten je prostřednictvím USB rozhraní poslán do PC, kde jej zpracuje ústředna
Asterisk a ta se postará o následné směrování hovoru do cíle. Opačnou cestou putuje hlas
z Asterisku do koncového zařízení.
Obrázek 5 - USRP schéma
Instalace OpenBTS mobilní sítě
Instalaci OpenBTS stanice je věnována samostatná kapitola v příloze technické zprávy, a to
z důvodu velkého rozsahu stran, které samotná instalace zahrnuje.
Obecně lze instalaci popsat v následujících krocích, které jsou podrobně rozepsány v příloze:
1. Instalace náležitých knihoven do systému Linux
2. Stažení zdrojových souborů OpenBTS projektu
3. Instalace aplikací zajišťující chod OpenBTS platformy
4. Propojení jednotlivých aplikací zajišťující chod OpenBTS platformy
5. Konfigurace parametrů OpenBTS stanice
6. Přidání uživatelů pro koncová zařízení
7. Spuštění OpenBTS stanice a otestování spojení mezi koncovými zařízeními
Měření kvality hovoru v budově N na katedře
telekomunikační techniky v Ostravě
Po úspěšné realizaci hovoru mezi dvěma připojenými mobilními telefony včetně posílání SMS
zpráv jsme zkoumali, jaká je vzdálenost od vysílače, odkud lze ještě hovor realizovat. Určili
jsme 5 míst v budově, odkud proběhlo měření síly signálu (RSSI) a poté byl realizován hovor
6
mezi dvěma telefony. Hovor byl po skončení nejprve ohodnocen subjektivně pomocí DTMF
volby a poté byl původní i degradovaný hlasový záznam podroben hodnocení kvality hovoru
pomocí metody PESQ. Cihlové stěny, dveře a ostatní komponenty budovy N brání v šíření
signálu GSM sítě. Každé z měřících stanovišť (MP1-5) je zakresleno v půdorysu budovy N na
obrázku 6.
Obrázek 6 - Půdorys rozestavených měřících stanovišť budovy N
Síla GSM signálu, který se šířil v přízemí budovy N je znázorněn na obrázku 7. Dle obrázku 7
je čitelné značné rušení GSM signálu zdmi v okolí vysílače a jeho omezený rozsah pokrytí.
Obrázek 7 - Síla GSM signálu v přízemí budovy N
7
Obrázek 8 - Měření síly signálu pomocí měřících zařízení TEMS pocket
Výsledky měření prokázaly značně omezenou použitelnost systému v budově, reálná
použitelnost byla pouze v laboratoři a blízkém okolí, což je však pozitivní výsledek z toho
důvodu, že našim signálem tolik nerušíme okolní mobilní sítě a jejich uživatele.
Kvalitu hovoru ve stupnici MOS prezentuje obrázek 9 a 10. Rozdíl mezi nimi je v metodice
měření. Obrázek 9 ukazuje výsledky měření pomocí metody PESQ – čili matematického
modelu srovnávání originálního a degradovaného signálu.
Obrázek 9 - Měření kvality hovoru pomocí metody PESQ
8
Obrázek 10 ukazuje výsledky měření pomocí subjektivního hodnocení hovoru také ve
stupnici MOS po skončení hovoru.
Obrázek 10 - Měření kvality hovoru subjektivní metodou
Měření kvality hovoru v otevřeném prostoru
K měření kvality hovoru v otevřeném prostoru bylo využito jak měřicích zařízení TEMS, tak
vlastního měřicího zařízení dlouhodobě vyvíjeného v laboratoři IP telefonie. Zatímco TEMS je
komerční produkt instalovaný jako aplikace do mobilního telefonu, naše měřicí zařízení je
postaveno na opensource nástrojích.
Mobilní BTS stanici jsme tedy instalovali do otevřeného prostoru v areálu VŠB v Ostravě,
napojili ji na elektrocentrálu a spustili.
Do automobilu jsme umístili měřicí stanici, která nám generovala testovací hovory skrze naši
síť a zaznamenávala výsledky do tabulky, kterou jsme následně po skončení měření
vyhodnocovali. Měření probíhalo ve zvětšující se vzdálenosti od vysílače a bylo opakováno pro
různý počet současných hovorů.
Obrázek 11 - Měření kvality BTS stanice v otevřeném prostoru
9
Mobilní měřicí stanice
Měřicí stanice byla implementována na energeticky nízko náročném embedded zařízení, což
nám zaručilo možnost kompletního napájení zařízení přímo z automobilu a tím maximální
mobilitu měřicí stanice.
Měřící stanice se skládá z embedded zařízení, na kterém je nainstalován operační systém Linux
v distribuci OpenWRT s instalovanou pobočkovou ústřednou Asterisk. K Asterisku jsou
připojené 2 ks Huawei K3765 modemů, které slouží jako koncová zařízení pro odesílání a
příjem testovacích hovorů skrze naši mobilní BTS síť.
O automatické generování hovorů, vyhodnocování výsledků a analýzu dat se stará sada skriptů
vytvořených specificky pro účely tohoto měření.
Obrázek 12 - Schéma měřicího zařízení
Výsledky měření
Výsledky měření prokázali použitelnost naši mobilní stanice v otevřeném prostoru do
vzdálenosti 50 m od vysílače s maximálním zatížením třech současných hovorů.
Obrázek 14 ukazuje klesající sílu GSM signálu se vzrůstající vzdáleností od vysílače.
Kontrolní měření probíhalo také pomocí TEMS měřicích zařízení – Obrázek 13.
10
Obrázek 13- Měření síly
signálu pomocí TEMS
měřicích přístrojů
Obrázek 14 - Síla signálu v závislosti na vzdálenosti
Dle teoretických předpokladů kvalita hovoru se vzrůstající vzdáleností od vysílače klesala až
do chvíle, kdy byl signál ztracen a hovor nebyl navázán. Měření bylo pro každou vzdálenost
opakováno třikrát a naměřené hodnoty byly poté podrobeny regresní analýze, která ukázala
trend snižování kvality hovoru v závislosti na zvyšování vzdálenosti od vysílače.
Obrázek 16 také ukazuje, že při třech současných hovorech se naše BTS stanice dostává ke
svým limitům a není schopna zajistit kvalitní hovory pro více než dva současné hovory se
vzrůstající vzdáleností od vysílače.
Obrázek 15 - Měření kvality hovoru pomocí TEMS
Obrázek 16 - Kvalita hovoru se vzrůstající vzdáleností
11
Konvergence mezi OpenBTS a OpenIMS projekty
Jakmile jsme OpenBTS stanici otestovali jak uvnitř, tak vně budovy a určili limitní parametry
provozu, dalším logickým krokem bylo rozšířit naši mobilní síť o další sítě, které by mezi sebou
mohly realizovat hovory. Nejprve však bylo nutné určit požadavky na linku, kterou budou sítě
propojeny a to z hlediska parametrů sítě jako šířka pásma, zpoždění signálu a ztrátovost.
Zároveň nás zajímalo, jak se na kvalitě služby projeví zabezpečení linky v podobě šifrovaného
spojení.
V laboratorním prostředí jsme tedy provedli instalaci OpenIMS systému, který jsme propojili
s OpenBTS stanicí pomocí SIPového trunku. (Obrázek 17)
OpenBTS
Asterisk
Obrázek 17 - Propojení OpenBTS a OpenIMS systémů
Jakmile jsme OpenIMS systém nainstalovali (viz samostatná kapitola Příloha - Instalace
OpenIMS), vložili jsme do systému klienta [email protected], připojili k němu SIP klienta
Monster a otestovali hovor na mobilní telefon připojený k OpenBTS stanici pod interním číslem
3000. Stejně tak jsme z mobilního telefonu vytočili číslo 2000, které nás díky nastavení
volacího plánu Asterisku spojilo s klientem [email protected].
Obrázek 18 - Konvergence OpenBTS a OpenIMS systémů
12
Dalším krokem bylo stanovení minimálních požadavků na SIPový trunk propojující obě
platformy. Do ideální 100 Mbit/s linky mezi systémy jsme umístili síťový emulátor SIMENA
NE 1000, se kterým jsme emulovali degradaci síťových parametrů mezi oběma systémy.
SIMENA nám umožnila degradovat šířku přenosového pásma a generovat ztrátovost paketů
mezi oběma systémy. Schéma měření znázorňuje Obrázek 19.
Obrázek 19 - Schéma měření SIP trunku
K měření kvality spojení jsme využili stejnou metodu PESQ, jako v přechozích měřeních.
Prvním koncovým zařízením připojeným k OpenBTS stanici byl GSM modem ovládaný
ústřednou Asterisk. Koncové zařízení (vlevo) po převzetí hovoru přehrálo originální záznam.
Tento záznam prošel sítí (USRP N210, OpenBTS systém, SIMENA NE1000, OpenIMS) až
k druhému koncovému zařízení (vpravo), kde se degradovaný signál hovoru nahrál.
Výsledky laboratorního měření
Prvním parametrem, který nás zajímal, byl vliv ztrátovosti paketů na kvalitě hovoru. Bylo
realizováno měření kvality hovoru se zvyšující se ztrátovostí paketů, kterou zajišťoval síťový
emulátor SIMENA NE1000. Obrázek 20 ukazuje výsledky tohoto měření po lineární regresi a
to pro případ, kdy je v SIP trunku nastaven kodek G711 u-law, G711 u-law šifrovaný pomocí
symetrického šifrování AES256, kodek GSM a kodek GSM šifrovaný pomocí AES 256.
Obrázek 20 - Vliv ztrátovosti na kvalitě hovoru
13
Výsledky napovídají, že u G711 u-law kodeku se při ztrátovosti větší než 10% kvalita hovoru
stává neuspokojivou (< 2.0 MOS). Šifrované spojení je o něco málo náchylnější z důvodu
většího overhead paketů.
U GSM kodeku můžeme hovořit o neuspokojivé kvalitě přibližně kolem 7% ztrátovosti paketů.
Šifrované spojení je o něco málo náchylnější stejně jako u kodeku G711 A-law.
Je nutno podotknout, že ztrátovost není většinou jediným faktorem ovlivňujícím výslednou
kvalitu hovoru, proto je nutné tyto výsledky brát jako orientační.
Druhým parametrem, který nás zajímal, byla náročnost hovoru na šířku pásma uvnitř SIP
trunku. Vzhledem k tomu, že propojení mezi OpenBTS a OpenIMS bylo možné pouze pomocí
G711 A-law kodeků, zaznamenali jsme podobné nároky na šířku pásma pro oba kodeky. Je to
tím, že GSM kodek je na rozhraní OpenBTS transkódován do G711 A-law kodeku.
Měření tedy opět proběhlo jak pro samotný G711 A-law kodek, tak pro jeho šifrovanou variantu
pomocí AES256, tak pro transkódovaný GSM kodek a jeho šifrovanou variantu pomocí
AES256.
Obrázek 21 - Závislost kvality hovoru na šířce pásma - 1 hovor
14
Měření jsme zopakovali také pro 2 současné hovory k potvrzení předpokladů.
Obrázek 22- Závislost kvality hovorů na šířce pásma - 2 hovory
Výsledky ukazují, že jeden hovor vyžaduje přibližně 90 kbit/s pro každý kanál. Šifrované
spojení je více náročné na šířku pásma z důvodu většího overhead paketů.
Dalším síťovým parametrem, který nám ovlivňuje kvalitu služby, je zpoždění. Vzhledem
k tomu, že zpoždění způsobuje pouze časový rozdíl mezi nahrávkami, který metoda PESQ
v prvním kroku eliminuje, nebyli jsme schopni touto metodou určit zhoršení kvality. Z tohoto
důvodu jsme použili subjektivní metodu měření kvality, která potvrdila doporučení ITU-T
G.114, že end-to-end zpoždění do 150 ms je přijatelné pro uspokojivou kvalitu hovoru.
Výsledkem našeho měření je tedy následující doporučení na síťové parametry SIP trunku mezi
OpenBTS a OpenIMS systémy:
Paramter
Value
Note
Šířka pásma – G711 A-law
90 kbit/s pro 1 kanál
Ztrátovost paketů
0 – 10 % G711 A-law
0 – 7 % GSM
Zpoždění
< 150 ms
End-to-end zpoždění
Tabulka 1 - Doporučené parametry sítě
15
90 kbit/s pro odchozí kanál +
90 kbit/s pro příchozí kanál
Vytvoření experimentální mobilní sítě mezi VŠB-TU Ostrava
a ČVUT Praha
Jakmile byla platforma otestována v laboratoři, přistoupilo se k instalaci řešení také v prostředí
ČVUT Praha. Na předpřipravený virtuální stroj byla přenesena instalace OpenIMS systému,
bylo vybudováno zabezpečené propojení s OpenBTS systémem v laboratoři v Ostravě
prostřednictvím NREN datové sítě a zopakováno kvalitativní měření sítě mezi oběma
lokalitami. Vzhledem k používání vlastního DNS serveru bylo možné zachovat stávající interní
doménová jména, pouze změnit IP adresy obou serverů. IP adresy jsou záměrně v technické
zprávě modifikovány z bezpečnostních důvodů, o přístupové údaje do systému si můžete
požádat prostřednictvím emailu [email protected].
Výsledky měření kvalitativních parametrů sítě NREN mezi laboratoří IP telefonie
v Ostravě a ČVUT Praha.
Měření bylo realizováno 60 jednotlivými hovory mezi oběma lokalitami. Hovory byly
inicializovány šedesátkrát v rozmezí jedné hodiny. Výsledná kvalita hovoru mezi oběma
lokalitami se v průměru pohybuje okolo hodnoty 3.0 MOS (2.9995 MOS), maximální hodnota
zpoždění hovoru se pohybuje kolem 34 ms (34.347 ms).
Obě hodnoty jsou dostačující pro kvalitní provoz této sítě, čili můžeme konstatovat, že síť
NREN svými síťovými parametry vyhovuje dané platformě.
16
Kvalita hovoru MOS
MOS
3,5
3
2,5
2
1,5
1
0,5
0
0
10
20
30
40
50
60
Obrázek 23 - Měření kvality hovoru sítě NREN mezi lokalitami Ostrava a Praha
Max Delta
Max. zpoždění (ms)
140
120
100
80
60
40
20
0
0
10
20
30
40
50
60
Obrázek 24 - Měření maxinální hodnoty zpoždění sítě NREN mezi lokalitami Ostrava a Praha
17
Doplňkové aktivity projektu
V průběhu řešení projektu jsme se mimo jiné věnovali určitým otázkám, které postupně
vyplynuly na povrch a stály za hlubší analýzu. Prvním zastavením byla otázka snižující se
kvality hovoru v důsledku transkódování a druhá otázka byla možnost realizace modernějších
sítí než GSM na stávající platformě. Následující kapitoly se podrobně těmto aktivitám věnují.
Doplňková aktivita I. – Vliv transkódovaní na kvalitu hovoru
Přenos hlasu v mobilních sítích je zajišťován prostřednictvím GSM FR kodeku. Ten nabízí
dobrý poměr mezi nároky na šířku pásma, která činí 13 kbit/s pro jeden hovor při průměrné
teoretické hodnotě kvality hovoru 3.704 MOS.
Na rozdíl od mobilní sítě, VoIP sítě nejsou tak náchylné na omezenou šířku pásma a je v nich
nutné zajistit dobrou kompatibilitu se staršími TDM systémy, které jsou postaveny na kodeku
G.711. Tento kodek G.711 A-law nebo G.711 u-law mají nároky na šířku pásma 64 kbit/s při
průměrné teoretické hodnotě kvality hovoru 4.482 MOS.
Pokud realizujeme hovor mezi koncovými zařízeními připojenými pouze k OpenBTS stanici,
po celé trase spojení je hovor kódován do GSM kodeku. Pokud však OpenBTS systém
připojíme k VoIP poskytovateli, je nutné transkódování do G.711, popř. jiného kodeku
standardně použivaném ve VoIP světě (G.729 apod.)
Nás tedy zajímal čistě vliv transkódování na výslednou kvalitu hovoru a z tohoto důvodu vnikl
systém pro měření transkódování, který jsme vyvinuli v laboratoři VoIP telefonie v Ostravě.
Systém je schopen vygenerovat hovor a postupně jej transkódovat do požadovaných kodeků.
Po ukončení hovoru provede hodnocení kvality hovoru pomocí metody PESQ. Výsledky
ukládá do databáze pro budoucí zpracování.
Schéma systému pro měření transkódování je znázorněno na Obrázku 25. Systém realizuje
VoIP hovor mezi dvěma uzly – přehrávačem a nahrávačem. Hovor se skládá z 10 sekundového
zvukového záznamu, který je přenesen přes transkódovací kaskádní systém
s předkonfigurovaným sledem kodeků, mezi kterými je hovor transkódován. Degradovaný
signál hovoru je nahrán a po skončení hovoru kvalitativně vyhodnocen pomocí PESQ metody.
Asterisk PBX1
exten => 101,Playback(sample)
exten => XXX,Dial(SIP/Asterisk_2)
Speech Samples
Player
Transcoding
Cescade System
5061
SIP
5062
CODEC RTP
A
11001
12001
Asterisk PBX2
exten => 201,Playback(sample)
exten => XXX,Dial(SIP/Asterisk_3)
5062
SIP
5063
CODEC
B
RTP
13001
Asterisk PBX3
exten => 301,Playback(sample)
exten => XXX,Dial(SIP/Asterisk_N)
.
.
5063
Speech Quality
Evaluation System
Speech Samples
Recorder
SIP
.
.
CODEC
N
.
.
506N
Asterisk PBX_N
exten => N01,Playback(sample)
exten => XXX,Dial(SIP/Asterisk_N+1)
Obrázek 25- Schéma systému pro měření transkódování
18
12002
13002
RTP
1N001
Nahrávač (Speech Samples Recorder) je reprezentován pobočkovou ústřednou Asterisk PBX,
která vytáčí příslušné číslo pobočky přehrávače (Speech Samples Player) a nahrává
degradovaný signál, který projde od přehrávače přes transkódovací kaskádní systém. Nahrané
vzorky jsou poté zaslány do systému pro hodnocení kvality řeči (Speech Quality Evaluation
System).
Přehrávač (Speech Samples Player) je reprezentován pobočkovou ústřednou Asterisk PBX.
Originální zvukový vzorek je k dispozici k přehrávání pod patřičným číslem pobočky, které
může být voláno z nahrávače (Speech Samples Recorder).
Transkódovací kaskádní systém (Transcoding Cascade System) se skládá z N pobočkových
ústředen Asterisk, které jsou spuštěny v různých instancích na stejném serveru. Každá instance
má svůj rezervovaný port pro signalizaci a přenos médií. Navzájem jsou PBX Asterisk
propojeny pomocí SIP trunků tak, aby tvořili unikátní cestu pro hovor. Hovor je přepojován od
vstupu do cíle na localhost rozhraní, z tohoto důvodu hovor neovlivňují síťové parametry jako
zpoždění na směrovačích nebo ztrátovost paketů. Systém tak zajišťuje degradaci signálu pouze
z pohledu transkódování kodeků mezi sebou.
MOS
Měření transkódování probíhalo mezi G.711 A-law, GSM a G.729 kodeky navzájem. Každý
kodek byl třiadvacetkrát transkódován do druhého kodeku a zpět a měřili jsme vliv tohoto
transkódování na kvalitu hovoru. Výsledky měření jsou zobrazeny na Obrázku 26 – 28.
4,5
4
3,5
3
2,5
2
1,5
A-law
GSM
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Transcoding number
MOS
Obrázek 26 - Vliv kvality hovoru na transkódování - A-law/GSM kodeky
4,5
4
3,5
3
2,5
2
1,5
A-law
G729
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Transcoding number
Obrázek 27 - Vliv kvality hovoru na transkódování - A-law/G.729 kodeky
19
MOS
4,5
4
3,5
3
2,5
2
1,5
G729
GSM
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Transcoding number
Obrázek 28 - Vliv kvality hovoru na transkódování - G.729/GSM kodeky
% of the original speech quality
Jak je z obrázků patrné, při každém transkódování dochází k mírnému zhoršení kvality hovoru.
Obrázek 29 je z pohledu administrátora VoIP systému přehlednější, obsahuje informce o tom,
kolik procent z původní kvality je ztraceno po každém transkódování mezi jednotlivými
kodeky.
60
50
A-law to GSM
40
A-law to G729
30
G729 to GSM
20
GSM to G729
10
G729 to A-law
0
GSM to A-law
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Transcoding number
Obrázek 29 - Vliv kvality hovoru na transkódování - procentuální vyjádření
Transkódování, a to především v první iteraci, má za následek znatelné snížení kvality hovoru
na úroveň kodeku s nižší kvalitou hovoru. Následné transkódování je z pohledu zhoršující se
kvality hovoru více či méně lineární. Výsledky této práce byly prezentovány na konferenci
KTTO 2015 a budou publikovány ve speciálním vydání časopisu AEEE věnovanému právě
této konferenci.
Doplňková aktivita II. – Zprovoznění LTE technologie na USRP B210
Po zprovoznění BTS stanice pro mobilní technologii GSM jsme si zpracovali rešerši, jak je to
podporou LTE sítí u USRP zařízení. Pro LTE technologii jsme našli projekt OpenLTE, který
se snaží o implementaci LTE eNodeB na USRP, podobně jako OpenBTS projekt.
Projekt OpenLTE je datován od začátku roku 2012, my jsme se na projekt zaměřili na počátku
roku 2015, kdy byla zveřejněna podpora paketově orientované komunikace od verze 00.18.00.
Jediným podporovaným typem USRP byl zařízení USRP B210, které jsme pro tyto účely
použili.
Pro testovací účely jsme museli naprogramovat několik speciálních SIM karet, které
obsahovaly patřičné autorizační kódy pro LTE síť. LTE síť jsme po několikadenním laborování
zprovoznili na frekvenci 847 MHz v následujícím zapojení (Obrázek 30).
20
INTERNET
192.168.1.1
192.168.1.110
192.168.1.112
192.168.1.111
USRP B210
Samsung Galaxy
Core LTE
Obrázek 30 - Schéma realizace LTE eNodeB
Po úspěšné registraci jsme si odchytili probíhající provoz na tun_openlte rozhraní
192.168.1.111 a zjistili jsme, že projekt momentálně podporuje pouze omezenou komunikaci
prostřednictvím UDP paketů a ICMP paketů.
Potvrdilo se tedy, že projekt OpenLTE je stále v alpha verzi dost nestabilní a nabízí pouze
omezenou komunikaci prostřednictvím IP sítě a UDP protokolu. Jeho využití v dnešní době je
tak možné pouze omezeně ve formě studování LTE signalizace mezi koncovými zařízeními a
OpenLTE zařízením. Reálné nasazení této technologie na testované platformě je tedy stále
nemožné.
21
Příloha - Instalace OpenBTS stanice
Předpokládáme čistou instalaci operačního systému Ubuntu 12.04 LTS. Tato distribuce se
osvědčila vzhledem k dobré dostupnosti instalačních balíčků potřebných k instalaci systému.
OpenBTS komunikuje s USRP pomocí ovladače UHD (USRP Hardware Driver). Nejprve
nainstalujeme potřebné závislosti a pak samotný ovladač.
apt-get install autoconf libtool libosip2-dev libortp-dev libusb1.0-0-dev g++ sqlite3 libsqlite3-dev erlang build-essential
subversion python libboost-all-dev libusb-1.0-0-dev python-cheetah
doxygen python-docutils cmake unixodbc-dev ncurses-dev libsqliteodbc
libxml2-dev
bash -c 'echo "deb
http://files.ettus.com/binaries/uhd_stable/repo/uhd/ubuntu/\
`lsb_release -cs` `lsb_release -cs` main" > \
/etc/apt/sources.list.d/ettus.list'
apt-get update
apt-get install -t `lsb_release -cs` uhd
OpenBTS si nainstalujeme do adresáře /opt/OpenBTS. Proto nejdříve vytvoříme tento adresář
a následně stáhneme aktuální zdrojový kód.
mkdir /opt/OpenBTS
cd /opt/OpenBTS
svn co http://wush.net/svn/range/software/public .
Zařízení USRP N210 vyžaduje podporu převzorkování, proto provedeme kompilaci
následovně.
cd /opt/OpenBTS/openbts/trunk
./autogen.sh
autoreconf –i
./configure --with-uhd --with-resamp
make
make install
Dále je potřeba vytvořit symbolický odkaz vysílače pro náš hardware
cd /opt/OpenBTS/openbts/trunk/apps
ln -s ../Transceiver52M/transceiver .
Samotná konfigurace je uložena v databázi SQLite v adresáři /etc/OpenBTS.
mkdir /etc/OpenBTS
cd /opt/OpenBTS/openbts/trunk
sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db ".quit"
22
Databázi můžeme editovat například nástrojem sqlitebrowser.
sqlitebrowser /etc/OpenBTS/OpenBTS.db
V databázi musíme upravit následující hodnoty
GSM.Radio.Band
GSM.Radio.C0
Control.LUR.OpenRegistration
GSM.MNC
GSM.MCC
900
1
.*
001
01
Instalace smqueue - Smqueue je služba pro uložení a odesílání krátkých textových zpráv
(SMS). Její instalaci provedeme následovně
cd /opt/OpenBTS/smqueue/trunk
./autogen.sh
autoreconf –i
./configure
make
Dále vytvoříme databází v adresáři /etc/OpenBTS
cd /opt/OpenBTS/smqueue/trunk/smqueue
sudo sqlite3 -init smqueue.example.sql /etc/OpenBTS/smqueue.db ".quit"
Instalace sipauthserver a Subscriber registry - nastavení databáze Subscriber registry.
sudo mkdir -p /var/lib/asterisk/sqlite3dir
cd /opt/OpenBTS/subscriberRegistry/trunk/configFiles/
sudo sqlite3 -init subscriberRegistryInit.sql \
/var/lib/asterisk/sqlite3dir/sqlite3.db ".quit"
sudo mkdir /var/run/OpenBTS
Sipauthserve je démon, který poskytuje SIP autentizační služby. Nejprve jej sestavíme a
vytvoříme databázi v/etc/OpenBTS.
cd /opt/OpenBTS/subscriberRegistry/trunk
make
sqlite3 -init sipauthserve.example.sql /etc/OpenBTS/sipauthserve.db ".quit"
Instalace a konfigurace Asterisku - jak bylo zmíněno, OpenBTS využívá pro směrování
hovorů PBX Asterisk. Proto je potřeba Asterisk PBX nainstalovat. Pro instalaci Asterisku ze
zdrojových kódů je potřeba mít nainstalované hlavičkové soubory jádra, což si ověříme
příkazem
apt-get install linux-headers-`uname -r`
23
Nejprve nainstalujeme závislosti
apt-get install build-essential libxml2-dev libncurses5-dev
libreadline-dev libreadline6-dev libiksemel-dev libvorbis-dev
libssl-dev libspeex-dev libspeexdsp-dev sox openssl wget subversion
openssh-server
Následně stáhneme a zkompilujeme a Asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk
-1.8.10.1.tar.gz
tar -zxvf asterisk-1.8.10.1.tar.gz
cd asterisk-1.8.10.1/
./contrib/scripts/get_mp3_source.sh
./configure
Pomocí následujícího nástroje si ověříme, že jsou zahrnuty následující součásti: Application app_db. Dialplan modules - func_odbc a func_realtime. Resources Modules - res_config_odbc,
res_odbc, res_realtime.
make menuconfig
Pokud není ODBC podporováno, nainstalujeme
apt-get install unixODBC unixODBC-dev libmyodbc
A dokončíme instalaci
make
make install
make samples
make config
Následně vytvoříme uživatele asterisk a přidáme ho do skupiny www-data
adduser asterisk --disabled-password --gecos "asterisk PBX"
adduser www-data asterisk
Dále změníme uživatele a skupinu, pod kterým poběží Apache
sed -i "s/\\(^User *\\)\\(.*\\)/\\1asterisk/"
/etc/apache2/apache2.conf
sed -i "s/\\(^Group *\\)\\(.*\\)/\\1asterisk/"
/etc/apache2/apache2.conf
Po instalaci je potřeba provést konfiguraci v souboru /etc/odbcinst.ini přidáme sekci
[SQLite3]
Description=SQLite3 ODBC Driver
Driver=/usr/lib/odbc/libsqlite3odbc.so
Setup=/usr/lib/odbc/libsqlite3odbc.so
Threading=2
24
V souboru /etc/odbc.ini upravíme sekci asterisk
[asterisk]
Description=SQLite3 database
Driver=SQLite3
Database=/var/lib/asterisk/sqlite3dir/sqlite3.db
# optional lock timeout in milliseconds
Timeout=2000
Dále musíme vytvořit symbolické odkazy.
cd
ln
cd
ln
/usr/local/etc;
-s /etc/odbc.ini; ln -s /etc/odbcinst.ini
/root;
-s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
V souboru /etc/asterisk/modules.conf musíme povolit automatické nahrávání modulů
autoload=yes
; noload => res_config_odbc.so
V souboru /etc/asterisk/extconfig.conf nastavíme, aby Asterisk používal v real time módu
databázi odbc
[settings]
sipusers => odbc,asterisk,sip_buddies
sippeers => odbc,asterisk,sip_buddies
V souboru /etc/asterisk/res_odbc.conf provedeme standardní konfiguraci odbc
[asterisk]
enabled => yes
dsn => asterisk
pre-connect => yes
V souboru /etc/asterisk/func_odbc.conf povolíme použití příkazů SQL v dialplánu
[SQL]
dsn=asterisk
readsql=${ARG1}
Cesta k databázi konfigurace pro asterisk je /var/lib/asterisk/sqlite3dir/sqlite3.db. Tento soubor je
nastaven v souboru odbc.ini. K tomuto souboru musí mít práva čtení i zápisu asterisk, smqueue
a sipauthserver a navíc musí mít práva zápisu do tohoto adresáře.
Dále
je
potřeba
nakopírovat
konfigurační
soubory
z
adresáře /opt/OpenBTS/openbts/trunk/AsteriskConfig doadresáře/etc/asterisk.
25
cp /opt/OpenBTS/openbts/trunk/AsteriskConfig/*.conf /etc/asterisk
V souboru /etc/asterisk/extensions.conf je konfigurace kontextu phones.Všechny GSM telefony
musí být v tomto kontextu. Kontext využívá databázi sqlite3.db definovanou
v souboru /etc/odbc.ini.
[phones]
exten => _N.,1,Set(Name=${ODBC_SQL(select dial from dialdata_table
where exten = \"${EXTEN}\")})
exten => _N.,n,GotoIf($["${Name}" = ""] ?outbound-trunk,${EXTEN},1)
exten => _N.,n,Set(IPAddr=${ODBC_SQL(select ipaddr from sip_buddies where
name = \"${Name}\")})
exten => _N.,n,GotoIf($["${IPAddr}" = ""] ?outbound-trunk,${EXTEN},1)
exten => _N.,n,Dial(SIP/${Name}@${IPAddr}:5062)
V databázi OpenBTS.db je nastaveno, že se mohou registrovat všechny telefony. Po registraci je
na telefon poslána uvítací zpráva s jeho IMSI. Toto IMSI lze vyčíst také z
nástroje OpenBTSCLI (dostupného z/opt/OpenBTS/openbts/trunk/apps/OpenBTSCLI) po zadání
příkazu tmsi. Toto IMSI je potřeba vložit do databázesqlite3.db. K tomuto lze použít skript s
následující syntaxí.
./openbtsext.py insert <exten> <dial>
Např
./openbtsext.py insert 2001 IMSI001011234567890
Nastavení logu - OpenBTS loguje do souboru syslog. Pro nastavení logu do vlastního
souboru OpenBTS.log souboru vytvoříme soubor/etc/rsyslog.d/OpenBTS.conf s obsahem
local7.*
/var/log/OpenBTS.conf
Spuštění - Pro spuštění je potřeba paralélně spustit smqueue, sipauthserve, OpenBTS a
asterisk.
smqueue
cd /opt/OpenBTS/smqueue/trunk/smqueue
./smqueue
sipauthserve
cd /opt/OpenBTS/subscriberRegistry/trunk
./sipauthserve
OpenBTS
cd /opt/OpenBTS/openbts/trunk/apps
./OpenBTS
Asterisk
asterisk –vvvvv
Test - Nejprve ověříme dostupnost USRP N210 pingem. USRP má standardně IP adresu 192.168.10.2.
Dále ověříme dostupnost příkazy uhd_find_device a uhd_usrp_probe.
Na mobilním telefonu přes nastavení vybereme naší GSM síť, která před první registrací bude mít název
00101. Po registraci vložíme její IMSI do databáze sqlite3.db. Stejné provedeme s druhým telefonem.
Po registraci bude možné sestavit hovor.
26
Příloha - Instalace OpenIMS
Pro provoz OpenIMS je potřeba nainstalovat a nakonfigurovat následující služby



Apache
Bind
OpenIMS
Instalace webového serveru Apache
Webový server Apache, PHP a MySQL nainstalujeme následujícími příkazy
apt-get
apt-get
apt-get
gd curl
apt-get
apt-get
install apache2
install php5 libapache2-mod-php5
install php5-curl php5-cli php5-mysql php-pear php-db php5install mysql-server
install phpmyadmin
Nastavení uživatele a skupiny, pod kterým poběží Apache. Do souboru /etc/apache/envvars
vložíme následující dva řádky
export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk
Instalace jmenného serveru BIND9
Jmenný soubor slouží pro překlad doménových jmén open-ims.test a open-bts.test. Instalaci
provedeme klasicky
sudo apt-get install bind9
Do souboru /etc/bind/named.conf přidáme zónové soubory
zone "open-ims.test" {
type master;
file "/etc/bind/db.open-ims.test";
};
zone "open-bts.test" {
type master;
file "/etc/bind/db.open-bts.test";
};
zone "0.2.10.in-addr.arpa" {
type master;
file "/etc/bind/db.10.2.0";
};
Zónový soubor /etc/bind/db.open-ims.test
$ORIGIN open-ims.test.
$TTL 1W
27
@
ns
1D IN SOA
localhost. root.localhost. (
2015021002
; serial
3H
; refresh
15M
; retry
1W
; expiry
1D )
; minimum
1D IN NS
1D IN A
ns
10.2.0.21
pcscf
_sip.pcscf
_sip._udp.pcscf
_sip._tcp.pcscf
1D
1D
1D
1D
IN A
10.2.0.21
SRV 0 0 4060 pcscf
SRV 0 0 4060 pcscf
SRV 0 0 4060 pcscf
icscf
_sip
_sip._udp
_sip._tcp
1D
1D
1D
1D
IN A
10.2.0.21
SRV 0 0 5060 icscf
SRV 0 0 5060 icscf
SRV 0 0 5060 icscf
open-ims.test.
open-ims.test.
""
_sip._udp
open-ims.test.
""
_sip._tcp
1D IN A
10.2.0.21
1D IN NAPTR 10 50 "s" "SIP+D2U"
scscf
_sip.scscf
_sip._udp.scscf
_sip._tcp.scscf
1D
1D
1D
1D
IN A
10.2.0.21
SRV 0 0 6060 scscf
SRV 0 0 6060 scscf
SRV 0 0 6060 scscf
trcf
_sip.trcf
_sip._udp.trcf
_sip._tcp.trcf
1D
1D
1D
1D
IN A
10.2.0.21
SRV 0 0 3060 trcf
SRV 0 0 3060 trcf
SRV 0 0 3060 trcf
bgcf
_sip.bgcf
_sip._udp.bgcf
_sip._tcp.bgcf
1D
1D
1D
1D
IN A
10.2.0.21
SRV 0 0 7060 bgcf
SRV 0 0 7060 bgcf
SRV 0 0 7060 bgcf
mgcf
_sip.mgcf
_sip._udp.mgcf
_sip._tcp.mgcf
1D
1D
1D
1D
IN A
10.2.0.21
SRV 0 0 8060 mgcf
SRV 0 0 8060 mgcf
SRV 0 0 8060 mgcf
hss
ue
presence
pcrf
clf
1D
1D
1D
1D
1D
IN
IN
IN
IN
IN
1D IN NAPTR 20 50 "s" "SIP+D2T"
A
A
A
A
A
10.2.0.21
10.2.0.21
10.2.0.21
10.2.0.21
10.2.0.21
28
Zónový soubor db.open-bts.test
$ORIGIN open-bts.test.
$TTL 1W
@
1D IN SOA
localhost. root.localhost. (
2015021203
; serial
3H
; refresh
15M
; retry
1W
; expiry
1D )
; minimum
1D IN A
1D IN NS
1D IN A
ns
10.2.0.20
ns
10.2.0.21
Reverzní zónový soubor db.10.2.0
$TTL 604800
@
IN
SOA
;
@
20
21
IN
IN
IN
ns.localhost. root.localhost. (
2013012801
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL
NS
PTR
PTR
ns.open-ims.test.
open-bts.test.
open-ims.test.
V souboru /etc/host.conf určíme, že má předně používat bind
order bind,hosts
V souboru /etc/resolv.conf nastavíme, že pro doménu open-ims.test má používat náš DNS
nameserver 10.2.0.21
domain open-ims.test
V souboru /etc/bind/named.conf přidáme do direktivy options IP adresy jmenných serverů,
které jsou poskytovány providerem. Např.
forwarders {
213.46.172.36;
10.2.0.21;
};
Instalace OpenIMS
Pro úspěšnou instalaci a kompilaci OpenIMS je potřeba nainstalovat následující balíky
apt-get
apt-get
apt-get
apt-get
apt-get
install
install
install
install
install
openjdk-7-jdk
subversion
bison
ant
libxml-java
29
apt-get
apt-get
apt-get
apt-get
install
install
install
install
libxml2
libxml2-dev
libcurl4-openssl-dev
libmysqlclient-dev
Aktuální zdrojové kódy jsou k dispozici na stránkách http://www.openimscore.org. Je potřeba
mít nainstalovaný balík Subversion. Stažením jádra IMS získáme funkce CSCF prvků
(ser_ims/TRUNK) a HSS (FHoSS/trunk).
Nedříve vytvoříme adresář /opt/OpenIMS
mkdir /opt/OpenIMSCore
cd /opt/OpenIMSCore
Dále vytvoříme adresář ser_ims a provedeme checkout CSCF
mkdir ser_ims
svn checkout
https://svn.code.sf.net/p/openimscore/code/ser_ims/trunk ser_ims
Následně vytvoříme adresář FHoSS a provedeme checkout HSS
mkdir FHoSS
svn checkout https://svn.code.sf.net/p/openimscore/code/FHoSS/trunk
FHoSS
Kompilace ser_ims
cd ser_ims
make install-libs all
cd ..
Kompilace FHoSS
Podmínkou je mít JDK novější nebo alespoň ve verzi 1.5. Verzi javy lze zkontrolovat
příkazem java –version. Kompilace se provede pomocí nástroje ant následovně
cd FHoSS
ant compile
ant deploy
cd ..
Konfigurace prostředí
MySQL
cd /opt/OpenIMSCore
mysql -u root -p -h localhost < ser_ims/cfg/icscf.sql
mysql -u root -p -h localhost < FHoSS/scripts/hss_db.sql
mysql -u root -p -h localhost < FHoSS/scripts/userdata.sql
mysql -u root -p -h localhost <
FHoSS/scripts/hss_db_migrate_as_register.sql
30
Konfigurace IMS jádra
CSCF
Konfigurační soubory překopírujte do adresáře /opt/OpenIMSCore
cd
cp
cp
cp
/opt/OpenIMSCore
ser_ims/cfg/*.cfg .
ser_ims/cfg/*.xml .
ser_ims/cfg/*.sh .
Pro změnu IP adresy na které poslouchají jednotlivé entity OpenIMS lze použít skript
configurator.sh, který spustíme z umístění /opt/OpenIMSCore a nastavíme novou IP a
doménové jméno. Změny se zapíší do všech konfiguračních souborů.
./configurator.sh
FHoSS
Konfigurační soubory jsou umístěny v /opt/OpenIMSCore/FHoSS/deploy.
Spuštění OpenIMS
Pro spuštění OpenIMS je potřeba paralélně spustit následující démony.
cd /opt/OpenIMSCore
./pcscf.sh
./icscf.sh
./scscf.sh
Před spuštěním FHoSS je nutné nastavit proměnnou JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
cd /opt/OpenIMSCore/FHoSS/deploy
./startup
31
Skript pro vkládání uživatelů do systému OpenBTS
#!/usr/bin/python
"""
Skript slouzi pro vkladani, mazani a zobrazovani dat z databaze
SQlite /var/lib/asterisk/sqlite3dir/sqlite3.db,
ktera obsahuje mapovani VoIP extensions na volajici identifikator
Marcel Fajkus
9.4.2013, v0.1
"""
import sys
import sqlite3, getopt
def insert(conn, c, exten, dial):
"""
Zaznam se pridava do tabulek: dialdata_table, sip_buddies
"""
c.execute("SELECT exten FROM dialdata_table WHERE exten='%s' or
dial='%s'"
%(exten, dial))
result = c.fetchone()
if result:
print("Zaznam s exten=<%s> nebo dial=<%s> v databazi existuje"
%(exten, dial))
else:
c.execute("""INSERT INTO dialdata_table (exten, dial)
VALUES('%s', '%s')"""
%(exten, dial))
32
id = getID(conn, c, exten)
c.execute("""INSERT INTO sip_buddies VALUES(%s,'%s','phones',
'allowed_not_screened',NULL,NULL,NULL,NULL,NULL,NULL,'dynamic',
'no','friend',NULL,NULL,NULL,'%s','0.0.0.0','info',NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'all','gsm',NULL,
'127.0.0.1',5062,'%s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,'yes','yes','yes','no',NULL,'no',NULL,'yes','accept',1800,90,
'uas',NULL,NULL,NULL,'yes',500,NULL,120,NULL,NULL,0,NULL,0,NULL,
'yes','no',NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL,0,1,0,
NULL,0,NULL)"""
%(id, dial, exten, dial))
print("Zaznam s exten=<%s> a dial=<%s> byl pridan"%(exten, dial))
def delete(conn, c, exten):
"""
Zaznam se maze z tabulek: dialdata_table, sip_buddies
"""
c.execute("SELECT exten FROM dialdata_table WHERE exten='%s'"%(exten))
result = c.fetchone()
if result:
id = getID(conn, c, exten)
c.execute("DELETE FROM dialdata_table WHERE exten='%s'"%(exten))
c.execute("DELETE FROM sip_buddies WHERE id='%s'"%(id))
print("Zaznam s exten=<%s> byl smazan"%(exten))
else:
print("Zaznam s exten=<%s> v databazi neexistuje."%(exten))
def show(conn, c, args):
33
"""
Zobrazeni zaznamu z tabulek: dialdata_table, sip_buddies
"""
if(args[1] == "all"):
"""Vypis vsech zaznamu v databazi"""
c.execute("""SELECT D.id, D.exten, D.dial, S.context
FROM dialdata_table D, sip_buddies S WHERE
D.id=S.id""")
for item in c.fetchall():
print("ID(%s) exten=<%s> dial=%s context=<%s>"
%(item[0], item[1], item[2], item[3]))
else:
"""Vypis konkretniho zaznamu v databazi"""
c.execute("""SELECT D.id, D.exten, D.dial, S.context
FROM dialdata_table D, sip_buddies S
WHERE D.id=S.id and D.exten='%s'"""
%(args[1]))
item = c.fetchone()
print("ID(%s) exten=<%s> dial=%s context=<%s>"
%(item[0], item[1], item[2], item[3]))
def getID(conn, c, exten):
"""
Ziskani ID z tabulky : dialdata_table
"""
c.execute("SELECT id FROM dialdata_table WHERE exten='%s'"%(exten))
return c.fetchone()[0]
def help():
"""
Vypis navodu k pouziti skriptu
"""
34
print("\nPopis:")
print("
Skript slouzi ke sprave databaze, kterou vyuziva OpenBTS")
print("
pro mapovani VoIP extension na dial")
print("
Umisteni databaze /var/lib/asterisk/sqlite3dir/sqlite3.db")
print("\nPouziti:")
print("
konkretni")
Vypis zaznamu z databze. Vsechny zaznamy nebo jeden
print("
openbtsext.py show all")
print("
openbtsext.py show <exten>\n")
print("
print("
print("
print("
Vkladani zaznamu")
openbtsext.py insert <exten> <dial>\n")
Smazani zaznamu")
openbtsext.py delete <exten>\n")
print("Vice informaci na webu:")
print("
http://docs.imatte.cz/temata/konvergence-openims-openbts\n")
def main():
# Cesta k databazi (/var/lib/asterisk/sqlite3dir/sqlite3.db)
db_path = "sqlite3.db"
conn = sqlite3.connect(db_path)
c = conn.cursor()
options, args = getopt.getopt(sys.argv[1:], "")
if(len(args) == 0):
help()
elif(args[0] == "help"):
help()
elif(args[0] == "insert" and len(args) == 3):
number = args[1]
imsi = args[2]
insert(conn, c, number, imsi)
35
elif(args[0] == "delete" and len(args) == 2):
number = args[1]
delete(conn, c, number)
elif(args[0] == "show" and len(args) == 2):
show(conn, c, args)
else:
help()
conn.commit()
conn.close()
if __name__ == "__main__":
main()
36

Podobné dokumenty

ESET Remote Administrator - Installation and Upgrade Guide

ESET Remote Administrator - Installation and Upgrade Guide serverech i mobilních zařízeních z jednoho centrálního místa v síti. Prostřednictvím ESET Remote Administrator můžete vzdáleně instalovat bezpečnostní řešení ESET na zařízení, spravovat jejich konf...

Více

GNU Radio

GNU Radio mezifrekvenčním pásmu, zpracování signálu v základním pásmu. I přímá větev (In-phase synfázní), Q kvadraturní Softwarově definované antény, kognitivní rádio, adaptování se provozním podmínkám, auto...

Více

Vývoj televizní techniky ve světě a u nás 1 Úvod 2 Počátky 3

Vývoj televizní techniky ve světě a u nás 1 Úvod 2 Počátky 3 Kromě ryzího vysílání se stále intenzivněji dostává ke slovu šíření televizních pořadů prostřednictvím internetu (IPTV) či mobilních sítí. Symbióza klasických vysílacích systémů a internetu v oblas...

Více

Historie a současnost televize ve světě a u nás

Historie a současnost televize ve světě a u nás Česká republika slaví letos 60 let od zahájení pravidelného televizního vysílání. Vývoj a první krůčky televize ve světě, ale i u nás jsou však o hodně starší. Zkusme si je připomenout. Již dávno s...

Více

PDF - Brudra

PDF - Brudra permanentní pohyb našich vozidel po celém území ÈR dovoz zdarma na místo urèení šití na zakázku v krátkých dodacích lhùtách výroba nášivek a potiskù dle Vašich požadavkù (vlastní strojová výroba) C...

Více

ORMP MPO 1U_3U

ORMP MPO 1U_3U are the ideal solution for saving space in data centres. The design of the patch panel enables to install it into a 19“ rack.

Více

Globální navigační satelitní systémy

Globální navigační satelitní systémy uplatnění metody je potom závislé na dosahu radiomodemu a terénních podmínkách na větší vzdálenosti je také možné data přenášet mobilními telefony (GSM/GPRS) výhodou je získání souřadnic v reálném ...

Více

Ovladač DbDrv systému REX - uživatelská příručka

Ovladač DbDrv systému REX - uživatelská příručka Ovladač DbDrv se instaluje jako součást řídicího systému REX. Je obsažen v instalátoru vývojových nástrojů systému REX, pro jeho nainstalování je pouze nutné ho v instalačním programu systému REX z...

Více

Technologie a protokoly multimediálních komunikací pro

Technologie a protokoly multimediálních komunikací pro VoIP lze chápat jako technologii, která využívá prostředky sítě Internet k přenosu hlasu, v aplikační rovině pak vidíme IP telefonii jako aplikaci nad VoIP. První pokusy s přenosem hlasu datovaných...

Více