Исходные данные:
- 15 сотовых номеров, по количеству сотрудников и смартфонов;
- 2 городских номер от Мегафон(реализован через SIP);
- До 10 одновременных вызовов;
- Отсутствие возможности перевода звонков между сотрудниками;
- Необходимость частых междугородних звонков.
Были рассмотрены несколько вариантов:
- Оставить всё как есть (сотовые телефоны);
- Облачная АТС;
- «Железное» решение;
- Свой сервер VoIP.
В итоге приняли решение реализовать свой сервер 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-get purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
Устанавливаем репозиторий PHP 5.6:
sudo add-apt-repository ppa:ondrej/php
Обновляемся и устанавливаем PHP:
sudo apt-get update
sudo apt-get install php5.6
4. Mysql который идет в репозитории не совместим с FreePBX 14, нам нужна MariaDB, добавим её в репозиторий:
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.mephi.ru/mariadb/repo/10.2/ubuntu xenial main'
5. Нам так же необходим nodejs:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y 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
apt install -y php-pear
6.1. Пакета libmyodbc больше нет в репозиториях Ubuntu начиная с версии Xenial.
Скачиваем нужный коннектор:
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit.tar.gz
Распакуем:
tar -zxvf mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit.tar.gz
И скопируем в директорию /usr/lib/x86_64-linux-gnu/odbc/:
cd mysql-connector-odbc-5.3.9-linux-ubuntu16.04-x86-64bit/lib
cp libmyodbc5* /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):
Скачиваем исходники:
cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
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-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2
Скомпилируем и установим Lame (mp3):
cd /usr/src &&
tar zxvf lame-3.98.4.tar.gz &&
cd lame-3.98.4 &&
./configure &&
make &&
make install
Скомпилируем и установим 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:
cd /usr/src/jansson &&
autoreconf -i &&
./configure &&
make &&
make install
Если вы хотите использовать кодек 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:
AST_USER="asterisk"
AST_GROUP="asterisk"
Создаём пользователя Asterisk и задаём права пользователя:
useradd -m 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
11. Переходим к FreePBX 14
Настроим Apache:
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
Настроим ODBC:
cat >> /etc/odbcinst.ini << EOF
[MySQL]
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so
UsageCount=2
EOF
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
EOF
Скачаем и установим FreePBX:
cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
tar vxfz freepbx-14.0-latest.tgz
rm -f freepbx-14.0-latest.tgz
cd freepbx
touch /etc/asterisk/ari.conf
./start_asterisk start
./install -n
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
[Install]
WantedBy=multi-user.target
Активируем сервис:
systemctl enable freepbx.service
Эпилог.
На этом установка и первоначальная настройка закончена. Будут вопросы, всегда готов ответить.
Комментарии (62)
Deq56
12.10.2017 19:30а что мешало взять готовый дистр? Ещё однастаться как я научился ставить их исходников что-то?
Teon_501 Автор
12.10.2017 19:31Готовый на основе CentOS, я в начале статьи указал причины выбора дистрибутива.
Deq56
12.10.2017 19:45и чем же управляемый через web asterisk на centos, будет отличаться от управляемого через web asterisk на ubuntu? и если всё же придерживаетесь unbuntu, то лучше подготовить deb пакет, а не компилировать на сервере. И статья как подготовить deb пакет с asterisk, была бы полезнее на хабре, чем ваша, слизанная непойми откуда статья.
Teon_501 Автор
12.10.2017 19:52На самом деле не отличается, ставил и на том и том. Теперь объясню почему не стал делать deb пакет. Настройку я делаю 1 раз, больше мне и не нужно, сам сервер стоит на ESXi и из готовой системы я делаю образ, на тот случай если понадобиться развернуть где то ещё. Мне проще внести в копию минимум изменение за место того, чтобы разворачивать с 0 систему.
ashfor
12.10.2017 19:33несколько дней назад настраивал FreePBX 14, но с их родного дистрибутива. оказалось что mysql-connector-odbc, поставляемый с CentOS 7 имеет проблемы с кириллицей, поэтому проверьте отчеты CDR — русский должен быть читаемым.
для меня все счастливо закончилось установкой mariadb-connector-odbc, для убунты нет подобного пакета?Teon_501 Автор
12.10.2017 19:34Для Ubuntu такого не находил, отчеты еще не проверял, доберусь до сервера гляну
awsswa59
12.10.2017 19:33+1Копипаста с оригинала (voxlink). Даже ошибки инсталляции те же.
Mysql 5.7 отлично работает с freepbx — просто надо внести одну строчку в настройку.
Не ставьте — libpri ( все мануалы под копирку с установкой, а зачем? что у всех есть железка для работы с ней ?)
Зачем lame из сорцов? Все ставиться из пакетов.
Jansson — тоже на ubunte 16 ставится с пакетов — там свежая версия.
pjproject — уже давно 2.6 версии.
и не в одном из мануалов нету установки npm — а он нужен.
Зачем ставите nodejs не из пакета мне тоже не понятно.Teon_501 Автор
12.10.2017 19:43Давай по порядку.
Оригинал voxlink в глаза не видел, все ресурсы откуда брал инфу могу привести;
Про строчку в Mysql я тоже знаю, мне как то MariaDB роднее;
Что касается libpri, я написал что часть текста с wiki.freepbx.org/display/FOP/Installing+FreePBX+14+on+Debian+8.8;
По поводу lame, был прецедент когда он не корректно работал;
Jansson и pjproject ставил из рекомендация FreePBX не более, за новыми не гонюсь;
npm ставиться вместе с nodejs, и если внимательно прочесть про установку nodejs то он ставиться из пакетов, скрипт добавляет репозиторий в систему.awsswa59
12.10.2017 20:06Поймите правильно. Хабр это место откуда народ берет знания. И я уверен через месяц всплывет админ который по этому мануалу начнет ставить. Уверенный в своей правоте.
Лучший вариант этой бы статьи выглядел как — вот оригинал от voxlink а вот следующие правки и дополнения. Расписали бы установку правильно, без сторонних пакетов. Показали как установить как дополнение к оригиналу — установку phpmyadmin. Показали установку и настройку iptables и fail2ban. Вот это было бы интерестно.
Правьте статью пока не поздно или делайте вторую частьTeon_501 Автор
12.10.2017 20:17Я бы не стал всё тут писать, если бы не провел боевые испытания, до момента когда у меня всё заработало я раз 5 с 0 ставил систему и настраивал, пока все на заработало как мне нужно, сейчас сервер стоит и функционирует и все было произведено точно с описанием, фактически большая часть команд это вывод .bash_history. Зашел на voxlink и видел статьи, но они все про FreePBX13, моя цель была выложить для 14 версии. По поводу phpmyadmin, у меня нет необходимости его ставить, по поводу пакетов я тоже писал, я за основу брал инструкции самого FreePBX.
Teon_501 Автор
12.10.2017 20:35По phpmyadmin могу написать, но дело в том, что он у меня на другом хосте висит, вместе с монитором на основе observium, подключается он под другим юзером с правами на подключения с определенного IP
k3NGuru
12.10.2017 20:16А разве pjproject не компилится вместе с астером? Ключ --with-pjproject wiki.asterisk.org/wiki/display/AST/PJSIP-pjproject
Teon_501 Автор
12.10.2017 20:19У меня выдал ошибку? когда пробовал так сделать, поэтому пошел путеv рекомендуемым FreepBX
Jedi-Knight
12.10.2017 20:38корпоративный стандарт — ubuntu? Из серии: стандарт танкостроения — завод АвтоВАЗ. Работа ради работы. устанавливать всё это вручную на ОС, для которой никто даже мануалов не удосужился написать, такая она корпоративная.
Teon_501 Автор
12.10.2017 20:42Мануалы в процессе создания, часть их я пишу, часть другие люди. При этом готовые системы сохраняются как рабочие примеры, чтобы потом не мучатся.
anton1234
12.10.2017 22:15Думаю под «корпоративным стандартом» автор имел ввиду, что у него в компании все айтишники договорились использовать один дистрибутив. Это достаточно разумное решение, если в компании есть\планируется разделение труда и делегирование обязанностей.
Вряд ли тут имелось ввиду сравнение Ubuntu с Redhat или Oracle Linux.
Разумность исключения из правил это другой вопрос, который тоже не лишне себе иногда задавать.Teon_501 Автор
13.10.2017 06:17Вы совершенно правы, разделение и делегирование в компании есть. Enterprise решения не брали, так как поставлена цель максимальной экономии на ПО.
BurlakovSG
12.10.2017 21:20Расскажите, пожалуйста, какими SIP-клиентами пользуетесь? Я так и не смог найти нормально работающего бесплатного клиента. В основном жаловались, что меня плохо слышно и слышат сами себя.
Daar
12.10.2017 23:55Поддерживаю, тоже прошелся по этим граблям, расскажите о своих.
anton1234
13.10.2017 00:06Jitsi на моем опыте вполне стабилен. Проблемы на которые жаловались пользователи как выяснялось обычно были связаны с микрофонами, качеством инета итп.
Оперативу жрет как не в себя самый существенный недостаток.
bravo-ej
13.10.2017 03:01Bria (платная, огромный набор параметров, но нет чата и видео, кажется)
Zoiper очень не плох! (достаточно настроек, чат и видео есть)
Linphone (крайний вариант, есть часто воспроизводимые косяки, не в пример десктопной версии)
* — я купил для того, что бы провести тесты на разных клиентах нашего коммутатора. Проверял я не только очевидный факт работы, но и сигнальный обмен между UAC/UAS.
Кстати на десктопе (ну как, на ноуте) я использовал приложение telephone. Были мелкие нюансы, но я их разработчику отправлял и мы пообщались. После уже не проверял (да и вот так без поднятия переписки даже не припомню что там было, но что то с процедурой завершения вызова)… В общем на Bria, zoiper и telephone я проходил испытания СОРМ в качестве клиентов (главное куратора ФСБ не смущать этой информацией ;)
Всё под яблочные девайсы (linphone под все платформы есть).BurlakovSG
13.10.2017 07:56Из наверное всех ранее опробованных бесплатных вариантов более менее нормально работал Zoiper, но на нём тоже иногда жаловались, что слышат сами себя, а ещё у него был косяк с переподключением. Сервер у нас наружу не вылазит, чтобы попасть в сеть на телефоне стоял OpenVPN, так вот когда происходило переподключение сети (потерял Wi-Fi и переключился на мобильный интернет) Zoiper впадал в ступор и не хотел подключаться. Надо будет ещё раз попробовать, может пофиксили этот баг.
На ноуте использую PhonerLite. Она потребляет меньше ресурсов, чем остальные монстры. Правда она может только звонить, но мне другого и не надо.
Tihon_V
13.10.2017 13:55Мобильные — Zoiper.
ПК — Linphone (обход NAT через uPnP).
Сервер за NAT. Транспорт TLS + certbot с запретом direct_media. Кодек — alaw/ulaw. При замене кодека на другой с большим битрейтом при 3G может появляться эхо.anton1234
13.10.2017 14:16uPnP — прежде чем включать это где-либо стоит погуглить «uPnP insecure», «uPnP vulnerability». Этот протокол небезопасен by design. Любое устройство, без регистрации и смс может опубликовать себя в интернет.
Tihon_V
15.10.2017 22:08Не безопасен. Увы, но некоторые сотрудники работающие удаленно «на дому» до сих пор используют *DSL интернет и пока побороть задержку звука в 500 мс при использовании stun не удалось. При uPnP — работает сносно.
KorP
12.10.2017 22:01Компиляция из исходников на пакетном дистрибутиве? Не православно!
Teon_501 Автор
13.10.2017 06:19Не все что есть в пакетах собрано должным образом, иногда проще собрать под конкретные нужды.
KorP
13.10.2017 06:40Никто и не говорил, что надо пользоваться только стандартными пакетами. Я то же собираю разное По под свои задачи (а некоторого в пакетах и вовсе нет), но делаю это на отдельной машинке и кладу в собственный репозиторий готовый пакет, а уже из него разворачиваю на сервер — это тру вэй для пакетных дистрибутивов. И именно так правильно делать, если у вас за стандарт принят пакетный дистрибутив.
Teon_501 Автор
13.10.2017 07:03Не согласен, Linux свободная система и мне решать как я её буду использовать. Если проводить аналогию, то не правильно на FreeBSD использовать готовые бинарные пакеты, всё нужно собирать в ручную.
KorP
13.10.2017 07:50Решать конечно же вам, но в отрасли есть собственные нормы, и если вы придёте в серьёзную компанию и начнёте там на продуктивных серверах ПО собирать из исходников, думаю ататашечки вы получите. Нужно приучать себя к хорошему с детства, а не говорить «мне решать, ведь так можно».
Teon_501 Автор
13.10.2017 08:03Вообще я согласен, по хорошему так и нужно, особенно если продавать решения, в компании есть машина для сборки пакетов, так же есть свой репозиторий. Я же описал стандартный путь решения задачи. Если у читателей появиться большой интерес к решению в 1 строчку с предварительно подготовкой всех пакетов, написать её не составит труда. Если будет спрос предложение я обеспечу.
Mobyman
12.10.2017 23:02Хочется верить, что с приходом такого большого количества инструментов для оркестрации и контейнеризации количество подобных статей сократится, и они переедут в Docker Hub, Ansible Galaxy и пр.
bravo-ej
13.10.2017 03:28Какова экономика всего мероприятия? А то тут только мануал для копипаста и никакого, даже лайтового, ТЗ не указано.
На сколько абонентов рассчитано?
Каковые выделенные мощности VM?
Есть ли QoS и DSCP?
Какие средства защиты и их логику используете?
Хотя бы из этих деталей будет понятно, что для вас значит «небольшая компания», сколько вы на это потратили ресурсов (челочас, денег на вычислительные мощности, отсюда и затраты на энергию), позаботились ли о качестве этого сервиса…
Что же касается учтённой безопасности… Что будет с вашим сервером, если «я вас вычислю по IP» и начну флудить инвайтами или register сообщениями? 10мб/с хватит, что бы ваш сервер уделил мне всё внимание, так как оно мне больше нужно и ваши абоненты получили удлинённые тайминги обработки их сообщений, полный развал dtmf, да и вероятно большинства сессий, если не из-за таймеров, то по инициативе самих абонентов.
Про SBC что нибудь слышали? Штуки в аппаратном исполнение дорогие, но вот вам идея для _хорошей_ статьи — вынесите внешнюю регистрацию на прокси сервер, которую уже с голым задом и fail2ban выставляйте в Сеть. Настройте там контроль доступа, сообщения о подозрительном трафике (в том числе и register сообщений, которые без auth информации не дадут повода сгенерировать ошибку в лог)…
Но я бы выбрал VPN, раз у вас все абоненты — корпоративные и внутренние.Teon_501 Автор
13.10.2017 06:34Отвечаю на вопросы(на текущий момент):
15 абонентов, рост планируется;
У VM 1Гб памяти, 128 Гб диск, 3 Ггц;
QoS и DSCP в процессе реализации;
Сам сервер находиться в DMZ зоне сети, доступ только к определенным портам, дефолтные порты изменены;
Сервер ESXi Dell PowerEdge R230 1xE3-1220v6 2?16Gb 2RUD x4 3?1Tb 7.2K 3.5";
Вычислять по IP не имеет смысла, сам сервер за NAT и порты для подключения, как я уже писал, изменены;
Интернет в 60мб/с, прокси с фаерволом и nginx прокси выведен в сеть, правда без голого зада))
Для доступа из вне сотрудникам предоставлен OpenVPN с авторизацией через сертификат и lDAP.bravo-ej
13.10.2017 15:53Ресурсов сервера виртуализации, хранилища снапшотов VM и собственного времени не жалко под то, что можно было бы заменить аппаратным решением за 16к рублей?
И мне думается, что такое решение было бы гораздо надёжнее и дешевле в эксплуатации, нежели содержать ещё один сервер.
Почему вы открыли доступ из внешних сетей к вашей телефонной станции, если у вас есть VPN и сотрудники и так и так его используют? Не знаю конечно, чем вы занимаетесь и могут ли у вас быть конкуренты, не доброжелатели, интересующиеся вашей коммерческой информацией… но вашу телефонию завалить ничего не стоит. И дело тут не в том, что вашей пропускной способности не хватит, а в том, что обработка sip сообщений довольно трудоёмкий процесс и у всех телефонных коммутаторов подобного типа надо смотреть на параметр, который показывает количество одновременных инвайтов (грубо говоря), которое он может обработать. Цифра обычно не большая. Например у коробочки выше, это 15. Обычно это нужно для понимания, вывезет ли железка штатную нагрузку. Но если пойдёт речь о не штатной нагрузке, то ни одна железка не вывезет столько, сколько способно пролезть через ваш канал связи. Зафлудить телефонную SIP станцию ума вообще никакого не надо, ибо инструментов полно.
А ваши изменённые порты не так уж и сложно просканировать, отправив инвайт на каждый из портов и получив от вашего астериска запрос на авторизацию. Мне кажется вы никак не настраивали поведение вашего UAS :)
В общем совет: делайте sip прокси для авторизации или, что лучше, пусть все лезут через VPN, раз уж он и так есть. Чем меньше сервисов смотрит наружу, тем лучше.Teon_501 Автор
13.10.2017 16:39Если бы требовалось использовать аналоговые линии, то вопрос бы не встал, железное решении тут выигрывает, у нас только SIP. К тому же на сервере были не востребованные ресурсы. Сейчас идет процесс настройки fail2ban + скрипт обработки логов для блокировки сканирования портов, после испытания выложу. Про sip прокси спасибо, займусь этим вопросом
Teon_501 Автор
13.10.2017 17:37И еще одна причина выбора системы на сервер, совсем про неё забыл, наша система учета плотно связана с телефонией, требовалось выполнение linux команд в OS где стоит FreePBX. Передача в реальном времени команд в базу для CRM, вызова карточек клиентов и т.д.
Roman2dot0
13.10.2017 06:20Можно не удалять php 7.x из системы, достаточно настроить alternatives и отключить mod_php7 в apache.
А по факту гораздо быстрее скачать готовый дистр на CentOS, потратить минут 15 на настройку внутренних номеров и транков.Teon_501 Автор
13.10.2017 06:22Если бы стояла только задача развернуть чисто FreePBX, так бы и поступил, по мимо прочего система введена в домен Samba4 и настроен sudo для авторизации пользователей определенных групп. Так же намного проще когда все дистрибутивы одного семейства, проще администрировать и следить за ними.
Teon_501 Автор
13.10.2017 06:55Для меня php 7.x в данной системе просто занимает место, на этом сервере он просто не нужен.
RusXP
13.10.2017 14:48А где-же настройка абонентов, создание УЗ роутинг и ДВО. Настраивали через web или через консоль?
Teon_501 Автор
13.10.2017 14:50Планирую в течении недели подготовить статью по этим вопросам. В основном все через web, на это и рассчитана FreePBX, хотя в практике попадались случаи когда приходилось и руками править конфиги, если будет такое примеры приведу.
xmaster83
13.10.2017 16:30Бегите с Freepbx, это штука столько раз взламывалась что просто страх божий
Teon_501 Автор
13.10.2017 16:31Она не открыва во вне, доступ к консолям только с внутренней сети не более.
xmaster83
13.10.2017 18:10Зачем тогда веб интерфейс нужен ?, ведь его предназначение доступ из вне.
Teon_501 Автор
13.10.2017 19:17Вы ошибаетесь, он нужен для более удобной настройки VoIP сервера, доступ к нему имеют пользователи внутри сети, например для голосовой почты. Так же через VPN имеют доступ администраторы. Не один из моих знакомых не выставляет подобное в общую сеть.
Roman2dot0
13.10.2017 22:03Для того, чтобы зайти и настроить\мониторить с любого устройства, на котором есть браузер и доступ на веб-морду
Teon_501 Автор
14.10.2017 17:12И это тоже, но про безопасность не стоит забывать, просто открывать к такому доступ средству просто не рационально.
parakhod
Пару месяцев назад поднял точно такую же конфигурацию для дома для семьи на восьмидолларовом OrangePi Zero. Работает великолепно.
Городскую линию и обычный телефон подключил через китайский Linksys SPA 3000.
Teon_501 Автор
Я уже как пару лет не использую домашний телефон, на сотовой подключен городской, в семье все телефоны на одном договоре, так что использовать в домашних условиях не стал.
parakhod
Ну у меня ситуация немножко специфическая — городской нужен, на мобильный повесить его нельзя, только провод. Нужен он мне и дома и на студии, до студии от дома у меня радиомост микротиками покинут, так что и локальная сеть есть. На студии на столе обычный SIP телефон стоит. Плюс сейчас ещё хочу и на студии и в доме SIP-домофоны поставить. Потому что всё в пешей доступности, а так с почтальоном или курьером разминешься и лови их потом...
Teon_501 Автор
У меня рабочая линия от мегафона, так что если не успел рабочий взять вовремя то все идет на сотовый
parakhod
Не, у нас дикая Европа, до такого прогресс ещё не дошёл ))
Плюс с домофоном всё равно проблема не решается.
Да, ну и ещё звонкорезка по таймеру пришлась — в 19-00 городская линия отключается к чертям, а то по вечерам реклама постоянно звонит всякая.
Teon_501 Автор
Ну тогда понятно)) у меня в конце рабочего дня тоже отбойник срабатывает
parakhod
Ну я на самом деле просто всё к тому, что если что то на любой копеечной плате с линухом и 512 памяти эта штука бегает замечательно. На данном конкретном китайском чуде жила разновидность дебиана — встало вообще без проблем всё.
Teon_501 Автор
В этом я и не сомневался))) дойдут руки может тоже домой сделаю