Установка Asterisk 12 / 13 + FreepBX 12 на CentOS 7 64-bit
CentOS 7 64-bit Asterisk 13, FreePBX 12 , libpri, DAHDI, Mysql (mariadb), apache2, lame, php, httpd.conf, php.ini
последняя редакция, июль 2015 года
Выключение SELinux
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
Зависимости
yum install -y kernel-devel kernel-headers
yum install -y e2fsprogs-devel keyutils-libs-devel krb5-devel libogg \ libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear \ php php-gd php-mysql php-pdo php-mbstring ncurses-devel \ mysql-connector-odbc unixODBC unixODBC-devel \ audiofile-devel libogg-devel openssl-devel zlib-devel \ perl-DateManip sox git wget net-tools psmisc
yum install -y gcc gcc-c++ make gnutls-devel \ libxml2-devel ncurses-devel subversion doxygen \ texinfo curl-devel net-snmp-devel neon-devel \ uuid-devel libuuid-devel sqlite-devel sqlite \ speex-devel gsm-devel libtool libtool-ltdl libtool-ltdl-devel
Сделайте полный апдейт
yum update -y
Перезагрузите компьютер
reboot
Установка mysql (mariadb)
1: Установим mariadb (MySQL)
yum -y install mariadb-server mariadb mariadb-devel
2: Запустим и включим автозагрузку mariadb (MySQL)
systemctl start mariadb.service systemctl enable mariadb.service
3: Запустим интерактивный конфигуратор (будет предложено задать пароль пользователя root для mysql и др.)
mysql_secure_installation
Установите PearDB
pear uninstall db pear install db-1.7.14
SRTP
cd /usr/src && wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
tar zxvf srtp-1.4.2.tgz && cd srtp && autoconf && ./configure CFLAGS=-fPIC --prefix=/usr && make && make runtest && make install
Pjproject
cd /usr/src && git clone git://github.com/asterisk/pjproject pjproject
cd pjproject/ && ./configure --libdir=/usr/lib64 --prefix=/usr --enable-shared --disable-sound --disable-resample && make dep && make && make install && ldconfig && ldconfig -p | grep pj
libjansson
cd /usr/src && wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar zvxf jansson-2.5.tar.gz && cd jansson-2.5 && ./configure --prefix=/usr/ && make clean && make && make install && ldconfig
Исходники
cd /usr/src && wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz && 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-1.4-current.tar.gz && wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
Lame
cd /usr/src && tar zxvf lame-3.98.4.tar.gz && cd lame-3.98.4 && ./configure && make && make install
DAHDI & LibPRI
yum install "kernel-devel-uname-r == $(uname -r)"
cd /usr/src && tar xvfz dahdi-linux-complete-current.tar.gz && cd dahdi-linux-complete-* && make all && make install && make config
cd /usr/src && tar xvfz libpri-1.4-*.tar.gz && cd /usr/src/libpri-1.4.* && make && make install
SpanDSP
cd /usr/src && wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
tar zxvf spandsp-0.0.6.tar.gz && cd spandsp-0.0.6 && ./configure && make && make install && ln -s /usr/local/lib/libspandsp.so.2 /usr/lib64/libspandsp.so.2
Asterisk 13
cd /usr/src && tar xvfz asterisk-13-current.tar.gz && cd asterisk-13.* && ./configure --libdir=/usr/lib64 && contrib/scripts/get_mp3_source.sh && make menuselect
После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'
---> Add-ons (See README-addons.txt) --- extended --- XXX chan_mobile [*] chan_ooh323 [*] format_mp3 [*] res_config_mysql --- deprecated --- [*] app_mysql [*] app_saycountpl [*] cdr_mysql ---> Core Sound Packages [*] CORE-SOUNDS-RU-GSM ---> Extras Sound Packages [*] EXTRA-SOUNDS-EN-GSM
make && make install && make config && ldconfig
sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g' /usr/sbin/safe_asterisk
FreePBX
Скачаем FreePBX
cd /usr/src && wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-12.0-latest.tgz && tar zxvf freepbx-*.tgz && cd /usr/src/freepbx
Создайте пользователя Asterisk и задайте права пользователя.
useradd -m asterisk && chown asterisk.asterisk /var/run/asterisk && chown -R asterisk.asterisk /etc/asterisk && chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk && chown -R asterisk.asterisk /usr/lib64/asterisk
Настроим httpd (Apache)
cp /etc/php.ini /etc/php.ini_orig && sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /etc/php.ini && sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini && cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig && sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf && sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf && systemctl restart httpd && systemctl enable httpd
Подготовим MySQL
Требуется создать безопасный пароль для связи FreePBX и MySQL
export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`
Эта команда сгенерирует 16-ти значный пароль и сохранит его в переменной ASTERISK_DB_PW.
Подготовка базы данных Asterisk в MySQL.
Если вы задали 'root' пароль MySQL при установке mariadb, добавьте его после ключа -pyourpassword. (mysqladmin -u root -pYOURPASSWORD create asterisk)
Выполните по очереди следующие команды:
mysqladmin -u root create asterisk mysqladmin -u root create asteriskcdrdb
cd /usr/src/freepbx
mysql asterisk < SQL/newinstall.sql mysql asteriskcdrdb < SQL/cdr_mysql_table.sql
Зададим права на использование БД MySQL
Замените asteriskuserна имя пользователя, которое вам нравится. Например: YOURUSER@localhost. Можно оставить как есть.
mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "flush privileges;"
Запустим Asterisk и установим FreePBX.
Если в предыдущем пункте вы задали собственное имя пользователя, замените asteriskuserна него. Например: –username=YOURUSER
./start_asterisk start
cd /usr/src/freepbx && ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}Если появится ошибка:
Enter the path to use for your AMP web root: [/var/www/html] PHP Warning: mkdir(): File exists in /usr/src/freepbx/libfreepbx.install.php on line 199 [FATAL] Cannot create /var/www/html!просто запустите установку ещё раз:
./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}
amportal a ma reload && amportal a ma refreshsignatures && amportal chown
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3 amportal restart
В Centos7 вместо IPTables используется Firewalld. Порт 80 tcp (HTTP) по умолчанию закрыт. Так что вам надо либо отключить файервол (не рекомендуется), либо настроить его соответствующим образом
Подключимся к FreePBX
http://IP.Address.FreePBX.Server/admin
Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX