2018.09.01更新:
本人经过一段时间的测试,发现以下用官方文档介绍的方法安装后的ASTPP系统无法正常工作。连UDP端口5060都没有监听。请有兴趣安装测试的朋友们不要再用以下方法了。
新的安装方法也已经找到,国外大神提供的这个安装方法绝对无坑,本人测试过也没发现大的问题。堪称业界良心。请看另一篇博文。
https://blog.51cto.com/phenixjiang/2168495

请注意,CentOS 7上的Freeswitch不支持视频通话。要获得Freeswitch完整功能请看本人另一篇https://blog.51cto.com/phenixjiang/2157414
最近玩Freeswitch玩得很high,然而它不带计费功能。好在现在有不少的开源计费系统是基于Freeswitch的。比如VBilling,ASTPP等。
vBilling官网已经打不开了,没办法测试。于是找到了ASTPP的安装文档,
http://astpp.readthedocs.io/en/v3.6/Installation/centos7_installation.html#
这个是centos7的安装文档,根据本人安装完成后的经验来看,这个所谓的官方安装文档是基于centos6 64位的系统写的,很多命令在centos7上已经不支持了。
完全按照安装文档来的话,会遇到很多‘坑’,本人踩过了所有坑终于安装成功。所以以下贴出的安装命令是无坑版。
首先是安装前的准备工作,最小化安装centos7系统,设置好ntp以及网络连接。安装完成以root登录系统后就可以开始ASTPP的安装了。

#Install base packages
yum update
yum groupinstall "Development tools" -y

#Enable epel and freeswitch repository
yum install epel-release
rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm
yum update

#Install Freeswitch

  1. Install Freeswitch pre-requisite packages

yum install -y wget git autoconf automake expat-devel yasm gnutls-devel libtiff-devel libX11-devel unixODBC-devel python-devel zlib-devel alsa-lib-devel libogg-devel libvorbis-devel uuid-devel gdbm-devel db4-devel libjpeg libjpeg-devel compat-libtermcap ncurses ncurses-devel ntp screen sendmail sendmail-cf gcc-c++ bison bzip2 curl curl-devel dmidecode git make mysql-connector-odbc openssl-devel unixODBC zlib pcre-devel speex-devel sqlite-devel ldns-devel libedit-devel bc e2fsprogs-devel libcurl-devel libxml2-devel libyuv-devel opus-devel libvpx-devel libvpx2 libdb4 libidn-devel unbound-devel libuuid-devel lua-devel libsndfile-devel

  1. Download latest freeswitch version
    cd /usr/local/src
    git config --global pull.rebase true

#Clone freeswitch version 1.6.19 from git
git clone -b v1.6.19 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd freeswitch
./bootstrap.sh -j

  1. Edit modules.conf

