Инструкция по установке ip-атс asterisk v16 на ос centos 8

Введение

Asterisk — бесплатное решение для организации voip телефонии. Он обладает всеми возможностями обычных АТС, но предоставляет более богатый функционал по управлению звонками. За относительную простоту настройки, по сравнению с цифровыми АТС, бесплатность и широкие возможности он и снискал такую популярность.

Freepbx — бесплатный веб интерфейс для управления астериском. Он существенно упрощает работу с конфигурациями, позволяет выполнять некоторые функции людям, вообще далеким от астериска. Например, с его помощью практически любого можно научить управлять учетными записями пользователей.

Лично я больше люблю настраивать asterisk вручную, нежели с помощью готовой панели. Да, конфигов астериск очень много, они объемные, работать с ними не удобно. Тем не менее, чистый астериск предоставляет практически неограниченную возможность по конфигурированию. С готовой панелью вы будете ограничены ее возможностями. Но если они вас полностью удовлетворяют, то лучше использовать ее.

Дальнейшая установка FreePBX будет проходить по следующей схеме:

  1. Подготовка системы.
  2. Установка MariaDB.
  3. Настройка Web сервера.
  4. Установка NodeJS.
  5. Установка Asterisk.
  6. Установка и настройка Freepbx.

Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети оператора. И внутри этой сети вы можете бесплатно звонить. Например, я одного пира регистрирую на sip клиенте смартфона и с него звоню на второй аккаунт, пир от которого настроен в астериске. Таким образом эмулирую внешний звонок. Удобно отлаживать различные конфигурации звонков, не требуя платного подключения.

Установка DAHDI, libPRI и Asterisk

  1. # cd dahdi-linux-complete-2.10.2+2.10.2
    # make all
    # make install
    # make config
  2. # cd ../libpri-1.4.15
    # make
    # make install
    
  3. # cd ../asterisk-11.19.0
    # ./configure --prefix=/usr --exec-prefix=/usr --with-crypto --with-dahdi --with-iconv -with-libcurl --with-gmime --with-iksemel --with-mysqlclient --disable-xmldoc --with-pri --with-spandsp --with-ldap --with-libcurl --with-popt --with-resample --with-speex
    # make menuselect
    # ./contrib/scripts/get_mp3_source.sh
    # make
    # make install
    # make samples
    
  4. # ln -s /usr/lib/libasteriskssl.so.1 /usr/lib64/libasteriskssl.so.1
    # ln -s /usr/lib/libpri.so.1.4 /usr/lib64/libpri.so.1.4
    # cat contrib/init.d/rc.redhat.asterisk | sed 's/__ASTERISK_SBIN_DIR__/\/usr\/sbin/' > /etc/init.d/asterisk
    # chmod 755 /etc/rc.d/init.d/asterisk
    # systemctl enable asterisk.service
    
  5. # groupadd asterisk 
    # useradd -c "asterisk PBX" -d /var/lib/asterisk -s /sbin/nologin -g asterisk asterisk
  6. # systemctl enable dahdi
    # systemctl start dahdi
    # systemctl start asterisk
    

Install Centos 6.3

Initial System Setup

Disable selinux

In /etc/sysconfig/selinux , change the following lines:

--- begin lines --- 
SELINUX=disabled
SELINUXTYPE=targeted
--- end lines --- 

reboot, and verify the selinux status by running ‘sestatus’. It should say:

SELinux status: disabled

Install Required Dependencies

yum install gcc gcc-c++ lynx bison mysql-devel mysql-server php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git subversion kernel-devel php-process crontabs cronie cronie-anacron

IPTables

You must disable the default iptables.  You can re-enable it later, once you have made the appropriate changes.  Information on iptables can be found with a quick Google search.  If iptables is left running, it will (at very least) block you from accessing the web interface.

See the current status:   

chkconfig iptables --list

Disable iptables:

chkconfig --level 0123456 iptables off

Stop the service (this skips rebooting again):

service iptables stop

Auto Start MySQL

