Freepbx установка и настройка ubuntu

Обновлено: 04.07.2024

Добрый день, вечер или ночь, все зависит от времени суток в который вам довелось прочитать мою статью. Начнем с начала. В нашей компании задумались о переходе на SIP и встал вопрос? как это реализовать.

  • 15 сотовых номеров, по количеству сотрудников и смартфонов;
  • 2 городских номер от Мегафон(реализован через SIP);
  • До 10 одновременных вызовов;
  • Отсутствие возможности перевода звонков между сотрудниками;
  • Необходимость частых междугородних звонков.

Были рассмотрены несколько вариантов:

  • Оставить всё как есть (сотовые телефоны);
  • Облачная АТС;
  • «Железное» решение;
  • Свой сервер VoIP.
  • Сервер ESXi Dell PowerEdge R230 1xE3-1220v6 2×16Gb 2RUD x4 3×1Tb 7.2K 3.5";
  • Ubuntu Server 16.04 (минимальная конфигурация, 1Гб памяти, 128 Гб диск), установлен на ESXi 6.5;
  • SIP от zadarma и Мегафон;
  • Сотовые телефоны с SIP клиентами.

Ubuntu 16.04 у нас являться корпоративным стандартом, сервера Ubuntu Server 16.04, как рабочая OS Ubuntu Desktop 16.04. Основной же сервер построен на базе Zentyal 5.0. Сервера и рабочие ПК устанавливаются по сети по TFTP. Если будет интересно опишу все нюансы установки Zentyal (а их приличное количество).

Аппараты решили не покупать, у каждого сотрудника есть сотовый либо на Android, либо на iOS, так, что проблем с клиентами нет, сотрудники имеют доступ к рабочему Wi-FI. Так же клиенты SIP стоят на рабочих ПК. Так же есть доступ к SIP через Интернет, безопасность тоже учтена, порты подключения изменены, пароли для SIP достаточно сложны.

Переходим к самой сути. В сети полно документации по установке FreePBX 13 на Ubuntu 16.04, А вот каr установить FreePBX 14 нету, даже официальном wiki FreePBX есть только для CentOS 7 и Debian 8.8, но было большое желание и стремление сделать задуманное.

1. Установку Ubuntu Server 16.04 описывать не буду, это просто даже для новичка.

1.1. Все манипуляции я проводил по root sudo su

2. Обновим систему: apt update && apt upgrade -y , если требуется перезагрузка, перегружаемся.

3. Займемся PHP, для FreePBX 14 необходим PHP 5.6, по умолчанию в Ubunty 16.04 идет PHP 7.0

Удаляем весь PHP, если он есть в системе:

sudo apt purge `dpkg -l | grep php| awk '' |tr "\n" " "`

Устанавливаем репозиторий PHP 5.6:

sudo add-apt-repository ppa:ondrej/php

Обновляемся и устанавливаем PHP:

sudo apt update
sudo apt install php5.6

4. Mysql который идет в репозитории не совместим с FreePBX 14, нам нужна MariaDB, добавим её в репозиторий:

5. Нам так же необходим nodejs:

6. Установим теперь всё необходимое:

sudo apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-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

sudo 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 php5.6-mbstring

apt install -y php-pear

6.1. Пакета libmyodbc больше нет в репозиториях Ubuntu начиная с версии Xenial.

Скачиваем нужный коннектор:

Распакуем:
tar -zxvf mariadb-connector-odbc-3.0.2-ga-debian-x86_64.tar.gz

И скопируем в директорию /usr/lib/x86_64-linux-gnu/odbc/:

cd mariadb-connector-odbc-3.0.2-ga-debian-x86_64/lib
cp libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/

7. Теперь по рекомендациям FreePBX необходимо перезагрузиться, я этого не делал.

8. Убедимся, что mod_rewrite включен, чтобы избежать возможных атак.

a2enmod rewrite
service apache2 restart

9. Включим поддержку Console_Getopt

pear install Console_Getopt

10. Переходим к установке Asterisk 15 (фактически это часть wiki с FreePBX для Debina 8.8):

Скомпилируем и установим Lame (mp3):

