Difference between revisions of "OpenBTS: 2.8 Instalasi Real Time Asterisk"

From OnnoWiki
Jump to navigation Jump to search
 
(40 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
==Cleaning sebelum Install==
 
==Cleaning sebelum Install==
  
sqlite3 dan asterisk keduanya di install secara sederhana melalui apt. Kita perlu membuang ke dua-nya agar dapat mengcompile dari Nol. Cara membuang adalah
+
Buang sqlite3 dan asterisk. Kita perlu menginstalasi ulang semuanya,
  
 
  sudo apt-get remove asterisk sqlite3
 
  sudo apt-get remove asterisk sqlite3
 
  sudo apt-get autoremove
 
  sudo apt-get autoremove
  
==Instalasi Software yang dibutuhkan Sistem Operasi==
+
==Instalasi Aplikasi yang dibutuhkan==
  
Lakukan perintah
+
===Compile SQLite===
  
 
* Download sqlite3 dari
 
* Download sqlite3 dari
  
 
  http://www.sqlite.org/download.html
 
  http://www.sqlite.org/download.html
 +
http://www.sqlite.org/sqlite-amalgamation-3071300.zip
 +
http://www.sqlite.org/sqlite-autoconf-3071300.tar.gz
  
sqlite3 harus di combile dengan terdefinisikan SQLITE_ENABLE_COLUMN_METADATA
+
Sqlite3 harus di combile dengan terdefinisikan SQLITE_ENABLE_COLUMN_METADATA
  
 +
cp sqlite-autoconf-3071300.tar.gz /usr/local/src/
 +
cd /usr/local/src/
 +
tar zxvf sqlite-autoconf-3071300.tar.gz
 +
cd /usr/local/src/sqlite-autoconf-3071300
 
  ./configure CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA -O2"
 
  ./configure CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA -O2"
 +
make clean
 +
make all
 +
make install
 +
 +
===Instalasi Libsqlite & erlang===
 +
 +
sudo apt-get install libsqlite3-dev erlang unixodbc unixodbc-dev
 +
 +
===Instalasi sqliteodbc===
 +
 +
* Download sqliteodbc
 +
 +
http://www.ch-werner.de/sqliteodbc/
 +
http://www.ch-werner.de/sqliteodbc/sqliteodbc-0.95.tar.gz
 +
 +
* Compile
 +
 +
cp sqliteodbc-0.95.tar.gz /usr/local/src/
 +
cd /usr/local/src
 +
tar zxvf sqliteodbc-0.95.tar.gz
 +
cd /usr/local/src/sqliteodbc-0.95
 +
./configure
 +
make clean
 +
make all
 
  make
 
  make
 
  make install
 
  make install
sudo apt-get install libsqlite3-dev
 
sudo apt-get install erlang
 
  
 +
==(Re)Building Asterisk==
  
    If you are going to install Erlang anyway, do that now with apt-get install since it includes ODBC. Otherwise:
+
Kita perlu membuat ulang Asterisk. Pertama-tama lakukan download dari
        download unixODBC. This is available from the packages branch in SVN.
 
        configure, make, make install
 
    download  sqliteodbc. This is available from the packages branch in SVN.
 
    configure, make, make install
 
  
==(Re)Building Asterisk==
+
http://www.asterisk.org/downloads
 +
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.5.1.tar.gz
  
Kita perlu membuat ulang Asterisk
+
Compile menggunakan perintah
  
 +
cp asterisk-10.5.1.tar.gz /usr/local/src/
 +
cd /usr/local/src
 +
tar zxvf asterisk-10.5.1.tar.gz
 +
cd /usr/local/src/asterisk-10.5.1
 
  ./configure --disable-xmldoc
 
  ./configure --disable-xmldoc
 
  make menuselect
 
  make menuselect
  
Pastikan Sqlite3 dan ODBC dipilih, terutama di "applications", "resource modules" dan "dialplan functions".
+
Pastikan sqlite & ODBC di contreng. Tepatnya, pastikan ada asterisk (*) di
        Make sure "res_realtime" is selected in "resource modules".
+
 
        You should NOT see "XXX" on the Sqlite3 and ODBC selections anywhere in the configuration menus. If you see "XXX" for Sqlite3 or ODBC features anywhere, that means that those packages are not installed correctly (or at least in the way that Asterisk expects to see them). Look at the config.log file for clues.
+
-> Dialplan Functions -> func_odbc
            If you are building a full BTS unit, you will need to install Erlang with apt-get install and that will include an ODBC installation that Asterisk likes.  
+
-> Utilities -> astdb2sqlite3
 +
-> PBX Modules -> pbx_realtime
 +
-> "Resource Modules" -> "res_realtime"
 +
 
 +
Pastikan tidak ada "XXX" di pilihan Sqlite3 dan ODBC di menu konfigurasi.
 +
Jika kita membuat sebuah unit BTS lengkap, kita perlu menginstalasi Erlang menggunakan apt-get install ini biasanya termasuk instalasi ODBC yang di sukai asterisk.
 +
Selanjutnya kita perlu meng-compile & install menggunakan perintah
 +
 
 
  make
 
  make
 
  make install  
 
  make install  
 +
chown -Rf asterisk.asterisk /var/log/asterisk/
  
Yes, you need to rebuild Asterisk. And if you are going to add Speex support, this would be the time to do it. You are supposed to be able to install Speex with apt-get install, but I have not gotten that to work yet.
+
Jika kita ingin menambahkan dukungan Speex maka sekarang saatnya. Kita dapat menginstalasi Speex menggunakan apt-get install.
ODBC configuration files
 
  
/etc/odbcinst.ini
+
==File Konfigurasi ODBC==
 +
 
 +
===Edit /etc/odbcinst.ini===
  
 
  [SQLite3]
 
  [SQLite3]
Line 58: Line 97:
 
  Threading=2
 
  Threading=2
  
/etc/odbc.ini
+
===Edit /etc/odbc.ini===
  
 
  [asterisk]
 
  [asterisk]
Line 67: Line 106:
 
  Timeout=2000
 
  Timeout=2000
  
You will also need symbolic links to the files in the following places:
+
===Link Simbolik===
 +
 
 +
Kita juga perlu membuat simbolik link ke file di tempat ini
  
 
  /usr/local/etc/odbcinst.ini /usr/local/etc/odbc.ini
 
  /usr/local/etc/odbcinst.ini /usr/local/etc/odbc.ini
  root/.odbcinst.ini /root/.odbc.ini
+
  /root/.odbcinst.ini /root/.odbc.ini
~openbts/.odbcinst.ini ~openbts/.odbc.ini  
 
  
 
Dengan kata lain, sebagai root lakukan
 
Dengan kata lain, sebagai root lakukan
Line 77: Line 117:
 
  cd /usr/local/etc; ln -s /etc/odbc.ini; ln -s /etc/odbcinst.ini
 
  cd /usr/local/etc; ln -s /etc/odbc.ini; ln -s /etc/odbcinst.ini
 
  cd /root; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
 
  cd /root; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
cd ~openbts; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
 
  
You might also need symbolic links in the asterisk home directory if asterisk is running as user asterisk:
+
Tampaknya di Ubuntu tidak ada user / home directory ~openbts & ~asterisk
 +
jadi kita tida bisa melakukan mirror, semoga ini tidak menjadi masalah
 +
 
 +
~openbts/.odbcinst.ini ~openbts/.odbc.ini
 +
 
 +
Kita juga perlu link simbolik untuk home directory asterisk jika asterisk di jalankan sebagai user asterisk:
  
 
  cd ~asterisk; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
 
  cd ~asterisk; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
 +
cd ~openbts; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
  
The standard for configured BTS units is actually to put the real files in /usr/local/etc and then put symbolic links in:
+
Standard untuk unit BTS yang terkonfigurasi biasanya menyimpan file "asli" di /usr/local/etc dan membuat link simbolik ke
  
 
  /etc
 
  /etc
 
  ~root  
 
  ~root  
  
If Asterisk is running, modifying these files might make it crash. Be aware of that.
+
Jika Asterisk sedang beroperasi, mengubah file ini akan membuat-nya crash. Hati-hati.
Asterisk configuration files
+
 
 +
==File konfigurasi Asterisk==
 +
 
 +
===Copy Contoh yang ada di openbts===
 +
 
 +
cp /usr/local/src/openbts/openbts/trunk/AsteriskConfig/*conf /etc/asterisk/
  
modules.conf
+
Selanjutnya kita perlu men-cek satu per satu
  
Autoload must be enabled, plus make sure you're not overriding that by telling it NOT to load particular files, like res_config_odbc.so. The noload is commented out here.
+
===Edit /etc/asterisk/modules.conf===
 +
 
 +
Autoload harus di enabled, plus pastikan kita tidak overide dengan cara menset agar tidak NOT load file tertentu, seperti res_config_odbc.so. Disini noload ODBC di comment,
  
 
  [modules]
 
  [modules]
Line 99: Line 151:
 
  ; noload => res_config_odbc.so
 
  ; noload => res_config_odbc.so
  
==extconfig.conf==
+
dicoba
 +
 
 +
preload => res_odbc.so
 +
preload => res_config_odbc.so
 +
 
 +
===Edit /etc/asterisk/extconfig.conf===
  
This tells asterisk to use odbc for realtime sip. There was some confusion about whether the second field (asterisk, here) is the database, the odbc database handle, or the odbc context. I made them all the same to avoid figuring it out.
+
Ini akan meminta asterisk untuk menggunakan odbc untuk realtime sip.  
 +
Ada sedikit kebingungan apakah kolom ke dua (dalam hal ini, asterisk adalah database, handel odbc database, atau
 +
odbc context. Disini dibuat sama agar kita tidak pusing.
  
 
  [settings]
 
  [settings]
Line 107: Line 166:
 
  sippeers => odbc,asterisk,sip_buddies
 
  sippeers => odbc,asterisk,sip_buddies
  
==res_odbc.conf==
+
===Edit /etc/asterisk/res_odbc.conf===
  
Standard odbc configuration. Everything named "asterisk" to avoid confusion.
+
Standard konfigurasi odbc. Semua diberi nama "asterisk" untuk menghindari kebingungan.
  
 
  [asterisk]
 
  [asterisk]
Line 116: Line 175:
 
  pre-connect => yes
 
  pre-connect => yes
  
==func_odbc.conf ==
+
===Edit /etc/asterisk/func_odbc.conf===
  
This let's you use the function ODBC_SQL to execute any SQL statement in the dialplan. We use that to get the SIP number given the extension.
+
Ini akan memungkinkan kita untuk menggunakan fungsi ODBC_SQL untuk menjalankan perintah SQL di dial plan.
 +
Kita menggunakan ini untuk memperoleh nomor SIP setelah diberi extension.
  
 
  [SQL]
 
  [SQL]
Line 124: Line 184:
 
  readsql=${ARG1}
 
  readsql=${ARG1}
  
==extensions.conf==
 
  
Here's how the dialplan uses the ODBC_SQL function to get the SIP number from the extension. This is just here as an example, though. Use the extensions.conf file in openbts/trunk/AsteriskConfigs.
+
dicoba
 +
 
 +
; ODBC_PRESENCE - Retrieve and update presence
 +
[PRESENCE]
 +
dsn=asterisk
 +
readsql=SELECT location FROM presence WHERE id='${SQL_ESC(${ARG1})}'
 +
writesql=UPDATE presence SET location='${SQL_ESC(${VAL1})}' WHERE id='${SQL_ESC(${ARG1})}'
 +
 
 +
===Edit /etc/asterisk/extensions.conf===
 +
 
 +
Kalau tidak mau pusing gunakan file extensions.conf di openbts/trunk/AsteriskConfigs.
 +
Berikut adalah contoh saja. Berikut adalah bagaimana dialplan menggunakan fungsi ODBC_SQL untuk memperoleh nomor SIP dari extension. Berikut hanya sebuah contoh saja.  
  
 
  [phones]
 
  [phones]
Line 136: Line 206:
 
  exten => _N.,n,Dial(SIP/${Name}@${IPAddr}:5062)
 
  exten => _N.,n,Dial(SIP/${Name}@${IPAddr}:5062)
  
In this example, OpenBTS has it's inbound SIP interface at port 5062 and the context "outbound-trunk" is used for handling phones not provisioned in the realtime database.
+
Dalam contoh ini, OpenBTS mempunyai inbound SIP interface di port 5062 dan context "outbound-trunk" digunakan untuk menangani phone yang tidak di manaje oleh realtime database.
 +
 
 +
==Lokasi database Sqlite3==
 +
 
 +
Path default untuk file realtime database Asterisk adalah
  
==Sqlite3 database location==
+
/var/lib/asterisk/sqlite3dir/sqlite3.db.
  
The default path for the Asterisk realtime database file is /var/lib/asterisk/sqlite3dir/sqlite3.db. (Note that this path was referenced above in /etc/odbc.ini.)
+
Ini di tentukan oleh /etc/odbc.ini
  
The sqlite3 database file must be readable and writable by asterisk, smqueue and sipauthserve, AND the directory in which the sqlite3 database file is located must ALSO be readable and writable by the applications. This is because sqlite3 generates temporary files in the directory.
+
File database sqlite3 harus read & write oleh asterisk, smqueue & sipauthserve, DAN directory dimana file tersebut berada HARUS read & write untuk aplikasi Sqlite. Karena sqlite3 akan membuat file temporary di directory tersebut.
  
 +
 +
==Debugging==
 +
 +
Dari Anton Raharja: coba ke logger.conf nya aja dulu kang, lalu remove comment yang full
 +
setelah itu restart asterisk nya.
 +
 +
tail -f /var/log/asterisk/full
  
 
==Referensi==
 
==Referensi==
Line 154: Line 235:
  
 
* [[OpenBTS]]
 
* [[OpenBTS]]
 +
* [[OpenBTS: Arsitektur secara umum]]
  
 
===Persiapan===
 
===Persiapan===
Line 159: Line 241:
 
* [[USRP: High Precision Clock]]
 
* [[USRP: High Precision Clock]]
 
* [[USRP: Menyambungkan ClockTamer ke USRP1]]
 
* [[USRP: Menyambungkan ClockTamer ke USRP1]]
 +
* [[USRP: Kalibrasi ClockTamer]]
 +
* [[USRP: ClockTamer Control Protocol]]
 
* [[USRP: Instalasi Board]]
 
* [[USRP: Instalasi Board]]
 
* [[OpenBTS: GIT Source Code]]
 
* [[OpenBTS: GIT Source Code]]
 +
* [[USRP: Rangkaian Board USRP]]
 +
* [[OpenBTS: Tethr untuk Bencana Alam]]
 +
* [[USRP: Tip Pemesanan]]
  
 
===OpenBTS 2.6===
 
===OpenBTS 2.6===
Line 166: Line 253:
 
* [[GNURadio]]
 
* [[GNURadio]]
 
* [[GNURadio: Ubuntu Install]]
 
* [[GNURadio: Ubuntu Install]]
 +
* [[GNURadio: Menggunakan UHD]]
 +
* [[GNURadio: Ubuntu Install GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu Install GNURadio 3.4.2 Clock 52MHz]] '''RECOMMENDED'''
 +
* [[GNURadio: Contoh Aplikasi]]
 
* [[GNURadio: Spectrum Analizer GSM]]
 
* [[GNURadio: Spectrum Analizer GSM]]
 
* [[GNURadio: Mengubah board RFX1800 menjadi RFX900]]
 
* [[GNURadio: Mengubah board RFX1800 menjadi RFX900]]
 
* [[GNURadio: Programming Untuk Pemula]]
 
* [[GNURadio: Programming Untuk Pemula]]
* [[OpenBTS: Ubuntu Install]]
+
* [[OpenBTS: Ubuntu Install]] '''RECOMMENDED'''
* [[OpenBTS: Konfigurasi]]
+
* [[OpenBTS: Ubuntu Install OpenBTS 2.6 Clock 52MHz]] '''RECOMMENDED'''
 +
* [[OpenBTS: Konfigurasi]] '''RECOMMENDED'''
 
* [[OpenBTS: Kalibrasi]]
 
* [[OpenBTS: Kalibrasi]]
* [[OpenBTS: Konfigurasi Asterisk untuk OpenBTS]]
+
* [[OpenBTS: Konfigurasi Asterisk untuk OpenBTS]] '''RECOMMENDED'''
 
* [[OpenBTS: Menjalankan smqueue]]
 
* [[OpenBTS: Menjalankan smqueue]]
* [[OpenBTS: Mengoperasikan BTS]]
+
* [[OpenBTS: Mengoperasikan BTS]] '''RECOMMENDED'''
 
* [[OpenBTS: Tampilan di Nokia saat pakai OpenBTS]]
 
* [[OpenBTS: Tampilan di Nokia saat pakai OpenBTS]]
 
* [[OpenBTS: Operasi 1800 MHz]]
 
* [[OpenBTS: Operasi 1800 MHz]]
Line 181: Line 273:
 
* [[OpenBTS: Amplifier]]
 
* [[OpenBTS: Amplifier]]
 
* [[OpenBTS: SMS]]
 
* [[OpenBTS: SMS]]
 +
* [[AirProbe]]
  
 
===OpenBTS 2.8===
 
===OpenBTS 2.8===
  
* [[GNURadio: Ubuntu 11.10 Install]] '''*NOT RECOMMENED*'''
+
* [[GNURadio: Ubuntu 11.10 Install]] ''NOT RECOMMENED''
* [[GNURadio: Ubuntu 11.10 instalasi menggunakan Repo]] '''NOT RECOMMENDED'''
+
* [[GNURadio: Ubuntu 11.10 instalasi menggunakan Repo]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Download GNURadio]]
 +
* [[GNURadio: Install UHD]]
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.3.0]]
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.3.0]]
* [[GNURadio: Ubuntu 11.10 Install dari GIT GNURadio]]
+
* [[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 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 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.6.0]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Install dari GIT GNURadio]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 cek USRP Daughter Board]]
 +
* [[GNURadio: UHD]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD Image]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD burn EEPROM RFX Board di USRP1]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD Identifikasi Device]]
 
* [[OpenBTS: Ubuntu 11.10 Install]]
 
* [[OpenBTS: Ubuntu 11.10 Install]]
* [[OpenBTS: 2.8 dari SVN Install]] '''RECOMMENDED'''
+
* [[OpenBTS: dari GIT ttsou]]
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]]
+
* [[OpenBTS: 2.8 dari SVN Install]]
 +
* [[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 dengan UHD tanpa GNURadio]] ''NOT RECOMMENDED''
 +
* [[OpenBTS: 2.8 Edit User di sqlite3.db]] '''RECOMMEND'''
 +
* [[OpenBTS: Yate Softswitch]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Softswitch install Ubuntu 12.10]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Config Test]]
 +
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 Menjalankan]] '''RECOMMENDED'''
 
* [[OpenBTS: 2.8 Konfigurasi]]
 
* [[OpenBTS: 2.8 Konfigurasi]]
 +
* [[OpenBTS: 2.8 Konfigurasi Subscriber Registery]]
 
* [[OpenBTS: Database SQLite]]
 
* [[OpenBTS: Database SQLite]]
 +
 +
===Multi OpenBTS 2.8===
 +
 +
* [[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 Bekerja dengan opkg]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 
* [[OpenBTS: E110 GNURadio]]
 
* [[OpenBTS: E110 GNURadio]]
 +
* [[OpenBTS: E110 Compile UHD]] '''*RECOMMENDED*'''
 +
* [[OpenBTS: E110 UHD burn EEPROM RFX Board]] '''*RECOMMENDED*'''
 +
* [[OpenBTS: E110 Install UHD Image]] '''*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*'''
 +
 
 +
===GPRS===
 +
 
 +
* [[OpenBTS: GPRS]]
 +
 
 +
===Power Amplifier===
 +
 
 +
* [[Driver 900MHz]]
 +
* [[Power Amplifier 900MHz]]
 +
* [[Duplexer]]
 +
* [[OpenBTS: Menaikan Jangkauan OpenBTS]]
  
 
===Lain Lain===
 
===Lain Lain===
  
 +
* [[OpenBTS: Materi Magang di ICTWATCH]]
 +
* [[OpenBTS: Seminar Outline]]
 +
* [[OpenBTS: Workshop Outline]]
 
* [[Membuat Base Station GSM Open Source]]
 
* [[Membuat Base Station GSM Open Source]]
 
* [[Teknologi Selular]]
 
* [[Teknologi Selular]]
Line 222: Line 365:
 
* [[Siapa Bilang OpenBTS Ilegal?]]
 
* [[Siapa Bilang OpenBTS Ilegal?]]
 
* [[OpenBTS: Catatan MNC dan MCC Indonesia]]
 
* [[OpenBTS: Catatan MNC dan MCC Indonesia]]
 +
* [[OpenBTS: Catatan MNC dan MCC COOL]]
 
* [[OpenBTS : Alokasi Frekuensi Operator GSM Indonesia]]
 
* [[OpenBTS : Alokasi Frekuensi Operator GSM Indonesia]]
 +
* [[GSM: Daftar Channel Frekuensi]]
  
 
===Catatan Sejarah===
 
===Catatan Sejarah===
Line 229: Line 374:
 
* [[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]]
 +
 +
===Dokumentasi Video===
 +
 +
* http://www.metrotvnews.com/read/newsprograms/2012/10/14/14624/212/Teknologi-BTS
 +
* http://youtu.be/8ogOcUSpINU (1/6)
 +
* http://youtu.be/F5d7HGuhppk (2/6)
 +
* http://youtu.be/90Jgq6bOgrQ (3/6)
 +
* http://youtu.be/cNkx_qNqdfc (4/6)
 +
* http://youtu.be/6LCuoeI57ak (5/6)
 +
* http://youtu.be/-dEqcHoIlYk (6/6)
  
 
[[Category: Wireless]]
 
[[Category: Wireless]]
 
[[Category: Selular]]
 
[[Category: Selular]]

Latest revision as of 07:31, 24 December 2012

Konfigurasi Asterisk Realtime

Di bawah ini adalah beberapa langkah untuk membuat Sqlite3 dapat bekerja secara realtime di Asterisk. Ini masih dilakukan secara manual semua, belum ada script yang melakukan hal ini.

Cleaning sebelum Install

Buang sqlite3 dan asterisk. Kita perlu menginstalasi ulang semuanya,

sudo apt-get remove asterisk sqlite3
sudo apt-get autoremove

Instalasi Aplikasi yang dibutuhkan

Compile SQLite

  • Download sqlite3 dari
http://www.sqlite.org/download.html
http://www.sqlite.org/sqlite-amalgamation-3071300.zip
http://www.sqlite.org/sqlite-autoconf-3071300.tar.gz

Sqlite3 harus di combile dengan terdefinisikan SQLITE_ENABLE_COLUMN_METADATA

cp sqlite-autoconf-3071300.tar.gz /usr/local/src/
cd /usr/local/src/
tar zxvf sqlite-autoconf-3071300.tar.gz
cd /usr/local/src/sqlite-autoconf-3071300
./configure CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA -O2"
make clean
make all
make install

Instalasi Libsqlite & erlang

sudo apt-get install libsqlite3-dev erlang unixodbc unixodbc-dev

Instalasi sqliteodbc

  • Download sqliteodbc
http://www.ch-werner.de/sqliteodbc/
http://www.ch-werner.de/sqliteodbc/sqliteodbc-0.95.tar.gz
  • Compile
cp sqliteodbc-0.95.tar.gz /usr/local/src/
cd /usr/local/src
tar zxvf sqliteodbc-0.95.tar.gz
cd /usr/local/src/sqliteodbc-0.95
./configure
make clean
make all
make
make install

(Re)Building Asterisk

Kita perlu membuat ulang Asterisk. Pertama-tama lakukan download dari

http://www.asterisk.org/downloads
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.5.1.tar.gz

Compile menggunakan perintah

cp asterisk-10.5.1.tar.gz /usr/local/src/
cd /usr/local/src
tar zxvf asterisk-10.5.1.tar.gz
cd /usr/local/src/asterisk-10.5.1
./configure --disable-xmldoc
make menuselect

Pastikan sqlite & ODBC di contreng. Tepatnya, pastikan ada asterisk (*) di

-> Dialplan Functions -> func_odbc
-> Utilities -> astdb2sqlite3
-> PBX Modules -> pbx_realtime
-> "Resource Modules" -> "res_realtime"

Pastikan tidak ada "XXX" di pilihan Sqlite3 dan ODBC di menu konfigurasi. Jika kita membuat sebuah unit BTS lengkap, kita perlu menginstalasi Erlang menggunakan apt-get install ini biasanya termasuk instalasi ODBC yang di sukai asterisk. Selanjutnya kita perlu meng-compile & install menggunakan perintah

make
make install 
chown -Rf asterisk.asterisk /var/log/asterisk/

Jika kita ingin menambahkan dukungan Speex maka sekarang saatnya. Kita dapat menginstalasi Speex menggunakan apt-get install.

File Konfigurasi ODBC

Edit /etc/odbcinst.ini

[SQLite3]
Description=SQLite3 ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=2

Edit /etc/odbc.ini

[asterisk]
Description=SQLite3 database
Driver=SQLite3
Database=/var/lib/asterisk/sqlite3dir/sqlite3.db
# optional lock timeout in milliseconds
Timeout=2000

Link Simbolik

Kita juga perlu membuat simbolik link ke file di tempat ini

/usr/local/etc/odbcinst.ini /usr/local/etc/odbc.ini
/root/.odbcinst.ini /root/.odbc.ini

Dengan kata lain, sebagai root lakukan

cd /usr/local/etc; ln -s /etc/odbc.ini; ln -s /etc/odbcinst.ini
cd /root; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini

Tampaknya di Ubuntu tidak ada user / home directory ~openbts & ~asterisk jadi kita tida bisa melakukan mirror, semoga ini tidak menjadi masalah

~openbts/.odbcinst.ini ~openbts/.odbc.ini 

Kita juga perlu link simbolik untuk home directory asterisk jika asterisk di jalankan sebagai user asterisk:

cd ~asterisk; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
cd ~openbts; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini

Standard untuk unit BTS yang terkonfigurasi biasanya menyimpan file "asli" di /usr/local/etc dan membuat link simbolik ke

/etc
~root 

Jika Asterisk sedang beroperasi, mengubah file ini akan membuat-nya crash. Hati-hati.

File konfigurasi Asterisk

Copy Contoh yang ada di openbts

cp /usr/local/src/openbts/openbts/trunk/AsteriskConfig/*conf /etc/asterisk/

Selanjutnya kita perlu men-cek satu per satu

Edit /etc/asterisk/modules.conf

Autoload harus di enabled, plus pastikan kita tidak overide dengan cara menset agar tidak NOT load file tertentu, seperti res_config_odbc.so. Disini noload ODBC di comment,

[modules]
autoload=yes
; noload => res_config_odbc.so

dicoba

preload => res_odbc.so
preload => res_config_odbc.so

Edit /etc/asterisk/extconfig.conf

Ini akan meminta asterisk untuk menggunakan odbc untuk realtime sip. Ada sedikit kebingungan apakah kolom ke dua (dalam hal ini, asterisk adalah database, handel odbc database, atau odbc context. Disini dibuat sama agar kita tidak pusing.

[settings]
sipusers => odbc,asterisk,sip_buddies
sippeers => odbc,asterisk,sip_buddies

Edit /etc/asterisk/res_odbc.conf

Standard konfigurasi odbc. Semua diberi nama "asterisk" untuk menghindari kebingungan.

[asterisk]
enabled => yes
dsn => asterisk
pre-connect => yes

Edit /etc/asterisk/func_odbc.conf

Ini akan memungkinkan kita untuk menggunakan fungsi ODBC_SQL untuk menjalankan perintah SQL di dial plan. Kita menggunakan ini untuk memperoleh nomor SIP setelah diberi extension.

[SQL]
dsn=asterisk
readsql=${ARG1}


dicoba

; ODBC_PRESENCE - Retrieve and update presence
[PRESENCE]
dsn=asterisk
readsql=SELECT location FROM presence WHERE id='${SQL_ESC(${ARG1})}'
writesql=UPDATE presence SET location='${SQL_ESC(${VAL1})}' WHERE id='${SQL_ESC(${ARG1})}'

Edit /etc/asterisk/extensions.conf

Kalau tidak mau pusing gunakan file extensions.conf di openbts/trunk/AsteriskConfigs. Berikut adalah contoh saja. Berikut adalah bagaimana dialplan menggunakan fungsi ODBC_SQL untuk memperoleh nomor SIP dari extension. Berikut hanya sebuah contoh saja.

[phones]
; This is the context for handsets provisioned through the realtime database.
exten => _N.,1,Set(Name=${ODBC_SQL(select dial from dialdata_table where exten = \"${EXTEN}\")})
exten => _N.,n,GotoIf($["${Name}" = ""] ?outbound-trunk,${EXTEN},1)
exten => _N.,n,Set(IPAddr=${ODBC_SQL(select ipaddr from sip_buddies where name = \"${Name}\")})
exten => _N.,n,GotoIf($["${IPAddr}" = ""] ?outbound-trunk,${EXTEN},1)
exten => _N.,n,Dial(SIP/${Name}@${IPAddr}:5062)

Dalam contoh ini, OpenBTS mempunyai inbound SIP interface di port 5062 dan context "outbound-trunk" digunakan untuk menangani phone yang tidak di manaje oleh realtime database.

Lokasi database Sqlite3

Path default untuk file realtime database Asterisk adalah

/var/lib/asterisk/sqlite3dir/sqlite3.db.

Ini di tentukan oleh /etc/odbc.ini

File database sqlite3 harus read & write oleh asterisk, smqueue & sipauthserve, DAN directory dimana file tersebut berada HARUS read & write untuk aplikasi Sqlite. Karena sqlite3 akan membuat file temporary di directory tersebut.


Debugging

Dari Anton Raharja: coba ke logger.conf nya aja dulu kang, lalu remove comment yang full setelah itu restart asterisk nya.

tail -f /var/log/asterisk/full

Referensi

Pranala Menarik

Persiapan

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

Ettus E110

GPRS

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video