You must have mysql running for freepbx to operate normally.  You need to set it to start at boot time. with the following command:

chkconfig --level 345 mysqld on 

Then start mysqld if you don’t plan on rebooting during the installation phase:

service mysqld start

Auto Start Apache

You will want Apache running, so you can access the FreePBX admin interface, You need to set it to start at boot time. with the following command:

chkconfig --level 345 httpd on 

Then start apache if you don’t plan on rebooting during the installation phase:

service httpd start
reboot

Install Dependencies for Google Voice

Install iksemel

cd /usr/src
wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
tar xf iksemel-*.tar.gz
cd iksemel-*
./configure
make
make install

Install and Configure Asteriskfreepbx-2.11.0.43.tgz

Download Asterisk source files.

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-1.4-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz

Compile and install DAHDI.

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

Compile and install Asterisk

cd /usr/src
tar xvfz asterisk-11-current.tar.gz
cd asterisk-*
./configure
contrib/scripts/get_mp3_source.sh
make menuselect
make
make install
make config
make progdocs

Install Asterisk-Extra-Sounds

cd /var/lib/asterisk/sounds
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz
tar xfz asterisk-extra-sounds-en-gsm-current.tar.gz
rm -f asterisk-extra-sounds-en-gsm-current.tar.gz

Install and Configure FreePBX

Now create the Asterisk user and set ownership permissions.

adduser asterisk -M -c "Asterisk User"
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk
mkdir /var/www/html
chown -R asterisk. /var/www/

A few small modifications to Apache.

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
service httpd restart

Configure Asterisk database in MYSQL. 

cd /usr/src/freepbx
export ASTERISK_DB_PW=amp109 
mysqladmin -u root create asterisk 
mysqladmin -u root create asteriskcdrdb 
mysql -u root asterisk < SQL/newinstall.sql 
mysql -u root asteriskcdrdb < SQL/cdr_mysql_table.sql 

Set permissions on MYSQL database.

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;"
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal start 

Установка FreePBX

Возвращаемся в домашнюю папку пользователя:

cd ~

Скачиваем портал для управления астериском:

wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz

* мы скачаем freepbx версии 15. Для CentOS 8 это оптимальная версия. Если необходимо установить freepbx 14, то устанавливаемая по умолчанию версия php .

Распаковываем скачанный архив:

tar zxvf freepbx-*.tgz

Переходим в распакованный каталог:

cd freepbx

Запускаем скрипт проверки работы Asterisk:

./start_asterisk start

Если видим:

STARTING ASTERISK
Asterisk is already running

… запускаем установку:

./install -n —dbuser root —dbpass password —webroot=/usr/share/nginx/html

* в данном примере мы указали учетные данные для подключения к СУБД (логин root и пароль, который мы создали после установки MariaDB); также мы указываем путь /usr/share/nginx/html, который является домашней директорией веб-сервера NGINX.

Начнется установка — в конце мы должны увидеть:

You have successfully installed FreePBX

Открываем браузер и заходим по адресу http:<IP-адрес сервера> — должна открываться страница конфигурирования FreePBX. Задаем настройки:

После входим в панель администратора под созданной учетной записью. Система нас запросит региональные настройки:

Теперь открываем конфигурационный файл:

vi /etc/asterisk/manager.conf

Находим строки:

#include manager_additional.conf
#include manager_custom.conf

… и меняем их на:

;include manager_additional.conf
;include manager_custom.conf

Перезапускаем сервис Asterisk:

systemctl restart asterisk

Asterisk + FreePBX настроен.

