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

From OnnoWiki
Jump to navigation Jump to search
 
(49 intermediate revisions by the same user not shown)
Line 1: Line 1:
Asterisk Realtime Configuration
+
==Konfigurasi Asterisk Realtime==
  
Below are directions for getting Realtime working with Sqlite3 in Asterisk.
+
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.
  
It would be really sweet if someone wrote a script to do all of this!
+
==Cleaning sebelum Install==
Cleaning up prior install
 
  
sqlite3 and asterisk are both pulled in via Apt with the "simple" install. Make sure to remove those two packages to allow you to build new ones from source.
+
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
  
Installing required software in the operating system
+
==Instalasi Aplikasi yang dibutuhkan==
  
    Download sqlite3, available from the packages branch.
+
===Compile SQLite===
        configure, make, make install
 
        sqlite3 must be compiled with SQLITE_ENABLE_COLUMN_METADATA defined, so it's ./configure CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA -O2"
 
    sudo apt-get install libsqlite3-dev
 
    If you are going to install Erlang anyway, do that now with apt-get install since it includes ODBC. Otherwise:
 
        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
+
* Download sqlite3 dari
  
Note that if asterisk was already built, then after downloading the software above you need to redo
+
http://www.sqlite.org/download.html
 +
http://www.sqlite.org/sqlite-amalgamation-3071300.zip
 +
http://www.sqlite.org/sqlite-autoconf-3071300.tar.gz
  
    ./configure --disable-xmldoc
+
Sqlite3 harus di combile dengan terdefinisikan SQLITE_ENABLE_COLUMN_METADATA
    make menuselect
 
        Make sure Sqlite3 and ODBC are selected, especially in "applications", "resource modules" and "dialplan functions".
 
        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.
 
            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.
 
    make
 
    make install
 
  
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.
+
cp sqlite-autoconf-3071300.tar.gz /usr/local/src/
ODBC configuration files
+
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
  
    /etc/odbcinst.ini
+
===Instalasi Libsqlite & erlang===
  
    [SQLite3]
+
sudo apt-get install libsqlite3-dev erlang unixodbc unixodbc-dev
    Description=SQLite3 ODBC Driver
 
    Driver=/usr/local/lib/libsqlite3odbc.so
 
    Setup=/usr/local/lib/libsqlite3odbc.so
 
    Threading=2
 
  
    /etc/odbc.ini
+
===Instalasi sqliteodbc===
  
    [asterisk]
+
* Download sqliteodbc
    Description=SQLite3 database
 
    Driver=SQLite3
 
    Database=/var/lib/asterisk/sqlite3dir/sqlite3.db
 
    # optional lock timeout in milliseconds
 
    Timeout=2000
 
  
You will also need symbolic links to the files in the following places:
+
http://www.ch-werner.de/sqliteodbc/
 +
http://www.ch-werner.de/sqliteodbc/sqliteodbc-0.95.tar.gz
  
    /usr/local/etc/odbcinst.ini /usr/local/etc/odbc.ini
+
* Compile
    /root/.odbcinst.ini /root/.odbc.ini
 
    ~openbts/.odbcinst.ini ~openbts/.odbc.ini
 
  
In other words, as root:
+
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 /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
 +
 +
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
 
  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:
+
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.
  
  cd ~asterisk; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.ini
+
  [settings]
 +
sipusers => odbc,asterisk,sip_buddies
 +
sippeers => odbc,asterisk,sip_buddies
  
The standard for configured BTS units is actually to put the real files in /usr/local/etc and then put symbolic links in:
+
===Edit /etc/asterisk/res_odbc.conf===
  
    /etc
+
Standard konfigurasi odbc. Semua diberi nama "asterisk" untuk menghindari kebingungan.
    ~root
 
  
If Asterisk is running, modifying these files might make it crash. Be aware of that.
+
[asterisk]
Asterisk configuration files
+
enabled => yes
 +
dsn => asterisk
 +
pre-connect => yes
  
    modules.conf  
+
===Edit /etc/asterisk/func_odbc.conf===
  
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.
+
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.
  
[modules]
+
[SQL]
autoload=yes
+
dsn=asterisk
; noload => res_config_odbc.so
+
readsql=${ARG1}
  
    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.
+
dicoba
  
[settings]
+
; ODBC_PRESENCE - Retrieve and update presence
sipusers => odbc,asterisk,sip_buddies
+
[PRESENCE]
sippeers => odbc,asterisk,sip_buddies
+
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})}'
  
    res_odbc.conf  
+
===Edit /etc/asterisk/extensions.conf===
  
Standard odbc configuration. Everything named "asterisk" to avoid confusion.
+
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.  
  
[asterisk]
+
[phones]
enabled => yes
+
; This is the context for handsets provisioned through the realtime database.
dsn => asterisk
+
exten => _N.,1,Set(Name=${ODBC_SQL(select dial from dialdata_table where exten = \"${EXTEN}\")})
pre-connect => yes
+
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)
  
    func_odbc.conf
+
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.
  
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.
+
==Lokasi database Sqlite3==
  
[SQL]
+
Path default untuk file realtime database Asterisk adalah
dsn=asterisk
 
readsql=${ARG1}
 
  
    extensions.conf
+
/var/lib/asterisk/sqlite3dir/sqlite3.db.
  
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.
+
Ini di tentukan oleh /etc/odbc.ini
  
[phones]
+
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.
; 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)
 
  
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.
 
Sqlite3 database location
 
  
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.)
+
==Debugging==
  
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.
+
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 142: Line 235:
  
 
* [[OpenBTS]]
 
* [[OpenBTS]]
 +
* [[OpenBTS: Arsitektur secara umum]]
  
===Persiapan Hardware===
+
===Persiapan===
  
 
* [[USRP: High Precision Clock]]
 
* [[USRP: High Precision Clock]]
 +
* [[USRP: Menyambungkan ClockTamer ke USRP1]]
 +
* [[USRP: Kalibrasi ClockTamer]]
 +
* [[USRP: ClockTamer Control Protocol]]
 
* [[USRP: Instalasi Board]]
 
* [[USRP: Instalasi Board]]
 +
* [[OpenBTS: GIT Source Code]]
 +
* [[USRP: Rangkaian Board USRP]]
 +
* [[OpenBTS: Tethr untuk Bencana Alam]]
 +
* [[USRP: Tip Pemesanan]]
  
 
===OpenBTS 2.6===
 
===OpenBTS 2.6===
  
 +
* [[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]]
* [[OpenBTS: Ubuntu Install]]
+
* [[GNURadio: Programming Untuk Pemula]]
* [[OpenBTS: Konfigurasi]]
+
* [[OpenBTS: Ubuntu Install]] '''RECOMMENDED'''
 +
* [[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 165: Line 273:
 
* [[OpenBTS: Amplifier]]
 
* [[OpenBTS: Amplifier]]
 
* [[OpenBTS: SMS]]
 
* [[OpenBTS: SMS]]
 +
* [[AirProbe]]
  
 
===OpenBTS 2.8===
 
===OpenBTS 2.8===
  
* [[GNURadio: Ubuntu 11.10 Install]]
+
* [[GNURadio: Ubuntu 11.10 Install]] ''NOT RECOMMENED''
 +
* [[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 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: dari GIT ttsou]]
 
* [[OpenBTS: 2.8 dari SVN Install]]
 
* [[OpenBTS: 2.8 dari SVN Install]]
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]]
+
* [[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 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 Mengubah Master Clock]]
 +
* [[OpenBTS: E110 Kalibrasi Clock]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 +
* [[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.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 198: 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 205: 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