Установка Asterisk 14 и FreePBX 13. Первоначальная настройка FreePBX с нуля. Кодек Opus. php5.6. Odbc. Тотальное руководство.
Данное руководство можно использовать, как для установки чистого Asterisk, так и в связке с Freepbx.
При установке системы, на стадии software selection выберите, как минимум openssh.Если выбран LAMP сервер, или позднее, при установке mysql-server из репозитория, вам будет предложено задать пароль root пользователя MySQL. Если оставить поле пустым, задать пароль можно будет после установки FreePBX 13 командой mysql:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Password');
или утилитой проверки безопасности:
mysql_secure_installation
Задайте пароль root пользователя системы
$ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password update successfully
Получите права супер пользователя
$ sudo -i
Сделайте апдейт системы
# apt update && sudo apt upgrade -y
Установите требуемые зависимости
apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\ mysql-client bison flex 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 libopus-dev opus-tools libiksemel-dev libiksemel-utils libiksemel3 xmlstarlet
Установка php5.6 вместо php7.0
Ubuntu 16 по умолчанию ставит из репозитория php7.0, а FreePBX с ним не дружит. Если вы планируете использовать не чистый Asterisk, надо установить php5.6.
apt install -y software-properties-common python-software-properties
add-apt-repository ppa:ondrej/php
apt update -y
apt install -y php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-odbc php5.6-db php5.6-gd php5.6-xml curl libapache2-mod-php5.6
apt install -y php-pear
a2dismod php7.0
a2enmod php5.6
systemctl restart apache2
update-alternatives --set php /usr/bin/php5.6
Перезагрузите сервер, чтобы загрузить свежую версию ядра после апдейта. Если вы уверены, что загружена последняя версия, можно не перезагружать.
reboot
Убедитесь, что mod_rewrite включен, чтобы избежать возможных атак.
a2enmod rewrite service apache2 restart
Поддержка Console_Getopt
pear install Console_Getopt
Asterisk 14 установка
Как использовать данное руководство.
Блоки команд с ключом ‘&&’ могут быть скопированы вместе и будут выполняться последовательно. ‘&&’ выполняет переход к следующей команде, при условии успешного выполнения предыдущей. Если вы хотите полностью, пошагово контролировать процесс установки, выполните каждую команду отдельно, без ввода ‘&&’.
Скачайте исходные файлы
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-current.tar.gz && wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz && git clone https://github.com/akheron/jansson.git && wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2 && echo " ¯\_(ツ)_/¯ "
Скомпилируйте и установите Lame (mp3)
cd /usr/src && tar zxvf lame-3.98.4.tar.gz && cd lame-3.98.4 && ./configure && make && make install && echo " ¯\_(ツ)_/¯ "
Скомпилируйте и установите DAHDI и LibPRI
cd /usr/src && tar xvfz dahdi-linux-complete-current.tar.gz && tar xvfz libpri-current.tar.gz && rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz && cd dahdi-linux-complete-* && make all && make install && make config && cd /usr/src/libpri-* && make && make install && echo " ¯\_(ツ)_/¯ "
Скомпилируйте и установите pjproject
(Требуется для поддержки драйвера SIP канала PjSIP)
cd /usr/src && tar -xjvf pjproject-2.*.*.tar.bz2 && cd pjproject-* && CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\ --disable-resample --disable-video --disable-opencore-amr && make dep && make && make install && echo " ¯\_(ツ)_/¯ "
Скомпилируйте и установите jansson
cd /usr/src/jansson && autoreconf -i && ./configure && make && make install && echo " ¯\_(ツ)_/¯ "
Скомпилируйте и установите Asterisk
cd /usr/src && tar xvfz asterisk-14-current.tar.gz && rm -f asterisk-14-current.tar.gz && cd asterisk-* && ./configure && contrib/scripts/get_mp3_source.sh && make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль ‘format_mp3’. ‘res_config_mysql’ вынесено в addons по условиям лицензирования.
В разделе Core Sound Packages выберите поддержку русскоязычных файлов (если требуется) В разделе Extra Sound Packages выберите дополнительные звуковые файлы.
Asterisk 14 + OPUS
Asterisk 14 поддерживает Opus без дополнительных патчей. Зависимости (xmlstarlet) должны быть установлены до конфигурации. В разделе Codec Translators убедитесь, что модуль кодека доступен для компиляции и отметьте для установки.
Для сохранения нажмите Save & Exit и продолжите установку.
make && make install && make config && ldconfig
Если вы не планируете использовать FreePBX, команда make basic-pbx установит минимальный начальный набор конфигов Asterisk.
Запуск от имени пользователя ‘Asterisk’
Расcкомментируйте в /etc/default/asterisk
AST_USER="asterisk" AST_GROUP="asterisk"
Создайте пользователя 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
Перезагрузите сервер и проверьте состояние Asterisk подключившись к консоли
asterisk -vvvr
Asterisk 14.2.0, Copyright (C) 1999 - 2016, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 14.2.0 currently running on ubuntu (pid = 1269) ubuntu*CLI>
Убедитесь, что Asterisk запущен под своим пользователем:
ps aux | grep asterisk asterisk 1269 4.7 11.4 1446068 57504 ? Ssl 07:57 0:07 /usr/sbin/asterisk -U asterisk -G asterisk
FreePBX 13: установка и настройка с нуля
Настроим Apache
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/5.6/apache2/php.ini && sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /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 && systemctl restart apache2
настроим ODBC
cat >> /etc/odbcinst.ini << EOF [MySQL] Description = ODBC for MySQL Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so FileUsage = 1 EOF
cat >> /etc/odbc.ini << EOF [MySQL-asteriskcdrdb] Description=MySQL connection to 'asteriskcdrdb' database driver=MySQL server=localhost database=asteriskcdrdb Port=3306 Socket=/var/run/mysqld/mysqld.sock option=3 EOF
Скачайте FreePBX
cd /usr/src && wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
Распакуйте и установите
tar vxfz freepbx-13.0-latest.tgz && cd /usr/src/freepbx && ./install -n
Если при установке Ubuntu вы задали root пароль MySQL
запустите скрипт установки без ключа -n.
Установка пройдет в интерактивном режиме,
во время которого вам будет предложено ввести пароль:
./install Database engine [mysql]: Database name [asterisk]: CDR Database name [asteriskcdrdb]: Database username [root]: Database password:
Подключимся к FreePBX
http://IP.Address.FreePBX.Server/admin
Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX
Первоначальная настройка FreePBX 13
Advanced Settings

Поддержка русского языка в интерфейсе
Чтобы отображался выбор локализаций FreePBX, включите данную опцию в Settings > Advanced Settings:
Show Language setting – YesNo
Если переключение на русский не работает, выполните следующие действия:
echo "russian ru_RU.UTF-8" >> /etc/locale.alias
locale-gen ru_RU
systemctl restart apache2
Country Indications Tone
Выберите тоны КПВ, занято и тд в российском стандарте, если требуется:
Settings > Anvanced Settings – Dialplan and Operational
Обратите внимание на опцию CW Enabled by Default.
Можно отключить Call Waiting, по умолчанию, для вновь создаваемых екстеншенов.
По умолчанию включено.
Speaking Clock Time Format
Установите 24-х часовой формат времени.
Ringtime default
Измените время вызова екстеншена по умолчанию, если требуется:
SIP channel driver определяет использование драйверов SIP. По умолчанию и chan_sip и res_pjsipвключены, но можно выбрать какой-то один из них.