Андрей Смирнов
Время чтения: ~11 мин.
Просмотров: 43

Простая установка Asterisk + FreePBX для начинающих

image001.jpg

Настройка Asterisk с нуля не займет очень много времени даже у непрофессионала. Asterisk – программное обеспечение телефонии, которое превосходит по всем функциям другие серверы для осуществления ATC.

Лицензия Asterisk свободная, что позволяет пользоваться этой программой многим людям.

С каждым годом Астериск все больше и больше развивается, благодаря увеличению ресурсов.

Freepbx: настройка с нуля

Интерфейс Freepbhx нужен для более простой настройки Asterisk и управления VoIP-телефонией. Главное преимущество – человеку не надо исправлять самому все текстовые файлы. Эта программа помогает переводить язык программы в виде текста, который поймет пользователь. Для настройки Freepbhx надо установить программу на компьютер.

Для того чтобы установить интерфейс, требуется:

  1. Скачать FreePBX 13 Distro. Выбирать версию, опираясь на программное обеспечение компьютера.
  2. Записать образ системы на диск, используя утилиты.
  3. Изменить параметры загрузки системы.
  4. С этого диска загрузить машину.
  5. Выбрать версию PBX.
  6. Выбрать режим Full install
  7. Нажать ВК.
  8. Придумать и установить пароль.
  9. Перезагрузить компьютер и заходить в аккаунт как пользователь с root-правами.

image001-300x240.jpg

Замечание! Чтобы зайти с другого компьютера, нужно ввести IP-адрес и снова задать логин и пароль.

Установка Asterisk

Установка и настройка окажется простой, если соблюдать пошагово инструкцию.

Если нужна только VoIP-сеть, то можно установить только asterisk. Но лучшим вариантом станет установка трех пакетов.

Драйвер dahdi используется при цифровом оборудовании. Для обмена данными с периферийным оборудованием нужен драйвер. Принцип настройкиAsterisk заключается в следующем:

сервер Asterisk<->chan_dahdi<-> Драйвер dahdi<-> Карта <-> Телефон/Коммутатор/Телефонная сеть

Библиотека libpri необходима для использования TDM-интерфейсов ISDN: PRI (PrimaryRateInterface) и BRI (BasicRateInterface). Libri делится на каналы по времени – Time Division Multiplexing.

Можно рассмотреть установку Asterisk из исходников. Такой способ установки дает возможность установить Asterisk с нуля.

Важно! Есть несколько условий для установки и настройки программы.

  • Версия ядра системы должна быть не ниже 2.6.
  • Обязательное наличие файлов заголовков в системе.
  • Присутствие компилятора gccctermcap и openssl.

Проверив все эти моменты, можно приступать к установке. Для этого надо перейти на сайте в Download и загрузить такие архивы:

  • «asterisk»
  • «asterisk-sounds»
  • «asterisk-addons»
  • «zaptel»
  • «libpri»

После этого скопировать файлы на сервер и разместить их в папке «/usr/src/.».

Далее надо запустить терминал в сервере.

Затем распаковать каждый архив командой «tar-xzf<имя >tar.gz».

Потом перейти в каждую папку при помощи команды «cd<имя>».

Закончив, надо выполнить определенные команды для настройки:

  • «./configure» (это подготовит программу к сборке)
  • «make» (команда для сборки)
  • «makeinstall» (установка программы)

Для установки необходимых пакетов не нужно прилагать особых усилий. Астериск обладает автоматизацией пакетов, поэтому для этого нужен скрипт install_prereq, который можно найти в подкаталоге contrib/scripts, где есть исходные коды.

Нужно зайти в этот подкаталог и запустить скрипт. С помощью него необходимые пакеты будут установлены.

Таким образом, при соблюдении всех действий Asterisk для чайников будет готов.

Как настроить Asterisk на Ubuntu

