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:

[code lang=bash]
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
[/code]

Update dan install git:

[code lang=bash]
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
[/code]

Persiapkan direktori kerja untuk menampung source OpenBTS:

[code lang=bash]
mkdir -p ~/src
cd ~/src
[/code]

Catat, seluruh source codes OpenBTS terletak di ~/src.

Download OpenBTS:

[code lang=bash]
git clone https://github.com/RangeNetworks/dev.git
cd dev
./clone.sh
[/code]

Pilih branch yang akan digunakan, pada kesempatan ini kita akan gunakan branch 5.0 untuk OpenBTS versi 5.0:

[code lang=bash]
cd ~/src/dev
./switchto.sh 5.0
[/code]

Instalasi liba53:

[code lang=bash]
cd ~/src/dev/liba53
sudo make install
sudo ldconfig
cd ../
[/code]

Compile OpenBTS 5.0 dan aktifkan untuk perangkat N210:

[code lang=bash]
cd ~/src/dev
./build.sh N210
[/code]

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:

[code lang=bash]
cd ~/src/dev/BUILDS/2016-03-14–10-47-42
sudo dpkg -i *.deb
[/code]

Instalasi selesai.

Konfigurasi Dasar

Inisiasi database konfigurasi dasar yang akan digunakan oleh OpenBTS:

[code lang=bash]
sudo sqlite3 -init /etc/OpenBTS/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db ".quit"
[/code]

Pastikan ada isinya:

[code lang=bash]
sqlite3 /etc/OpenBTS/OpenBTS.db .dump
[/code]

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.

[code lang=bash]
sudo ifconfig eth0 192.168.10.1/24
[/code]

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:

[code lang=bash]
ping 192.168.10.2
[/code]

Reboot PC:

[code lang=bash]
sudo reboot
[/code]

Setelah PC hidup kembali, jalankan OpenBTS:

[code lang=bash]
sudo start sipauthserve
sudo start smqueue
sudo start openbts
sudo start asterisk
[/code]

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:

[code lang=bash]
/OpenBTS/OpenBTSCLI
[/code]

Pada konsol OpenBTSCLI jalankan config untuk melihat konfigurasi yang ada:

[code lang=bash]
config
[/code]

Masih pada konsol OpenBTSCLI, jalankan config berikut untuk mengizinkan seluruh telepon genggam terhubung dengan OpenBTS:

[code lang=bash]
config Control.LUR.OpenRegistration .*
[/code]

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;

[code lang=text]
sudo asterisk -rx "database put IMSI IMSI510109725712345 0521002000"
sudo asterisk -rx "database put PHONENUMBER 0521002000 IMSI510109725712345"
[/code]

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:

[code lang=text]
sudo asterisk -rx "database put IMSI IMSI510011042954321 0521003000"
sudo asterisk -rx "database put PHONENUMBER 0521003000 IMSI510011042954321"
[/code]

Pastikan data tersimpan dengan baik di Asterisk:

[code lang=bash]
asterisk -rx "database show"
[/code]

Hasilnya seperti ini:

[code lang=bash]
/IMSI/IMSI510011042954321 : 0521003000
/IMSI/IMSI510109725712345 : 0521002000
/PHONENUMBER/0521002000 : IMSI510109725712345
/PHONENUMBER/0521003000 : IMSI510011042954321
[/code]

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:

[code lang=bash]
mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.original
[/code]

Buat /etc/asterisk/extensions.conf baru:

[code lang=bash]
vi /etc/asterisk/extensions.conf
[/code]

Tambahkan dialplan berikut di /etc/asterisk/extensions.conf:

[code lang=text]
#include extensions-custom.conf
[/code]

Buat /etc/asterisk/extensions-custom.conf:

[code lang=bash]
vi /etc/asterisk/extensions-custom.conf
[/code]

Tambahkan dialplan berikut di /etc/asterisk/extensions-custom.conf:

[code lang=text]
[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
[/code]

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:

[code lang=bash]
sudo asterisk -rx "dialplan reload"
[/code]

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.

2 thoughts on “Instalasi dan Konfigurasi OpenBTS 5.0

  1. Muhammad Alfi

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

Comments are closed.