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 все еще работает в фоновом режиме.

Поделитесь статьей:

2 thoughts on “Как установить Asterisk на CentOS 7

  1. Здравствуйте,
    Я установил 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

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

Добавить комментарий