Asterisk - это open-source для создания приложений связи. Кроме того, Asterisk превращает обычный компьютер в сервер связи, и он запускает системы IP PBX и VoIP-шлюзы и серверы конференций и другие пользовательские приложения. Малые и крупные бизнес-компании, колл-центры, перевозчики и правительственные учреждения по всему миру используют его. В этом посте мы шаг за шагом объясним, как установить Asterisk на AlmaLinux 10.

Предпосылки

  • Сервер под управлением AlmaLinux 10 или любой другой ОС Linux.
  • Привилегии пользователя: пользователь root или не root с привилегиями sudo.

Конвенции

1
2
# — данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ – данные команды должны выполняться от имени обычного пользователя.

Шаг 1. Обновите систему

Мы предполагаем, что у вас установлена ​​новая версия AlmaLinux 10. Нам необходимо обновить системные пакеты до последних доступных версий. Для этого выполните следующие команды:

1
sudo dnf update -y && sudo dnf upgrade -y

Шаг 2. Настройте SELinux и Firewall

Я собираюсь отключить SElinux, чтобы не предотвращать любые установки.

1
sudo sed -i -e "s/^SELINUX=.*/SELINUX=disabled/" /etc/selinux/config

После этого перезагрузите свой сервер.

Шаг 3. Установите EPEL и необходимые пакеты

Существует ряд пакетов, которые Asterisk требует установки. Запустите следующие команды для их установки:

1
2
3
4
5
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
##OR
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm

Установите другие требуемые пакеты следующим образом:

1
sudo dnf -y install git wget vim net-tools sqlite-devel psmisc ncurses-devel newt-devel libxml2-devel libtiff-devel gtk2-devel libtool libuuid-devel subversion kernel-devel crontabs cronie-anacron libedit libedit-devel

Также установите пакеты групповых инструментов разработки со следующей командой:

1
sudo dnf group -y install "Development Tools"

Шаг 4. Установите Jansson

Jansson - это C библиотека для кодирования, декодирования и манипулирования данными JSON.

1
2
3
4
5
6
7
cd /usr/src/ 
sudo git clone https://github.com/akheron/jansson.git 
cd jansson 
sudo autoreconf  -i 
sudo ./configure --prefix=/usr/ 
sudo make
sudo make install

Шаг 5. Установите PJSIP

PJSIP - это свободная и открытая мультимедийная коммуникационная библиотека. Он реализует стандартные протоколы, такие как SIP, SDP, RTP, STUN, TURN и ICE. Скачать последнюю версию с официального веб-сайта с использованием виджета, экстракта и установки следующим образом:

1
2
3
4
5
6
7
8
cd ~
git clone https://github.com/pjsip/pjproject.git
cd pjproject
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
make dep
make
sudo make install
sudo ldconfig

Шаг 6. Установите Asterisk 22 LTS

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

1
2
3
4
cd /usr/src
sudo wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
sudo tar xvf asterisk-22-current.tar.gz
cd asterisk-22*/

Установка зависимостей Asterisk с помощью скрипта install_prereq:

1
sudo ./contrib/scripts/install_prereq install

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

1
2
sudo dnf install svn
sudo ./contrib/scripts/get_mp3_source.sh

Затем настройте Asterisk следующим образом:

1
sudo ./configure --libdir=/usr/lib64 --with-jansson-bundled

Настройка Asterisk Меню опций, используя следующую команду:

1
sudo make menuselect

Вы должны получить список функций для включения. Используйте клавиши со стрелками для навигации и ключа ENTER для выбора добавить chan_ooh323 и format_mp3, как показано ниже:

На Core Sound Packages выберите форматы пакетов Audio, как показано ниже.

Для Music on Hold выберите показанные пакеты.

На дополнительные звуковые пакеты выберите как показано ниже.

После этого нажмите на Save & Exit.

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

1
sudo make

Затем установите Asterisk со следующей командой.

1
sudo make install

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

1
2
sudo make samples
sudo make config

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

1
2
3
4
5
sudo groupadd asterisk 
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk 
sudo usermod -aG audio,dialout asterisk
sudo chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk 
sudo restorecon -vr {/etc/asterisk,/var/lib/asterisk,/var/log/asterisk,/var/spool/asterisk}

Установить пользователя по умолчанию Asterisk для asterisk:

1
2
3
4
5
6
7
8
9
$ sudo vim /etc/sysconfig/asterisk
###Uncomment these lines 
AST_USER="asterisk" 
AST_GROUP="asterisk" 

$ sudo vim /etc/asterisk/asterisk.conf
###Uncomment these lines
runuser = asterisk ; The user to run as. 
rungroup = asterisk ; The group to run as.

Шаг 7. Создайте служебный файл для автоматического запуска Asterisk

Создайте файл службы Linux.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
sudo tee /etc/systemd/system/asterisk.service > /dev/null <<'EOF'
[Unit]
Description=Asterisk PBX and telephony daemon.
After=network.target

[Service]
Type=simple
Environment=HOME=/var/lib/asterisk
#if systemd do not provide hostname and you need to use ${ENV(HOSTNAME)}
#Environment=HOSTNAME=%H
WorkingDirectory=/var/lib/asterisk
User=asterisk
Group=asterisk
ExecStart=/usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf
ExecStop=/usr/sbin/asterisk -rx 'core stop now'
ExecReload=/usr/sbin/asterisk -rx 'core reload'
#if /var/run is a tmpfs, this will create /var/run/asterisk on start
RuntimeDirectory=asterisk

#Nice=0
#UMask=0002
LimitCORE=infinity
#LimitNOFILE=
Restart=always
RestartSec=4

# Prevent duplication of logs with color codes to /var/log/messages
StandardOutput=null
PrivateTmp=false

[Install]
WantedBy=multi-user.target
EOF

Включите и запустите Asterisk при загрузке.

1
2
sudo systemctl daemon-reload
sudo systemctl enable --now asterisk

Используйте следующую команду для тестирования, если вы желаете подключиться к Asterisk CLI.

1
sudo asterisk -rvvv

Завершение

Мы завершили наше руководство по установке Asterisk на системах AlmaLinux 10. Мы начали с подготовки сервера с необходимыми зависимостями, а затем приступили к установке и настройке Asterisk.

Если вам понравился этот пост по установке Asterisk на системах AlmaLinux 10, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.