Установка Asterisk 14 + Freepbx 13 Ubuntu 16.04
Установка 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-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>
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
libmyodbc ubuntu 16.04
Пакета libmyodbc больше нет в репозиториях Ubuntu начиная с версии Xenial.
Скачаем нужный коннектор (требуется регистрация):
https://dev.mysql.com/downloads/connector/odbc/
или по прямой ссылке:
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit.tar.gz
Распакуем:
tar -zxvf mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit.tar.gz
И скопируем в директорию /usr/lib/x86_64-linux-gnu/odbc/:
cd mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit/lib cp libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/
Конфигурацию DSN и odbcinst см. ниже
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)
Для установки Pjproject и Asterisk 14, рекомендуется использовать Pjproject Bundled Version. В этом случае компиляцию Pjproject из исходников можно пропустить (под спойлером).
Скомпилируйте и установите Asterisk
cd /usr/src && tar xvfz asterisk-14-current.tar.gz && rm -f asterisk-14-current.tar.gz && cd asterisk-* && ./contrib/scripts/install_prereq install && ./configure --with-pjproject-bundled --with-crypto --with-ssl=ssl --with-srtp && 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: установка и настройка с нуля
Прежде всего обновите сертификаты сервера:
sudo -u asterisk gpg --refresh-keys --keyserver pool.sks-keyservers.net
Настроим Apache
sed -i 's/\(^upload_max_filesize = \).*/\256M/' /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] Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so UsageCount=2 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
Проблема с созданием таблицы cdr БД asteriskcdrdb при установке FreePBX
В исходниках FreePBX тип поля calldate таблицы cdr задано как datetime.
Это вызывает ошибку при создании таблицы.
Решение
изменить в файле:
/usr/src/freepbx/installlib/SQL/cdr.sql
тип данных поля calldate с datetime на varchar(32).
было:
calldate datetime NOT NULL default '0000-00-00 00:00:00',
стало:
calldate varchar(32) NOT NULL default '0000-00-00 00:00:00',
Распакуйте и установите FreePBX
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 включены, но можно выбрать какой-то один из них.