ซื้อสินค้า VoIP คลิกไปที่ https://www.lazada.co.th/shop/adventek/

 

ในบทความนี้ เราจะติดตั้ง FreePBX-17 และ Asterisk-20 บน Debian-12 ขั้นตอนแรกให้ติดตั้ง Debian-12 Minimal

ตาม link นี้ครับ ติดตั้ง Debian-12 Minimal แล้วกำหนด fixed IP address ตาม link Set fixed IP address on debian-12

จากนั้น login ผ่าน secure shell (putty บน Windows) โดยใช้ user / password ที่กำหนดตอนติดตั้ง เมื่อ login แล้ว

จะได้ prompt ดังนี้

 

david@debian:~$                                             

user = david, hostname = debian

เปลี่ยน user จาก david เป็น root เพื่อติดตั้ง program

 

david@debian:~$ su -

root@debian:~#

 

ติดตั้งโปรแกรมที่จำเป็น

root@debian:~# apt -y install locales sngrep build-essential net-tools aptitude openssh-server apache2 mariadb-server mariadb-client odbc-mariadb bison doxygen flex curl sox libncurses5-dev libssl-dev libmariadb-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool-bin autoconf git subversion uuid uuid-dev libiksemel-dev postfix mailutils nano libspandsp-dev libcurl4-openssl-dev libical-dev libneon27-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libsrtp*-dev unixodbc unixodbc-dev xinetd e2fsprogs dbus sudo xmlstarlet lame ffmpeg dirmngr linux-headers-`uname -r` gnupg2 nodejs npm ipset fail2ban redis-server chrony incron software-properties-common python3-mysqldb default-libmysqlclient-dev

 

root@debian:~# apt -y install php8.2 php8.2-curl php8.2-cli php8.2-mysql php8.2-mbstring php8.2-gd php8.2-xml php8.2-intl php8.2-redis php8.2-bz2 php8.2-ldap php8.2-bcmath php8.2-sqlite3 php-pear libapache2-mod-php

 

คอนฟิก odbc

แก้ไขไฟล์ /etc/odbcinst.ini ดังนี้

[MySQL]

Description = ODBC for MariaDB

Driver = libmaodbc.so

FileUsage = 1

 

แก้ไขไฟล์ /etc/odbc.ini ดังนี้

[MySQL-asteriskcdrdb]

Description = MariaDB connection to 'asteriskcdrdb' database

driver = MySQL

server = localhost

database = asteriskcdrdb

Port = 3306

Socket = /var/run/mysqld/mysqld.sock 

option = 3

 

ติดตั้ง Asterisk จาก Source Code

ไปที่ folder /usr/src

 

root@debian:~# cd /usr/src

ดาวน์โหลด Asterisk-20

root@debian:~# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz

แตกไฟล์

root@debian:~# tar zxvf asterisk-20-current.tar.gz

root@debian:~# cd /usr/src/asterisk-20*/

root@debian:~# ./contrib/scripts/get_mp3_source.sh 

root@debian:~# ./contrib/scripts/install_prereq install

root@debian:~# make distclean

root@debian:~# ./configure --with-jansson-bundled

root@debian:~# cd /usr/src/asterisk-20*/

root@debian:~# make menuselect

เลือก options ตามต้องการ หรือ ใช้ค่า default ก็ได้

 

เพิ่ม user asterisk 

root@debian:~# adduser asterisk --disabled-password --gecos "Asterisk User"

 

compile โปรแกรม

root@debian:~# make && make install && chown -R asterisk:asterisk /var/lib/asterisk

 

ติดตั้งคอนฟิกตัวอย่าง

root@debian:~# make samples

 

ติดตั้ง FreePBX

root@debian:~# cd /usr/src

root@debian:~# git clone -b release/17.0 --single-branch https://github.com/freepbx/framework.git freepbx

root@debian:~# cd /usr/src/freepbx

root@debian:~# ./start_asterisk start

root@debian:~# ./install -n

root@debian:~# fwconsole ma installall

root@debian:~# fwconsole chown

root@debian:~# fwconsole restart

 

edit file /etc/systemd/system/freepbx.service ดังนี้

[Unit]

Description=Freepbx

After=mariadb.service

[Service]

Type=oneshot

RemainAfterExit=yes

ExecStart=/usr/sbin/fwconsole start -q

ExecStop=/usr/sbin/fwconsole stop -q

[Install]

WantedBy=multi-user.target

 

กำหนดให้ run freepbx service ตอน boot server

root@debian:~# systemctl enable freepbx

 

คอนฟิก web server (apache2)

run apache2 ด้วย user asterisk, group asterisk

root@debian:~# sed -i 's/\(APACHE_RUN_USER=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars

root@debian:~# sed -i 's/\(APACHE_RUN_GROUP=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars

root@debian:~# chown asterisk: /run/lock/apache2

root@debian:~# mv /var/www/html/index.html /var/www/html/index.html.disable

root@debian:~# a2enmod rewrite

root@debian:~# a2enmod ssl

 

reboot server

root@debian:~# reboot

บทความตอนที่ 2 จะใช้ web interface เพื่อคอนฟิกระบบ