Senin, 21 November 2011

Belajar Open BTS

Sudah sangat lama tidak posting lagi nih, kali ini mumpung ngikut acara lesehan workshop di Gedung BPPT pada Sabtu tanggal 12 November 2011 saya sekali lagi ingin sharing knowledge.
Acara yang digagas oleh Ristek ini diisi oleh Pakar IT Tersohor Bp. Onno W Purbo dan rekan-rekan dari komunitas Air Putih yang dikomando sama mas Akhmat Safrudin atau biasa dipanggil Mas Somat dimana komunitas ini punya pengalaman recovery desaster di Indonesia terutama urusan infrastrukur jaringan telekomunikasi darurat yang dikenal dengan sebutan Open BTS dan.
Daripada berlama-lama langsung saja kita santap sajian ilmunya.


Acara ini pada awalnya dibagi menjadi 3 sesi:
1. Sesi perkenalan (Apa itu Open BTS?)
2. Demo session
3. Instalasi dan konfigurasinya

Open BTS sendiri sebenarnya perkembangnnya di dunia penggiat IT sudah cukup lama tapi untuk di Indonesia ini masih tergolong baru. Pak Onno sendiri pertama kali sedangkan Air Putih baru melakukan kajian dan riset Open BTS pada awal 2011 jadi sangat cocok dijadikan bahan Tugas Akhir kuliah (ane juga mau buat TA ini he...)



Apa sih OpenBTS itu?

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).

Atau dengan kata lain:
OpenBTS (Open Base Transceiver Station) adalah sebuah BTS GSM berbasis software, yang memungkinkan handphone GSM untuk menelepon tanpa menggunakan jaringan operator selular. OpenBTS dikenal sebagai implementasi open source pertama dari protokol standard industri GSM.
Perkiraan harga sekitar Rp. 15-25 juta / buah, jauh di bawah BTS Selular biasa yang biasanya dalam orde ratusan juta hingga beberapa Milyard rupiah.
(sumber : http://opensource.telkomspeedy.com/wiki/index.php/OpenBTS )
Buat apa Open BTS?

Rencananya sih, kalau memungkinkan, mereka, teman-teman di AirPutih berkeinginan untuk menerapkan ini di wilayah bencana dan sudah pernah dilakukan pada saat Bencana Mentawai. karena dari pengamatan AirPutih, pada saat terjadi bencana (khususnya gempa bumi)  sering sekali telekomunikasi suara (selular) tidak berfungsi dengan baik (kalo gak boleh dibilang mati). Hal ini bisa disebabkan tower/BTS yang rubuh, tidak adanya pasokan listrik atau juga karena gangguan telekomunikasi lainnya. Dan menurut kami, OpenBTS bisa jadi alternatif telekomunikasi darurat di wilayah bencana.


Arsitektur jaringan GSM VS Open BTS

Arsitektur GSM


Arsitektur Open BTS

Software untuk Open BTS:

Menurut @ kala itu menerangkan bahwa dia memakai Blankon Linux, namun tidak terbatas dengan Blankon, distro linux lainnya pun bisa. dan intinya menggunakan Open BTS dengan OS yang berjalan pada platform Linux. Dan perangkat lunak untuk mendevelop Open BTS adalah:
  1. GNU Linux
  2. Asterisk
  3. Boost
  4. GNU Radio
  5. GSL
  6. Kal
  7. Libopsip2
  8. Open BTS
  9. SDCC
 Untuk mempermudah silahkan kunjungi http://opensource.telkomspeedy.com/wiki/index.php/GNURadio:_Ubuntu_Install untuk installasi open BTS di Ubuntu. Juga sila unduh materi presentasi saat itu di sini.

Nah berikut step-step melakukan persiapan instalasi dan konfigurasi Open BTS dari Air Putih:

Perangkat Keras
1. USRP (Perangat utama)



2. CPU

Perangkat Lunak
Perangkat Lunak dan Versi
1 GNU/Linux -
2 Asterisk 1.4.21
3 Boost 1.44.0
4 GNURadio 3.2.2
5 Gsl 1.10
6 Kal 0.2
7 Libosip2 3.3.0
8 OpenBTS 2.6.0 Mamou
9 SDCC (Source) 2.9.0

Pemasangan
● Instalasi GNU Radio
● Uji Coba GNU Radio
● Instalasi OpenBTS
● Konfigurasi OpenBTS Asterisk dan Smqueue
● Mengoperasikan OpenBTS

GNU Radio
● Instalasi Boost
$ ./bootstrap.sh --show-libraries
$ ./bootstrap.sh --with-libraries=thread,date_time,program_options
$ ./bjam --prefix=/opt/boost_1_44_0
$ ./bjam --prefix=/opt/boost_1_44_0 install
● Instalasi SDCC
● Instalasi GSL

GNU Radio (2)
● Instalasi Pustaka Pendukung
$ sudo apt-get install python-numpy python-qt4 libqwt5-qt4-dev qt4-dev-tools python-qwt3d-qt4 libqwtplot3d-qt4-dev python-qt4-dev libxt-dev libaudio-dev libpng-dev libxidev libxrender-dev libxrandr-dev libfreetype6-dev libfontconfig-dev python-lxml python-cheetah oss-compat
swig g++ automake1.9 libtool libusb-dev libsdl1.2-dev python-wxgtk2.8 guile-1.8-dev libqt4-dev python-opengl fftw3-dev

GNU Radio (3)
● Instalasi GNU Radio
● $ export LD_LIBRARY_PATH=/opt/boost_1_44_0/lib:
● $ ./configure --with-boost=/opt/boost_1_44_0 --disable-all-components --enableusrp --enable-omnithread --enable-mblock --enable-pmt --enable-gnuradioexamples --enable-docs --enable-doxygen --enable-gnuradio-core --enable-grwxgui --enable-gruel --enable-gr-utils --enable-gr-usrp
● $ make
● $ sudo make install
● $ sudo addgroup usrp
● $ sudo adduser <user-yang-akan-digunakan-untuk-menjalankan-openbts> usrp
● $ sudo vim /etc/udev/rules.d/10-usrp.rules
ACTION=="add", BUS=="usb", SYSFS{idVendor}=="fffe", SYSFS{idProduct}=="0002", GROUP:="usrp", MODE:="0660"

Uji GNU Radio
● Uji Koneksi USB
$ export LD_LIBRARY_PATH=/opt/boost_1_44_0/lib:
$ cd /usr/local/share/gnuradio/examples/usrp
$ ./usrp_benchmark_usb.py
● Uji Respon USRP dan Frekuensi
$ export LD_LIBRARY_PATH=/opt/boost_1_44_0/lib:
$ usrp_siggen.py -f 1783.8M
$ usrp_fft.py -f 1.7838G & Using TX d’board A: Flex 1800 Tx MIMO B uU

Instalasi OpenBTS
● Memasang Libosip2
● Memasang Libortp7
$ sudo apt-get install libortp7-* asterisk
● Compile OpenBTS
$ ln -s /opt/boost_1_44_0/include/boost /usr/local/include/boost
Patch
Configure – make – make install
● Compile smqueue

OpenBTS Setting
● OpenBTS
● Setting log
● Setting Path Tranceiver
● Setting MCC MNC
● Setting GSM Band and Channel

Asterisk Setting (1)
● Asterisk
● Setting Dialplan
[macro-dialSIP]
exten => s,1,Dial(SIP/${ARG1})
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-CANCEL,1,Hangup
exten => s-NOANSWER,1,Hangup
exten => s-BUSY,1,Busy(30)
exten => s-CONGESTION,1,Congestion(30)
exten => s-CHANUNAVAIL,1,playback(ss-noservice)
exten => s-CANCEL,1,Hangup
[sip-local]
exten => 2102,1,Macro(dialSIP,IMSI123456789012345)
exten => 2103,1,Macro(dialSIP,IMSI098765432123456)

Asterisk Setting (2)
● Asterisk
● Setting SIP
[IMSI123456789012345]
canreinvite=no
type=friend
context=sip-external
allow=gsm
host=dynamic

Smqueue Setting (untuk SMS)
● Nonaktifkan IPV6
● Ubah berkas
smqueue/smqueue.config
Tambahkan :
Log.Alarms.Max 10
● Tambahkan berkas savedqueue.txt

Jalankan!
$ cd openbts-2.6.0Mamou/apps/
$ ./OpenBTS
Merdeka! \0/

http://makeitfossible.web.id
http://airputih.or.id

Gambar Open BTS (milik Yayasan Air Putih)

Open BTS ilmunya bisa juga dipelajari dibawah ini:

Tidak ada komentar:

Posting Komentar