Hướng dẫn cài đặt Asterisk Freepbx trên CentOS ( CentOS v7, Asterisk v14, Freepbx v14)
1/ Giới thiệu
Hướng dẫn này bao gồm việc cài đặt Asterisk v13 hoặc v14 và Freepbx v14 GUI từ soruce trên CentOS v7
Phiên bản phần mềm:
CentOS v7 x64
Asterisk v13 và v14
Freepbx v14
2/ Cài đặt
yum -y update && yum -y groupinstall core && yum -y groupinstall base && yum -y install epel-release && yum -y remove sendmail
yum -y install automake gcc gcc-c++ ncurses-devel openssl-devel libxml2-devel unixODBC-devel libcurl-devel libogg-devel libvorbis-devel speex-devel spandsp-devel freetds-devel net-snmp-devel iksemel-devel corosynclib-devel newt-devel popt-devel libtool-ltdl-devel lua-devel sqlite-devel radiusclient-ng-devel portaudio-devel neon-devel libical-devel openldap-devel gmime-devel mysql-devel bluez-libs-devel jack-audio-connection-kit-devel gsm-devel libedit-devel libuuid-devel jansson-devel libsrtp-devel git subversion libxslt-devel kernel-devel audiofile-devel gtk2-devel libtiff-devel libtermcap-devel ilbc-devel python-devel bison tftp-server httpd sox tzdata mysql-connector-odbc mariadb mariadb-server fail2ban jwhois xmlstarlet ghostscript libtiff-tools patch e2fsprogs mpg123 lame gstreamer postfix mongodb-server
2.1 PHP:
Cài đặt repository và thay thế bất kì gói PHP hiện có.
yum -y install https://centos7.iuscommunity.org/ius-release.rpm
yum -y install yum-plugin-replace
yum replace php --replace-with php56u
Cài đặt PHP v5.6
yum -y install php56u php56u-mysqlnd php56u-process php56u-pear php56u-mbstring php56u-xml php56u-gd php56u-curl
2.2 Node.js
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
yum -y install nodejs
2.3 ODBC
cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description = MariaDB connection to 'asteriskcdrdb' database
driver = MySQL
server = localhost
database = asteriskcdrdb
Port = 3306
Socket = /var/lib/mysql/mysql.sock
option = 3
Charset=utf8
EOF
yum localinstall --nogpgcheck
https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm Miscellaneous
yum install ffmpeg
2.4 Đặt Timezone
## FIND YOUR TIMEZONE
tzselect
## SET TIMEZONE EXAMPLE
timedatectl set-timezone America/Vancouver
timedatectl status
2.5 Cài đặt
2.5.1 DAHDI
Chỉ cần nếu sử dụng server vât lý và cài đặt card TDM .
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.10.2+2.10.2.tar.gz
tar zxvf dahdi-linux-complete-2.10*
cd /usr/src/dahdi-linux-complete-2.10*/
make all && make install && make config
systemctl restart dahdi
Nếu make all thất bại hãy thử khởi động lại và chạy apt install linux-headers*
Để cài đặt Asterisk v14, đặt VERSION = 14. Để chuyển đổi version, tốt nhất là chạy rm -rf /usr/lib64/asterisk/modules trước.
# Select Asterisk VERSION=14 or
VERSION=13
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-${VERSION}-current.tar.gz
tar zxvf asterisk-${VERSION}-current.tar.gz
cd /usr/src/asterisk-${VERSION}*/
make distclean
Cài đặt các gói phụ thuộc bổ sung
cd /usr/src/asterisk-${VERSION}*/
./contrib/scripts/install_prereq install
2.5.2 Cấu hình
cd /usr/src/asterisk-${VERSION}*/
./configure --libdir=/usr/lib64 --with-pjproject-bundled
Để xem loại kết quả nano -v config.log
Đặt tùy chọn compile
cd /usr/src/asterisk-${VERSION}*/
make menuselect
# Select additional compile options or leave at default and save.
# To add/change compile options afterwards just run make menuselect and make && make install again
Tạo Asterisk User, biên dịch, cài đặt và thiết lập permission
adduser asterisk -s /sbin/nologin -c "Asterisk User"
make && make install && chown -R asterisk. /var/lib/asterisk
2.5.3 FreePBX
systemctl restart mariadb
cd /usr/src
git clone -b release/14.0 --single-branch https://github.com/freepbx/framework.git freepbx
cd /usr/src/freepbx
./start_asterisk start
./install -n
Nếu bạn gặp lỗi Could not determine Asterisk version, hãy sửa đổi dòng sau:
nano +266 installlib/installcommand.class.php
$lastline = exec("runuser" . $answers['user'] . ' -s /bin/bash -c "cd ~/ && asterisk -rx \'core show version\' | grep ^Asterisk 2>&1"', $tmpout, $ret);
2.5.4 Cài đặt Module
fwconsole ma downloadinstall framework core voicemail sipsettings infoservices \
featurecodeadmin logfiles callrecording cdr dashboard music conferences
fwconsole chown
fwconsole reload
Các module được bổ sung có thể được cài đặt qua GUI> Admin > Module Admin không khuyến khích cài đặt tất cả module. Bạn rất có thể sẽ cần phải chạy lại các lệnh sau hai lần.
fwconsole ma installall
fwconsole chown
fwconsole reload
Cấu hình để Freepbx tự động chạy khi khởi động lại
nano /etc/systemd/system/freepbx.service
[Unit]
Description=Freepbx
After=mariadb.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start
ExecStop=/usr/sbin/fwconsole stop
[Install]
WantedBy=multi-user.target
systemctl enable freepbx
2.6 Sau khi cài đặt:
Bảo mật database
mysql_secure_installation
Thay đổi cấu hình Apache web server
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
sed -i ':a;N;$!ba;s/AllowOverride None/AllowOverride All/2' /etc/httpd/conf/httpd.conf
Bật các dịch vụ tự động chạy khi khởi động
systemctl enable mariadb
systemctl enable httpd
systemctl enable postfix
Khởi động lại server.
reboot
2.7 Cấu hình thêm
2.7.1 Log File Rotation
Nếu không được thực hiện, Log Files sẽ tiếp tục tăng dung lượng
nano /etc/logrotate.d/asterisk
/var/spool/mail/asterisk
/var/log/asterisk/full
/var/log/asterisk/dtmf
/var/log/asterisk/fail2ban {
weekly
missingok
rotate 4
#compress
notifempty
sharedscripts
create 0640 asterisk asterisk
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null || true
endscript
su root root
2.7.2 FireWall
systemctl enable firewalld
systemctl restart firewalld
firewall-cmd --permanent --zone=public --add-service={http,https}
firewall-cmd --permanent --zone=public --add-port=5060-5061/tcp
firewall-cmd --permanent --zone=public --add-port=5060-5061/udp
firewall-cmd --permanent --zone=public --add-port=10000-20000/udp
firewall-cmd --reload
2.7.3 TFTP
Nếu bạn dự định sử dụng IP Phone,bạn cần cài đặt TFTP.
yum -y install tftp-server
nano /etc/xinetd.d/tftp
thay đổi server_args = -s /var/lib/tftpboot v
thay đổi disable=yes
thành disable=no
mkdir /tftpboot
chmod 777 /tftpboot
systemctl restart xinetd
firewall-cmd --permanent --zone=public --add-port=69/udp
firewall-cmd --reload
2.7.3 Kiểm tra ODBC
odbcinst -s -q
Sử dụng username và password trong /etc/asterisk/res_odbc_additional.conf để kiểm tra kết nối với DB thông qua ODBC
isql -v MySQL-asteriskcdrdb someusername somepassword
Kiểm tra truy cập asterisk ODBC
asterisk -vvvr
CLI> odbc show
2.7.4 Misc. setting
Set php memory_limit = 256M .
sed -i 's/memory_limit = .*/memory_limit = 256M/g' /etc/php.ini Set php memory_limit = 256M
Section
Thông tin Khóa học VoIP tại TEL4VN: https://tel4vn.edu.vn/course/voip-admin/
Thông tin chi tiết vui lòng liên hệ:
🔗 Fanpage:https://www.facebook.com/tel4vn
🏠 Địa chỉ: 82/2/9 Đinh Bộ Lĩnh, F.26, Q.Bình Thạnh, TP.HCM
☎️ SĐT: 028 3622 0868
📩 Email: dangky@tel4vn.com