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
- Как отключить SELinux в Ubuntu Server / Desktop
- Как использовать команду Semanage для политики SELinux
Теперь перезагрузите вашу систему и снова зайдите через 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 комментария
Здравствуйте,
Я установил 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
Скорее всего проблема в firewalld.нужно создать сервис астериска в нем и открыть tcp/udp порты 5061,5060 10000-20000-для динамических портов