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

by itisgood

Asterisk – это платформа с открытым исходным кодом, используемая для построения коммуникационных приложений.

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

Он используется для питания IP-АТС, VoIP-шлюзов, серверов конференций и других решений.

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

В этом уроке мы покажем вам, как установить Asterisk на CentOS 7 (инструкции также работают на RHEL 7), но прежде чем мы начнем, нам нужно будет сделать некоторые приготовления, чтобы Asterisk мог работать плавно после установки.

Шаг 1: Отключите SELinux на CentOS 7

Чтобы сделать это, сначала зайдите через SSH в вашу систему и используя ваш любимый текстовый редактор командной строки, откройте / etc / selinux / config и отключите SELINUX.

# vim /etc/selinux/config

Строка SELinux должна выглядеть так:

SELINUX=disabled

Теперь перезагрузите вашу систему и снова зайдите через ssh.

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

У Asterisk есть немало требований, которые необходимо установить.

Вы можете использовать следующую команду yum для установки необходимых пакетов, как показано далее

# yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel

Затем установите PJSIP, бесплатную библиотеку мультимедийных сообщений с открытым исходным кодом, которая реализует стандартные протоколы, такие как SIP, SDP, RTP, STUN, TURN и ICE.

Именно драйвер Asterisk SIP-канала должен улучшить четкость вызовов.

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

# mkdir ~/build && cd ~/build

Теперь перейдите на страницу загрузки PJSIP и возьмите пакет или используйте следующую команду wget для загрузки пакета непосредственно в терминал.

Обратите внимание, что при написании этой статьи последняя версия – 2.8, онп может измениться в будущем, поэтому обязательно используйте последнюю версию:

# wget https://www.pjsip.org/release/2.8/pjproject-2.8.tar.bz2

По завершении загрузки извлеките файл и перейдите в этот каталог.

# tar xvjf pjproject-2.8.tar.bz2
# cd pjproject-2.8

Следующим шагом будет подготовка пакета для компиляции. Вы можете использовать следующую команду:

./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr

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

# make dep

И теперь мы можем завершить установку

# make && make install && ldconfig

Наконец, убедитесь, что все библиотеки установлены и представлены:

# ldconfig -p | grep pj

Вы должны получить следующий результат:

libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
        libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
        libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
        libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
        libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
        libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
        libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
        libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
        libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
        libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
        libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
        libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
        libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
        libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
        libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
        libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
        libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
        libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
        libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
        libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
        libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
        libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
        libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
        libpj.so (libc6,x86-64) => /lib64/libpj.so

Шаг 3: Установите Asterisk в CentOS 7

Теперь мы готовы начать установку Asterisk. Вернитесь в наш каталог ~ / build:

# cd ~/build

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

# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

Теперь извлеките архив и перейдите во вновь созданный каталог:

# tar -zxvf asterisk-16-current.tar.gz
# cd asterisk-16.0.0

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

# yum install svn
# ./contrib/scripts/get_mp3_source.sh

После второго шага вы должны получить аналогичный результат:

A    addons/mp3
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
A    addons/mp3/Makefile
A    addons/mp3/README
A    addons/mp3/decode_i386.c
A    addons/mp3/dct64_i386.c
A    addons/mp3/MPGLIB_TODO
A    addons/mp3/mpg123.h
A    addons/mp3/layer3.c
A    addons/mp3/mpglib.h
A    addons/mp3/decode_ntom.c
A    addons/mp3/interface.c

Начните с запуска скрипта configure для подготовки пакета для компиляции:

# ./configure --libdir=/usr/lib64

Если вы получаете какие-либо недостающие зависимости, установите их. В моем случае я получил следующую ошибку:

configure: error: patch is required to configure bundled pjproject

Чтобы обойти это, просто запустите:

# yum install patch 

И заново запустите скрипт configure. Теперь давайте начнем процесс сборки:

# make menuselect

Через несколько секунд вы должны получить список функций, которые можно включить:

Если вы попытаетесь использовать музыку на удержании, вам нужно включить функцию format_mp3 из раздела «Add-ons».

Сохраните список и выполните следующую команду:

# make install

Чтобы установить образцы файлов конфигурации, используйте следующую команду:

# make samples

Чтобы запустить Asterisk при загрузке, используйте:

# make config

Наконец, давайте проверим нашу установку:

# service asterisk start
# asterisk -rvv

Вы должны увидеть результат, похожий на этот:

Asterisk 16.0.0, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 16.0.0 currently running on asterisk (pid = 3985)
asterisk*CLI>

Если вы хотите увидеть список доступных команд, введите:

asterisk*CLI> core show help

Чтобы выйти из консоли Asterisk, просто введите:

asterisk*CLI> exit

Asterisk все еще работает в фоновом режиме.

You may also like

2 комментария

Yusu 01.11.2018 - 07:11

Здравствуйте,
Я установил asterisk по данным руководства, asterisk работает но softphone не подключается к asterisk
pjsip.conf
[trans-udp]
type=transport
protocol=udp
bind=0.0.0.0

[101]
type=endpoint
transport=trans-udp
context=internal
disallow=all
allow=ulaw
allow=gsm
auth=101
aors=101

[101]
type=auth
auth_type=userpass
password=1234
username=101

[101]
type=aor
max_contacts=1

[102]
type=endpoint
transport=trans-udp
context=internal
disallow=all
allow=ulaw
allow=gsm
auth=102
aors=102

[102]
type=auth
auth_type=userpass
password=12345
username=102

[1012]
type=aor
max_contacts=1

Reply
Neo 20.11.2020 - 08:45

Скорее всего проблема в firewalld.нужно создать сервис астериска в нем и открыть tcp/udp порты 5061,5060 10000-20000-для динамических портов

Reply

Добавить комментарий для Neo Cancel Reply