Operation

  1. To start the Sangoma driver, which also starts your Sangoma card(s) run the following command on your Linux command line:-> wanrouter start 

    Immediately after running this command, you will see on-screen output of all the ports (i.e. wanpipe1, wanpipe2..etc) starting on your card.You will also see your ports plugging into the DAHDI signaling layer. If you see errors occurring, investigate the /var/log/messages file.

  2. Configuring the DAHDI ModuleAfter your Sangoma card has started and is plugged into DAHDI, you will need to configure DAHDI by typing the following command on your Linux command line:-> dahdi_cfg 

  3. Start Asterisk by typing the following command in your Linux command line-> asterisk

  4. Log into your Asterisk CLI and run some basic commands to verify your system is functioning properly.Type the following in your Linux command Line:-> asterisk -rvvvvvvvvvv       (each ‘v’ adds verbosity to what you see when logged in to the CLI)
    1. Type the following CLI command to verify all your channels (dahdi channels) are loaded into asterisk:-> dahdi show channels

  5. For PRI/BRI cards only, run the following command to check the status of your pri/bri spans:-> pri show spans 

Возможные проблемы

Рассмотрим решение некоторых проблем, с которыми мы можем столкнуться в процессе настройки.

Ошибка отображается при просмотре статуса сервиса, сразу после его запуска:

systemctl status asterisk


… systemd: asterisk.service: Can’t open PID file /var/run/asterisk/asterisk.pid (yet?) after start: No such file or directory
… 

Данное сообщение не является ошибкой. Скорее, это сообщение от системы при запуске.

Убедиться в наличие данного файла можно командой:

ls -l /var/run/asterisk/asterisk.pid

Мы должны увидеть:

-rw-r—r—. 1 asterisk asterisk 6 Nov  5 09:45 /var/run/asterisk/asterisk.pid

* где видно, что файл существует. Его владелец — пользователь asterisk.

2. Ошибка 500 при попытке установить FreePBX 14 на CentOS 8

Ошибка появляется при попытке открыть страницу FreePBX в браузере.

Причина: официально, FreePBX 14 поддерживает php 5, которая по умолчанию уже не устанавливается в CentOS 8. В php версии 7 один из методов класса gui_hidden считается устаревшим и система возвращает ошибку 500.

Решение: есть 2 варианта решения проблемы.

1) установить на CentOS 8 php версии 5.6. Для этого подключаем репозиторий remi:

dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

После чего можно устанавливать необходимые компоненты:

dnf install php56 php56-php-fpm php56-php-bcmath php56-php-gd php56-php-json php56-php-mbstring php56-php-mysqlnd php56-php-pear php56-php-snmp php56-php-zip

Открываем настройки для php:

vi /etc/opt/remi/php56/php.ini

Правим значения для следующих опций:

upload_max_filesize = 128M

post_max_size = 128M

date.timezone = «Europe/Moscow»

memory_limit = 512M

Открываем настройки php-fpm:

vi /etc/opt/remi/php56/php-fpm.d/www.conf

Задаем значения для следующих опций:

user = asterisk

group = asterisk

listen.acl_users = asterisk,apache

Запускаем php-fpm:

systemctl enable php56-php-fpm —now

Откроем настройки nginx:

vi /etc/nginx/nginx.conf

Для опции fastcgi_pass задаем значение:

        …
        location ~ \.php$ {
            …
            fastcgi_pass unix:/var/opt/remi/php56/run/php-fpm/www.sock;
            …

А также:

vi /etc/nginx/conf.d/php-fpm.conf

upstream php-fpm {
        server unix:/var/opt/remi/php56/run/php-fpm/www.sock;
}

Перезапускаем nginx:

systemctl restart nginx

Также потребовалось установить следующий модуль для FreePBX:

fwconsole ma downloadinstall soundlang

2) отключить отображение ошибки. Для этого открываем файл:

vi /etc/freepbx.conf

И добавляем строку:


$bootstrap_settings = false;

Однако, у меня данный способ не дал положительного результата. Страница FreePBX открылась, но с ошибкой «Can Not Connect to Asterisk», а сервис fwconsole при запуске выдавал ошибку. В итоге, самый правильный вариант — использовать официально поддерживаемую версию PHP.

Подготовка

Обновите систему:

sudo dnf -y update

Установите зависимости:

sudo dnf -y groupinstall  "Development Tools"

