Thursday, August 9, 2012

VOIP Server (Ubuntu, Asterisk, FreePBX)

Voip (Voice Over IP - http://id.wikipedia.org/wiki/Voip) adalah salah satu teknologi yang membuat kita bisa berkomunikasi melalu internet. Kali ini saya coba sharing untuk instalasi server VOIP menggunakan Ubuntu 10.04.02(Latest Stable Edition)-Server.

Setelah instalasi ubuntu servernya selesai (dalam keadaan bersih belum terinstall apa-apa dan belum di update), recomended siyh rubah reponya terlebih dahulu supaya agak cepet pada saat proses update, upgrade, dan instalasi paket yang lainnya. Arahkan reponya ke:

Code:
deb http://dl2.foss-id.web.id/ubuntu lucid main restricted universe multiverse
deb-src http://dl2.foss-id.web.id/ubuntu lucid main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-updates main restricted universe multiverse
deb-src http://dl2.foss-id.web.id/ubuntu lucid-updates main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-security main restricted universe multiverse
deb-src http://dl2.foss-id.web.id/ubuntu lucid-security main restricted universe multiverse

deb http://kambing.ui.edu/ubuntu lucid main restricted universe multiverse
deb-src http://kambing.ui.edu/ubuntu lucid main restricted universe multiverse
deb http://kambing.ui.edu/ubuntu lucid-updates main restricted universe multiverse
deb-src http://kambing.ui.edu/ubuntu lucid-updates main restricted universe multiverse
deb http://kambing.ui.edu/ubuntu lucid-security main restricted universe multiverse
deb-src http://kambing.ui.edu/ubuntu lucid-security main restricted universe multiverse

deb http://kambing.ui.ac.id/ubuntu lucid main restricted universe multiverse
deb-src http://kambing.ui.ac.id/ubuntu lucid main restriced universe multiverse
#deb http://kambing.ui.ac.id/ubuntu lucid-backport main restricted universe multiverse
#deb-src http://kambing.ui.ac.id/ubuntu lucid-bakport main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu lucid-proposed main restricted universe multiverse
deb-src http://kambing.ui.ac.id/ubuntu lucid-proposed main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu lucid-security main restricted universe multiverse
deb-src http://kambing.ui.ac.id/ubuntu lucid-security main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu lucid-updates main restricted universe multiverse
deb-src http://kambing.ui.ac.id/ubuntu lucid-updates main restricted universe multiverse
gunakan salah satunya.

Setelah selesai dirubah, lakukan update lalu di upgrade.
Instal paket-paket yang dibutuhkan:
Code:
apt-get install tasksel
tasksel install lamp-server
apt-get install asterisk asterisk-mysql asterisk-mp3 php-db php5-gd php-pear sox curl asterisk asterisk-mysql asterisk-mp3 php-db php5-gd php-pear sox curl

setelah selesai terinstall, lakukan penambahan user:
Code:
adduser www-data asterisk

rubah hak akses folder /usr/share/asterisk menjadi miliknya www-data dan group asterisk:
Code:
chown www-data.asterisk -R /usr/share/asterisk

rubah Apache agar jalan sebagai asterisk. caranya dengan merubah apache usernya menjadi asterisk di file /etc/apache2/envvars :
Code:
#export APACHE_RUN_USER=www-data
#export APACHE_RUN_GROUP=www-data
export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk

restart apache:
Code:
apache2ctl graceful

Untuk menjalankan server FOP(Flash Operator Panel), coba ganti default user shell untuk user asterisk di set menjadi "false":
Code:
usermod -s /bin/bash asterisk
di /usr/sbin/safe_asterisk rubah variable "BACKGROUND" yang tadinya 0 menjadi 1

download freepbx di http://www.freepbx.org/download-freepbx untuk melihat release terakhirnya. Untuk update terakhir pada saat dibuatnya tutorial ini adalah versi 2.9.0:
Code:
cd /usr/src
wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz
tar freepbx-2.9.0.tar.gz
cd freepbx-2.9.0

Kondisi terakhir kita berada di folder /usr/src/freepbx-2.9.0/. Lakukan persiapan database:
Code:
mysqladmin create asterisk -u root -p
mysqladmin create asteriskcdrdb -u root -p
mysql asterisk < SQL/newinstall.sql -u root -p
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql -u root -p
mysql -u root -p
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
flush privileges;
quit

SSEBELUM MELAKUKAN INSTALASI, BACKUP TERLEBIH DAHULU FILE /etc/asterisk/modules.conf:
Code:
cp /etc/asterisk/modules.conf /home/(user)/

Memulai instalasi freepbx:
Code:
./install_amp

Pada saat instalasi, yang wajib diganti adalah pada saat dia meminta IP Address, kita ketikkan dengan alamat IP kita sendiri. Dan rubah default folder web aplikasinya ke /var/www/freepbx
Perhatian: Jika kita manjadikan folder freepbx sebagai subfolder, panel tidak akan berjalan dengan lancar. kita lakukan sedikit hard code lagih :-D dengan membuat virtual Host di web server kita.
buat file di /etc/apache2/sites-available/freepbx dan taro code berikut ini:
Code:
################# Named VirtualHosts
<VirtualHost *:80>

    ServerName freepbx
    ServerAlias freepbx

    ServerAdmin yourname@yourdomain.com
    ErrorLog /var/log/apache2/freepbx.error.log
    CustomLog /var/log/apache2/freepbx.access.log combined

    DocumentRoot /var/www/freepbx
    <Directory /var/www/freepbx>
        Options Indexes FollowSymLinks MultiViews
        Order allow,deny
        AllowOverride All
        Allow from all
    </Directory>

    <Directory /var/www/freepbx/admin>
        AuthType Basic
        AuthName "Restricted Area"
        AuthUserFile freepbx-passwd
        Require user admin
    </Directory>


</VirtualHost>

##################################################################

Buatlah symlink untuk menjalankan file diatas:
Code:
ln -s /etc/apache2/sites-available/freepbx /etc/apache2/sites-enabled/099-freepbx

dan tambahkan password file sesuai dengan yang diinginkan:
Code:
htpasswd -c /etc/apache2/freepbx-passwd admin

Restart Apache
Code:
/etc/init.d/apache2 restart

Restore backup dari modules.conf
Code:
cp /home/(user)/ /etc/asterisk/modules.conf

Jika apachenya masih running sebagai www-data, tambahkan script ini di /etc/amportal.conf
Code:
AMPASTERISKUSER=www-data
AMPASTERISKGROUP=asterisk

Untuk menjadikannya selalu jalan setiap saat, kita lakukan sedikit injeksi di /etc/rc.local sebelum line exit 0:
Code:
/usr/local/sbin/amportal start
exit 0

Reboot Ubuntunya dan lakukan administrasi di http://alamatIP/freepbx. Server voip sudah running, selamat menikmati. :-D
Untuk testing, nantikan di trit berikutnya :-D

No comments:

Post a Comment