OpenBTS masih terus dikembangkan, versi terkini adalah OpenBTS 5.0. Banyak sekali pengembangan yang dilakukan untuk kemudahan dalam instalasi dan penggunaan di OpenBTS 5.0 ini.
Berita singkat mengenai rilis OpenBTS 5.0 dapat dibaca disini.
Pada kesempatan ini penulis dan rekan ingin membagi informasi mengenai instalasi dan konfigurasi dasar OpenBTS 5.0. Tujuan akhir dari penulisan artikel ini adalah agar penulis dan rekan dapat membuatkan semacam web GUI untuk operator-operator OpenBTS agar mereka dapat mengoperasikan OpenBTS dengan nyaman, serta mempelajari pemanfaatan E164.ID untuk jaringan OpenBTS.
Ujicoba dilaksanakan di Universitas Gunadarma atas bantuan pak M. Akbar Marwan, Rizky Herpurwadi dan Andreas Widodo, terima kasih banyak atas asistensinya, dan tentunya dorongan dan bahan-bahan terdahulu dari pak Onno yang keren :)
Tidak mudah mendapatkan akses pada perangkat OpenBTS, Ettus N210, maka dari itu jangan sia-sia kan kesempatan yang diberikan ketika anda diberikan izin untuk ngoprek :)
Mari kita mulai.
Instalasi OpenBTS 5.0
Yang telah dipersiapkan:
- PC dengan Ubuntu 14.04 (amd64) dan Gigabit Ethernet, serta kabel gigabit
- OpenBTS kit Ettus N210 (tanpa GPSDO)
- Sebanyak 2 atau lebih telepon genggam
- Koneksi internet yang cepat
Awali dengan instalasi paket-paket development:
sudo apt-get install autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev libuhd-dev libuhd003 uhd-host libboost-dev bind9 ntp
Update dan install git
:
sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git
Persiapkan direktori kerja untuk menampung source OpenBTS:
mkdir -p ~/src cd ~/src
Catat, seluruh source codes OpenBTS terletak di
~/src
.
Download OpenBTS:
git clone https://github.com/RangeNetworks/dev.git cd dev ./clone.sh
Pilih branch yang akan digunakan, pada kesempatan ini kita akan gunakan branch 5.0 untuk OpenBTS versi 5.0:
cd ~/src/dev ./switchto.sh 5.0
Instalasi liba53:
cd ~/src/dev/liba53 sudo make install sudo ldconfig cd ../
Compile OpenBTS 5.0 dan aktifkan untuk perangkat N210:
cd ~/src/dev ./build.sh N210
Apabila anda menggunakan perangkat selain N210 maka perintah
build.sh
nya pun menyesuaikan, jalankan tanpa parameterN210
untuk melihat opsi-opsi yang dapat dijalankan bersamabuild.sh
.Perintah
build.sh
diatas akan menghasilkan paket-paketdeb
di direktoriBUILDS
dan terorganisir dalam sub-direktori berdasarkan tanggal dan jam. Pada ujicoba ini hasil kompilasi dan paket-paketdeb
berada diBUILDS/2016-03-14--10-47-42
.
Instalasi paket-paket deb
OpenBTS 5.0 hasil kompilasi:
cd ~/src/dev/BUILDS/2016-03-14--10-47-42 sudo dpkg -i *.deb
Instalasi selesai.
Konfigurasi Dasar
Inisiasi database konfigurasi dasar yang akan digunakan oleh OpenBTS:
sudo sqlite3 -init /etc/OpenBTS/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db ".quit"
Pastikan ada isinya:
sqlite3 /etc/OpenBTS/OpenBTS.db .dump
Pastikan N210 terhubung dengan PC melalui port Ethernet gigabit dan menggunakan kabel UTP gigabit.
Set IP untuk device yang terhubung dengan N210 ke 192.168.10.1. Default IP N210 adalah 192.168.10.2.
sudo ifconfig eth0 192.168.10.1/24
Catat, untuk memudahkan dan agar bersifat permanen maka konfigurasi IP dapat dilakukan melalui file
/etc/network/interfaces
, baca salah satu tutorial konfigurasi IP disini.
Pastikan bahwa N210 terhubung dengan baik ke PC:
ping 192.168.10.2
Reboot PC:
sudo reboot
Setelah PC hidup kembali, jalankan OpenBTS:
sudo start sipauthserve sudo start smqueue sudo start openbts sudo start asterisk
Catat, sebenarnya layanan-layanan diatas sudah otomatis hidup kembali saat boot, jadi tidak perlu di start seperti diatas, namun demikian tidak masalah untuk di start, di stop atau di restart sendiri, sesuai kebutuhan.
Lakukan konfigurasi dasar pada OpenBTS, akses OpenBTS melalui OpenBTSCLI
:
/OpenBTS/OpenBTSCLI
Pada konsol OpenBTSCLI
jalankan config
untuk melihat konfigurasi yang ada:
config
Masih pada konsol OpenBTSCLI
, jalankan config
berikut untuk mengizinkan seluruh telepon genggam terhubung dengan OpenBTS:
config Control.LUR.OpenRegistration .*
Opsi-opsi yang tersedia dan dapat dikonfigurasi dapat dilihat disini.
Konfigurasi dasar OpenBTS telah selesai. Selanjutnya fokus pada Asterisk yang digunakan untuk komunikasi dengan dunia luar melalui VoIP (SIP calls).
Pada ujicoba ini telah disiapkan 2 buah telepon genggam dengan masing-masing memiliki SIM card dengan IMSI sebagai berikut:
- IMSI510109725712345, ini akan diberi nomor 0521002000
- IMSI510011042954321, ini akan diberi nomor 0521003000
Petakan IMSI IMSI510109725712345
ke nomor 0521002000
dan sebaliknya;
sudo asterisk -rx "database put IMSI IMSI510109725712345 0521002000" sudo asterisk -rx "database put PHONENUMBER 0521002000 IMSI510109725712345"
Perhatikan bahwa untuk memetakan IMSI ke PHONENUMBER dan sebaliknya perlu menjalankan 2 perintah untuk menyimpan data ke database internal Asterisk.
Selanjutnya petakan IMSI IMSI510011042954321
ke nomor 0521003000
dan sebaliknya:
sudo asterisk -rx "database put IMSI IMSI510011042954321 0521003000" sudo asterisk -rx "database put PHONENUMBER 0521003000 IMSI510011042954321"
Pastikan data tersimpan dengan baik di Asterisk:
asterisk -rx "database show"
Hasilnya seperti ini:
/IMSI/IMSI510011042954321 : 0521003000 /IMSI/IMSI510109725712345 : 0521002000 /PHONENUMBER/0521002000 : IMSI510109725712345 /PHONENUMBER/0521003000 : IMSI510011042954321
Perhatikan bahwa terdapat 2 buah peta yang memetakan IMSI ke nomor telepon dan sebaliknya. Peta IMSI memetakan IMSI ke nomor telepon dan peta PHONENUMBER memetakan nomor telepon ke IMSI. Keduanya akan digunakan oleh Asterisk dalam dialplannya untuk melakukan panggilan dari dan ke telepon genggam.
Selanjutnya konfigurasi dialplan Asterisk agar antar telepon genggam dapat saling memanggil.
Backup /etc/asterisk/extensions.conf
original dan gantikan dengan buatan sendiri:
mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.original
Buat /etc/asterisk/extensions.conf
baru:
vi /etc/asterisk/extensions.conf
Tambahkan dialplan berikut di /etc/asterisk/extensions.conf
:
#include extensions-custom.conf
Buat /etc/asterisk/extensions-custom.conf
:
vi /etc/asterisk/extensions-custom.conf
Tambahkan dialplan berikut di /etc/asterisk/extensions-custom.conf
:
[from-openBTS] exten => _0521X.,1,Verbose(Dialplan started) same = n,Set(CALLER_IMSI=${CALLERID(num)}) same = n,Verbose(Get CID from CALLER_IMSI: ${CALLER_IMSI}) same = n,Set(CID=${DB(IMSI/${CALLER_IMSI})}) same = n,Set(CALLERID(num)=${CID}) same = n,Verbose(Get IMSI from EXTEN: ${EXTEN}) same = n,Set(IMSI=${DB(PHONENUMBER/${EXTEN})}) same = n,Dial(SIP/00101100010/${IMSI}) same = n,Hangup
Catat, peer
00101100010
adalah peer yang telah dibuat pada bagian lain konfigurasi Asterisk hasil dari instalasi OpenBTS. Peer tersebut digunakan untuk menghubungkan Asterisk dengansipauthserve
untuk memanggil telepon genggam dengan IMSI yang telah dipetakan.
Aktifkan dialplan:
sudo asterisk -rx "dialplan reload"
Instalasi dan konfigurasi dasar telah selesai, pada saat ini kedua telepon genggam dapat saling memanggil dengan dial 0521002000 atau 0521003000.
Tentunya agar telepon genggam dapat terhubung dengan OpenBTS maka dari masing-masing telepon genggang agar dilakukan pencarian carrier secara manual, pilih BTS Test 1-1 atau Test PLMN 1-1.
Selanjutnya adalah optimasi config
di OpenBTS agar kualitas optimal dan penyesuaian serta penambahan dialplan di Asterisk agar dapat terhubung dengan layanan-layanan telekomunikasi.
Penulis
Artikel ini ditulis oleh Anton Raharja.
Keren mas anton. Di kampus saya politeknik aceh, ada 2 USRP, mgkn bs di coba ini ya mas ? Sblm nya saya blm prnah mncb open bts, saat ini saya hanya membuat VOIP biasa melalui Raspi sebagai server nya..
LikeLike
bisa dicoba, kabari saya ya kalo sudah berhasil (atau tidak berhasil)
LikeLike