Соблюдая пошаговую инструкцию, можно просто установить Asterisk на Ubuntu:

  1. Надо скачать на Ubuntu.
  2. Установить пакеты для корректной сборки DAHDI и LibPRI.
  3. Загрузить исходник (необходимо ввести «wget…» вместе со ссылкой на загрузку.
  4. Распаковать программу при помощи команды «tarzxvf».
  5. Зайти в директорию с Asterisk.
  6. Ввести «contrib/scripts/install_prereqinstall», чтобы загрузить утилиты из Asterisk.
  7. Для запуска программы надо написать эту команду, добавив «-unpackaged».
  8. Повторно зайти в каталог с программой.
  9. Заставка появится при вводе «. /configure».
  10. Повторить все то же самое, что делают при запуске Asterisk.

image003-1-300x234.png

Запуск Asterisk:

  1. Открыть конфигурационный файл: vi /etc/asterisk/asterisk.conf.
  2. Создать учетную запись asterisk в системе: useraddasterisk–m.
  3. Задать права: chown -R asterisk:asterisk /var/log/asterisk.
  4. Проверить конфигурацию: asterisk –c.

Запуск Астериск из скриптов загрузки:

su — asterisk -c asterisk

Сборка chanh323:

[asterisk@newtmp]$ cd asterisk-1.0.1

[asterisk@new asterisk-1.0.1]$ cd channels/h323

[asterisk@new h323]$ make

g++ -g -c -fno-rtti -o ast_h323.o -march=i686 -DPBYTE_ORDER=PLITTLE_ENDIAN -DN

DEBUG -DDO_CRASH —

DDEBUG_THREADS -pipe -Wall -fPIC -DP_LINUX -D_REENTRANT -D_GNU_SOURCE -DP_HAS_S

EMAPHORES -DP_SSL —

DP_PTHREADS -DPHAS_TEMPLATES -DPTRACING -DP_USE_PRAGMA -I../../include

-I/home/asterisk/pwlib/include/ptlib/unix -I/home/asterisk/pwlib/include

-I/home/asterisk/openh323/include -Wno-missing-prototypes -Wno-missing-declarations ast_h323.cpp

chan_h323.h:31: warning: `sockaddr_inbindaddr’ defined but not used arcr libchanh323.a ast_h323.o

[asterisk@new h323]$

[asterisk@new h323]$ cd ../..

Как установить Asterisk на Windows

  1. Скачать VirtualBox.
  2. Скачать Asterisk для VirtualBox.
  3. Установить VirtualBox.
  4. Нажать везде «Согласен».
  5. Нажать «Файл», а потом «Импорт конфигураций».
  6. Запустить машину и провести остальные настройки.

Совет! Более подробно с настройкой телефонии Астериск можно ознакомиться здесь:

Чтобы скачать пакеты голосовых сообщений, надо:

  1. Перейти в папку «contrib/scripts/» с помощью команды «cd».
  2. Открыть «get_mp3_source.sh».
  3. Ввести «makeinstall».
  4. Открыть консоль Asterisk.
  5. Сделать файлы при помощи «makesamples».
  6. Запустить функцию «service asterisk start».

Основным конфигурационным файлом является asterisk.conf. Отсюда берется информация о местоположении файлов в системе.

Файл конфигурации, который пригодится для набора некоторых команд:

  • conf (голосовые почтовые ящики при команде VoiceMail).
  • conf (конфедерация, применяемая установкой Festival).
  • conf (структура, необходимая для указания AlarmReceiver).
  • conf (настройка тонов с указанием Playtones).
  • conf (конфигурация, которая используется командой DUNDiLookup).
  • conf (конфигурация для того, чтобы установить очередь звонков и их параметров для команды Queue).

Файлы конфигурации каналов Asterisk:

  • conf (канал IАX2).
  • conf (канал SIP).
  • conf (канал DАHDi).

Частые ошибки в установке и настройке Asterisk

  • Не отключены анонимные звонки и использован контекст для плана нумерации.

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

sip.conf [general] allowguest=no

  • Отсутствие библиотеки sqlite или ее компонентов для разработчиков для сборки программ.

Чтобы решить эту проблему, надо использовать CentOS с пакетом sqlite-devel: yum -y install sqlite-devel

  • Не получается зарегистрировать Asterisk на сервере ru.

Для решения этой проблемы надо проверить правильность ввода пароля, SIP ID. Также необходимо проверить, как сотрудник создан в «Личном кабинете»: правильно или нет.

  • Отклонение входящего вызова Астериксом.

Надо проверить, находится ли пользователь в регистрации. Необходимо ввести команду sipshowregistry в консоле Астериск.

  • Прохождение звука через одну сторону.

Нужно выбрать либо поддержку nat в Asterisk, либо поддержку SIP. Второй вариант решения проблемы – установка directmedia=nonat. Еще одним способом станет установка debug в Asterisk, с помощью которого можно будет отслеживать все запросы и аудио-трафик.

  • Не получается исходящему вызову пройти.

Для этого надо написать: exten => _XXXXXX,1,Dial(DAHDI/g1/${EXTEN})

Изменив номер, можно решить проблему.

Заключение

Настройка Asterisk с нуля не окажется трудной как специалисту, так и новичку. Asterisk является отличным решением компьютерной телефонии.

Сервис работает на многих операционных системах, которые можно подобрать под версию ядра системы пользователя. Астериск обладает множеством функций, таких как конференц-связь, голосовая почта, Calldetailrecord и другие.

Астериск доступен в Ubuntu, но его также можно установить и на Windows.

Для удобства можно использовать Freepbx, так как это функциональный интерфейс для настройки Астериска. Он переводит текст программы на понятный язык, что облегчает задачу. С помощью данной программы можно легко менять количество абонентов, так как платформа очень гибкая и многое позволяет.

Не надо ставить лишние пробелы и ошибаться в написании команд. Совсем незаметные ошибки могут не допустить работу программы.

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

Ситуация

В сети на сегодняшний день достаточно много описаний по развертыванию IP телефонии и в основном это два варианта:

  • Берём готовый дистрибутив в виде установочного образа (Elastix,Trixbox etc…) и в результате получаем рабочий комплекс не имея никаких знаний в Linux
  • Устанавливаем комплекс самостоятельно занимаясь при этом компиляцией из исходных кодов и ручной правкой множества конфигурационных файлов.

У каждого варианта имеются как достоинства, так и недостатки. Если первый способ подразумевает практически нулевую подготовку и дает возможность получить результат ничего не поняв, как это работает, то второй напротив требует обширных знаний в linux и очень сложен для начинающих хоть и обеспечивает высокую гибкость и масштабирование.

Предпосылки

В процессе внедрения IP телефонии в одной из компаний с разветвленной структурой филиалов рассматривались оба варианта но оба не устраивало по ряду причин:

  • Бюджет на проект не подразумевал затрат на привлечение сторонних компаний для развертывания проекта, весь комплекс телефонии было решено развертывать своими силами.
  • Большинство системных администраторов в филиалах были не знакомы с Linux системами и являлись чистыми Winows админами.
  • Требовалось заложить высокую гибкость системы под будущие, еще не придуманные задачи.

Перед нами встала дилемма, с одной стороны проще настроить сервера и разослать их в регионы, а с другой весь груз сопровождения такого «черного ящика» ложится на наши плечи, а нас мало. В общем нас самих такая ситуация не устраивала. Вариант заказа внедрения сторонней компании был сразу отметен руководством по финансовым причинам. Вариант с готовым дистрибутивом тоже отпал, поскольку проект подразумевал необходимость расширения функционала телефонии под нужды компании с учетом особенностей филиалов и это расширение необходимо было выполнять силами местных сотрудников. То есть без обучения nix системам никак.

Решение

Мы решили пойти путем более сложным и трудозатратным для нас, но дешевым для компании. Начали учить системных администраторов азам работы с linux. Концепция обучения состоит в том, чтобы сотрудник мог самостоятельно взяв типовой дистрибутив linux ubutu server 12.04 сумел установить на него Asterisk, Веб управление FreePBX и систему веб-управления факсами hylafax+Avantfax, при этом использую реальные проекты в их текущих состояниях. Кроме того, для упрощения развертывания, инструкция должна была стать максимально простой и короткой. В итоге всё свелось к простому копи-пасту и установке большинства пакетов из репозиториев. Весь процесс множество раз выверялся повторными установками. Мы постарались обеспечить принцип минимальной достаточности. Всё без чего можно обойтись пропускалось (оставлено для самостоятельного освоения сотрудниками). Это очень облегчило задачу для Win админов которые не привыкли к консоли и позволило им почувствовать себя более уверенно, особенно когда в результате собственных действий за минимальное число попыток получали рабочую систему. Это очень воодушевляет на первых этапах.

Итак сама инструкция

После установки чистой ubuntu server 12.04 LTS по этой инструкции мы готовы к началу установки.В первый раз ВСЕ действия выполняем копированием — вставкой ничего не меняя, как есть!

Установка LAMPA

LAMPA — (Linux,Apache,Mysql,Php,Asterisk)

apt-get update apt-get install lamp-server^ libmysqlclient18 asterisk-dev  asterisk-mysql asterisk-moh-opsound-wav php-db selinux-utils audiofile-tools  bison libset-intspan-perl curl openssl php5-gd lame sox libxml2 subversion  dahdi-* linux-headers-`uname -r`  

В процессе установки мастер попросит задать пароль для mysql сервера. Задаем например PaSs или свой и запоминаем. Пустым пароль оставлять не надо!

FreePBX

Указываем пароль, который поставили при установке mysql

passwd=PaSs #Указываем версию которую хотим установить fpbxver=2.10 
Загрузка и создание базы
svn co http://svn.freepbx.org/freepbx/branches/$fpbxver /usr/src/freepbx cd /usr/src/freepbx mysqladmin create asterisk -p${passwd} mysqladmin create asteriskcdrdb -p${passwd} mysql asterisk < SQL/newinstall.sql -p${passwd} mysql asteriskcdrdb < SQL/cdr_mysql_table.sql -p${passwd} echo "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${passwd}';" > /tmp/tmpfbpx echo "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${passwd}';" >> /tmp/tmpfbpx echo "flush privileges;" >> /tmp/tmpfbpx echo "quit"  >> /tmp/tmpfbpx mysql -p${passwd} < /tmp/tmpfbpx  
Установка FREEPBX

Запускаем установку (заполняем параметры или оставляем по умолчанию):

rm /var/www/index.html ./install_amp --password=${passwd} --webroot=/var/www 

Подтверждаем параметры

adduser www-data asterisk /etc/init.d/apache2 restart wget http://127.0.0.1/admin/config.php# -O /dev/null 
Подготовка WEB сервера

Изменение конфигурации apache2, для корректной работы с русским языком, а так-же меняем пользователя www-data от имени которого стартует apache2 на пользователя asterisk

locale-gen ru_RU  perl -pi -e 's/#AddDefaultCharset UTF-8/AddDefaultCharset UTF-8/g' /etc/apache2/conf.d/charset  perl -pi -e 's/export APACHE_RUN_USER=www-data/export APACHE_RUN_USER=asterisk/g' /etc/apache2/envvars  perl -pi -e 's/export APACHE_RUN_GROUP=www-data/export APACHE_RUN_GROUP=asterisk/g' /etc/apache2/envvars /etc/init.d/apache2 restart 
Загрузка модулей и обновлений

Загружаем и устанавливаем свежие модули

./setup_svn.php ./install_amp cp amp_conf/moh/*.wav /var/lib/asterisk/moh cd /etc/asterisk rm ccss.conf extensions.conf logger.conf iax.conf sip.conf features.conf sip_notify.conf chan_dahdi.conf chown asterisk:asterisk /etc/amportal.conf 

На этом базовый функционал готов, можно подключиться к серверу по адрес сервера логин и пароль: admin

Некоторые добавления и исправления

Небольшой твик для стабильной работы FOP панели, перезапускает её раз в 10 минут

chmod 770 -R /var/www/admin/modules/fw_fop echo "*/10 * * * * root amportal 2 > /dev/null">>/etc/crontab 

Исправляем косяки с путями хранения звуков

cp -r /var/lib/asterisk/sounds/ /usr/share/asterisk/ rm -r /var/lib/asterisk/sounds/ ln -s /usr/share/asterisk/sounds /var/lib/asterisk/ chown -R asterisk:asterisk /var/lib/asterisk/sounds/ chown -R asterisk:asterisk /var/lib/asterisk/sounds/custom/ 

Русификация голоса

paths=/usr/share/asterisk/sounds/ cd /tmp wget -c http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-wav-current.tar.gz mkdir $paths/ru cd $paths/ru tar zxvf /tmp/asterisk-core-sounds-ru-wav-current.tar.gz 

На этом этапе базовая система считается развернутой, дальше уже идет настройка через WEB интерфейс. Ссылка на wiki с инструкциейИспользуемые источники:

  • https://iwsm.ru/programmy/freepbx-nastroyka-s-nulya
  • https://habr.com/post/171163/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации