Подготовка
-
# yum -y update
- Выключить SELinux:
# vi /etc/selinux/config
-
# reboot
-
Дополнительные репозитарии:
# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm # yum -y install epel-release
-
# yum -y install net-tools mc make gcc kernel-devel gcc-c++ ncurses-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 # 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
- Включаем fail2ban:
# vi /etc/fail2ban/jail.local # cat /etc/fail2ban/jail.local enable = true enable = true # systemctl enable fail2ban.service # systemctl restart fail2ban.service
-
# cd /root
-
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz # tar -zxf asterisk-11-current.tar.gz
-
# wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz # tar -zxf libpri-1.4-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
3. Установка FreePBX
cd /usr/src/ wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz tar vxfz freepbx-14.0-latest.tgz cd freepbx touch /etc/asterisk/ari.conf ./start_asterisk start ./install
В процессе установки вам необходимо будет ввести данные:
Database engine : Database name : CDR Database name : Database username : Database password:
Если вы понимаете, что делаете, можете обойтись командой:
./install -n --dbuser=asteriskcdruser --dbpass=asteriskcdrpassword
3.1 Возможные ошибки и их решение
Проблема
Решение
Reading /etc/asterisk/asterisk.conf…Error!
Unable to read /etc/asterisk/asterisk.conf or it was missing a directories section
Если вы столкнулись с данной проблемой, то проверьте файл asterisk.conf, который лежит в директории /etc/asterisk. В данном файле уберите символ (!) напротив строки
Checking if Asterisk is running and we can talk to it as the ‘asterisk’ user…Error!
Error communicating with Asterisk. Ensure that Asterisk is properly installed and running as the asterisk user
Asterisk does not appear to be running
Try starting Asterisk with the ‘./start_asterisk start’ command in this directory
Убедитесь, что сервис Asterisk запущен командой service asterisk start
Invalid Database Permissions. The error was: SQLSTATE Access denied for user ‘root’@’localhost’ (using password: NO)
Запустите ./install вместо ./install -n и введите все параметры вручную
В частности, обратите внимание, когда система попросит пароль к базе данных database password
пароль должен быть пустым. Если же ошибка не уходит, попробуйте ввести пароль root пользователя
Error(s) have occured, the following is the retrieve_conf output: exit: 1
Exception: Unable to connect to Asterisk Manager from /var/lib/asterisk/bin/retrieve_conf, aborting in file /var/lib/asterisk/bin/retrieve_conf on line 11
Stack trace:
1
Exception->() /var/lib/asterisk/bin/retrieve_conf:11
Если вы столкнулись с данной проблемой, то при подключении к web-интерфейсу FreePBX, вы увидите ошибку Can Not Connect to Asterisk. Это значит, что amportal (fwconsole) ждёт от вас правильного пароля, который он берёт из БД. Чтобы решить данную проблему, необходимо ввести следующие команды:
amportal a m
mysql> UPDATE freepbx_settings SET value=’amp111′ WHERE keyword=’AMPMGRPASS’;
Установка закончена и теперь необходимо перейти по адресу http://ВАШ_IP/admin и произвести настройку администратора, указав логин и пароль.
Установка 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 настроен.
Подготовка к инсталляции FreePBX
5.1. Запуск и проверка MariaDB
Запустите СУБД Maria DB:
systemctl enable mariadb.service systemctl start mariadb
Проверка:
Примерный ожидаемый вывод:
mysql 7160 1 1 10:44 ? 00:00:00 /usr/libexec/mysqld --basedir=/usr root 7227 8399 0 10:44 pts/0 00:00:00 grep --color=auto mysql
5.2. Настройка, запуск и проверка Apache
Внесите правки в конфигурационные файлы Apache:
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini 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/AllowOverride none/AllowOverride All/' /etc/httpd/conf/httpd.conf
Запустите web-сервер Apache:
systemctl enable httpd.service systemctl start httpd
Проверка:
Примерный ожидаемый вывод:
root 6674 1 0 09:33 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 6676 6674 0 09:33 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 6677 6674 0 09:33 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 6678 6674 0 09:33 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 6679 6674 0 09:33 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND apache 6680 6674 0 09:33 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
Загрузите и установите NodeJS:
curl -sL https://rpm.nodesource.com/setup_10.x | bash - yum -y install nodejs
5.4. Корректировка владельца процессов PHP-FPM
sed -i 's/user = apache/user = asterisk/' /etc/php-fpm.d/www.conf sed -i 's/user = root/user = asterisk/' /etc/php-fpm.d/www.conf sed -i 's/group = apache/group = asterisk/' /etc/php-fpm.d/www.conf sed -i 's/group = root/group = asterisk/' /etc/php-fpm.d/www.conf
5.5. Запуск скрипта безопасной работы MySQL
Запустите скрипт:
В ходе интерактивной работы скрипта ответьте на вопросы следующим образом:
Enter current password for root (enter for none): <Нажмите Enter> Set root password? [Y/n] Y New password: Qwerty123456 Re-enter new password: Qwerty123456 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] Y
5.6. Замена драйвера ODBC
Драйвер ODBC, входящий в состав дистрибутива Asterisk, некорректно поддерживает кодировку UTF-8, что приводит к неправильному отображению кириллицы в БД CDR. Для исправления данной проблемы необходимо заменить стандартный драйвер (UNICODE) на драйвер ANSI.
Загрузите, установите и активируйте yum-репозиторий MySQL:
cd /usr/src mkdir mysql-community-release cd mysql-community-release wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm rpm -Uvh mysql80-community-release-el8-1.noarch.rpm yum config-manager --set-enabled mysql80-community
Установите корректную версию драйвера ODBC из репозитория MySQL community:
Отредактируйте файл
Найдите в указанном файле секцию
Добавьте в конец данной секции следующую строку:
Убедитесь, что для всех остальных секций, присутствующих в файле, установлено значение
Данная корректировка позволит избежать нежелательного обновления сервера БД при обновлении системы.
Замена драйвера ODBC
Проверьте наличие строк в файле
Driver=/usr/lib64/libmyodbcXa.so
В случае отсутствия данных строк, следует загрузить библиотеку и добавить указанные выше строки вручную.
В контексте данного пункта X – номер версии, x – номер подверсии коннектора ODBC.
5.7. Задание директории для записей разговоров
Измените директорию, в которой будут храниться записи разговоров:
rmdir /var/spool/asterisk/monitor mkdir /home/asterisk/monitor/ ln -s /home/asterisk/monitor/ /var/spool/asterisk/ chown -R asterisk:asterisk /home/asterisk/
5.8. Настройка автоматического удаления записей вызовов
Запустите редактор файла crontab:
Добавьте в файл следующие строки:
31 3 * * * find /home/asterisk/monitor/ -type f -mtime +120 -exec rm -rf {} \; 32 3 * * * find /home/asterisk/monitor/ -type d -exec rmdir -p {\} \;
Сохраните изменения:
Первоначальная настройка Ubuntu
При установке Ubuntu выберите обязательно OpenSSH server и LAMP сервер. Установите дополнительные пакеты на ваше усмотрение.
В ходе установки системы вам будет предложено задать пароль root пользователя MySQL, если вы не уверены, можно отставить пустым.
Если пароль задан, он потребуется в дальнейшем для работы с MySQL.
Установите требуемые зависимости
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 libmyodbc
Перезагрузите сервер
Это требуется чтобы загрузить свежую версию ядра после апгрейда. Если вы уверены что загруженная версия последняя, можно не перезагружаться.
reboot
Установите PearDB
pear uninstall db pear channel-update pear.php.net pear install -Z db-1.7.14
Error: Error: cannot download "pear/DB"
Error: Error: cannot download "pear/DB"
Ошибка при установке DB
(На данный момент, я не до разобрался в причине этой проблемы, но после танцев с бубном, все заработало.)
root@asterisk:/usr/src# 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 could not extract the package.xml file from "/build/buildd/php5-5.5.9+dfsg/pear-build-download/DB-1.7.14.tgz" Download of "pear/DB" succeeded, but it is not a valid package archive Error: cannot download "pear/DB" Download failed install failed
Решение — установим вручную
Смотрим путь:
pear config-get php_dir
В моем случае это:
/usr/share/php
Качаем DB 1.7.14
cd /usr/src/ wget http://download.pear.php.net/package/DB-1.7.14.tgz tar zvxf DB-1.7.14.tgz
Копируем вручную:
cp -R /usr/src/DB-1.7.14/DB /usr/share/php/DB cp /usr/src/DB-1.7.14/DB.php /usr/share/php/DB.php
Далее при вводе pear install db-1.7.14, получаем ответ что уже установлено.
root@asterisk:/usr/share/php# pear install db-1.7.14 pear/db is already installed and is the same as the released version 1.7.14 install failed
Перед установкой
Желательно что бы установка OS была произведена с полного образа, вместо netinstall
Проверьте правильность установленной тайм-зоны и при необходимости измените ее.
Переведите SELinux в «разрешающий» (Permissive) режим следующими командами:
sudo setenforce 0 sudo sed -i 's/\(^SELINUX=\).*/\SELINUX=permissive/' /etc/selinux/config
Либо полностью отключите его:
sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config
Перезапустите сервер и проверьте статус:
sestatus
Убедитесь, что репозиторий EPEL добавлен в вашу систему:
dnf repolist epel
Если он не обнаружен добавьте его:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf config-manager --set-enabled PowerTools
Установите:
dnf update dnf install openssl openssl-devel dnf install libedit-devel dnf install libuuid-devel
Установите Development tools:
sudo dnf group -y install "Development Tools" dnf install git wget vim net-tools sqlite-devel psmisc ncurses-devel libtermcap-devel newt-devel libxml2-devel libtiff-devel gtk2-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) crontabs cronie-anacron
Загрузите и установите Jansson:
cd /usr/src/ git clone https://github.com/akheron/jansson.git cd jansson autoreconf -i ./configure --prefix=/usr/ make && make install
Загрузите и установите PJSIP:
cd /usr/src/ git clone https://github.com/pjsip/pjproject.git cd pjproject ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr make dep make make install ldconfig
Установка Asterisk на Ubuntu из исходников
Первым делом вам нужно установить зависимости для работы программы:
Дальше мы можем перейти к сборке программы, сначала скачаем исходный код из официального сайта:
Для распаковки исходников наберите:
Дальше нам нужно перейти в папку с исходниками, но мы не знаем точную версию программы. У нас есть мажорная версия 17, но минорную версию мы не знаем. Поэтому используйте такую команду:
Перед тем как выполнить сборку и установку Asterisk на Ubuntu необходимо установить нужные mp3 модули:
Эти команды позволят вам установить некоторые зависимости для проигрывания mp3. Затем установите нужные зависимости для этих модулей:
Выполнение может занять некоторое время, а также вам нужно будет ввести код страны. Дальше подготовим конфигурационные файлы для сборки:
Затем надо немного настроить процесс сборки:
Используйте клавиши со стрелками для перемещения по меню. Для выбора какого-либо пункта используйте Enter. Сначала включите необходимые дополнения на вкладке Add-ons. Например, как на снимке:
Затем перейдите в раздел Core Sound Packages и включите там необходимые пакеты, например:
Аналогично сделайте в разделе Music on Hold:
Когда закончите с настройкой выберите Save & Exit с помощью клавиши Tab:
Осталось выполнить сборку программы:
Затем установка:
Когда установка будет завершена, выполните такую команду, чтобы не создавать сотни конфигурационных файлов вручную:
Чтобы установить скрипты инициализации, которые позволят запускать asterisk автоматически, при каждой загрузке выполните:
Затем для обновления кэша библиотек выполните такую команду:
Теперь вы можете запустить сервер asterisk и убедится, что все действительно работает:
И смотрим информацию про утилиту через терминал:
Если все было сделано правильно и установка Asterisk на Ubuntu с нуля прошла успешно, то все будет работать.
Разметка жесткого диска
Тема разметки диска раньше была достаточно спорной и вызывала много дискуссий и споров. Делали отдельно разделы под корень /, домашнюю директорию /home, под логи /var/logs и т.д. Мне кажется, что сейчас все это стало неактуально. Сервера общего назначения переехали в виртуальные среды, а там можно и дополнительный диск выделить под образовавшиеся нужды, либо увеличить текущий. Нет необходимости заранее продумывать на много шагов вперед, можно без проблем потом добавить дисковое пространство.
Если же вы настраиваете железный сервер, то скорее всего четко знаете для чего он нужен и разбиваете уже в зависимости от его прямого назначения. Я сам лично, если нет каких-то особых требований к серверу, создаю только один общий раздел /, lvm не использую. Не вижу в нем смысла в виртуальных машинах. А на железо я ставлю только гипервизоры, там lvm под системный раздел тоже не нужен.
Далее нужно выбрать жесткий диск, на который будет установлена система. Если у вас он только один, как у меня, то выбирать не из чего.
Указываем использовать все свободное место диска.
Проверяем предлагаемую схему разбивки. Если все в порядке, продолжаем.
Соглашаемся с записью изменений на диск. Начинается непосредственно установка системы. Нужно подождать некоторое время, обычно несколько минут.
На следующем этапе установки системы, вам будет задан вопрос по поводу дополнительного диска с пакетами. Вам будет предложено проверить другой диск для установки дополнительных пакетов.
Отказываемся и идем дальше. Теперь нужно выбрать зеркало, с которым будет работать пакетный менеджер apt. Выбираем свою страну и подходящее зеркало. Я выбираю Russian Federation и зеркало Yandex.Mirror.
Далее нас просят указать прокси. Скорее всего вы им не пользуетесь, поэтому строку можно оставить пустой. Если это не так, то укажите адрес proxy сервера.
Нас спрашивают о том, хотим ли мы делиться анонимной статистической информацией об использовании различного ПО на сервере. Я обычно не делюсь.
Выбираем набор дополнительного ПО, которое будет установлено на сервер debian вместе с основной системой. Я никогда не ставлю ничего, кроме ssh сервера и системных утилит.
Все остальное можно установить потом. На последнем этапе установки нас спрашивают про загрузчик grub — установить ли нам его. В подавляющем большинстве случаев это нужно сделать. Если вы не знаете, нужно или нет, значит 100% нужно. Без загрузчика можно обойтись в очень специфических ситуациях, которые мы рассматривать не будем в этой инструкции по установке debian. Так что устанавливаем grub на единственных жесткий диск.
Перезагружаем сервер. Установка завершена, он полностью готов к работе. Не забывайте, что по-умолчанию, на сервер нужно подключаться под учетной записью обычного пользователя, не root. После установки debian, предлагаю выполнить предварительную настройку сервера.
Возможные проблемы
Рассмотрим решение некоторых проблем, с которыми мы можем столкнуться в процессе настройки.
Ошибка отображается при просмотре статуса сервиса, сразу после его запуска:
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.
Fix Ubuntu/Debian Paths
Debian and Ubuntu use /usr/share/asterisk for things like MOH and Sounds. As sounds are now controlled by FreePBX, you need to delete the system sounds, and link them to the correct location.
rm -rf /var/lib/asterisk/moh ln -s /usr/share/asterisk/moh /var/lib/asterisk/moh rm -rf /usr/share/asterisk/sounds ln -s /var/lib/asterisk/sounds /usr/share/asterisk/sounds chown -R asterisk.asterisk /usr/share/asterisk
Download and Install FreePBX 14.
cd /usr/src wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz tar zxf freepbx-14.0-latest.tgz cd freepbx ./install -n
Настройка Asterisk в Ubuntu 16.04
Программа запускается от суперпользователя. Но нам нужно, чтобы ее можно было запустить ее от пользователя asterisk, а поэтому нужно выполнить еще несколько настроек. Так ваша система будет в большей безопасности. Для начала нужно остановить запущенный сервис:
sudo service asterisk stop
Дальше добавьте группу и пользователя asterisk:
groupadd asterisk $ useradd -d /var/lib/asterisk -g asterisk asterisk
Дальше нам нужно изменить скрипт инициализации так, чтобы программа запускалась от имени нужного пользователя. Мы можем отредактировать файл /etc/default/asterisk вручную, но проще использовать такие команды:
sed -i ‘s/#AST_USER=»asterisk»/AST_USER=»asterisk»/g’ /etc/default/asterisk $ sed -i ‘s/#AST_GROUP=»asterisk»/AST_GROUP=»asterisk»/g’ /etc/default/asterisk
Для того чтобы все работало правильно, пользователю asterisk нужно дать доступ ко всем каталогам программы:
chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var//asterisk /usr/lib/asterisk
Также укажем правильные настройки пользователя для полей runuser и rungroup в файле asterisk.conf:
sed -i ‘s/;runuser = asterisk/runuser = asterisk/g’ /etc/asterisk/asterisk.conf
$ sed -i ‘s/;rungroup = asterisk/rungroup = asterisk/g’ /etc/asterisk/asterisk.conf
Когда все будет готово запустите ранее остановленную службу или перезагрузите, если не останавливали:
sudo service asterisk start
Если пользователь и группа — asterisk, а значит мы сделали все правильно.
Настройка Mikrotik
Нужно настроить проброс портов и защиту.
IP-Firewall-жмем на плюсик:
Так же можно/желательно делать перезагрузку системы в автоматическом режиме по расписанию, для сброса зависшего модема, у меня завис через 5 дней работы, а рядом никого, пришлось ехать и в ручную перегружать.
Желательно настроить VPN доступ к микротику из интернета, для разруливания внештатных ситуаций по случайно забаненым адресам абонентов.
Долго собирал из разных источников эту работающую инструкцию. Может кому то и поможет.
P.S. Добавлена возможность отправки СМС через модем из SIP клиента, например Zoiper.
Установка FreePBX
Вносим необходимые правки в файлы конфигураций php, apache и применяем сделанные изменения в них:
1 |
sed -i ‘s/\(^upload_max_filesize = \).*/\1 256M/’ /etc/php/5.6/apache2/php.ini sed -i ‘s/\(^memory_limit = \).*/\1 256M/’ /etc/php/5.6/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 a2enmod rewrite service apache2 restart |
Создаем файл конфигурации /etc/odbcinst.ini:
1 |
cat <<EOF > /etc/odbcinst.ini Description = ODBC for MySQL (MariaDB) |
Создаем файл конфигурации /etc/odbc.ini
1 |
cat <<EOF > /etc/odbc.ini Description = MySQL connection to ‘asteriskcdrdb’ database |
Создадим базу данных для работы FreePBX:
1 | mysql -u root -p |
1 |
CREATE DATABASE asterisk default charset utf8; CREATE DATABASE asteriskcdrdb default charset utf8; GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY ‘asterpass’; GRANT ALL PRIVILEGES ON asteriskcdrdb.* to asteriskuser@localhost IDENTIFIED BY ‘asterpass’; FLUSH PRIVILEGES; EXIT |
Переходим в каталог с дистрибутивом FreePBX, запускаем Asterisk и выполняем установку:
1 |
cd freepbx/ ./start_asterisk start ./install -n —dbuser=asteriskuser —dbpass=asterpass |
Установка завершена, через Web браузер заходим в консоль FreePBX:
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
Registration Settings
Registrations
registertimeout. Повторяет попытки регистрации каждые N секунд, указанные в registertimeout до успешной регистрации, или при достижении указанного ограничения в registrationattempts.
registrationattempts. Количество попыток регистрации. Значение 0 соответствует бесконечному числу попыток. Обычное значение указывается 0 для того, чтобы Астериск продолжал попытки зарегистрироваться при пропадании локальной сети или маршрута в публичных сетях.
- 20 (registertimeout)
- 0 (registerattempts)
Registration Times
minexpiry. Минимальное значение действия регистрации/подписки.
maxepiry. Максимально возможное время действия для входящих регистраций.
defaultexpiry. Дефолтное значение действия входящих и исходящих регистраций.
- 60 (minexpiry)
- 3600 (maxexpiry)
- 120 (defaultexpiry)
Заключение
Мы установили оригинальную версию asterisk 13 на сервер под управлением debian 8 без каких-либо дополнений и web панелей. Дальше можно приступать к настройке. Я рекомендую воспользоваться моей инструкцией по базовой настройке asterisk с нуля. Там подробно рассказано как сконфигурировать основной функционал, который удовлетворит потребности в телефонии для среднестатистического офиса. Настройка включает в себя так же запись разговоров и подробную статистику звонков.
Онлайн курсы по Mikrotik
Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .
Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
- Знания, ориентированные на практику;
- Реальные ситуации и задачи;
- Лучшее из международных программ.
Помогла статья? Подписывайся на telegram канал автора
Рекомендую полезные материалы по 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 и диагностика проблем производительности |