ซื้อสินค้า 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:~# 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 เพื่อคอนฟิกระบบ