OpenBTS: Build OpenBTS 5.0 untuk N210

From OnnoWiki
Jump to navigation Jump to search

sumber: https://antonraharja.com/2016/03/16/instalasi-dan-konfigurasi-openbts-5-0/


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 parameter N210 untuk melihat opsi-opsi yang dapat dijalankan bersama build.sh.

Perintah build.sh diatas akan menghasilkan paket-paket deb di direktori BUILDS dan terorganisir dalam sub-direktori berdasarkan tanggal dan jam. Pada ujicoba ini hasil kompilasi dan paket-paket deb berada di BUILDS/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 dengan sipauthserve 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.


Referensi