Скомпилируем и установим 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

Скомпилируем и установим pjproject:

cd /usr/src &&
tar -xjvf pjproject-2.*.*.tar.bz2 &&
cd pjproject-* &&
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
--disable-resample --disable-video --disable-opencore-amr &&
make dep &&
make &&
make install

Скомпилируем и установим jansson:

Если вы хотите использовать кодек Opus, перед началом компиляции Asterisk необходимо установить xmlstarlet:

sudo apt install xmlstarlet

Скомпилируем и установим Asterisk:

cd /usr/src &&
tar xvfz asterisk-15-current.tar.gz &&
rm -f asterisk-15-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

Для себя я выбрал 'format_mp3' и 'res_config_mysql', а так же включил 'codec_opus'

Сохраняем изменения и продолжаем установку:

make &&
make install &&
make config &&
ldconfig
update-rc.d -f asterisk remove

Пока все собиралось я успел налить себе кофе и продолжил.

Настроим запуск от имени пользователя 'Asterisk'

Расcкомментируйте в /etc/default/asterisk:

Создаём пользователя Asterisk и задаём права пользователя:

useradd -m asterisk &&
chown asterisk. /var/run/asterisk &&
chown -R asterisk. /etc/asterisk &&
chown -R asterisk. /var//asterisk &&
chown -R asterisk. /usr/lib/asterisk

11. Переходим к FreePBX 14

sed -i 's/\(^upload_max_filesize = \).*/\256M/' /etc/php/5.6/apache2/php.ini &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Asia\/Yekaterinburg"/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

cat >> /etc/odbcinst.ini << EOF
[MySQL]
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
UsageCount=2

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

Скачаем и установим FreePBX:

11.1. Для русификации FreePBX необходима локаль ru_RU.UTF-8:

echo "russian ru_RU.UTF-8" >> /etc/locale.alias
locale-gen ru_RU
systemctl restart apache2

12. Создадим скрипт запуска для systemd:

В файл /etc/systemd/system/freepbx.service вставляем:

[Unit]
Description=FreePBX VoIP Server
After=mariadb.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q

systemctl enable freepbx.service

На этом установка и первоначальная настройка закончена. Будут вопросы, всегда готов ответить.

В настоящее время большую популярность получил сервер голосовой связи Asterisk. Удобнее всего им управлять с помощью web панели администрирования Freepbx. Вопросом установки и настройки этого инструмента я бы и хотел заняться в этой статье. За основу возьмем сервер Debian 8. Установка на сервер Ubuntu будет аналогична с точностью до каждой команды с сервером Debian.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда. Если вы еще не определились, как вам лучше настраивать и использовать астериск, рекомендую мою статью - asterisk - настройка с нуля для малого и среднего офиса. Рассмотрен основной функционал, который необходим для эффективной работы. Инструкция подробная, по шагам, от и до: от установки до записи разговоров и статистики звонков.

Что такое Freepbx

FreePBX - это удобный GUI (графический интерфейс пользователя), который управляет Asterisk - самым популярным общедоступным программным обеспечением в области компьютерной телефонии. FreePBX является продуктом Open Source, он разработан тысячами добровольцев по всему миру.

На сегодня FreePBX загружен более чем 5 000 000 раз и обслуживает более чем 500 000 активных телефонных систем. Если Вы никогда не слышали про FreePBX, то, вероятно, будете удивлены ее возможностями для Вашего бизнеса.

FreePBX - это основанный на web интерфейс, который позволяет управлять самым популярным на сегодняшний день сервером ip телефонии asterisk. FreePBX выпускается под лицензией GNU и может свободно использоваться конечными пользователями без какого-либо ограничения. Данный продукт является компонентом FreePBX Distro и некоторых других дистрибутивов.

С тех пор вышло множество обновлений, поддерживающие новые версии Astersik, добавлены новые меню и поддержка голосовой почты, очереди звонков, факсов, различных языков, устройств DAHDI и папок пользователей.

