Home » Linux » Debian » Asterisk 11 и FreePBX установка на Debian 7 wheezy

Asterisk 11 и FreePBX установка на Debian 7 wheezy

Недавно понадобилось установить и настроить Asterisk на сервере с os Debian 7 wheezy. Набор софта и операционная система известные и популярные, в интернете масса инструкций и гайдов. Но на деле все равно пришлось повозиться, возникли в процессе установки некоторые нюансы, о которых в других местах информации не нашел.

Внимание, это устаревшая статья, вышла новая версия материала по установке freepbx на debian/ubuntu с установкой последних версий дистрибутивов. Используйте эту статью только если вам нужны конкретно те версии, что указаны в материале.

Нюансы эти скорее всего связаны с различными версиями программ. Конкретно в этой статье я опишу установку сервера ip телефонии Astersik 11 и панели управления к нему FreePBX 2.11 на операционной системе Debian 7 wheezy

Подготавливаем Debian 7 к установке Asterisk и FreePBX

Мы имеем свежеустановленную Debian 7 с самой минимальной конфигурацией. Чистая система и ssh сервер для удаленного доступа.

Первым делом обновим систему:

# apt-get update && apt-get upgrade -y

Для удобства установим mc:

# apt-get install mc

И сделаем редактором по-умолчанию mcedit:

# update-alternatives --config editor
Selection Path Priority Status
 ------------------------------------------------------------
 * 0 /bin/nano 40 auto mode
 1 /bin/nano 40 manual mode
 2 /usr/bin/mcedit 25 manual mode
 3 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/mcedit to provide /usr/bin/editor (editor) in manual mode

Теперь настроим автоматическое обновление времени через интернет:

# apt-get install ntp

После установки ntp запустится, подключится к интернету, синхронизирует время и пропишет себя в автозапуск.

Предварительная настройка закончена. Теперь ставим необходимые пакеты для asterisk и freepbx:

# apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client libgnutls26 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

Переустанавливаем PearDB:

 # pear uninstall db
 # pear install db-1.7.14

Перезагружаемся:

# reboot

Устанавливаем и настраиваем Asterisk

Скачиваем исходники:

# 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-11-current.tar.gz
Компилируем и устанавливаем DAHDI:
# tar xvfz dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-2.10.0.1+2.10.0.1
# make all
# make install
# make config
Компилируем и устанавливаем LIBPRI:
# cd /usr/src
# tar xvfz libpri-1.4-current.tar.gz
# cd libpri-1.4.15
# make
# make install
Компилируем и устанавливаем Asterisk:
# cd /usr/src
# tar xvfz asterisk-11-current.tar.gz
# cd asterisk-11.15.0
# ./configure
Скачиваем файлы для поддержки mp3 формата:
# contrib/scripts/get_mp3_source.sh
# make menuselect
Выбираем модули в категории Add-ons — app_mysql, cdr_mysql, format_mp3, res_config_mysql
# make
# make install
# make config

Устанавливаем и настраиваем FreePBX

Скачиваем и распаковываем FreePBX:

# export VER_FREEPBX=2.11
# cd /usr/src
# git clone http://git.freepbx.org/scm/freepbx/framework.git freepbx
# cd freepbx
# git checkout release/${VER_FREEPBX}

Теперь создадим пользователя Asterisk и назначим права:

# adduser asterisk --disabled-password --gecos "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
# chown -R asterisk. /var/www/

Редактируем конфиги php и 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
[ ok ] Restarting web server: apache2 ... waiting .

Создаем пользователя и базы данных в mysql для asterisk:

# mysqladmin -u root -p create asterisk
# mysqladmin -u root -p create asteriskcdrdb
# mysql -u root -p asterisk < SQL/newinstall.sql
# mysql -u root -p asteriskcdrdb < SQL/cdr_mysql_table.sql
# 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;"

Запускаем astersik:

# /usr/src/freepbx/start_asterisk start

Проверяем, запустился или нет:

# netstat -ltupn | grep asterisk
 tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 28133/asterisk
 udp 0 0 0.0.0.0:4569 0.0.0.0:* 28133/asterisk
 udp 0 0 0.0.0.0:5000 0.0.0.0:* 28133/asterisk
 udp 0 0 0.0.0.0:4520 0.0.0.0:* 28133/asterisk
 udp 0 0 0.0.0.0:5060 0.0.0.0:* 28133/asterisk

Если видите что-то подобное, то все в порядке.
Устанавливаем FreePBX:

# /usr/src/freepbx/install_amp --webroot /var/www

Отвечаем на вопросы:

Checking for PEAR DB..OK
 Checking for PEAR Console::Getopt..OK
 Using Webroot at /var/www
 Checking user..OK
 Checking if Asterisk is running..running with PID: 28133..OK
 Checking for /etc/amportal.conf../etc/amportal.conf does not exist, copying default
 PHP Warning: copy(amportal.conf): failed to open stream: No such file or directory in /usr/src/freepbx/install_amp on line 1035
 PHP Warning: chown(): No such file or directory in /usr/src/freepbx/install_amp on line 1039
 PHP Warning: chgrp(): No such file or directory in /usr/src/freepbx/install_amp on line 1040
 PHP Warning: chmod(): No such file or directory in /usr/src/freepbx/install_amp on line 1041
 Creating new /etc/amportal.conf
 Enter your USERNAME to connect to the 'asterisk' database:
 [asteriskuser]
 Enter your PASSWORD to connect to the 'asterisk' database:
 [amp109] 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]Enter the IP ADDRESS or hostname used to access the AMP web-admin:
 [192.168.1.1] 192.168.1.111
 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]

