Установка Asterisk и FreePBX на Ubuntu 10.04

Asterisk Asterisk это свободная АТС (PBX)для IP-телефонии. Это то, что большие и не очень компании используют для управления внутренними и внешними телефонными звонками. Asterisk применяется как движок для АТС с разнообразными оболочками управления, одну из ни используют для создания коробочной АТС под названием Trixbox. Возможно использование Asterisk и без оболочек, но это довольно-таки не просто. Специально для того, чтобы облегчить жизнь пользователям и администратору используется такая оболочка, как FreePBX. FreePBX FreePBX это графический интерфейс для Asterisk. FreePBX использует web интерфейс, которым можно управлять звёздочкой с любого места и гораздо проще чем из командной строки. Он использует модули, которые расширяют функционал, как, например, Firefox. Для серверов, рекомендуется обновить релиз Ubuntu:
apt-get install update-manager-core
отредактировать /etc/update-manager/release-upgrades и установить Prompt=normal Обновить релиз, следуя инструкциям на экране:
do-release-upgrade
УстановкаAsterisk And FreePBX Переключитесь в режим суперпользователя командой:
sudo su
Выполняем обновление:
apt-get update
apt-get upgrade
Установите MySQL:
apt-get install mysql-server
Введите пароль по запросу. Устанавливаем MySQL, PHP, заголовки ядра для компиляции Asterisk
apt-get install build-essential linux-headers-`uname -r` 
openssh-server bison flex apache2 php5 php5-curl 
php5-cli php5-mysql php-pear php-db php5-gd curl 
sox libncurses5-dev libssl-dev libmysqlclient15-dev 
mpg123 libxml2-dev binutils gcc phpmyadmin g++ libxml2-dev 
ncurses-dev php5-cli php-pear php-db 
Заходим в каталог, куда будем скачивать исходники:
cd /usr/src
Скачиваем последнюю стабильную версию на данный момент (скачать и проверить можно тут: http://downloads.asterisk.org/pub/telephony/asterisk/releases/
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.20.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.6.2.3.tar.gz
Распаковываем все исходники в /usr/src/
tar -vxzf asterisk-1.6.2.20.tar.gz
tar -vxzf asterisk-addons-1.6.2.3.tar.gz
Компилируем Asterisk в следующем порядке:
cd asterisk-1.6.2.20
./configure
make && make install
make samples 
cd asterisk-addons-1.6.2.1
./configure
make && make install
make samples
Скачиваем и распаковываем дополнительные звуки:
cd /var/lib/asterisk/sounds
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-alaw-current.tar.gz
tar -vxzf asterisk-extra-sounds-en-alaw-current.tar.gz
Создаём пользователя Asterisk в Linux:
adduser asterisk --disabled-password --no-create-home --gecos "asterisk PBX user"
Добавляем пользователя в группы:
adduser www-data asterisk
Резирвируем конфигурационный файл Apache:
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
Настраиваем конфиг Apache и разрешения:
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
chown -R asterisk:asterisk /var/www
chown -R asterisk:asterisk /etc/phpmyadmin
chown -R asterisk:asterisk /var/lib/phpmyadmin
chown -R asterisk:asterisk /usr/share/phpmyadmin
Создаём сценарий запуска/остановки сервиса Asterisk:
cd /usr/src/asterisk-1.6.2.20/contrib/init.d/
cp rc.debian.asterisk /etc/init.d/asterisk
Отредактируем конфигурационный файл: /etc/init.d/asterisk
DAEMON=/usr/sbin/asterisk
ASTVARRUNDIR=/var/run/asterisk
ASTETCDIR=/etc/asterisk
Проверьте правильность разрешений:
chmod 755 /etc/init.d/asterisk
chmod +x /etc/init.d/asterisk
chown asterisk:asterisk /etc/init.d/asterisk
Настройте запуск Asterisk при старте компьютера:
update-rc.d asterisk defaults 90 10
Скачиваем и распаковываем свежую FreePBX:
cd /usr/src
wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz
tar -vxzf freepbx-2.9.0.tar.gz
cd freepbx-2.9.0/
Копируем настройки Amportal:
cp amportal.conf /etc/
Устнаваливаем переменные окружение. Эти переменные будут содержать пароль для MySQL, для того чтобы скрипты срабатывали автоматически. Один - это администраторский пароль, а второй - пароль к базе данных Asterisk. Эти переменные исчезнут, как только терминальная сессия закроется. Но я рекомендую вычистить их из файла ~/.bash_history
export MYSQL_ROOT_PW=abcd
export ASTERISK_DB_PW=wxyz
Запускаем скрипты базы данных:
mysqladmin -u root -p${MYSQL_ROOT_PW} create asterisk
mysqladmin -u root -p${MYSQL_ROOT_PW} create asteriskcdrdb
mysql -u root -p${MYSQL_ROOT_PW} asterisk < SQL/newinstall.sql
mysql -u root -p${MYSQL_ROOT_PW} asteriskcdrdb < SQL/cdr_mysql_table.sql
mysql -u root -p${MYSQL_ROOT_PW} <<-END_PRIVS
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY "${ASTERISK_DB_PW}";
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY "${ASTERISK_DB_PW}";
flush privileges;
END_PRIVS
Добавляем пароль из базы данных в конфигурационный файл amportal:
sed -i "s/# \(AMPDBUSER=.*\)/\1/" /etc/amportal.conf
sed -i "s/# \(AMPDBPASS=\).*/\1${ASTERISK_DB_PW}/" /etc/amportal.conf
sed -i "s@\(AMPWEBROOT=\).*@\1/var/www/@" /etc/amportal.conf
sed -i "s@\(FOPWEBROOT=\).*@\1/var/www/panel@" /etc/amportal.conf
sed -i "s@\(FOPWEBADDRESS=\).*@PUTIPADDRESS@" /etc/amportal.conf
Устанавливаем максимальный размер файла для загрузки в 120МБ.
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
Изменяем разрешения для файлов и каталогов к которым Asterisk должен иметь доступ:
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /var/www/
Небольшой твик в конфигурационном файле:
sed -i '1 s/\(\[directories\]\).*/\1/' /etc/asterisk/asterisk.conf
Запускаем Asterisk
./start_asterisk start
Устанавливаем (наконец-то) FreePBX (в случае с 2.8.0-rc1 надо запустить этот файл два раза):
./install_amp --username=asteriskuser --password=xyzdbfrt
Перезапускаем Apache
/etc/init.d/apache2 restart
Делаем симлинк для файлов "Music On Hold":
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
Запускаем FreePBX
amportal start
Теперь можно подключаться через веб-интерфейс http://ваш_IP_адрес: Если логин/пароль не подходят, то сбрасываем аутентификацию:
amportal admin auth_none
Заходим через веб-интерфейс и включаем возможность аутентификации: http://ваш_IP_адрес/admin/config.php?type=tool&display=advancedsettings Allow Login With DB Credentials=TRUE Включаем аутентификацию в FreePBX:
amportal admin auth_database
При ошибке: Symlink from modules failed retrieve_conf failed to sym link: /etc/asterisk/sip_notify.conf from core/etc This can result in FATAL failures to your PBX. If the target file exists and not identical, the symlink will not occur and you should rename the target file to allow the automatic sym link to occur and remove this error, unless this is an intentional customization. Added 15 minutes ago (retrieve_conf.SYMLINK) Нужно удалить файл /etc/asterisk/sip_notify.con и перезапустить FreePBX (amportal restart) Не переключается язык в freepbx Проблема возникает в web-интерфейсе при выборе языка (любого) ничего не происходит. Язык с Английского не меняется ни на какой другой. При это модуль languages установлен. Решение: Открываем список локализаций
vim /usr/share/locale/locale.alias
Удаляем строку с кодировкой для russian и добавляем 3 строки вместо нее:
russian ru
ru ru_RU
ru_RU ru_RU.UTF-8
Затем:
# locale-gen ru_RU
# /etc/init.d/apache2 restart
Меняем default asterisk manager password:
sed -i -e 's/amp111/10asterisk10/g' /etc/asterisk/extensions_additional.conf /etc/asterisk/manager.conf /etc/asterisk/phpagi.conf /etc/amportal.conf
Заходим в веб-интерфейс (FreePBX Advanced Settings) и открываем скрытые настройки: Display Readonly Settings=TRUE Override Readonly Settings=TRUE Меняем дефоултный пароль amp111 на свой! Перезагружаем
amportal restart

One thought on “Установка Asterisk и FreePBX на Ubuntu 10.04

  1. Sergey

    Добрый вечер помогите кто в теме пытаюсь по статье поставить астерикса – дошол до команды openssh-server bison flex apache2 php5 php5-curl а система говорит что команда не найдена….перед этим ручками отдельно поставил сервер Заранее спасибо…

Добавить комментарий