Поддерживаемое оборудование включает в себя устройства компаний Aastra Technologies, Algo, AND, AudioCodes, Cisco Systems, Cyberdata, Digium, Grandstream, Mitel, Panasonic, Polycom, Sangoma, Snom, Xorcom, and Yealink.

Что такое Freepbx Distro

FreePBX Distro - open source дистрибутив Linux на базе популярной операционной системы CentOS. Его можно использовать для быстрого разворачивания сервера Asterisk и панели управления Freepbx. Это вариант удобен для тех, кто не очень разбирается в linux и не хочет тратить время на ручную установку всех компонентов, необходимых для полноценной установки freepbx на отдельный сервер.

FreePBX Distro, в отличие от Elastix, выпускается самими разработчиками FreePBX, поэтому более динамично развивается и чаще выпускаются обновления. В него встроены Fail2Ban и IPTables, работает русский язык из коробки, настроен LAMP (Linux/Apache/MySQL).

Я не буду в данной статье касаться настройки системы из этого дистрибутива. Это тема отдельного разговора. Хотя там и говорить особо нечего, установка проходит достаточно просто и быстро.

Подготовка к установке Freepbx

Приступим к установке Freepbx. Предварительно, если вы еще не сделали, вам необходимо установить Debian сервер, а потом его настроить. Мы будем устанавливать на сервер следующей версии:

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

Установка asterisk 13

Собираем и ставим DAHDI:

Собираем и ставим LIBPRI:

Компилируем и устанавливаем pjproject

Компилируем и устанавливаем jansson

Собираем и ставим Astersik 13:

Если вылезает ошибка:

lipvpb0

Выскочит окно, указываем код 7, если вы из России:

Продолжаем сборку:

Если все прошло без ошибок, продолжаем:

Установка Asterisk


Выбираем отмеченные мной модули и продолжаем:

Устанавливаем дополнительные звуки:

Установка Freepbx 12

Создаем нового пользователя Asterisk:

Вносим изменения в конфиг apache:

Настраиваем базу данный mysql:

Отвечаем на заданные вопросы. Я везде оставлял значения по-умолчанию, кроме адреса сервера. Пароли не забудьте поставить свои:

Идет долгая установка, что-то постоянно качается, распаковывается, устанавливается. В конце у меня вылетела ошибка:

Setting operator panel web root and enabling dev state. <br>Done<br>Setting callevents = yes. <br>Creating client symlink. <br>Done<br>Enabling voicemail box polling<br/>PHP Fatal error: Call to a member function send_request() on null in /var/www/html/admin/modules/voicemail/functions.inc.php on line 1154

Так как у меня уже был опыт установки предыдущих версий подобной связки, сразу полез проверять старые болячки. Открываем файл /etc/asterisk/manager.conf и видим в конце две строки:

Сохраняем файл и перечитываем конфиг астериска:

Выходим из консоли астериск и запускаем заново установку FreePBX:

Установка Freepbx

Создаем пользователя и заходим в админку с этой учеткой:

freepbx system overview

На этом установка окончена, можно приступать к конфигурированию. Подробным примером настройки asterisk для чайников может служить моя статья. Хотя в ней речь идет о настройке без использования freepbx, какие-то вещи из статьи можете взять на вооружение.

Установка Asterisk 14 и FreePBX 13. Первоначальная настройка FreePBX с нуля. Кодек Opus. php5.6. Odbc. Тотальное руководство.

Данное руководство можно использовать, как для установки чистого Asterisk, так и в связке с Freepbx.

ubuntu-16-software-selection

При установке системы, на стадии software selection выберите, как минимум openssh. Если выбран LAMP сервер, или позднее, при установке mysql-server из репозитория, вам будет предложено задать пароль root пользователя MySQL. Если оставить поле пустым, задать пароль можно будет после установки FreePBX 13 командой mysql:

или утилитой проверки безопасности:

Задайте пароль root пользователя системы

Получите права супер пользователя

Сделайте апдейт системы

Установите требуемые зависимости

Установка php5.6 вместо php7.0

Ubuntu 16 по умолчанию ставит из репозитория php7.0, а FreePBX с ним не дружит. Если вы планируете использовать не чистый Asterisk, надо установить php5.6.

Перезагрузите сервер, чтобы загрузить свежую версию ядра после апдейта. Если вы уверены, что загружена последняя версия, можно не перезагружать.

Убедитесь, что mod_rewrite включен, чтобы избежать возможных атак.

libmyodbc ubuntu 16.04

Пакета libmyodbc больше нет в репозиториях Ubuntu начиная с версии Xenial.
Скачаем нужный коннектор (требуется регистрация):

или по прямой ссылке:

Debian 9 link libmyodbc

Debian 9 link libmyodbc

И скопируем в директорию /usr/lib/x86_64-linux-gnu/odbc/:

Asterisk 14 установка

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

Скачайте исходные файлы

Скомпилируйте и установите Lame (mp3)

Скомпилируйте и установите DAHDI и LibPRI

Скомпилируйте и установите pjproject

(Требуется для поддержки драйвера SIP канала PjSIP)

Для установки Pjproject и Asterisk 14, рекомендуется использовать Pjproject Bundled Version. В этом случае компиляцию Pjproject из исходников можно пропустить (под спойлером).

pjproject и jansson

pjproject и jansson

Скомпилируйте и установите jansson

Скомпилируйте и установите Asterisk

В разделе Core Sound Packages выберите поддержку русскоязычных файлов (если требуется) В разделе Extra Sound Packages выберите дополнительные звуковые файлы.

Asterisk 14 + OPUS

Asterisk 14 поддерживает Opus без дополнительных патчей. Зависимости (xmlstarlet) должны быть установлены до конфигурации. В разделе Codec Translators убедитесь, что модуль кодека доступен для компиляции и отметьте для установки.

после установки asterisk:

Для сохранения нажмите Save & Exit и продолжите установку.

Если вы не планируете использовать FreePBX, команда make basic-pbx установит минимальный начальный набор конфигов Asterisk.

Расcкомментируйте в /etc/default/asterisk

Создайте пользователя Asterisk и задайте права пользователя.

Перезагрузите сервер и проверьте состояние Asterisk подключившись к консоли

Убедитесь, что Asterisk запущен под своим пользователем:

FreePBX 13: установка и настройка с нуля

Прежде всего обновите сертификаты сервера:

Настроим Apache

настроим ODBC

Скачайте FreePBX

Проблема с созданием таблицы cdr БД asteriskcdrdb при установке FreePBX

В исходниках FreePBX тип поля calldate таблицы cdr задано как datetime.
Это вызывает ошибку при создании таблицы.
Решение
изменить в файле: /usr/src/freepbx/installlib/SQL/cdr.sql
тип данных поля calldate с datetime на varchar(32).
было:

Распакуйте и установите FreePBX

Если при установке Ubuntu вы задали root пароль MySQL
запустите скрипт установки без ключа -n.
Установка пройдет в интерактивном режиме,
во время которого вам будет предложено ввести пароль:

Подключимся к FreePBX

Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX

ubuntu16-freepbx13-welcome

Первоначальная настройка FreePBX 13

Advanced Settings

Поддержка русского языка в интерфейсе

Чтобы отображался выбор локализаций FreePBX, включите данную опцию в Settings > Advanced Settings:

Show Language setting - Yes No

Если переключение на русский не работает, выполните следующие действия:

Country Indications Tone

Выберите тоны КПВ, занято и тд в российском стандарте, если требуется:

Settings > Anvanced Settings - Dialplan and Operational

freepbx13-advanced-settings-country-indication-tones.jpg

Обратите внимание на опцию CW Enabled by Default.
Можно отключить Call Waiting, по умолчанию, для вновь создаваемых екстеншенов.
По умолчанию включено.

Speaking Clock Time Format

freepbx13-advanced-settings-speaking-clock-time-format

Установите 24-х часовой формат времени.

Ringtime default

freepbx13-advanced-settings-ringtime-default

Измените время вызова екстеншена по умолчанию, если требуется:


Это краткое руководство показывает студентам и новым пользователям, как установить Asterisk в Ubuntu 18.04 | 18.04 сервер.

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

