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

From OnnoWiki
Jump to navigation Jump to search
Line 70: Line 70:
 
  make menuselect
 
  make menuselect
  
Pastikan ada (*) di
+
Pastikan sqlite & ODBC di contreng. Tepatnya, pastikan ada asterisk (*) di
  
 
  -> Dialplan Functions -> func_odbc
 
  -> Dialplan Functions -> func_odbc
Line 78: Line 78:
  
 
Pastikan tidak ada "XXX" di pilihan Sqlite3 dan ODBC di menu konfigurasi.
 
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.
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.
+
Selanjutnya kita perlu meng-compile & install menggunakan perintah
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
 
  make install  
 
  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.
+
Jika kita ingin menambahkan dukungan Speex maka sekarang saatnya. Kita dapat menginstalasi Speex menggunakan apt-get install.
 +
 
 
ODBC configuration files
 
ODBC configuration files
  

Revision as of 06:56, 23 June 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 

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

ODBC configuration files

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
~openbts/.odbcinst.ini ~openbts/.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
cd ~openbts; ln -s /etc/odbc.ini .odbc.ini; ln -s /etc/odbcinst.ini .odbcinst.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

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

/etc
~root 

If Asterisk is running, modifying these files might make it crash. Be aware of that.

Asterisk configuration files

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

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

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

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

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

Edit 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}

Edit extensions.conf

Berikit adalah bagaimana dialplan menggunakan fungsi ODBC_SQL untuk memperoleh nomor SIP dari extension. Berikut hanya sebuah contoh saja. Gunakan file extensions.conf di openbts/trunk/AsteriskConfigs.

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

Referensi

Pranala Menarik

Persiapan

OpenBTS 2.6

OpenBTS 2.8

Ettus E110

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah