FreePBX是一款强大的语音通信解决方案,帮助管理员利用Asterisk和开源的FreePBX搭建,管理安装,配置和维护企业级的IPPBX。 #简单介绍一下asterisk(来自百度百科):Asterisk 是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机 器变成你自己的交换机,还能够当作一台企业级的商用交换机。Asterisk 可以被配置为一个 IP 或混合的 PBX 的核心:交换呼叫、管理路由、使能特性,以及通过 IP、模拟线路(POTS)、以及数字(T1/E1)的联系同外部呼叫链接在一起。

** 准备Ubuntu16.04机器一台**

  1. 更新系统的apt源
apt-get update && apt-get upgrade -y 
  1. 安装必需的依赖关系
apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\
  mysql-client  bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox\
  libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3\
  libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev\
  libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev\
  libspandsp-dev sudo subversion libtool-bin python-dev
	#注意:
	(1)此过程会弹出几次窗口让你输入mysql密码,切记这里直接回车(设置密码为空),要不然你后面安装启动asterisk的时候会报错。
	如果还是设置了密码的话,到后面可以在mysql里面再把密码设置为空,方法如下:
	service mysql start
	mysql -uroot -p()  << 括号里面输入你设置的密码
	mysql> use mysql;
	mysql> UPDATE user SET Password = PASSWORD('') WHERE user = 'root';
	msyql> flush privileges;
	(2)更新的Ubuntu的apt源之后,PHP默认版本是7.多的。我们需要安装php5的需要进行一下操作:
	apt-get install -y language-pack-en-base
	LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
	add-apt-repository ppa:ondrej/php
	apt-get update
	安装php5.6
sudo apt-get update
sudo apt-get install php5.6
安装扩展
sudo apt-get install php5.6-gd
sudo apt-get install php5.6-mysql
安装Apache2
sudo apt install apache2
sudo apt-get install libapache2-mod-php5.6
安装MySQL
//sudo apt install mysql-server php5.6-mysql    root root0x0
sudo apt install mysql-server php5.6-mysql 
sudo apt-get install mysql-client
mysql_secure_installation
最后非常重要的,切换php7 到php5
sudo a2dismod php7.1
sudo a2enmod php5.6
sudo service apache2 restart
sudo update-alternatives --set php /usr/bin/php5.6

3.安装nodejs

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

4.安装Google Voice的依赖关系 安装iksemel

cd /usr/src
git clone https://github.com/meduketto/iksemel.git
cd iksemel
./autogen.sh
./configure
make
make install
ldconfig

5.安装并配置Asterisk 先下载所需要的几个源文件。

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz

编译并安装DADHI。

cd /usr/src
tar xvfz dahdi-linux-complete-current.tar.gz
rm -f dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config
cd /usr/src
tar xvfz libpri-current.tar.gz
rm -f libpri-current.tar.gz
cd libpri-*
make
make install

编译并安装jansson

cd /usr/src
tar vxfz jansson.tar.gz
rm -f jansson.tar.gz
cd jansson-*
autoreconf -i
./configure
make
make install

编译并安装Asterisk

cd /usr/src
tar xvfz asterisk-13-current.tar.gz
rm -f asterisk-13-current.tar.gz
cd asterisk-*
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
./configure --with-pjproject-bundled
make menuselect
这里会出来一个弹窗,你可以在里面选择要构建的模块,里面的大多数模块大多数默认启动,如果想要再启动某个模块的话,找到对应的模块,按一下回车,在该模块前面会出现个“*”号,就表示该模块已启用,然后保存退出。
make
make install
make config
ldconfig
update-rc.d -f asterisk remove

5.安装和配置FreePBX

创建Asterisk用户并设置基本文件权限
useradd -m asterisk
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk
rm -rf /var/www/html

6.对Apache进行一些小修改。

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
service apache2 restart

7.配置ODBC

编辑/etc/odbcinst.ini并添加以下内容。
cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
EOF
编辑或创建/etc/odbc.ini并添加以下部分。
cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
EOF

8.下载并安装FreePBX。

cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
tar vxfz freepbx-14.0-latest.tgz
rm -f freepbx-14.0-latest.tgz
cd freepbx
touch /etc/asterisk/ari.conf
./start_asterisk start
./install -n

重新启动apache

a2enmod rewrite
service apache2 restart

ran然后在浏览器输入:IP地址加/admin,就可以出现FreePBX的配置界面。

接下来我们就可以开始着手配置FreePBX了,下一篇。