sudo dnf install -y @php tftp-server ncurses-devel sendmail sendmail-cf newt-devel libxml2-devel libtiff-devel gtk2-devel subversion kernel-devel git crontabs cronie cronie-anacron wget vim php-xml sqlite-devel net-tools gnutls-devel unixODBC

Установка и настройка сервера базы данных MariaDB

Установите MariaDB:

sudo dnf module install mariadb

Проверьте версию MariaDB:

rpm -qi mariadb-server
sudo systemctl enable --now mariadb

Настройте параметры безопасности командой:

mysql_secure_installation

Убедитесь, что вы:

  • Установили пароль пользователя базы данных root
  • Удалили анонимных пользователей
  • Запретили удаленный доступ пользователю root
  • Удалили тестовую базу данных и доступ к ней

Затем проверьте доступ для пользователя root:

mysql -u root -p

Установка Node.js 10 LTS

Проверьте доступные версии Node.js:

sudo dnf module list | grep nodejs

Установите версию по умолчанию (если необходимо можно вручную указать другую версию):

sudo dnf module install nodejs:10

Проверьте установленную версию:

node --version

Установка и настройка Apache Web Server

Установите httpd:

sudo dnf -y install @httpd

Удалите страницу по умолчанию index.html:

sudo rm -f /var/www/html/index.html
sudo systemctl enable --now httpd

Если у вас есть активная служба межсетевого экрана firewalld, откройте порты http и https:

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Установка и настройка PHP

Установите PHP и необходимые расширения:

sudo dnf -y install wget @php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysqlnd php-gettext php-bcmath php-zip php-xml  php-json php-process php-snmp

Скорректируйте настройки httpd

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

В /etc/php-fpm.d/www.conf пропишите:

listen.acl_users = asterisk

Запустите php-fpm и httpd:

sudo systemctl enable --now php-fpm httpd
sudo systemctl restart php-fpm httpd

Проверьте статус обоих служб:

sudo systemctl status php-fpm httpd

Установка и обновление системных пакетов и зависимостей

Установите необходимые системные пакеты, отсутствующие в базовом дистрибутиве.

yum -y groupinstall core base "Development tools"
yum -y install epel-release
yum config-manager --set-enabled PowerTools
yum -y install php php-gd php-mbstring php-mysqlnd php-pear php-pdo php-xml php-json
yum -y install e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libsepol-devel libxml2-devel libtiff-devel gmp unixODBC unixODBC-devel audiofile-devel libogg-devel openssl-devel zlib-devel perl-Date-Manip sox git net-tools psmisc iptables-services fail2ban gcc-c++ make gnutls-devel libxml2-devel ncurses-devel subversion doxygen texinfo curl-devel neon-devel uuid-devel libuuid-devel sqlite-devel sqlite speex-devel gsm-devel libtool libtool-ltdl libtool-ltdl-devel gtk2-devel newt-devel mariadb-server mariadb libedit libedit-devel mailx postfix
yum -y update
reboot

Установка Freepbx 15 на Centos 8

Нач­нем с само­го про­сто­го 15-я вер­сия на php 7. Кача­ем архив с офи­ци­аль­но­го сайта.

YAML

# cd ~
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz

1
2

# cd ~
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz

Рас­па­ко­вы­ва­ем архив.

YAML

# tar xfz freepbx-15.0-latest.tgz

1 # tar xfz freepbx-15.0-latest.tgz

Уста­нав­ли­ва­ем Freepbx 15 на Centos 8.

YAML

# cd freepbx
# ./start_asterisk start
# ./install -n

1
2
3

# cd freepbx
# ./start_asterisk start
# ./install -n

Если на mysql уста­но­ви­ли пароль root, то запус­кать уста­нов­ку сле­ду­ет с ука­за­ни­ем пароля.

YAML

# ./install -n —dbuser root —dbpass password

1 # ./install -n —dbuser root —dbpass password

Пере­за­пу­сти­те httpd.

YAML

# systemctl restart httpd

1 # systemctl restart httpd