Продолжаем установку:

# amportal a ma installall

Если вы получаете в конце ошибку:

Failed to install due to the following missing required module(s):<br /><br />manager<br /><br />The following error(s) occured:
 - Failed to run installation scripts

а в выводе следующей команды

# amportal a reload

получаете сообщение:

[FATAL] Unable to connect to Asterisk Manager from /var/lib/asterisk/bin/retrieve_conf, aborting

То нужно сделать следующее:
Остановить asterisk:

# /etc/init.d/asterisk stop

Отредактировать файл /etc/asterisk/manager.conf
В последний двух строчках вместо символов # поставить ; Asterisk не понимает привычный символ решетки, в его синтаксисе комментарии выделяются точкой с запятой.
Было:

#include manager_additional.conf
#include manager_custom.conf

Стало:

;include manager_additional.conf
;include manager_custom.conf

Теперь запускаем asterisk:

# /usr/src/freepbx/start_asterisk start

И снова выполняем:

# amportal a reload
Please wait...Successfully reloaded

Теперь все готово. Можно заходить через браузер по адресу http://192.168.1.111/ и продолжать настройку. Вместо 192.168.1.111 вводите адрес своего сервера. О дальнейшей настройке asterisk с FreePBX я продолжу в будущих статьях.


Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по Debian

Рекомендую полезные материалы по Debian:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка сети
  • Обновление 7 до 8
  • Включение логов cron
Подробная установка Debian 8 Jessie с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика.
Базовая настройка сервера Debian 8. Приведены практические советы по улучшению безопасности и удобства администрирования.
Подробное описание настройки сети в Debian - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
Обновление предыдущей версии Debian 7 wheezy до последней Debian 8 Jessie. Подробная инструкция с описанием по каждому этапу обновления.
Включение записи логов cron в Debian в отдельный файл и настройка ротации этого файла. Отключение логов в syslog.
Настройка программных комплексов
 
  • Proxmox
  • Шлюз в интернет
  • Asterisk+Freepbx
  • Настройка pptp
Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке.
Настройка интернет шлюза на Debian 8. Включает в себя настройку iptables, nat, dhcp, dns, iftop.
Установка Freepbx 12 и Asterisk 13 на сервер под управлением Debian/Ubuntu. Подробное описание и разбор ошибок установки.
Описание установки и настройки pptp сервера в Debian с передачей статических маршрутов клиенту для организации доступа к ресурсам сети.
Разное
  • Бэкап с помощью rsync
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

Комментарии:

16 комментариев

  1. Добрый день. все делал по инструкции. Не получается
    После
    Created /var/lib/asterisk/bin
    Enter directory in which to store super-user scripts:
    [/usr/local/sbin]

    вылезает следующее:
    http://i9.pixs.ru/storage/9/5/2/11jpg_9117870_15581952.jpg
    Почему?
    # amportal a ma installall
    пишет «команда не найдена»

    Подскажите, что делать?

    • Добрый вечер. Судя по скрину, у вас не установился Asterisk. Не знаю, чем тут помочь. Попробуйте аккуратно все проделать еще раз и проверить, что все установилось. Попробуйте запустить asterisk. Он запускается?

      • Для начала я переустановил систему по этой инструкции:
        http://forum.mini-server.ru/viewtopic.php?f=42&t=778
        Вообще я установил debian 7 на виртуальную машину. Есть ли подводные камни — пока не знаю 🙂 Т.е. в консоле видно, что asterisk запущен, но отклика нет, либо я что-то не правильно делаю, т.к. у меня виртуальная машина.
        Вопросы:
        1.зачем делать mcedit редактором по-умолчанию?
        2./etc/apt/sources.list нужно править для того, чтобы все заработало по этой инструкции?

        зы: Кстати, в этой статье в некоторых местах синтаксические ошибки, не могу оперативно их найти.

        • Подводных камней в виртуальной машине нет. Я тоже в виртуальной среде настраивал, когда писал инструкцию.
          1. У меня это привычка от Freebsd пришла. Там если не сделать mcedit редактором по-умолчанию, то им будет vi. Кто хоть раз видел vi, тому объяснять не нужно что это такое 🙂 А дальше привык к mcedit и везде меняю на него. В Debian по-умолчанию nano, это, конечно, не vi, но mcedit более удобен и функционален.
          2. Не обязательно. Я не правил ничего, у меня стоят стандартные от яндекса:

          deb http://mirror.yandex.ru/debian/ wheezy main
          deb-src http://mirror.yandex.ru/debian/ wheezy main

          В статье все необходимое скачивается напрямую по ссылкам.

          Ошибки возможны, так как писал по большей части сам, копипастив и переводя основное с официальной инструкции freepbx.

        • /usr/src/freepbx/install_amp—webroot /var/www
          вот тут не ошибка ли?

  2. Спасибо большое за все замечания. Я понял, что движок сайта сильно повредил синтаксис, нужно все внимательно проверять. Сделаю это в ближайшее время.

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

Ваш e-mail не будет опубликован.