Если вам нужна платформа PBX с открытым исходным кодом для ведения вашего бизнеса или учреждения, тогда вам не нужно искать дальше, чем Asterisk. Этот пост должен вам пригодиться и быстро начать работу.

Для студентов и новых пользователей, которым нужна система Linux для начала обучения, проще всего начать с ОС Ubuntu Linux…. Это отличная операционная система Linux для начинающих и тех, кто ищет более простой в использовании дистрибутив Linux.

При использовании Ubuntu вы обнаружите, что Linux не так уж сильно отличается от Windows и других операционных систем во многих отношениях, особенно когда дело доходит до использования системы для выполнения работы…

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

Чтобы узнать больше об Asterisk, посетите его домашнюю страницу .

Чтобы начать установку Asterisk, выполните следующие действия:

Шаг 1. Загрузите и установите Asterisk

Чтобы установить Asterisk, вам необходимо установить несколько базовых пакетов. Чтобы установить эти пакеты, выполните следующие команды:

Поскольку мы собираемся вручную загружать пакеты Asterisk, давайте поместим их в системный /usr/src каталог, поскольку именно в нем хранится большинство исходных файлов.

Для этого перейдите в /usr/src каталог и загрузите Asterisk.

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

На момент подключения текущая версия 17 .

После загрузки файла Asterisk извлеките его, затем перейдите в соответствующий каталог и запустите сценарий установки, который загрузит и установит все зависимости, включая модули MP3.

Затем выполните приведенные ниже команды, чтобы настроить и выполнить некоторые проверки и убедиться, что все в порядке.

После успешного завершения он должен отобразить строки, подобные приведенным ниже:

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

sudo make menuselect

Поскольку мы хотим использовать MP3 в качестве аудиоформата и уже загрузили его модуль выше, выберите, format_mp3 как показано на изображении ниже:

Когда вы закончите, нажмите F12, чтобы сохранить и выйти, или переключитесь на кнопку «Сохранить и выйти» и нажмите Enter.

Когда все будет готово, выполните следующие команды, чтобы начать процесс компиляции.

В зависимости от вашей системы компиляция может занять некоторое время. -j Флаг с номером обозначает число процессоров на сервере. Если на вашем сервере больше двух ядер ЦП, замените его на это.

После компиляции, описанной выше, вы, наконец, можете установить Asterisk, выполнив следующие команды:

sudo make install

Теперь вы можете приступить к настройке вашей системы. Сначала вы можете добавить несколько примеров данных, которые помогут вам настроить вашу платформу. Для этого выполните следующие команды:

Завершите настройку, выполнив следующие команды:

Шаг 2: Создание пользователя Asterisk

Мы не хотим, чтобы Asterisk работал от имени пользователя root. Итак, давайте создадим специального пользователя, который будет работать как Asterisk.

Для этого выполните приведенные ниже команды, чтобы создать учетную запись и группу с именем asterisk .

После создания учетной записи выше откройте /etc/default/asterisk файл и внесите выделенные ниже изменения:

sudo nano /etc/default/asterisk

Затем внесите выделенные ниже изменения и сохраните файл.

После этого добавьте пользователя звездочки в группы dialout и audio:

sudo usermod -a -G dialout,audio asterisk

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

Шаг 3: Запуск Asterisk

На этом все готово. Выполните следующие команды, чтобы включить и запустить службу Asterisk.

Чтобы убедиться, что Asterisk работает, выполните следующие команды:

sudo asterisk -vvvr

Вы увидите приглашение Asterisk CLI по умолчанию:

В большинстве установок Ubuntu брандмауэр не включен. Если вы это сделаете, вы захотите разрешить указанные ниже порты.

По умолчанию SIP использует UDP-порт 5060. Откройте следующий порт.

sudo ufw allow 5060/udp

Для протокола реального времени (RTP) откройте следующий диапазон портов:

sudo ufw allow 10000:20000/udp

Вывод:

В этом посте показано, как установить и настроить Asterisk в Ubuntu 18.04 | 16.04. Если вы обнаружите какую-либо ошибку выше, воспользуйтесь формой ниже, чтобы сообщить о ней.

Читайте также: