5/22/2018 Modul Openbts
1/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 1
MODUL OPENBTS
Tujuan Praktikum
Praktikan mengenal istilah openbts dan cara kerjanya. Praktikan mengetahui kebutuhan hardware dan software openbts. Praktikan bisa membuat openbts open source sederhana.
Alat-alat praktikum
Software:
GNU Radio (untuk mengendalikan USRP) Asterisk (untuk softswitch dan sentral
telepon)
OpenBTS (untuk menjalankan fungsiBTS)
Hardware:
Komputer
USRP
Antena
Kabel USB
A. DASAR TEORI
1. Sistem GSM (Global System for Mobile Communication)
GSM (Global System for Mobile communication) adalah suatu teknologi yang
digunakan dalam komunikasi mobile dengan sistem digital dan jaringan yang sudah
bersifat global. Dengan menggunakan sistem digital dalam transmisi datanya,
membuat kualitas dan bit ratenya lebih baik dibanding dengan sistem analog.
Handphone adalah contoh aplikasi teknologi GSM yang paling populer. GSM telah
dikembangkan menjadi tiga kelompok, yaitu GSM 900, 1800 dan 1900. Yang
membedakannya adalah lokasi band frekuensi yang digunakan.
5/22/2018 Modul Openbts
2/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 2
2. OpenBTS
OpenBTS adalah aplikasi BTS (Base Transceiver Station) yang berjalan pada
platform linux dan merupakan perangkat lunak terbuka. OpenBTS menggunakan
sebuah perangkat keras yang bernama USRP (Universal Software Radio Peripheral).
Perangkat inilah yang menghubungkan openBTS dengan jaringan standar telepon
selular (GSM). OpenBTS juga menggunakan perangkat lunak terbuka asterisk untuk
menginterkoneksikan dengan jaringan telepon lainnya seperti PSTN (Public Switched
Telephone Network) ataupun operator telekomunikasi lainnya dengan menggunakan
VoIP (Voice over IP).
OpenBTS mengganti infrastruktur tradisional operator GSM, dari Base
Transceiver Station (BTS) ke belakangnya. Dari yang biasanya trafik diteruskan ke
Mobile Switching Center (MSC), pada OpenBTS trafik diterminasi pada box yang
sama dengan cara meneruskan data ke Asterisk PBX melalui SIP dan Voice-over-IP
(VoIP). Jantung OpenBTS itu sendiri sebenarnya adalah aplikasi GNU Radio,
berfungsi sebagai pengendali USRP. Untuk manajemen dan lalu lintas suara (voice)
digunakan aplikasi Asterisk (protokol VoIP SIP). Fungsi dari Asterisk mirip dengan
perangkat (hardware) MSC (Mobile Switching Centre) pada sistem GSM. Karena itu
Asterisk disebut juga softswitch karena berbasis piranti lunak.
Manfaat dari pengembangan OpenBTS ini adalah untuk mengurangi biaya
layanan GSM di wilayah rural negara berkembang, sebagaimana yang dijalankan oleh
Harvind Samra dan David A. Burgess (2009). Kemudian di tahun 2010 sebuah sistem
5/22/2018 Modul Openbts
3/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 3
OpenBTS dipasang secara permanen di Nieu yang merupakan instalasi pertama yang
tersambung dan dicoba oleh perusahaan telekomunikasi di sana.
3. Keuntungan OpenBTS:
Memungkinkan pengguna jasa untuk dapat bertelpon dan mengirim sms secaragratis.
Sangat berguna untuk daerah terpencil yang belum ada infrastrukturtelekomunikasinya.
Solusi untuk daerah pasca bencana. Relatif murah, dan instalasi sangat cepat dan mudah. Kualitas suara dan transmisi datanya sama baiknya dengan operator seluler. Software mudah didapatkan.
4. USRP
Universal Software Radio Peripheral (USRP), merupakan salah satuperangkat
yang dipergunakan untuk membangun sebuah OpenBTS, di dalam USRP sendiri
dibagi menjadi 2 bagian yaitu :
5/22/2018 Modul Openbts
4/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 4
- Mother Board ( Main Board )- Daughter Board ( Child Board )
USRP diproduksi oleh Ettus Research LLC serta perusahaan dibawahnya, tujuan
dari USRP ini sendiri adalah untuk menfasilitasi pengembangan perangkat lunak radio
yang murah. Cara kerja dari USRP ini adalah menghubungan komputer host melalui
USB maupun Gigabit Ethernet yang berkecepatan tinggi. Koneksi ini memungkinkan
perangkat lunak untuk mengontrol USRP dan menyiapkan signal untuk mengirim dan
menerima data.
5. AsteriskAsterisk adalah suatu open source software yang biasanya digunakan untuk
membangun suatu sistem layanan komunikasi atau dengan kata lain bertindak sebagai
sentral telpon jaringan telekomunikasi. Asterisk dapat melakukan koneksi dengan
semua standar telephoni, dengan menggunakan hardware yang tidak begitu mahal
sebagai gateway-nya. Protokol yang digunakan adalah SIP (Session Initiation
Protocol) yang merupakan penyempurnaan dari VoIP (Voice Over Internet Protocol).
Jadi Asterisk ini digunakan sebagai softswitch dan sebagai sentral telepon.
6. GNU Radio
GNU radio adalah perangkat software yang bisa digunakan untuk membuat
sebuah software-defined radio. Software defined radio adalah radio yang bagian
signal processingnya dijalankan secara software. GNU Radio merupakan salah satu
perangkat lunak yang akan digunakan dalam mengoperasikan OpenBTS.
Salah satu kelebihan GNU Radio adalah perangkat lunak dengan kode sumber
terbuka dan merupakan perangkat lunak bebas. GNU radio untuk berbagai hal, mulai
dari akuisisi data GPS, transmitter DVB, komunikasi data, perancangan wimax, radar,
dan bahkan untuk membuat sebuah BTS.
7. Software OpenBTS
Software OpenBTS merupakan software yang menjalankun fungsi base
5/22/2018 Modul Openbts
5/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 5
stasion di PC agar dapat berkomunikasi dengan handset salularan. Software ini
digunakan untuk mengontrol operasi BTS.
8. Topologi OpenBTS:
GNU Radio OpenBTS Asterisk
USRPLAPTOP / Linux
Computer
RFX900/
1800RFX900/
1800
Switch
Client VoIP
Client VoIP
MS OpenBTS
MS OpenBTS
MS OpenBTS
B. Langkah-langkah praktikum
1. Instalasi dan Konfigurasi Sisitema) GNU Radio
Install Library# apt-get -y install libfontconfig1-dev libxrender-dev libpulse-dev
swig g++ automake libtool python-dev libfftw3-dev libcppunit-dev
libboost-all-dev libusb-dev fort77 sdcc sdcc-libraries libsdl1.2-dev
python-wxgtk2.8 subversion git-core guile-1.8-dev libqt4-dev
python-numpy ccache python-opengl libgsl0-dev python-cheetah
python-lxml doxygen qt4-dev-tools libqwt5-qt4-dev libqwtplot3d-
qt4-dev pyqt4-dev-tools libpcre3 libpcre3-dbg libpcre3-dev
libpcrecpp0
5/22/2018 Modul Openbts
6/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 6
Install WxWidget
Install SWIG
Install QWT
# nano /etc/apt/sources.list
Lalu copy-kan :
debhttp://apt.wxwidgets.org/DIST-wx main
deb-srchttp://apt.wxwidgets.org/DIST-wx main
# apt-get update
# apt-get install python-wxgtk2.8 python-wxtools wx2.8-i18n
# sudo apt-get install python-wxgtk2.8 python-wxtools wx2.8-i18n
libwxgtk2.8-dev libgtk2.0-dev
Download darihttp://sourceforge.net/projects/swig/files/swig/
# cp swig-2.0.4.tar.gz /usr/local/src/
# cd /usr/local/src/
# tar zxvf swig-2.0.4.tar.gz
# cd /usr/local/src/swig-2.0.4/
# ./configure
# make
# make install
http://apt.wxwidgets.org/http://apt.wxwidgets.org/http://apt.wxwidgets.org/http://apt.wxwidgets.org/http://apt.wxwidgets.org/http://apt.wxwidgets.org/http://sourceforge.net/projects/swig/files/swig/http://sourceforge.net/projects/swig/files/swig/http://sourceforge.net/projects/swig/files/swig/http://sourceforge.net/projects/swig/files/swig/http://apt.wxwidgets.org/http://apt.wxwidgets.org/5/22/2018 Modul Openbts
7/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 7
Handling USRPUbuntu menggunakan udev untuk menangani hotplug devices, dan secara
default tidak memberikan akses non-root ke USRP. Script berikut akan
memberikan akses bagi user untuk menghandel USRP via USB baik secara live
atau hot-plug:
Pada titik ini, Ubuntu telah di konfigurasi untuk tahu apa yang harus di
kerjakan jika medeteksi USRP di USB tapi "udev" perlu me-reload rules untuk
memasukan rules yang baru kita buat. Langkah berikut dapat dilakukan sehingga
kita tidak perlu me-reboot komputer.
# udevadm control --reload-rules
Download darihttp://sourceforge.net/projects/qwt/files/
# cp qwt-6.0.1.tar.bz2 /usr/local/src/
# cd /usr/local/src/
# tar jxvf qwt-6.0.1.tar.bz2
# cd /usr/local/src/qwt-6.0.1/
# qmake
# make
# make install
# addgroup usrp
# usermod -G usrp -a # echo 'ACTION=="add", BUS=="usb", SYSFS{idVendor}=="fffe",
SYSFS{idProduct}=="0002", GROUP:="usrp", MODE:="0660"' >
tmpfile
# chown root.root tmpfile
# mv tmpfile /etc/udev/rules.d/10-usrp.rules
http://sourceforge.net/projects/qwt/files/http://sourceforge.net/projects/qwt/files/http://sourceforge.net/projects/qwt/files/http://sourceforge.net/projects/qwt/files/5/22/2018 Modul Openbts
8/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 8
Kita dapat mencek jika USRP telah dikenali dengan mengamati /dev/bus/usb
setelah USRP di pasang menggunakan perintah :
# ls -lR /dev/bus/usb | grep usrp
Seharusnya akan keluar :
# crw-rw---- 1 root usrp 189, 1 2012-23-09 17:38 002
Install GNU Radio
Verifikasi USRPSelanjutnya kita perlu memverifikasi apakah GNURadio dapat bekerja dengan
USRP. Untuk tahapan ini kita perlu menyambungkan USRP ke komputer. Cek
kecepatan sambungan USB ke USRP :
Maka keluarannya :
Download darihttp://gnuradio.org/redmine/wiki/gnuradio/Download
# cp gnuradio-3.3.0.tar.gz /usr/local/src/
# cd /usr/local/src/
# tar zxvf gnuradio-3.3.0.tar.gz
# cd /usr/local/src/gnuradio-3.3.0/
# ./configure
# make clean
# make all
# make
# make check
# make install
# ldconfig
# cd /usr/local/src/gnuradio-3.3.0/gnuradio-examples/python/usrp
# ./usrp_benchmark_usb.py
http://gnuradio.org/redmine/wiki/gnuradio/Downloadhttp://gnuradio.org/redmine/wiki/gnuradio/Downloadhttp://gnuradio.org/redmine/wiki/gnuradio/Downloadhttp://gnuradio.org/redmine/wiki/gnuradio/Download5/22/2018 Modul Openbts
9/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 9
Testing 2MB/sec... usb_throughput = 2M
ntotal = 1000000
nright = 999918runlength = 999918
delta = 82
OK
Testing 4MB/sec... usb_throughput = 4M
ntotal = 2000000
nright = 1999492
runlength = 1999492
delta = 508
OK
Testing 8MB/sec... usb_throughput = 8M
ntotal = 4000000
nright = 3998860
runlength = 3998860
delta = 1140
OK
Testing 16MB/sec... usb_throughput = 16M
ntotal = 8000000
nright = 7997680
runlength = 7997680
delta = 2320
OK
Testing 32MB/sec... usb_throughput = 32M
ntotal = 16000000
nright = 15995986
runlength = 15995986
delta = 4014
OK
Max USB/USRP throughput = 32MB/sec
5/22/2018 Modul Openbts
10/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 10
b) OpenBTS Install Library
Install OpenBTS
c) AsteriskIntegrasi OpenBTS ke Asterisk sangat sederhana secara prinsip. Setiap SIM akan
di konfigurasi sebagai SIP user menggunakan IMSI sebagai username. Proses
memasukan pelanggan OpenBTS melalui dua tahap:
Dapatkan IMSI dari SIM. Cara nya pilih jaringan OpenBTS, maka otomatisakan mendapatkan sms berisikan nomor IMSI
Daftarkan di sip.conf dan extension.conf untuk mendapatkan nomor pelangganbaru OpenBTS
# apt-get install libortp8 libortp-dev libosip2-4 libosip2-dev
Download darihttp://sourceforge.net/projects/openbts
# cp openbts-2.6.0Mamou.tar.gz /usr/local/src/
# cd /usr/local/src/
# tar zxvf openbts-2.6.0Mamou.tar.gz
# cd /usr/local/src/openbts-2.6.0Mamou/
# ./configure
# make clean
# make all
# make
# make install
http://sourceforge.net/projects/openbts/http://sourceforge.net/projects/openbts/http://sourceforge.net/projects/openbts/http://sourceforge.net/projects/openbts/5/22/2018 Modul Openbts
11/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 11
Cek nomer IMSI
Maka akan muncul:
Lalu ketikkan: tmsis
Maka akan muncul:
Nomor-nomor 510XXXXXXXXXXXX adalah nomor SIM card yang terdaftar
di OpenBTS yang kita operasikan.
Konfigurasi sip.conf
# cd /usr/local/src/openbts-2.6.0Mamou/apps
# ./OpenBTS
Welcome to OpenBTS. Type "help" to see available commands.
OpenBTS>
TMSI IMSI IMEI age used
0x4f309ebf 510890929069598 ? 22h 22h
0x4f309ec0 510112410440152 ? 22h 5s
0x4f309ec1 510110301694405 ? 22h 22h
0x4f309ec2 510104725431198 ? 22h 22h
0x4f31da5b 510110026566622 ? 15s 15s
# nano /etc/asterisk/sip.conf
Lalu isikan :
[IMSI510890929069598]
callerid=1000
canreinvite=no
5/22/2018 Modul Openbts
12/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 12
Konfigurasi extension.conf
d) Menjalankan OpenBTS Cek sambungan USRP ke OpenBTS
Maka akan muncul:
type=friend
allow=gsm
context=default
host=dynamic
[IMSI510112410440152]
callerid=1111
canreinvite=no
type=friend
allow=gsm
context=default
host=dynamic
# nano /etc/asterisk/extension.conf
Isikan :
exten => 1000,1,Dial(SIP/IMSI510890929069598,60,rt)
exten => 1000,2,Hangup
exten => 1001,1,Dial(SIP/IMSI510112410440152,60,rt)
exten => 1001,2,Hangup
# cd /usr/local/src/openbts-2.6.0Mamou/Transceiver
# ./USRPping
5/22/2018 Modul Openbts
13/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 13
Jalankan Asterisk
Jalankan OpenBTS
1291894660.4831 FORCE 3078457040 Logger.cpp:194:gLogInit:
Setting initial global logging level to INFO
1291894660.4834 INFO 3078457040
USRPDevice.cpp:142:USRPDevice: creating USRP device...
1291894660.4834 INFO 3078457040 USRPDevice.cpp:158:make:
making USRP device..
1291894660.8221 INFO 3078457040
USRPDevice.cpp:528:setTxFreq: set TX: -4000000.0000 actual
TX: -4000000.0000
1291894660.8365 INFO 3078457040 USRPDevice.cpp:224:start:
starting USRP...
1291894660.8449 INFO 3078457040 USRPDevice.cpp:245:start:
TX pgas: 0.0000, 0.0000
1291894660.8502 INFO 3078457040 USRPping.cpp:55:main:
Looping...
1291894660.9474 INFO 3078457040 USRPping.cpp:78:main: rcvd.
data@:19000
1291894660.9475 INFO 3078457040 USRPping.cpp:78:main: rcvd.
data@:19512
1291894660.9475 INFO 3078457040 USRPping.cpp:78:main: rcvd.
data@:20024
1291894660.9476 INFO 3078457040 USRPping.cpp:78:main: rcvd.
data@:20536
# /etc/init.d/asterisk restart
# asterisk -r
5/22/2018 Modul Openbts
14/14
Bengkel Jaringan dan Multimedia
Laboratorium Jaringan Akses(N111)
Institut Teknologi Telkom 2013
Accessnet.Lab 14
Bila baru pertama kali menjalankan, copy file OpenBTS.cnfig.examples terlebihdahulu.
Setelah itu, baru jalankan OpenBTS
# cd /usr/local/src/openbts-2.6.0Mamou/apps
# cp OpenBTS.config.example OpenBTS.config
./OpenBTS