Difference between revisions of "OpenBTS: E110 Instalasi OpenBTS"

From OnnoWiki
Jump to navigation Jump to search
Line 354: Line 354:
  
 
* [[OpenBTS]]
 
* [[OpenBTS]]
 +
* [[OpenBTS: Arsitektur secara umum]]
  
 
===Persiapan===
 
===Persiapan===
Line 365: Line 366:
 
* [[USRP: Rangkaian Board USRP]]
 
* [[USRP: Rangkaian Board USRP]]
 
* [[OpenBTS: Tethr untuk Bencana Alam]]
 
* [[OpenBTS: Tethr untuk Bencana Alam]]
 +
* [[USRP: Tip Pemesanan]]
  
 
===OpenBTS 2.6===
 
===OpenBTS 2.6===
Line 373: Line 375:
 
* [[GNURadio: Ubuntu Install GNURadio 3.4.2]] '''RECOMMENDED'''
 
* [[GNURadio: Ubuntu Install GNURadio 3.4.2]] '''RECOMMENDED'''
 
* [[GNURadio: Ubuntu Install GNURadio 3.4.2 Clock 52MHz]] '''RECOMMENDED'''
 
* [[GNURadio: Ubuntu Install GNURadio 3.4.2 Clock 52MHz]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 13.04 Install GNURadio 3.4.2 Clock 52MHz]] ''NOT RECOMMENDED''
 
* [[GNURadio: Contoh Aplikasi]]
 
* [[GNURadio: Contoh Aplikasi]]
 
* [[GNURadio: Spectrum Analizer GSM]]
 
* [[GNURadio: Spectrum Analizer GSM]]
Line 379: Line 382:
 
* [[OpenBTS: Ubuntu Install]] '''RECOMMENDED'''
 
* [[OpenBTS: Ubuntu Install]] '''RECOMMENDED'''
 
* [[OpenBTS: Ubuntu Install OpenBTS 2.6 Clock 52MHz]] '''RECOMMENDED'''
 
* [[OpenBTS: Ubuntu Install OpenBTS 2.6 Clock 52MHz]] '''RECOMMENDED'''
 +
* [[OpenBTS: Ubuntu 13.04 Install OpenBTS 2.6 Clock 52MHz]] ''NOT RECOMMENDED''
 
* [[OpenBTS: Konfigurasi]] '''RECOMMENDED'''
 
* [[OpenBTS: Konfigurasi]] '''RECOMMENDED'''
 
* [[OpenBTS: Kalibrasi]]
 
* [[OpenBTS: Kalibrasi]]
Line 399: Line 403:
 
* [[GNURadio: Install UHD]]
 
* [[GNURadio: Install UHD]]
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.3.0]]
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.3.0]]
 +
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.3.0]]
 +
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.4.1]] ''NOT RECOMMENDED''
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 
* [[GNURadio: Ubuntu 12.04 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 
* [[GNURadio: Ubuntu 12.04 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 12.04.1 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.4.2]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 13.04 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.5.0]] ''NOT RECOMMENDED''
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.5.0]] ''NOT RECOMMENDED''
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.5.3.2]] ''NOT RECOMMENDED''
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.5.3.2]] ''NOT RECOMMENDED''
Line 406: Line 415:
 
* [[GNURadio: Ubuntu 11.10 Install dari GIT GNURadio]] ''NOT RECOMMENDED''
 
* [[GNURadio: Ubuntu 11.10 Install dari GIT GNURadio]] ''NOT RECOMMENDED''
 
* [[GNURadio: Ubuntu 11.10 cek USRP Daughter Board]]
 
* [[GNURadio: Ubuntu 11.10 cek USRP Daughter Board]]
* [[GNURadio: UHD]]
+
* [[GNURadio: UHD]] ''NOT RECOMMENDED''
* [[GNURadio: UHD Image]]
+
* [[GNURadio: UHD Image]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD burn EEPROM RFX Board di USRP1]] ''NOT RECOMMENDED''
 
* [[GNURadio: UHD Identifikasi Device]]
 
* [[GNURadio: UHD Identifikasi Device]]
 
* [[OpenBTS: Ubuntu 11.10 Install]]
 
* [[OpenBTS: Ubuntu 11.10 Install]]
Line 413: Line 423:
 
* [[OpenBTS: 2.8 dari SVN Install]]
 
* [[OpenBTS: 2.8 dari SVN Install]]
 
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz]] '''RECOMMENDED'''
 
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz di Ubuntu 12.10]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz di Ubuntu 13.04]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz dengan UHD tanpa GNURadio]] ''NOT RECOMMENDED''
 
* [[OpenBTS: 2.8 Edit User di sqlite3.db]] '''RECOMMEND'''
 
* [[OpenBTS: 2.8 Edit User di sqlite3.db]] '''RECOMMEND'''
* [[OpenBTS: Yate Softswitch]]
+
* [[OpenBTS: Yate Softswitch]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Softswitch install Ubuntu 12.10]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Softswitch install Ubuntu 13.04]] '''RECOMMENDED'''
 
* [[OpenBTS: Yate Config Test]]
 
* [[OpenBTS: Yate Config Test]]
 
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]] '''RECOMMENDED'''
 
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]] '''RECOMMENDED'''
Line 424: Line 439:
 
===Multi OpenBTS 2.8===
 
===Multi OpenBTS 2.8===
  
* [[OpenBTS: Pola Multi OpenBTS]]
+
* [[OpenBTS: Pola Multi OpenBTS]] '''RECOMMENDED'''
 +
* [[Multi OpenBTS: Catatan Konfigurasi]] '''RECOMMENDED'''
  
 
===Ettus E110===
 
===Ettus E110===
  
 
* [[OpenBTS: E110 Cara Login]]
 
* [[OpenBTS: E110 Cara Login]]
* [[OpenBTS: E110 Install Image di MicroSD]]
+
* [[OpenBTS: E110 Install Image di MicroSD]] '''*RECOMMENDED*'''
 
* [[OpenBTS: E110 Cek Daughter Board]]
 
* [[OpenBTS: E110 Cek Daughter Board]]
 
* [[OpenBTS: E110 Mengubah Master Clock]]
 
* [[OpenBTS: E110 Mengubah Master Clock]]
 
* [[OpenBTS: E110 Kalibrasi Clock]]
 
* [[OpenBTS: E110 Kalibrasi Clock]]
 +