#Enabling mod_xml_curl, mod_json_cdr, mod_db
sed -i "s##xml_int/mod_xml_curl#xml_int/mod_xml_curl#g" /usr/local/src/freeswitch/modules.conf
sed -i "s##mod_db#mod_db#g" /usr/local/src/freeswitch/modules.conf
sed -i "s##event_handlers/mod_json_cdr#event_handlers/mod_json_cdr#g" /usr/local/src/freeswitch/modules.conf
sed -i "s##applications/mod_voicemail#applications/mod_voicemail#g" /usr/local/src/freeswitch/modules.conf`

  1. Compile the Source

./configure -C

  1. Install Freeswitch with sound files

make all install cd-sounds-install cd-moh-install
make && make install

  1. Create symbolic links for Freeswitch executables

ln -s /usr/local/freeswitch/bin/freeswitch /usr/local/bin/freeswitch
ln -s /usr/local/freeswitch/bin/fs_cli /usr/local/bin/fs_cli

#ASTPP Install

  1. Download ASTPP 3.6 from git

    cd /usr/src
    git clone -b v3.6 https://github.com/iNextrix/ASTPP

  2. Install ASTPP pre-requisite packages

#php7.0 repository
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum-utils
yum-config-manager --enable remi-php70
yum update
yum install -y autoconf automake bzip2 cpio curl nginx php-fpm php-mcrypt* unixODBC mysql-connector-odbc curl-devel php php-devel php-common php-cli php-gd php-pear php-mysql php-mbstring sendmail sendmail-cf php-pdo php-pecl-json mysql mariadb-server mysql-devel libxml2 libxml2-devel openssl openssl-devel gettext-devel fileutils gcc-c++

  1. Normalize ASTPP

#Create access & error log files.
touch /var/log/nginx/astpp_access_log
touch /var/log/nginx/astpp_error_log
touch /var/log/nginx/fs_access_log
touch /var/log/nginx/fs_error_log
systemctl restart php-fpm
systemctl restart nginx

ASTPP using FreeSWITCH

  1. Configure freeswitch startup script

cp /usr/src/ASTPP/freeswitch/init/freeswitch.centos.init /etc/init.d/freeswitch
chmod 755 /etc/init.d/freeswitch
chmod +x /etc/init.d/freeswitch
mkdir /var/run/freeswitch

  1. Configure ASTPP with freeswitch

#Create directory structure for ASTPP
mkdir -p /var/lib/astpp/
mkdir -p /var/log/astpp/
mkdir -p /usr/local/astpp/
mkdir -p /var/www/

#Setting permisssion
chown -Rf root.root /var/lib/astpp/
chown -Rf root.root /var/log/astpp/
chown -Rf root.root /usr/local/astpp/
chown -Rf root.root /var/www//

#Setting up Scripts and Sounds for fs
cp -rf /usr/src/ASTPP/freeswitch/scripts/ /usr/local/freeswitch/scripts/
cp -rf /usr/src/ASTPP/freeswitch/fs /var/www/html/
cp -rf /usr/src/ASTPP/freeswitch/sounds/
.wav /usr/local/freeswitch/sounds/en/us/callie/
chmod -Rf 777 /usr/local/freeswitch/sounds/en/us/callie/
rm -rf /usr/local/freeswitch/conf/dialplan/
touch /usr/local/freeswitch/conf/dialplan/astpp.xml
rm -rf /usr/local/freeswitch/conf/directory/

touch /usr/local/freeswitch/conf/directory/astpp.xml
rm -rf /usr/local/freeswitch/conf/sip_profiles/*
touch /usr/local/freeswitch/conf/sip_profiles/astpp.xml

Install ASTPP web interface

mkdir -p /var/lib/astpp
cp /usr/src/ASTPP/config/* /var/lib/astpp/

#Setup web interface for ASTPP
mkdir -p /var/www/html/astpp
cp -rf /usr/src/ASTPP/web_interface/astpp/ /var/www/html/astpp/
chown -Rf root.root /var/www/html/astpp
cp /usr/src/ASTPP/web
interface/nginx/cent /etc/nginx/conf.d/

#apply security policy
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
chmod -Rf 755 /var/www/html/astpp
touch /var/log/astpp/astpp.log

Install ASTPP Database

#Restart mysql service
systemctl start mariadb
mysql -uroot -e "UPDATE mysql.user SET password=PASSWORD('<MYSQL_ROOT_PASSWORD>') WHERE user='root'; FLUSH PRIVILEGES;"

#Create database astpp
mysql -uroot -p<MYSQL_ROOT_PASSWORD> -e "create database astpp;"
mysql -uroot -p<MYSQL_ROOT_PASSWORD> -e "CREATE USER 'astppuser'@'localhost' IDENTIFIED BY 'astppuserpass';"
mysql -uroot -p<MYSQL_ROOT_PASSWORD> -e "GRANT ALL PRIVILEGES ON `astpp` . * TO 'astppuser'@'localhost' WITH GRANT OPTION;FLUSH PRIVILEGES;"
mysql -uroot -p<MYSQL_ROOT_PASSWORD> astpp < /usr/src/ASTPP/database/astpp-3.0.sql
mysql -uroot -p<MYSQL_ROOT_PASSWORD> astpp < /usr/src/ASTPP/database/astpp-upgrade-3.5.sql
mysql -uroot -p<MYSQL_ROOT_PASSWORD> astpp < /usr/src/ASTPP/database/astpp-upgrade-3.6.sql

ASTPP Freeswitch Configuration

cp /usr/src/ASTPP/freeswitch/conf/autoload_configs/* /usr/local/freeswitch/conf/autoload_configs/

#Edit db password in autoload config files.
sed -i "s#dbpass = <PASSSWORD>#dbpass = <MYSQL_ROOT_PASSWORD>#g" /var/lib/astpp/astpp-config.conf
sed -i "s#DB_PASSWD=\"<PASSSWORD>\"#DB_PASSWD = \"<MYSQL_ROOT_PASSWORD>\"#g" /var/lib/astpp/astpp.lua

#Setup ODBC Connection for mysql
cp /usr/src/ASTPP/misc/odbc/cent_odbc.ini /etc/odbc.ini
cp /usr/src/ASTPP/misc/odbc/cent_odbcinst.ini /etc/odbcinst.ini

#Edit base URL in astpp-config
sed -i "s#base_url=http://localhost:8089/#base_url=http://<SERVER FQDN / IP ADDRESS>:8089/#g" /var/lib/astpp/astpp-config.conf

Note:- Replace "<SERVER FQDN / IP ADDRESS>" with your server domain name or IPaddress

Finalize Installation & Start Services

#Open php short tag
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
systemctl restart php-fpm
systemctl restart nginx

#Configure services for startup
systemctl disable httpd #If you are using it then change the port or update your configuration for nginx otherwise your gui will not up

systemctl enable nginx
systemctl enable php-fpm
systemctl start mariadb
systemctl start freeswitch

Note:- If you want to use firewall then configure it to allow all port used in fs and ASTPP.

#Setup cron

#Generate Invoice
0 12 * cd /var/www/html/astpp/cron/ && php cron.php GenerateInvoice

#Update balance notification
0 12 * 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
0 0 * cd /var/www/html/astpp/cron/ && php cron.php BroadcastEmail

Finally Reboot it.

#You are almost done with your configuration so just reboot it and make sure everything is working fine.

reboot now

#Once server up and running again, check below service status.
systemctl status nginx
systemctl status mariadb
systemctl status freeswitch
systemctl status php-fpm


1.在安装环境包的过程中yum会提示找不到compat-libtermcap,忽略这个就可以了。因为这个包是centos5,和6所用的,centos7安装源里已经没有了。
2.在导入数据库的最后一个文件升级到3.6时,会出现一个错误 Unknown column interval。改用mysql管理工具连上数据库导入又没有提示这个错误。本人目前还没找到是什么原因 ,有精通数据库的朋友可以帮忙看看。
3.本安装文档仅仅保证能顺利完成安装,能登录到ASTPP管理界面。至于后续使用中会出现什么bug,本人无法保证。

转载于:https://blog.51cto.com/phenixjiang/2154606

【已作废】基于Freeswitch的ASTPP计费系统的安装 (CentOS 7)相关推荐

  1. linux中wine yum安装,分享|在基于RedHat或Debian的系统上安装 Wine 1.7

    Wine,Linux上最流行也是最有力的软件, 可以顺利地在Linux平台上运行Windows程序和游戏. 这篇文章教你怎么在像CentOS, Fedora, Ubuntu, Linux Mint一样 ...

  2. 基于Panabit免费流控系统的安装与部署

    伴随着校园网络的发展,"数字校园"概念逐渐被高等院校采纳并实施.可以说,高速.稳定.安全.可管理是"数字校园"建议的基于要求和最终目标.但是,校园网用户数量庞大 ...

  3. Win 7或者 Win 8.1系统下安装centOS 7双系统方法(亲测)

    一.压缩硬盘空间(装CentOS用) 法一: 依照该方法就可以:https://jingyan.baidu.com/article/425e69e6bbd0c7be14fc164a.html(做完第五 ...

  4. Windows系统下安装CentOS

    目录 一.开辟安装CentOS的硬盘空间 1.1 右击"此电脑" -- "管理" 二.制作CentOS U盘启动盘 三.利用U盘引导安装 3.1 安装之前要做好 ...

  5. 【Linux】基于win10 在 VMware 14 Pro上安装 CentOS 7

    需要的工具:win10系统的电脑一台 VMware Workstation 14.0.0 Pro CentOS 7镜像文件 第一步:下载VMware Workstation 14.0.0 Pro 网址 ...

  6. 基于freeswitch 自动外呼系统实现(一)

    原文网址:http://www.luojie1987.com/index.php/post/179.html 15年基于freewitch做的自动群呼系统,主要由监听模块,任务外呼模块,及FIFO实现 ...

  7. 基于 STM32 的智能水表计费系统的设计

    一.毕业设计(论文)的技术背景和设计依据: 加料系统集成在制丝车间香料厨房控制系统下,柔性化生产能力弱,现场加香.加料控制点与香料厨房处于同一控制系统中,网络布线长,干扰大,网络上任一控制点出故障影响 ...

  8. 基于主机的入侵检测系统ossec安装部署-CentOS6.5

    1.ossec服务端安装 解压>>> #tar -zxvf ossec_server.tar.gz #cd ossec 安装>>> #./install.sh ag ...

  9. 在Windows系统中安装CentOS系统和gcc

    1.VMare 安装CentSO8教程: VMware安装CentOS8教程 安装完成查看文件及ip等: 2.网络设置: 在安装完系统之后,如果一直不能安装gcc ,那么就检查一下网络,如果没有联网, ...

最新文章

  1. 机器学习(15)精确率召回率F1-score(查看癌症预测结果的精确率、召回率)
  2. python goto 用法
  3. C++ Set常用用法
  4. 固定资产增值和减值操作
  5. Error:Unable to tunnel through proxy. Proxy returns HTTP/1.1 400 Bad Request
  6. boost::core模块实现交换std::bitset
  7. C语言调用python代码
  8. Blueprint:一个让你获取示例代码的Flash Builder扩展
  9. 说说大型高并发高负载网站的系统架构 (转)
  10. UVA - 101 The Blocks Problem
  11. (学习笔记)地理加权回归
  12. fcpx插件:去除音频中的回声混响插件 EchoRemover
  13. 企业财务分析方法-杜邦分析法、沃尔评分法、Z值模型
  14. python描述对象静态特性的数据为_下列各项中,能同时影响资产和负债发生变化的是( )。...
  15. 江南鹤微信公众号文章采集器,开发完成了!以后再也不发愁采集微信公众号文章了!
  16. 百度人脸识别之人脸注册AddUser
  17. MySQL高级篇——锁
  18. 解决问题:Consider defining a bean of type ‘com.xxx.mapper.xxxMapper‘ in your configuration.
  19. Redis——Redis入门和一些笔记
  20. docker制作镜像的方法

热门文章

  1. 百度SEO Keyword Surfer v0.3.7(关键词优化)
  2. java 进制转换算法_算法笔记_033:十六进制转八进制(Java)
  3. oracle rac 通信端口,浅析Oracle 10g rac更改listener端口
  4. mysql 数据库查看锁表_【数据库】MySQL查看是否锁表
  5. List集合多线程并发条件下不安全,如何解决?
  6. 如何通过使用 64 位版本 Windows 查看系统注册表 WOW6432Node
  7. HTML5: 利用SVG动画动态绘制文字轮廓边框线条
  8. Moodle: 获取老师的课程 Get Faculty Course Profiles
  9. Python——为什么要在意:模块重载
  10. VMware虚拟机安装Linux系统(详解版)