FREEPBX В DEBIAN 10

Thank you for reading this post, don't forget to subscribe!

FreePBX – это гра­фи­че­ский интер­фейс и систе­ма управ­ле­ния с откры­тым исход­ным кодом для циф­ро­вой АТС Asterisk. Циф­ро­вая АТС Asterisk — сво­бод­ное реше­ние ком­пью­тер­ной теле­фо­нии (в том чис­ле, VoIP) с откры­тым исход­ным кодом от ком­па­нии Digium, пер­во­на­чаль­но раз­ра­бо­тан­ное Мар­ком Спен­се­ром. Имя про­ек­та про­изо­шло от назва­ния сим­во­ла "*" (англ. asterisk — «звёз­доч­ка»).

рас­смот­рим уста­нов­ку Asterisk на Debian 10. Связ­ка Asterisk + FreePBX поз­во­ля­ет исполь­зо­вать прак­ти­че­ски все про­то­ко­лы голо­со­вой свя­зи и видео свя­зи (SIP и H.323) и гиб­ко настра­и­вать голо­со­вую почту, кон­фе­ренц­связь, IVR (интер­ак­тив­ное голо­со­вое меню), осу­ществ­лять запись и хра­не­ние диа­ло­гов, управ­лять оче­ре­дя­ми звон­ков, рас­пре­де­лять звон­ки по внеш­ним и внут­рен­ним абонентам.

УСТАНОВКА ASTERISK НА DEBIAN 10

Для целей демон­стра­ции уста­нов­ки FreePBX давай­те уста­но­вим Asterisk из паке­тов Debian 10.

ШАГ 1. ПОДГОТОВКА СИСТЕМЫ

Добавь­те в систе­му репо­зи­то­рии backports для Debian для уста­нов­ки свя­зи odbc для mariadb:

sudo echo deb http://ftp.us.debian.org/debian/ buster-backports main >>/etc/apt/sources.list.d/backports.list

sudo echo deb-src http://ftp.us.debian.org/debian/ buster-backports main >> /etc/apt/sources.list.d/backports.list

Репо­зи­то­рии для уста­нов­ки раз­лич­ных вер­сий PHP:

sudo apt -y install lsb-release apt-transport-https ca-certificates

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Уста­но­ви­те репо­зи­то­рий Node.js:

sudo curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -

И запу­сти­те обнов­ле­ние системы:

sudo apt -y update && sudo apt -y upgrade

ШАГ 2. УСТАНОВКА НЕОБХОДИМЫХ ПАКЕТОВ

После обнов­ле­ния уста­но­ви­те необ­хо­ди­мые паке­ты, Asterisk и релиз PHP7.3, на базе кото­ро­го гаран­ти­ро­ван­но ста­биль­но будет рабо­тать FreePBX:

sudo apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-server mariadb-client bison flex php7.3 php7.3-curl php7.3-cli php7.3-common php7.3-mysql php-pear php7.3-gd php7.3-mbstring php7.3-intl php7.3-ldap php7.3-bcmath php7.3-xml curl sox libncurses5-dev libssl-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 unixodbc dirmngr asterisk asterisk-config asterisk-core-sounds-ru asterisk-core-sounds-ru-g722 asterisk-core-sounds-ru-gsm asterisk-core-sounds-ru-wav asterisk-modules asterisk-mp3 asterisk-mysql asterisk-ooh323 asterisk-opus asterisk-voicemail asterisk-voicemail-odbcstorage nodejs

Запу­сти­те asterisk, а авто­ма­ти­че­ский запуск при загруз­ке систе­мы отклю­чи­те, так как FreePBX зада­чи управ­ле­ния Asterisk берет на себя:

sudo systemctl restart asterisk

sudo systemctl disable asterisk

Что­бы под­клю­чить­ся из тер­ми­на­ла к кон­со­ли Asterisk наберите:

sudo asterisk -rvvv

 

Эта коман­да пока­зы­ва­ет вер­сию уста­нов­лен­но­го Asterisk:

core show version

А эта выво­дит спи­сок моду­лей Asterisk:

module show

Для выхо­да выполните:

exit

ШАГ 3. УСТАНОВКА ЗАВИСИМОСТЕЙ FREEPBX

Загру­зи­те FFMPEG-static и уста­но­ви­те его для управ­ле­ния звуками:

cd /usr/src

sudo wget "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz"

sudo tar xf ffmpeg-release-amd64-static.tar.xz

cd ffmpeg-4*

sudo mv ffmpeg /usr/local/bin

Уста­но­ви­те PEAR модуль, необ­хо­ди­мый для функ­ци­о­ни­ро­ва­ния FreePBX:

sudo pear install Console_Getopt

ШАГ 4. НАСТРОЙКА ASTERISK

Настрой­те пра­ва и создай­те необ­хо­ди­мые дирек­то­рии для рабо­ты Asterisk + FreePBX:

sudo chown asterisk. /var/run/asterisk

sudo chown -R asterisk. /etc/asterisk

sudo chown -R asterisk. /var/{lib,log,spool}/asterisk

sudo chown -R asterisk. /usr/lib/asterisk

Оста­но­ви­те Asterisk и изме­ни­те содер­жи­мое дирек­то­рии с его кон­фи­гу­ра­ци­он­ны­ми фай­ла­ми /etc/asterisk/

sudo systemctl stop asterisk

cd /etc/asterisk

ls /etc/asterisk/

Вве­ди­те после­до­ва­тель­но коман­ды по настрой­ке кон­фи­гу­ра­ции Asterisk:

sudo mkdir DIST

sudo mv * DIST

sudo cp DIST/asterisk.conf .

sudo sed -i 's/(!)//' asterisk.conf

sudo touch modules.conf

sudo touch cdr.conf

sudo touch /etc/asterisk/{modules,ari,statsd}.conf

sudo chown asterisk:asterisk /var/run/asterisk/*

sudo chmod 0777 /var/run/asterisk/*

ШАГ 5. НАСТРОЙКА WEB-СЕРВЕРА APACHE2

Выбе­ри­те вер­сию PHP 7.3 для веб-сервера:

sudo a2enmod php7.3

Для рабо­ты FreePBX необ­хо­ди­мо вне­сти изме­не­ния в кон­фи­гу­ра­ци­он­ные фай­лы php и веб-сервера:

sudo sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.3/apache2/php.ini

sudo sed -i 's/\(^memory_limit = \).*/\1256M/' /etc/php/7.3/apache2/php.ini

sudo sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf

sudo sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf

sudo a2enmod rewrite

sudo systemctl enable apache2

sudo rm /var/www/html/index.html

sudo systemctl restart apache2

ШАГ 6. НАСТРОЙКА ODBC

Вне­си­те изме­не­ния в фай­лы /etc/odbc.ini и /etc/odbcinst.ini для под­клю­че­ния Asterisk и FreePBX к MariaDB через кон­нек­тор ODBC так, как при­ве­де­но ниже:

sudo vi /etc/odbc.ini

 

sudo vi /etc/odbc.ini

ШАГ 6. НАСТРОЙКИ MARIADB

Запу­сти­те ути­ли­ту пер­во­на­чаль­ной настрой­ки MariaDB:

sudo mysql_secure_installation

Для един­ствен­но­го сер­ве­ра циф­ро­вой теле­фо­нии, хра­ня­ще­го исклю­чи­тель­но базы дан­ных Asterisk и FreePBX мож­но не уста­нав­ли­вать пароль супер­поль­зо­ва­те­ля. Одна­ко на рабо­чей машине, под­клю­чен­ной к Интер­нет насто­я­тель­но реко­мен­дую уста­но­вить все паро­ли. Вывод коман­ды и отве­ты на вопро­сы, каса­ю­щи­е­ся обес­пе­че­ния без­опас­но­сти уста­нов­ки MariaDB при­ве­ду ниже:

Set root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n]

На этом все необ­хо­ди­мые настрой­ки в кон­фи­гу­ра­цию Debian 10 внесены.

ШАГ 7. УСТАНОВКА FREEPBX

Теперь оста­лась уста­нов­ка freepbx. Перей­ди­те в ката­лог, в кото­ром хра­нят­ся исход­ные фай­лы системы:

cd /usr/src

Зака­чай­те архив с пак­том FreePBX вер­сии 14:

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

Пере­за­гру­зи­те маши­ну, что­бы про­дол­жить уста­нов­ку FreePBX. Если пере­за­груз­ки не про­изой­дёт, вы не смо­же­те управ­лять Asterisk из дис­три­бу­ти­ва FreePBX:

reboot

После пере­за­груз­ки открой­те тер­ми­нал и про­дол­жай­те настрой­ку FreePBX:

cd /usr/scr/freepbx*

sudo ./start_asterisk start

Про­верь­те, уда­лось ли запу­стить Asterisk из дис­три­бу­ти­ва FreePBX:

ps ax | grep asterisk

Создай­те дирек­то­рию для уста­нов­ки веб-интер­фей­са FreePBX, задай­те ее права:

sudo mkdir /var/www/freepbx

sudo chown asterisk:asterisk /var/www/freepbx

Если пла­ни­ру­ет­ся исполь­зо­вать WEB-сер­вер apache для рабо­ты толь­ко FreePBX, то уста­но­ви­те дирек­то­рию /var/www/freepbx основ­ной для сер­ве­ра apache

sed -i 's/\/var\/www\/html/\/var\/www\/freepbx/g' /etc/apache2/sites-available/000-default.conf

sed -i 's/\/var\/www\/html/\/var\/www\/freepbx/g' /etc/apache2/sites-available/default-ssl.conf

Нахо­дясь в дирек­то­рии /usr/src/freepbx запу­сти­те ути­ли­ту инстал­ля­ции веб-интер­фей­са FreePBX в создан­ное рас­по­ло­же­ние /var/www/freepbx. Ключ -n гово­рит о том, что все осталь­ные пара­мет­ры уста­нов­ки по-умол­ча­нию, в том чис­ле пароль супер­поль­зо­ва­те­ля root MariaDB пустой:

./install --webroot=/var/www/freepbx -n

В про­цес­се уста­нов­ки FreePBX под­гру­жа­ет необ­хо­ди­мые модули:

ШАГ 8. ПОДКЛЮЧЕНИЕ К ВЕБ-ИНТЕРФЕЙСУ FREEPBX

В резуль­та­те FreePBX будет уста­нов­лен, к нему мож­но будет под­клю­чить­ся, вве­дя с маши­ны адрес http://127.0.0.1/ или с любо­го дру­го­го устрой­ства с досту­пом по сети. Для это­го опре­де­лим «внеш­ний» IP-адрес устройства:

sudo ip a

В моем слу­чае это адрес 192.168.31.57, поэто­му после вво­да в бра­у­зе­ре http://192.168.31.57/ откро­ет­ся окно настрой­ки FreePBX.

В фина­ле реко­мен­дую уста­но­вить все необ­хо­ди­мые рас­ши­ре­ния FreePBX из тер­ми­на­ла с помо­щью коман­ды fwconsole

fwconsole ma installall

По завер­ше­нии уста­нов­ки пере­за­гру­зи­те FreePBX:

fwconsole reload

На этом уста­нов­ка FreePBX завершена.