Hướng dẫn cài chi tiết từng bước 1
Phiên bản cài đặt như sau:
• Debian v8 (Jessie) x64 minimal
• ASTPP v3.6
• Freeswitch v1.6
• Apache v2.4
• PHP v7.1
• MariaDB v10
apt update && apt upgrade -y && apt install
apt -y install git nano dbus sudo apache2 curl sqlite3 haveged lsb-release ghostscript libtiff5-dev libtiff-tools at dirmngr postfix gawk dnsutils openssl ntp libmyodbc unixodbc unixodbc-bin gettext
Nhớ cài từng bước một
apt -y install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt update && apt -y install php7.1 php7.1-gd php7.1-opcache php7.1-cli php7.1-common php7.1-curl php7.1-sqlite3 php7.1-odbc php7.1-mysql php7.1-xml php7.1-mcrypt php7.1-json php7.1-pdo php-pear
cd /usr/src
wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.3/\
mariadb-connector-odbc-3.0.3-ga-debian-x86_64.tar.gz
tar -zxvf mariadb-connector-odbc-3.0.3*.tar.gz
cp mariadb-connector-odbc-3.0.3*/lib/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
Tạo file driver ODBC /etc/odbcinst.ini
## Lưu ý: dạng câu lệnh tiếp theo là mở file /etc/odbcinst.ini sau đó thêm đoạn giữa EOF……..EOF
cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MariaDB
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
EOF
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
apt update && apt -y install mariadb-server
# Hãy đặt password cho mysql , nếu không khi cài đặt sẽ bị lỗi
Thêm dòng này:
sql_mode=''
vào dưới dòng [mysqld] trong file /etc/mysql.my.cnf sau đó restart mysql
systemctl restart mariadb
Kiểm tra trang thái Selinux
sestatus
Nếu trạng thái là enabled thì mở file /etc/selinux/config Và đổi
SELINUX=disabled
Sau đó reboot server
systemctl disable firewalld
systemctl disable iptables
systemctl stop firewalld
systemctl stop iptables
timedatectl set-timezone Asia/Ho_Chi_Minh
curl https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ $(lsb_release -sc) main" > \
/etc/apt/sources.list.d/freeswitch.list
apt update && apt -y install freeswitch-all freeswitch-all-dbg freeswitch-sounds* freeswitch-music* gdb
cd /usr/src
git clone -b v3.6 https://github.com/iNextrix/ASTPP.git
## Gõ từng lệnh mysql và nhập mật khẩu lúc đầu đã tạo
## Tạo DB astpp , USER là astppuser, PASSWORD là 123qwe
mysql -p -e "CREATE DATABASE astpp CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql -p -e "CREATE USER 'astppuser'@'localhost' IDENTIFIED BY '123qwe';"
mysql -p -e "GRANT ALL PRIVILEGES ON astpp.* TO 'astppuser'@'localhost' WITH GRANT OPTION;"
mysql -p -e "FLUSH PRIVILEGES;"
mysql -p astpp < ASTPP/database/astpp-3.0.sql
mysql -p astpp < ASTPP/database/astpp-upgrade-3.5.sql
mysql -p astpp < ASTPP/database/astpp-upgrade-3.6.sql
ODBC kết nối giữa Freeswitch và Mysql
cat >> /etc/odbc.ini << EOF
[ASTPP]
Driver = MySQL
SERVER = 127.0.0.1
DATABASE = astpp
USERNAME = astppuser
PASSWORD = 123qwe
PORT = 3306
OPTION = 67108864
Socket = /run/mysqld/mysqld.sock
threading = 0
charset = utf8
EOF
Test odbc driver
odbcinst -s -q
Test odbc connection
isql -v astpp astppuser 123qwe
quit
Copy and configure Freeswitch files
cd /usr/src
cp -R ASTPP/freeswitch/fs /var/www/html/
cp -R ASTPP/freeswitch/scripts/* /usr/share/freeswitch/scripts/
cp -R ASTPP/freeswitch/sounds/*.wav /usr/share/freeswitch/sounds/en/us/callie/
rm -Rf /etc/freeswitch/dialplan/*
touch /etc/freeswitch/dialplan/astpp.xml
rm -Rf /etc/freeswitch/directory/*
touch /etc/freeswitch/directory/astpp.xml
rm -Rf /etc/freeswitch/sip_profiles/*
touch /etc/freeswitch/sip_profiles/astpp.xml
Copy and configure ASTPP files
cd /usr/src
mkdir -p /var/lib/astpp
cp ASTPP/config/astpp-config.conf /var/lib/astpp/astpp-config.conf
cp ASTPP/config/astpp.lua /var/lib/astpp/astpp.lua
# Copy/config web GUI files
cp -R ASTPP/web_interface/astpp /var/www/html/
cp ASTPP/web_interface/apache/astpp.conf /etc/apache2/conf-available/astpp.conf
cp ASTPP/web_interface/apache/astpp.conf /etc/apache2/conf-available/fs.conf
sed -i "s#log/httpd#log/apache2#g" /etc/apache2/conf-available/astpp.conf
sed -i "s#log/httpd#log/apache2#g" /etc/apache2/conf-available/fs.conf
sed -i "s#8081#8735#g" /etc/apache2/conf-available/fs.conf
sed -i "s#astpp#fs#g" /etc/apache2/conf-available/fs.conf
mv /var/www/html/astpp/htaccess /var/www/html/astpp/.htaccess
a2enconf astpp
a2enconf fs
systemctl reload apache2
# Copy ASTPP specific freeswitch config files
/bin/cp -R ASTPP/freeswitch/conf/autoload_configs/* /etc/freeswitch/autoload_configs/
# ASTPP links to Freeswitch use /usr/local by default. Freeswitch binary packages use /usr/share.
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /etc/freeswitch/autoload_configs/lua.conf.xml
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /etc/freeswitch/autoload_configs/json_cdr.conf.xml
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /usr/share/freeswitch/scripts/astpp-callingcards.lua
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /usr/share/freeswitch/scripts/astpp/astpp.lua
sed -i "s#/usr/local/freeswitch/#/usr/share/freeswitch/#g" /usr/share/freeswitch/scripts/astpp/scripts/astpp.xml.lua
Check IP của server:
ifconfig | sed -En 's/127.0.0.*//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
Configure ASTPP config files in /var/lib/astpp
sed -i "s#\(^dbname\).*#dbname = astpp#" /var/lib/astpp/astpp-config.conf
sed -i "s#\(^dbuser\).*#dbuser = astppuser#" /var/lib/astpp/astpp-config.conf
sed -i "s#\(^dbpass\).*#dbpass = 123qwe#" /var/lib/astpp/astpp-config.conf
##Đổi 192.168.1.3 thành IP server của bạn
sed -i "s#\(^base_url\).*#base_url = http://192.168.1.3:8089/#" /var/lib/astpp/astpp-config.conf
sed -i "s#\(^DB_USERNAME\).*#DB_USERNAME = \"astppuser\"#" /var/lib/astpp/astpp.lua
sed -i "s#\(^DB_PASSWD\).*#DB_PASSWD = \"123qwe\"#" /var/lib/astpp/astpp.lua
CRON
crontab -e
# I
# Generate Invoice
0 1 * * * cd /var/www/html/astpp/cron/ && php cron.php GenerateInvoice
# Low balance notification
0 1 * * * cd /var/www/html/astpp/cron/ && php cron.php UpdateBalance
# Low balance notification
0 0 * * * cd /var/www/html/astpp/cron/ && php cron.php LowBalance
# Update currency rate
0 0 * * * cd /var/www/html/astpp/cron/ && php cron.php CurrencyUpdate
# Email Broadcasting
* * * * * cd /var/www/html/astpp/cron/ && php cron.php BroadcastEmail
Thêm dòng AllowOverride All
vào file .htaccess
bằng cách gõ lệnh sau:
cat >> /etc/apache2/conf-available/allowoverride.conf << EOF
<Directory /var/www/html>
AllowOverride All
</Directory>
EOF
Chỉnh sửa file "/etc/apache2/conf-available/astpp.conf
nano /etc/apache2/conf-available/astpp.conf
Đổi các port 8081 thành 8089
a2enconf allowoverride
Change default apache user/group, disable index.html, enable rewrite module
sed -i 's/\(APACHE_RUN_USER=\)\(.*\)/\1freeswitch/g' /etc/apache2/envvars
sed -i 's/\(APACHE_RUN_GROUP=\)\(.*\)/\1freeswitch/g' /etc/apache2/envvars
chown freeswitch. /run/lock/apache2
mv /var/www/html/index.html /var/www/html/index.html.disable
a2enmod rewrite
systemctl restart apache2
It is a good idea to run this anytime there are any changes/moves/adds/upgrades.
# Ownership
chown -R freeswitch. /etc/freeswitch /var/lib/freeswitch \
/var/log/freeswitch /usr/share/freeswitch /var/www/html
# Directory permissions to 770 (u=rwx,g=rwx,o='')
find /etc/freeswitch -type d -exec chmod 770 {} \;
find /var/lib/freeswitch -type d -exec chmod 770 {} \;
find /var/log/freeswitch -type d -exec chmod 770 {} \;
find /usr/share/freeswitch -type d -exec chmod 770 {} \;
find /var/www/html -type d -exec chmod 770 {} \;
# File permissions to 664 (u=rw,g=rw,o=r)
find /etc/freeswitch -type f -exec chmod 664 {} \;
find /var/lib/freeswitch -type f -exec chmod 664 {} \;
find /var/log/freeswitch -type f -exec chmod 664 {} \;
find /usr/share/freeswitch -type f -exec chmod 664 {} \;
find /var/www/html -type f -exec chmod 664 {} \;
nano /etc/systemd/system/freeswitch.service
[Unit]
Description=FreeSWITCH
Wants=network-online.target
After=syslog.target network.target network-online.target
After=mariadb.service apache2.service
[Service]
Type=forking
User=freeswitch
WorkingDirectory=/run/freeswitch
PIDFile=/run/freeswitch/freeswitch.pid
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/usr/bin/freeswitch -ncwait -nonat $FREESWITCH_PARAMS
ExecReload=/usr/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Create the file for adding extra parameters.
cat >> /etc/default/freeswitch << EOF
## Type: string
## Default: ""
## Config: ""
## ServiceRestart: freeswitch
#
# if not empty: parameters for freeswitch
#
FREESWITCH_PARAMS=""
EOF
sed -i "s#short_open_tag = Off#short_open_tag = On#g" /etc/php/7.1/apache2/php.ini
sed -i "s#;cgi.fix_pathinfo=1#cgi.fix_pathinfo=1#g" /etc/php/7.1/apache2/php.ini
sed -i "s/max_execution_time = 30/max_execution_time = 3000/" /etc/php/7.1/apache2/php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 20M/" /etc/php/7.1/apache2/php.ini
sed -i "s/post_max_size = 8M/post_max_size = 20M/" /etc/php/7.1/apache2/php.ini
sed -i "s/memory_limit = 128M/memory_limit = 512M/" /etc/php/7.1/apache2/php.ini
apt -y install firewalld
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-service={http,https}
firewall-cmd --permanent --zone=public --add-port={5060,5061,8081}/tcp
firewall-cmd --permanent --zone=public --add-port={5060,5061}/udp
firewall-cmd --permanent --zone=public --add-port=16384-32768/udp
firewall-cmd --reload
firewall-cmd --list-all
Enable services
systemctl daemon-reload
systemctl enable freeswitch
systemctl restart freeswitch
Test Freeswitch console
If fs_cli
command is not working change the following line.
nano +4 /etc/freeswitch/autoload_configs/event_socket.conf.xml
<param name="listen-ip" value="127.0.0.1"/>
systemctl restart freeswitch
Mở trình duyệt http://yoursIP:8089
username: admin
password: admin
Video hướng dẫn: