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

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

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

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке. Есть бесплатные курсы.

Внимание, это устаревшая статья, вышла новая версия материала по установке 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 я продолжу в будущих статьях.

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .

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

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

Рекомендую полезные материалы по Debian:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка сети
  • Обновление 8 до 9
  • Обновление 7 до 8
  • Включение логов cron
Подробная установка 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
  • Шлюз в интернет
  • Установка Asterisk
  • Asterisk+Freepbx
  • PostgreSQL для 1С
  • Настройка pptp
Подробное описание установки гипервизора 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
  • Тюнинг postgresl для 1C
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.
Ускорение работы 1С с postgresql и диагностика проблем производительности

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

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

  1. Zerox

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

  2. Аватар

    Добрый день. все делал по инструкции. Не получается
    После
    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
    пишет «команда не найдена»

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

    • Zerox

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

      • Аватар

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

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

        • Zerox

          Подводных камней в виртуальной машине нет. Я тоже в виртуальной среде настраивал, когда писал инструкцию.
          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
          вот тут не ошибка ли?

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.