В настоящее время большую популярность получил сервер голосовой связи Asterisk. Удобнее всего им управлять с помощью web панели администрирования Freepbx. Вопросом установки и настройки этого инструмента я бы и хотел заняться в этой статье. За основу возьмем сервер Debian 8. Установка на сервер Ubuntu будет аналогична с точностью до каждой команды с сервером Debian.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Содержание:
Что такое Freepbx
FreePBX - это удобный GUI (графический интерфейс пользователя), который управляет Asterisk - самым популярным общедоступным программным обеспечением в области компьютерной телефонии. FreePBX является продуктом Open Source, он разработан тысячами добровольцев по всему миру.
На сегодня FreePBX загружен более чем 5 000 000 раз и обслуживает более чем 500 000 активных телефонных систем. Если Вы никогда не слышали про FreePBX, то, вероятно, будете удивлены ее возможностями для Вашего бизнеса.
FreePBX - это основанный на web интерфейс, который позволяет управлять самым популярным на сегодняшний день сервером ip телефонии asterisk. FreePBX выпускается под лицензией GNU и может свободно использоваться конечными пользователями без какого-либо ограничения. Данный продукт является компонентом FreePBX Distro и некоторых других дистрибутивов.
Первый релиз системы 0.2 (28 ноября 2004 года) был назван AMP (Asterisk Management Portal). Но имя пришлось изменить, так как Asterisk является зарегистрированной торговой маркой Digium corporation.
С тех пор вышло множество обновлений, поддерживающие новые версии Astersik, добавлены новые меню и поддержка голосовой почты, очереди звонков, факсов, различных языков, устройств DAHDI и папок пользователей.
Поддерживаемое оборудование включает в себя устройства компаний Aastra Technologies, Algo, AND, AudioCodes, Cisco Systems, Cyberdata, Digium, Grandstream, Mitel, Panasonic, Polycom, Sangoma, Snom, Xorcom, and Yealink.
Что такое Freepbx Distro
FreePBX Distro - open source дистрибутив Linux на базе популярной операционной системы CentOS. Его можно использовать для быстрого разворачивания сервера Asterisk и панели управления Freepbx. Это вариант удобен для тех, кто не очень разбирается в linux и не хочет тратить время на ручную установку всех компонентов, необходимых для полноценной установки freepbx на отдельный сервер.
FreePBX Distro, в отличие от Elastix, выпускается самими разработчиками FreePBX, поэтому более динамично развивается и чаще выпускаются обновления. В него встроены Fail2Ban и IPTables, работает русский язык из коробки, настроен LAMP (Linux/Apache/MySQL).
Я не буду в данной статье касаться настройки системы из этого дистрибутива. Это тема отдельного разговора. Хотя там и говорить особо нечего, установка проходит достаточно просто и быстро.
Подготовка к установке Freepbx
Приступим к установке Freepbx. Предварительно, если вы еще не сделали, вам необходимо установить Debian сервер, а потом его настроить. Мы будем устанавливать на сервер следующей версии:
# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.0 (jessie) Release: 8.0 Codename: jessie
Первым делом устанавливаем зависимости:
# 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 php-db php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libiksemel-dev libiksemel-utils libiksemel3
Инсталлируем PearDB:
# pear uninstall db uninstall ok: channel://pear.php.net/DB-1.7.14 # pear install db-1.7.14 WARNING: "pear/DB" is deprecated in favor of "pear/MDB2" downloading DB-1.7.14.tgz ... Starting to download DB-1.7.14.tgz (133,103 bytes) .............................done: 133,103 bytes install ok: channel://pear.php.net/DB-1.7.14
Перезагружаем сервер:
# shutdown -r now
Установка asterisk 13
# 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-13-current.tar.gz # git clone https://github.com/akheron/jansson.git # wget http://www.pjsip.org/release/2.2.1/pjproject-2.2.1.tar.bz2
Собираем и ставим DAHDI:
# tar xvfz dahdi-linux-complete-current.tar.gz # cd dahdi-linux-complete-* # make all # make install # make config
Собираем и ставим LIBPRI:
# cd /usr/src # tar xvfz libpri-1.4-current.tar.gz # cd libpri-* # make # make install
Компилируем и устанавливаем pjproject
# cd /usr/src # tar -xjvf pjproject-2.2.1.tar.bz2 # cd pjproject-2.2.1 # CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr # make dep # make # make install
Компилируем и устанавливаем jansson
# cd /usr/src/jansson # autoreconf -i # ./configure # make # make install
Собираем и ставим Astersik 13:
# cd /usr/src # tar xvfz asterisk-13-current.tar.gz # cd asterisk-13.4.0 # ./configure
Если вылезает ошибка:
configure: error: *** uuid support not found (this typically means the uuid development package is missing)
Делаем следующее:
# contrib/scripts/install_prereq install
Выскочит окно, указываем код 7, если вы из России:
Продолжаем сборку:
# ./configure
Если все прошло без ошибок, продолжаем:
# contrib/scripts/get_mp3_source.sh # make menuselect
Выбираем отмеченные мной модули и продолжаем:
# make # make install # make config # ldconfig
Устанавливаем дополнительные звуки:
# mkdir -p /var/lib/asterisk/sounds # cd /var/lib/asterisk/sounds # wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz # tar xfz asterisk-extra-sounds-en-wav-current.tar.gz # rm -f asterisk-extra-sounds-en-wav-current.tar.gz # wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz # tar xfz asterisk-extra-sounds-en-g722-current.tar.gz # rm -f asterisk-extra-sounds-en-g722-current.tar.gz
Установка Freepbx 12
# cd /usr/src # wget http://mirror.freepbx.org/freepbx-12.0.43.tgz # tar xvfz freepbx-12.0.43.tgz
Создаем нового пользователя 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
Вносим изменения в конфиг 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 # service apache2 restart
Настраиваем базу данный mysql:
# mysqladmin -u root -p create asterisk # mysqladmin -u root -p create asteriskcdrdb # mysql -u root -p -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '123';" # mysql -u root -p -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '123';" # mysql -u root -p -e "flush privileges;"
Стартуем asterisk:
# /usr/src/freepbx/start_asterisk start STARTING ASTERISK Asterisk Started
Устанавливаем FreePBX:
# cd /usr/src/freepbx # ./install_amp --installdb --username=asteriskuser --password=123 Checking for PEAR DB..OK Checking for PEAR Console::Getopt..OK Using username: asteriskuser Using password: *** Checking user..OK Checking if Asterisk is running..running with PID: 37303..OK Checking for /etc/amportal.conf../etc/amportal.conf does not exist, copying default Creating new /etc/amportal.conf
Отвечаем на заданные вопросы. Я везде оставлял значения по-умолчанию, кроме адреса сервера. Пароли не забудьте поставить свои:
Enter your USERNAME to connect to the 'asterisk' database: [asteriskuser] Enter your PASSWORD to connect to the 'asterisk' database: [123] Enter the hostname of the 'asterisk' database: [localhost] Enter a USERNAME to connect to the Asterisk Manager interface: [admin] Enter a PASSWORD to connect to the Asterisk Manager interface: [amp111] 123 Enter the path to use for your AMP web root: [/var/www/html] Created /var/www/html Enter the IP ADDRESS or hostname used to access the AMP web-admin: [192.168.1.1] 192.168.8.101 Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]? [extensions] Enter directory in which to store AMP executable scripts: [/var/lib/asterisk/bin] Created /var/lib/asterisk/bin Enter directory in which to store super-user scripts: [/usr/local/sbin] /etc/amportal.conf writtenAssuming new install, --install-moh added to command line OK Reading /etc/amportal.conf..parsed amp_conf variables from /etc/amportal.conf: amp_conf [AMPDBHOST] => [localhost] amp_conf [AMPDBENGINE] => [mysql] amp_conf [AMPENGINE] => [asterisk] amp_conf [AMPMGRUSER] => [admin] amp_conf [AMPMGRPASS] => [123] amp_conf [AMPBIN] => [/var/lib/asterisk/bin] amp_conf [AMPSBIN] => [/usr/local/sbin] amp_conf [AMPWEBROOT] => [/var/www/html] amp_conf [AMPCGIBIN] => [/var/www/cgi-bin ] amp_conf [FOPWEBROOT] => [/var/www/html/panel] amp_conf [FOPPASSWORD] => [passw0rd] amp_conf [AUTHTYPE] => [database] amp_conf [AMPEXTENSIONS] => [extensions] amp_conf [AMPDBUSER] => [asteriskuser] amp_conf [AMPDBPASS] => [123] amp_conf [AMPWEBADDRESS] => [192.168.8.101] amp_conf [AMPDBNAME] => [asterisk] OK
Дальше идет установка, не буду приводить вывод. В конце установки будет сообщение:
**************************************** * At This Time Please Restart Asterisk * ****************************************
Продолжаем установку:
# amportal chown # amportal a ma installall
Идет долгая установка, что-то постоянно качается, распаковывается, устанавливается. В конце у меня вылетела ошибка:
Setting operator panel web root and enabling dev state....<br>Done<br>Setting callevents = yes....<br>Creating client symlink....<br>Done<br>Enabling voicemail box polling<br/>PHP Fatal error: Call to a member function send_request() on null in /var/www/html/admin/modules/voicemail/functions.inc.php on line 1154
Так как у меня уже был опыт установки предыдущих версий подобной связки, сразу полез проверять старые болячки. Открываем файл /etc/asterisk/manager.conf и видим в конце две строки:
#include manager_additional.conf #include manager_custom.conf
Меняем # на ; чтобы стало так:
;include manager_additional.conf ;include manager_custom.conf
Сохраняем файл и перечитываем конфиг астериска:
# asterisk -r # CLI> core reload
Выходим из консоли астериск и запускаем заново установку FreePBX:
# amportal a ma installall
Продолжается стандартный процесс, доустанавливается то, что не установилось ранее. В конце получаем сообщение:
SETTING FILE PERMISSIONS................Done Removing any dangling symlinks Dangling symlinks removed
Если получили это сообщение, значит установка прошла успешно. Доделываем:
# amportal a reload Please wait... Successfully reloaded
# amportal a ma refreshsignatures # amportal chown
# ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3 # amportal restart Please wait... STOPPING ASTERISK Waiting for Asterisk to Stop Gracefully... Asterisk Stopped SETTING FILE PERMISSIONS.............../var/lib/asterisk/bin/freepbx_engine: line 275: sudo: команда не найдена .Done Removing any dangling symlinks Dangling symlinks removed STARTING ASTERISK Asterisk Started
Все, на этом установка закончена. Теперь можно зайти по адресу http://192.168.8.101 и попасть в веб интерфейс freepbx:
Создаем пользователя и заходим в админку с этой учеткой:
На этом установка окончена, можно приступать к конфигурированию. Подробным примером настройки asterisk для чайников может служить моя статья. Хотя в ней речь идет о настройке без использования freepbx, какие-то вещи из статьи можете взять на вооружение.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.Дополнительные материалы по Debian
Рекомендую полезные материалы по Debian: |
Настройки системы |
---|
Подробная установка Debian 9 Stratch с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика.
Базовая настройка сервера Debian. Приведены практические советы по улучшению безопасности и удобства администрирования.
Подробное описание настройки сети в Debian - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
Обновление предыдущей версии Debian 8 Jessie до последней Debian 9 Stratch. Подробная инструкция с описанием по каждому этапу обновления.
Обновление версии Debian 7 wheezy до Debian 8 Jessie. Подробная инструкция с описанием по каждому этапу обновления.
Включение записи логов cron в Debian в отдельный файл и настройка ротации этого файла. Отключение логов в syslog.
|
Настройка программных комплексов |
Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке.
Настройка интернет шлюза на Debian. Включает в себя настройку iptables, nat, dhcp, dns, iftop.
Чистая установка Asterisk 13 на сервер под управлением Debian 8. Никаких дополнений и GUI, только vanilla asterisk.
Установка Freepbx 12 и Asterisk 13 на сервер под управлением Debian/Ubuntu. Подробное описание и разбор ошибок установки.
Рассказ об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива.
Описание установки и настройки pptp сервера в Debian с передачей статических маршрутов клиенту для организации доступа к ресурсам сети.
|
Разное |
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.
Ускорение работы 1С с postgresql и диагностика проблем производительности
|
Добрый день!
Скажите пожалуйста, не получается выполнить установку зависимостей в самом начале этой статьи. Может быть это в следствии того, что при установке debian я не поставил галочку 'web сервер'?
Если да, то как мне установить 'web сервер', не переустанавливая всю систему?
Сильно не пинайте, я новичек)
За ранее спасибо!
Это очень старая статья. Боюсь, что она безнадежно устарела. Если вы новичок, лучше возьмите готовый дистрибутив FreePBX Distro.
Добрый день.
А есть такая же статья только на основе CentOS7? Найти у вас не могу.
Да и в целом, что посоветуете: стоит ли вообще использовать FreePBX или изначально пилить чистый Asterisk?
Вот на centos - https://serveradmin.ru/ustanovka-asterisk-i-freepbx-na-centos-7/
Использовать или нет Freepbx, решает каждый сам для себя. Я предпочитаю ванильный asterisk. На нем проще реализовывать что-то нестандартное, но за всеми настройками лазить в консоль. Freepbx позволяет управлять через панель, но труднее кастомизировать настройки, особенное если они не типовые.
Ясно, спасибо.
А скажите, если мой сервер будет стоять за комбайном Mikrotik RB1100x4, то надобность в IPtables отпадает. Правильно?
И да, и нет. В целом, на самом сервере с астериск iptables не нужны для нормальной работы. Но я все равно их использую в связке с fail2ban. Это простой и эффективный способ защитить астериск от перебора учеток. Как это так же просто сделать на mikrotik - не знаю.
В целом спасибо за статью. Астериск встал, freePBX встал. Софтфоны регистрируются. Вот только не звонит ничего почему-то. Звонок отклонен и все тут. Ковырял, ковырял, ничего не наковырял))) В общем, не хватает статьи по настройки FreePBX :D
Все равно спасибо за ваш труд)
Скажите, а как быть чтобы установить PBX на Debian 9.9?
После установки FreePBX Distro, к нему периодически пропадает соединение (к веб морде по ssh да и Пинг так же пропадает) потом через некоторое время примерно через час соединение восстанавливается на минут 10-15 и снова пропадает.
ИП с которой я стучусь добавлено в белый лист и в ignoreip в fail2ban, не подскажете что может быть?
а почему 12, а не 13 или 14, уже вышел LTS релиз.
Можно поинтересоваться минимальными системными требованиями?
Думаю это будут минимальные системные требования самой системы. Начинать можно от одного ядра и 512 мб памяти. Но лучше от 1024 памяти.