Это старая версия документа!
Содержание
Установка рабочего узла (Ubuntu Server 18.04)
Установка
1. Берем свеже установленный Ubuntu Server 18.04 обновляем его:
$ apt update && apt upgrade
2. Отключаем встроенный ресолвер:
$ systemctl disable systemd-resolved.service $ service systemd-resolved stop $ rm /etc/resolv.conf $ touch /etc/resolv.conf $ cat > /etc/resolv.conf <<EOF nameserver 192.168.50.66 EOF
3. Изменить имя на minipbx-nodeX
mcedit /etc/hostname
4. Добавление репозитория minipbx
$ apt install gnupg $ wget -O - http://rep.ds.local:81/keyFile | sudo apt-key add $ echo 'deb [arch=amd64] http://rep.ds.local:81/ bionic contrib' > /etc/apt/sources.list.d/mpbx-repo.list $ apt update $ wget -O - http://deb.minipbx.ru:81/keyFile | sudo apt-key add $ echo 'deb [arch=amd64] http://deb.minipbx.ru:81/ bionic contrib' > /etc/apt/sources.list.d/mpbx-repo.list $ apt update
5. Установка комплекса и зависимостей:
$ apt install asterisk-minipbx $ apt install minipbx minipbx-excodecs
6. Настройка /etc/mpbxd/mpbxd.ini. Если узел новый, то не забыть добавить его в БД.
[main] nodeident=nodeX [db] Database= Username= Password= Server=
7. Если SNMP нужен, устанавливаем его:
$ apt install snmpd
иначе нужно запретить загрузку модуля res_snmp.so. В файле /etc/asterisk/modules.conf убрать комментарий со строке:
noload => res_snmp.so
8. Настройка SNMP. Создать файл /etc/snmp/snmpd.conf
agentAddress udp:0.0.0.0:161 view asterisk included .1.3.6.1.2.1.1.1 view asterisk included .1.3.6.1.2.1.1.2 view asterisk included .1.3.6.1.2.1.1.4 view asterisk included .1.3.6.1.2.1.1.5 view asterisk included .1.3.6.1.2.1.1.6 view asterisk included .1.3.6.1.4.1.22736 rocommunity dialog <ip> -V asterisk syslocation <location> sysContact admin <admin@some.com> master agentx agentXSocket /var/agentx/master agentXPerms 0660 0775 asterisk asterisk
Для отключения поднятия каких то лишних, причем случайных портов, в /etc/snmp/snmpd.conf закомментировать trapsink и trap2sink.
9. Настройка отправки электронной почты:
9.1. Настройка отправки через обычный SNMP сервер
$ cpan MIME::QuotedPrint MIME::Base64 Mail::Sendmail
Проверка:
$ perl -c /usr/voice/sendmail-dialog.pl
9.2. Настройка отправки через gmail:
$ apt install make libcrypt-ssleay-perl libauthen-sasl-perl $ cpan Email::Send::SMTP::Gmail
Проверка:
$ perl -c /usr/voice/sendmail-gmail.pl
10. Установка кодеков g723 и g729:
$ apt install minipbx-excodecs
11. Установка ntp клиента:
$ apt install ntpdate
Добавим в /etc/crontab
*/30 * * * * root /usr/sbin/ntpdate 192.168.50.94 >/dev/null 2>&1
12. Проверить наличие стандартных звуковых файлов:
$ ls -l /var/lib/asterisk/sounds
Отсутствие файлов приведет к проблемам! Например, без файлов pbx-transfer и beep не будет работать перевод вызовов!
13. Настройка рабочих IP адресов
X. Перерезапуск и проверка сервисов
Полное удаление
apt purge minipbx mpbxd asterisk-minipbx minipbx-excodecs
Тонкая настройка
1. Отключить ipv6:
in /etc/sysctl.conf # Disable ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 # for each interface (eth0, eth1, ...) net.ipv6.conf.<ifname>.disable_ipv6 = 1
В каждом интерфейсе, файла /etc/netplan/01-netcfg.yaml, должно быть что то типа (последние 2 строки):
eth1: dhcp4: no dhcp6: no accept-ra: no link-local: [ ]
2. Включить src routing:
in /etc/sysctl.conf # Controls IP packet forwarding net.ipv4.ip_forward = 1 net.ipv4.conf.all.forwarding = 1 net.ipv4.conf.default.forwarding = 1 # Controls source route verification net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.eth0.rp_filter=0 net.ipv4.conf.eth1.rp_filter=0 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 1 # Controls source route verification net.ipv4.conf.default.rp_filter = 1
В каждом интерфейсе (кроме основного), файла /etc/netplan/01-netcfg.yaml, должно быть что то типа (последние 2 секции):
eth3: dhcp4: no dhcp6: no accept-ra: no link-local: [ ] addresses: - 80.89.xxx.9/26 routes: - to: 0.0.0.0/0 via: 80.89.xxx.10 table: 103 routing-policy: - from: 80.89.xxx.9 table: 103 - to: 80.89.xxx.9 table: 103
3. Установка дополнительных пакетов:
apt install zabbix-agent vsftpd
4. Особенности настройки asterisk за NAT:
Иногда необходимо установить рабочий узел за NAT сервер (например так предоставляет подключение провайдер Яндекс). Для этого необходимо добавить (или отредактировать) набор параметров типа Узел, добавив в шаблон что то типа:
localnet=10.130.0.27/255.255.255.255 externip=84.201.168.24 media_address=84.201.168.24
где
- localnet - это внутренняя сеть (или внутренний адрес вашего сервера);
- externip - это внешний адрес вашего сервера, который будет использован в SIP заголовках;
- media_address = это внешний адрес вашего сервера, который будет использован для приема RTP (голосового) трафика;
Этот пример работает без дополнительной настройки в случае One-to-One NAT (один внешний адрес, жестко соответствует одному внутреннему). Для других видов NAT потребуется проброс портов (SIP и RTP).
5. Настройка очистки службы журнала:
Для удаления записей журнала старше одной недели, добавить в crontab:
0 4 * * 0 root journalctl --vacuum-time=1weeks
Включение событий о готовности записи разговора
Многие CRM системы могут хранить у себя запись разговора. К сожалению, из за архитектурных особенностей Asterisk, выполнение каких либо операций с записью происходит асинхронно. Поэтому, если существует необходимость интеграции с CRM, необходимо включить отправку сообщений о готовности записи разговоров:
mpbxd -record_events enable
Также вы можете отключить эту, уже включенную возможность, выполнив команду:
mpbxd -record_events disable
При включении этой возможности, создается файл с именем record_events, обычно располагаемый в каталоге /etc/mpbxd. Внутри этого файла содержится 3 строки:
- идентификатор узла;
- параметры подключения к БД;
- базовый путь хранения записей разговоров (должен заканчиваться символом разделителя пути, например «/«).