* [[OpenBTS: E110 Konfigurasi Jaringan]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 
* [[OpenBTS: E110 GNURadio]]
 
* [[OpenBTS: E110 GNURadio]]
* [[OpenBTS: E110 Install UHD Image]]
+
* [[OpenBTS: E110 Compile UHD]] ''Not Recommended''
 +
* [[OpenBTS: E110 Compile UHD dari Release Bukan git]] ''Not Recommended''
 +
* [[OpenBTS: E110 UHD burn EEPROM RFX Board]] ''Not Recommended''
 +
* [[OpenBTS: E110 Install UHD Image]] ''Not Recommended''
 
* [[OpenBTS: E110 Instalasi OpenBTS]]
 
* [[OpenBTS: E110 Instalasi OpenBTS]]
 
* [[OpenBTS: E110 Instalasi OpenBTS 2.6]] ''NOT RECOMMENDED''
 
* [[OpenBTS: E110 Instalasi OpenBTS 2.6]] ''NOT RECOMMENDED''
 +
* [[OpenBTS: E110 Instalasi OpenBTS 2.8 untuk MultiBTS]] '''*RECOMMENDED*'''
 +
* [[OpenBTS: E110 Yate Softswitch]]
 +
 +
===Ettus N210===
 +
 +
* [[OpenBTS: N210 Instalasi GPSDO Kit]]
 +
* [[OpenBTS: N210 GNURadio]]
 +
* [[OpenBTS: N210 GNURadio 3.7.0]]
 +
* [[OpenBTS: N210 Instalasi OpenBTS]]
 +
* [[OpenBTS: N210 Instalasi Yate]]
 +
* [[OpenBTS: N210 Yate Config Test]]
 +
* [[OpenBTS: N210 Burn Firmware]]
 +
 +
===GPRS===
 +
 +
* [[OpenBTS: GPRS]]
 +
 +
===Briker OpenBTS===
 +
 +
* [[OpenBTS: Briker]]
 +
 +
===FreeSWITCH OpenBTS===
 +
 +
* [[OpenBTS: FreeSWITCH]]
  
 
===Power Amplifier===
 
===Power Amplifier===
Line 444: Line 488:
 
* [[Power Amplifier 900MHz]]
 
* [[Power Amplifier 900MHz]]
 
* [[Duplexer]]
 
* [[Duplexer]]
 +
* [[OpenBTS: Menaikan Jangkauan OpenBTS]]
  
 
===Lain Lain===
 
===Lain Lain===
Line 474: Line 519:
 
* [[OpenBTS: Daftar Workshop atau Seminar yang pernah dilakukan]]
 
* [[OpenBTS: Daftar Workshop atau Seminar yang pernah dilakukan]]
 
* [[OpenBTS: Daftar Artikel di Media]]
 
* [[OpenBTS: Daftar Artikel di Media]]
 +
* [[OpenBTS: Permohonan Kanal dan DID untuk OpenBTS]]
 +
* [[OpenBTS: 2013/02/19 - OpenBTS TelkomSel Mengudara di Muscat Oman]]
  
 
===Dokumentasi Video===
 
===Dokumentasi Video===
  
 +
* http://www.metrotvnews.com/read/newsprograms/2012/10/14/14624/212/Teknologi-BTS
 
* http://youtu.be/8ogOcUSpINU (1/6)
 
* http://youtu.be/8ogOcUSpINU (1/6)
 
* http://youtu.be/F5d7HGuhppk (2/6)
 
* http://youtu.be/F5d7HGuhppk (2/6)

Revision as of 08:30, 23 August 2013

Lakukan Ubah Master Clock ke 52MHz


Instalasi Aplikasi Pendukung

Instal aplikasi pendukung

opkg update
opkg install libosip2-6 libosip2-dev libortp8 libortp-dev asterisk asterisk-dev \
sqlite3

Jika dibutuhkan kita dapat menset di shell

setenv PERL5LIB /usr/share/autoconf/Autom4te:/usr/share/automake-1.11/Automake

Compile osip2

WARNING: Jangan mengcompile osip2, karena switch-nya lumayan ribet.

Kalau mau mengcompile, silahkan Download osip dari http://ftp.gnu.org/gnu/osip/ tepatnya http://ftp.gnu.org/gnu/osip/libosip2-3.6.0.tar.gz

Lakukan

mkdir src
mv libosip2-3.6.0.tar.gz ~/src
cd ~/src
tar zxvf libosip2-3.6.0.tar.gz
mkdir linux-build
cd ~/src/linux-build/
~/src/libosip2-3.6.0/configure 
make clean
make all
make
make install

Naga-naganya ada yang salah di cara ini, terutama di ./configure kita perlu menambahkan banyak switch karena kita pakai processor armv7

Instalasi OpenBTS

Cek apakah ada OpenBTS

updatedb &
locate openbts

Kalau tidak ketemu berarti kita perlu instalasi.

Download OpenBTS

Download di PC source code openbts bisa melalui

cd /usr/local/src
apt-get install subversion
svn co http://wush.net/svn/range/software/public openbts
scp -r openbts root@<ip-address-E110>

Compile OpenBTS

Compile menggunakan perintah

mv openbts ~/src
vi ~/src/openbts/openbts/trunk/apps/OpenBTS.cpp 

pastikan

sleep(8);

lanjutkan proses compile

cd ~/src/openbts/openbts/trunk
./autogen.sh 
./configure --with-uhd CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O3" CXXFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O3" 
make clean
make 
make install
cd ~/src/openbts/openbts/trunk/apps
ln -s ../Transceiver52M/transceiver .

Instalasi Database Konfigurasi OpenBTS

cd ~/src/openbts/openbts/trunk
sudo mkdir /etc/OpenBTS
rm /etc/OpenBTS/OpenBTS.db
sudo sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db
.exit


Error "assuming TRX is dead"

Di E1xx, transceiver akan lebih lambat dari yang normal OpenBTS. Oleh karenanya sangat di sarankan agar transceiver load delay di naikan, jika tidak OpenBTS akan meresponds dengan "assuming TRX is dead" dan exit. Jika ini terjadi, transceiver instance akan tetap running dan akan menyebabkan akses ke UHD device terhalangi. Patch-nya adalah

vi ~/src/openbts/openbts/trunk/apps/OpenBTS.cpp 

Edit

// Start the transceiver interface.
// Sleep long enough for the USRP to bootload.
sleep(5);

Ubah menjadi

sleep(8);

Error File System Kurang Baik

Kalau microSD yang kita gunakan kurang baik, ada beberapa sector yang Read-only, maka kita akan melihat error di bawah ini.


Preparing build ... autom4te: cannot open autom4te.cache/requests: Read-only file system
automake: autoconf failed with exit status: 1
ERROR: automake failed
rm: cannot remove `COPYING.5934.protect_from_automake.backup': Read-only file  system
rm: cannot remove `INSTALL.5934.protect_from_automake.backup': Read-only file system
rm: cannot remove `./config.sub.backup': Read-only file system
rm: cannot remove `./ltmain.sh.backup': Read-only file system

SOLUSI:

  • reboot & ulang proses compile.
  • Kalau tetap gagal, maka kita perlu membuat ulang microSD tersebut.

Error autoreconf

Sebaiknya jangan menggunakan autoreconf seperti di bawah ini karena akan meminta perl yang tidak ada di E110.

mv openbts ~/src
cd ~/src/openbts/openbts/trunk
autoreconf -i

Akan keluar error sebagai berikut

can't locate Autom4te/ChannelDefs.pm in @INC (@INC contains: @autom4te_perllibdir@ /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl   .) at /usr/bin/gnu-configize line 40.
BEGIN failed--compilation aborted at /usr/bin/gnu-configize line 40.
autoreconf: gnu-configize failed with exit status: 2

SOLUSI:

  • autoreconf -i cukup aman kalau di lakukan di Ubuntu 11.10. Caranya SD card di mount ke ubuntu 11.10, di lakukan di mesin host Ubuntu 11.10 bukan di E110.
  • Alternatif lain menggunakan ./autogen.sh kemungkinan berhasil lebih tinggi.

Compile Smqueue

Lakukan

cd ~/src/openbts/smqueue/trunk
./autogen.sh
./configure 
make clean
make 
make install

Selanjutnya, inisialisasi konfigurasi database OpenBTS

cd ~/src/openbts/smqueue/trunk
rm -Rf /etc/OpenBTS/smqueue.db
sudo sqlite3 -init  smqueue/smqueue.example.sql /etc/OpenBTS/smqueue.db
.exit

Error saat compile / make Smqueue

make[1]: Entering directory `/home/root/src/openbts/smqueue/trunk/smqueue'
g++ -DHAVE_CONFIG_H -I. -I..  -I../CommonLibs -I../GSM -I../SMS -I../Globals -I../HLR -I../sqlite3  -O3 -g -lpthread -g -O2 -MT smqueue.o -MD -MP -MF .deps/smqueue.Tpo -c -o smqueue.o smqueue.cpp
smqueue.cpp: In member function 'void SMqueue::SMq::respond_sip_ack(int,  SMqueue::short_msg_pending*, char*, size_t)':
smqueue.cpp:1910:20: error: invalid conversion from 'int (*)(void*, void**)' to 'int* (*)(void*, void*)'
smqueue.cpp:1910:20: error:   initializing argument 3 of 'int osip_list_clone(const osip_list_t*, osip_list_t*, int* (*)(void*, void*))'
make[1]: *** [smqueue.o] Error 1
make[1]: Leaving directory `/home/root/src/openbts/smqueue/trunk/smqueue'
make: *** [install-recursive] Error 1 

SOLUSI:

  • Belum ada solusi

Instalasi Subscriber Registry

Lakukan

cd ~/src/openbts/subscriberRegistry/trunk/configFiles
sudo mkdir /var/lib/asterisk/
sudo mkdir /var/lib/asterisk/sqlite3dir
sudo sqlite3 -init subscriberRegistryInit.sql /var/lib/asterisk/sqlite3dir/sqlite3.db
.exit

Yang agak repot adalah menginstalasi Asterisk Real Time


Error di Template Database

Naga-naganya masih banyak sekali Error di template database subscriber registry :(

-- Loading resources from subscriberRegistryInit.sql
Error: incomplete SQL: CREATE TABLE 'sip_buddies'
(
id                    integer,
name                  VARCHAR(80) not null,
context               VARCHAR(80),
callingpres           VARCHAR(30) DEFAULT 'allowed_not_screened',
deny                  VARCHAR(95),
permit                VARCHAR(95),
secret                VARCHAR(80),
md5secret             VARCHAR(80),
remotesecret          VARCHAR(250),
transport             VARCHAR(10),
host                  VARCHAR(31) not null,
nat                   VARCHAR(5) DEFAULT 'no' not null,
type                  VARCHAR(10) DEFAULT 'friend' not null,
accountcode           VARCHAR(20),
amaflags              VARCHAR(13),
callgroup             VARCHAR(10),
callerid              VARCHAR(80),
defaultip             VARCHAR(40) DEFAULT '0.0.0.0',
dtmfmode              VARCHAR(7) DEFAULT 'rfc2833',
fromuser              VARCHAR(80), 
fromdomain            VARCHAR(80),
insecure              VARCHAR(4),
language              CHAR(2),
mailbox               VARCHAR(50),
pickupgroup           VARCHAR(10),
qualify               CHAR(3),
regexten              VARCHAR(80),
rtptimeout            CHAR(3),
rtpholdtimeout        CHAR(3),
setvar                VARCHAR(100),
disallow              VARCHAR(100) DEFAULT 'all',
allow                 VARCHAR(100) DEFAULT 'ulaw' not null,
fullcontact           VARCHAR(80),
ipaddr                VARCHAR(40),
port                  int(5) DEFAULT 0,
username              VARCHAR(80),
defaultuser           VARCHAR(80),
subscribecontext      VARCHAR(80),
directmedia           VARCHAR(3),
trustrpid             VARCHAR(3),
sendrpid              VARCHAR(3),
progressinband        VARCHAR(5),
promiscredir          VARCHAR(3),
useclientcode         VARCHAR(3),
callcounter           VARCHAR(3),
busylevel             int(11),
allowoverlap          VARCHAR(3) DEFAULT 'yes',
allowsubscribe        VARCHAR(3) DEFAULT 'yes',
allowtransfer         VARCHAR(3) DEFAULT 'yes',
ignoresdpversion      VARCHAR(3) DEFAULT 'no',
template              VARCHAR(100),
videosupport          VARCHAR(6) DEFAULT 'no',
maxcallbitrate        int(11),
rfc2833compensate     VARCHAR(3) DEFAULT 'yes',
'session-timers'      VARCHAR(10) DEFAULT 'accept',
'session-expires'     int(6) DEFAULT 1800,
'session-minse'       int(6) DEFAULT 90,
'session-refresher'   VARCHAR(3) DEFAULT 'uas',
t38pt_usertpsource    VARCHAR(3),
outboundproxy         VARCHAR(250),
callbackextension     VARCHAR(250),
registertrying        VARCHAR(3) DEFAULT 'yes',
timert1               int(6) DEFAULT 500,
timerb                int(9),
qualifyfreq           int(6) DEFAULT 120,
contactpermit         VARCHAR(250),
contactdeny           VARCHAR(250),
lastms                int(11) DEFAULT 0 not null,
regserver             VARCHAR(100),
regseconds            int(11) DEFAULT 0 not null,
useragent             VARCHAR(100),
cancallforward        CHAR(3) DEFAULT 'yes' not null,
canreinvite           CHAR(3) DEFAULT 'yes' not null,
mask                  VARCHAR(95),
musiconhold           VARCHAR(100),
restrictcid           CHAR(3),
calllimit             int(5),
WhiteListFlag         timestamp not null default '0',
WhiteListCode         varchar(8) not null default '0',
rand                  varchar(33) default ,
sres                  varchar(33) default ,
ki                    varchar(33) default ,
kc                    varchar(33) default ,
RRLPSupported         int(1) default 1 not null,
hardware	      VARCHAR(20),
regTime               INTEGER default 0 NOT NULL"
a3_a8                 varchar(45) default NULL
primary key(id)
) 
;


SOLUSI:

  • Belum ada solusi

Instalasi Sipauthserve

Sipauthserve adalah daemon yang memberikan SIP authentication services. Variabel SIP.Proxy.Registration di OpenBTS harus menunjuk pada hostname & port Sipauthserve. OpenBTS harus sudah di buat sebelum membuat Sipauthserve.

Compile Sipauthserve

cd ~/src/openbts/subscriberRegistry/trunk
make

Setup database untuk Sipauthserve

rm /etc/OpenBTS/sipauthserve.db
cd ~/src/openbts/subscriberRegistry/trunk
sqlite3 -init sipauthserve.example.sql /etc/OpenBTS/sipauthserve.db
.exit


Menjalankan OpenBTS

cd ~/src/openbts/openbts/trunk/apps/
./OpenBTS

Bisa keluar

OpenBTS> version
release P2.8TRUNK built Mar  3 2012


Error waktu Start

ALERT 1088898144 TRXManager.cpp:86:clockHandler: TRX clock interface timed out, assuming TRX is dead.
Aborted

Biasanya setelah itu terjadi maka kalau di cek

uhd_usrp_probe 

Hasilnya

-- Opening device node /dev/usrp_e0...
Error: EnvironmentError: IOError: Failed to open /dev/usrp_e0

SOLUSI:

Edit

vi ~/src/openbts/openbts/trunk/apps/OpenBTS.cpp 

Edit

// Start the transceiver interface.
// Sleep long enough for the USRP to bootload.
sleep(5);

Ubah menjadi

sleep(8);

Lakukan ini sebelum mengcompile openbts

Referensi

Pranala Menarik

Persiapan

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

Ettus E110

Ettus N210

GPRS

Briker OpenBTS

FreeSWITCH OpenBTS

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video