我只是个搬运工和测试员,怕有一天国外网站挂了,才转载到这里。
原帖在https://www.powerpbx.org/content/astpp-voip-billing-v36-centos-v7-freeswitch-v16-apachev24-install-guide-v1
与官方文档的安装方法相比较,本文对细节的处理更细致合理,各种脚本比如启动脚本,防火墙脚本都很完善,无需改动既可使用。推荐有兴趣的朋友用此方式安装。欢迎大家加我的联系方式一起讨论,学习。
QQ and Wechat 541634268。
This guide covers the installation of the ASTPP VoIP billing and Freeswitch applications. ASTPP is installed manually from source. Freeswitch is installed from RPMs.
Tested using the following software:
CentOS v7 minimal install
Freeswitch v1.6
ASTPP v3.6
Apache v2.4
PHP v7.1
MariaDB v5.5
Prerequisites
yum -y install epel-release && yum -y update
yum -y install git nano httpd unixODBC mysql-connector-odbc ghostscript libtiff-devel libtiff-tools at mariadb mariadb-server postfix
PHP
yum -y install https://centos7.iuscommunity.org/ius-release.rpm
yum -y install yum-plugin-replace This updates any existing default version PHP files
yum replace php-common --replace-with php71u-common
yum -y install php71u php71u-common php71u-pdo php71u-soap php71u-xml php71u-xmlrpc php71u-cli php71u-imap php71u-mcrypt php71u-gd php71u-opcache php71u-json php71u-mysqlnd php71u-odbc pear1u
Disable Selinux
Check status
sestatus
If not disabled, set SELINUX=disabled in /etc/selinux/config. Requires reboot for changes to take effect.
sed -i 's/(^SELINUX=).*/\SELINUX=disabled/' /etc/selinux/config Disable Firewall
It is sometimes helpful to disable the firewall during installation.
systemctl disable firewalld
systemctl disable iptables
systemctl stop firewalld
systemctl stop iptables
Timezone FIND YOUR TIMEZONE
tzselect SET TIMEZONE EXAMPLE
timedatectl set-timezone America/Vancouver CHECK TIMEZONE
timedatectl status
Install
Freeswitch
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm
yum -y install freeswitch-config-vanilla freeswitch-sounds freeswitch-lang freeswitch-lua freeswitch-xml-cdr freeswitch-application-curl freeswitch-xml-curl freeswitch-event-json-cdr
ASTPP Set ${password} variable. This is used muliple times in this section.
password=somepassword
cd /usr/src
git clone -b v3.6 https://github.com/iNextrix/ASTPP.git
systemctl enable mariadb
systemctl restart mariadb
mysql -e "CREATE DATABASE astpp CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql -e "CREATE USER 'astppuser'@'localhost'> mysql -e "GRANT ALL PRIVILEGES ON astpp.* TO 'astppuser'@'localhost' WITH GRANT OPTION;"
mysql -e "FLUSH PRIVILEGES;"
mysql astpp < ASTPP/database/astpp-3.0.sql
mysql astpp < ASTPP/database/astpp-upgrade-3.5.sql
mysql astpp < ASTPP/database/astpp-upgrade-3.6.sql
ODBC
cat >> /etc/odbc.ini Ownership
chown -R freeswitch.daemon /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 {} \;
Systemd config
nano /etc/systemd/system/freeswitch.service
[Unit]
Description=FreeSWITCH
Wants=network-online.target
After=syslog.target network-online.target
After=mariadb.service httpd.service
[Service]
Type=forking
User=freeswitch
ExecStartPre=/usr/bin/mkdir -m 0750 -p /run/freeswitch
ExecStartPre=/usr/bin/chown freeswitch:daemon /run/freeswitch
WorkingDirectory=/run/freeswitch
PIDFile=/run/freeswitch/freeswitch.pid
EnvironmentFile=-/etc/sysconfig/freeswitch
ExecStart=/usr/bin/freeswitch -ncwait -nonat $FREESWITCH_PARAMS
ExecReload=/usr/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Configure php.ini
sed -i "s#short_open_tag = Off#short_open_tag = On#g" /etc/php.ini
sed -i "s#;cgi.fix_pathinfo=1#cgi.fix_pathinfo=1#g" /etc/php.ini
sed -i "s/max_execution_time = 30/max_execution_time = 3000/" /etc/php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 20M/" /etc/php.ini
sed -i "s/post_max_size = 8M/post_max_size = 20M/" /etc/php.ini
sed -i "s/memory_limit = 128M/memory_limit = 512M/" /etc/php.ini
Lock down the database server
mysql_secure_installation
systemctl restart mariadb
Answer Y to everything.
Configure firewall
yum -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,5080,5081,8081}/tcp
firewall-cmd --permanent --zone=public --add-port={5060,5061,5080,5081}/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 mariadb
systemctl enable httpd
systemctl enable freeswitch
systemctl restart httpd
systemctl restart freeswitch
systemctl disable sendmail
systemctl stop sendmail
systemctl enable postfix
systemctl restart postfix
Test Freeswitch console
If fs_cli command is not working change the following line.
nano +4 /etc/freeswitch/autoload_configs/event_socket.conf.xml
systemctl restart freeswitch
Browse to control panel
http://x.x.x.x:8081
username: admin
password: admin
The 8081 port can be changed at /var/lib/astpp/astpp-config.conf and /etc/httpd/conf.d/astpp.conf. Remember to change the port on the firewall as well.