На этом уста­нов­ка freepbx закон­че­на. Мож­но идти в веб интер­фейс и про­ве­рять. Сна­ча­ла созда­ди­те учет­ную запись адми­ни­стра­то­ра freepbx, потом зай­де­те под ней в панель управ­ле­ния asterisk. Реко­мен­дую выбрать англий­ский язык. Пере­вод на рус­ский так себе, с ним ино­гда быва­ет слож­но понять суть настроек.

Я заме­тил неболь­шую про­бле­му. Во вре­мя вхо­да панель обра­ща­ет­ся к како­му-то внеш­не­му ресур­су, кото­рый с мое­го сер­ве­ра пло­хо досту­пен. Из-за это­го очень дол­го выпол­ня­ет­ся вход, потом выле­та­ет ошиб­ка бэкен­да и загру­жа­ет­ся dashboard. В логах apache при этом была ошибка:

YAML

(70007)The timeout specified has expired: AH01075: Error dispatching request to : (polling), referer: http://10.20.1.23/admin/config.php

1 (70007)Thetimeoutspecifiedhasexpired: AH01075: Error dispatching request to : (polling),referer: http://10.20.1.23/admin/config.php

Не хва­та­ет дефолт­но­го вре­ме­ни в пара­мет­ре RequestReadTimeout. Ошиб­ка про­па­ла и вход стал выпол­нять­ся нор­маль­но после того, как я уве­ли­чил тай­мау­ты, доба­вив в /etc/httpd/conf/httpd.conf.

YAML

RequestReadTimeout header=20-600,MinRate=500 body=20,MinRate=500

1 RequestReadTimeoutheader=20-600,MinRate=500body=20,MinRate=500

Не забудь­те после это­го пере­за­пу­стить httpd.

Так же у меня была ошиб­ка с отоб­ра­же­ни­ем систем­ной инфор­ма­ции в видже­те System Overview. Вме­сто полез­ной инфор­ма­ции там была ошибка:

There was an error asking for Overview. Check the error logs for more information.

Как ее испра­вить, я так и не разобрался.

Подготовка сервера

1. Устанавливаем необходимые программы

Обновляем пакеты:

yum update

Устанавливаем пакеты:

yum install gcc wget ntpdate automake libtool

* gcc нужен для сборки исходников, wget — для загрузки файлов из командной строки; ntpdate — синхронизации времени; automake — участвует в создании Makefile при запуске configure; libtool — обеспечивает процесс сборки и использования динамических библиотек.

2. Настраиваем время

Устанавливаем временную зону:

timedatectl set-timezone Europe/Moscow

* в данном примере московское время.

Устанавливаем утилиту для синхронизации времени и запускаем ее:

yum install chrony

systemctl enable chronyd —now

3. Настройка безопасности:

Создаем новый сервис в брандмауэре:

firewall-cmd —permanent —new-service=asterisk

Добавим в сервис нужные порты:

firewall-cmd —permanent —service=asterisk —add-port=5060/tcp

firewall-cmd —permanent —service=asterisk —add-port=5060/udp

firewall-cmd —permanent —service=asterisk —add-port=5061/tcp

firewall-cmd —permanent —service=asterisk —add-port=5061/udp

firewall-cmd —permanent —service=asterisk —add-port=4569/udp

firewall-cmd —permanent —service=asterisk —add-port=5038/tcp

firewall-cmd —permanent —service=asterisk —add-port=10000-20000/udp

* где 5060 — SIP, 5061 — SIP over TLS, 4569 — IAX, 5038 — AMI (Asterisk Manager Interface), 10000-20000 — диапазон для динамических портов.

Теперь добавляем созданный сервис как разрешенный:

firewall-cmd —permanent —add-service=asterisk

и перезапускаем фаервол:

firewall-cmd —reload

Подготовка

  1. # yum -y update
  2. Выключить SELinux:
    # sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
    # sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config
    
  3. # reboot

    Дополнительные репозитарии:

    # rpm -Uvh http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
    # yum -y install epel-release
  4. # yum -y install net-tools mc make gcc kernel-devel kernel-headers gcc-c++ ncurses-devel jansson-devel libuuid-devel wget httpd fail2ban mariadb-server mariadb mariadb-devel php iksemel iksemel-devel crypto-utils openssl-devel gmime gmime-devel spandsp spandsp-devel openldap openldap-devel popt-devel  speex speex-devel libcurl-devel speex-tools svn sqlite-devel mod_ssl php-mysql php-pear-MDB2-Driver-mysqli php-mbstring php-gd php-mcrypt libxml2-devel lame bison audiofile-devel sox php-pear-DB php-posix atop htop telnet mpg123 bzip2 unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel mysql-connector-odbc
    # rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/libresample-0.1.3-12.el6.x86_64.rpm https://dl.fedoraproject.org/pub/epel/6/x86_64/libresample-devel-0.1.3-12.el6.x86_64.rpm
  5. # cd /root
  6. # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz 
    # tar -zxf asterisk-14-current.tar.gz
  7. # wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
    # tar -zxf libpri-current.tar.gz
    # wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
    # tar -zxf dahdi-linux-complete-current.tar.gz

Install Dependencies

Note that this uses an older PHP 5.6. FreePBX 15 supports PHP 7.1 and higher.

apt-get install -y openssh-server apache2 mysql-server mysql-client \
  mongodb curl sox mpg123 sqlite3 git uuid libodbc1 unixodbc unixodbc-bin \
  asterisk asterisk-core-sounds-en-wav asterisk-core-sounds-en-g722 \
  asterisk-dahdi asterisk-flite asterisk-modules asterisk-mp3 asterisk-mysql \
  asterisk-moh-opsound-g722 asterisk-moh-opsound-wav asterisk-opus \
  asterisk-voicemail dahdi dahdi-dkms dahdi-linux libapache2-mod-security2 \
  php5.6 php5.6-cgi php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-mbstring \
  php5.6-mysql php5.6-odbc php5.6-xml php5.6-bcmath php-pear libicu-dev gcc \
  g++ make postfix libapache2-mod-php5.6

As part of this install, you may be asked (possibly several times) for a mysql password. DO NOT SET A MYSQL PASSWORD AT THIS POINT. Your machine will automatically generate a secure password later in the installation.

Fix permissions for the Asterisk user

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
chsh -s /bin/bash asterisk
rm -rf /var/www/html

Remove any ‘sample’ config files left over, and fix errors

These are a security vulnerability and must be removed before installing freepbx. There is also an incompatibility in the Ubuntu-supplied asterisk.conf which needs to be fixed.

rm -rf /etc/asterisk/ext* /etc/asterisk/sip* /etc/asterisk/pj* /etc/asterisk/iax* /etc/asterisk/manager*
sed -i 's/.!.//' /etc/asterisk/asterisk.conf

Update Apache configuration

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/5.6/cgi/php.ini
sed -i 's/www-data/asterisk/' /etc/apache2/envvars
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
a2enmod rewrite
service apache2 restart

Fix ‘Pear-GetOpt’ compatibility issue.

The standard ‘pear-getopt’ uses ‘each’ which is Deprecated in PHP 7.  This simple patch fixes it

sed -i 's/ each(/ @each(/' /usr/share/php/Console/Getopt.php

Download and install package

mkdir -p /usr/lib/odbc
curl -s https://cdn.mysql.com/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.11-linux-ubuntu18.04-x86-64bit.tar.gz | \
  tar -C /usr/lib/odbc --strip-components=2 --wildcards -zxvf - */lib/*so

Configure ODBC

Note that this assumes you haven’t previously configured ODBC on this machine. If so, you will need to manually add the required data.

cat > /etc/odbc.ini << EOF

Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
Charset=utf-8
EOF
cat > /etc/odbcinst.ini << EOF

Description=ODBC for MySQL
Driver=/usr/lib/odbc/libmyodbc5w.so
Setup=/usr/lib/odbc/libodbcmy5S.so
FileUsage=1
EOF
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: