Crmgo Блог

Встановлення Asterisk 13 на CentOS 7

Встановлення Asterisk 13 на CentOS 7

Встановимо залежності, які будуть необхідні для коректної роботи Asterisk Запустимо та увімкнемо автозавантаження MySQL(mariadb) За замовчуванням, після встановлення, ми можемо підключитися до нашого сервера баз даних під root-ом без введення пароля. Тому призначимо пароль і зробимо ще кілька налаштувань, виконавши…

Встановлення Asterisk 13 на CentOS 7

 

Встановимо залежності, які будуть необхідні для коректної роботи Asterisk

yum install -y gcc gcc-c++  lynx bison gmime-devel psmisc tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel kernel-devel-$(uname -r) git subversion kernel-devel  crontabs cronie cronie-anacron uuid-devel libtool sqlite-devel libuuid-devel bzip2
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

Запустимо та увімкнемо автозавантаження MySQL(mariadb)

systemctl enable mariadb.service
systemctl start mariadb.service

За замовчуванням, після встановлення, ми можемо підключитися до нашого сервера баз даних під root-ом без введення пароля. Тому призначимо пароль і зробимо ще кілька налаштувань, виконавши скрипт:

mysql_secure_installation


Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Thanks for using MariaDB!

 

  1. завантажуємо, розпаковуємо та компілюємо pjproject:
    1
    wget http://www.pjsip.org/release/2.3/pjproject-2.3.tar.bz2
    1
    tar -jxvf pjproject-2.3.tar.bz2
    1
    cd pjproject-2.3
    1
    ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
    

     

    1
    2
    make dep
    make
    1
    2
    sudo make install
    sudo ldconfig
    1
    sudo ldconfig -p | grep pj
    

Встановимо PearDB

pear uninstall db
pear install db-1.7.14

 

 

Скачиваем, распаковываем и компилируем jansson
wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar zvxf jansson-2.5.tar.gz
cd jansson-2.5 
./configure --prefix=/usr
make clean
make
make install 
ldconfig
cd ..

Завантажуємо, розпаковуємо та компілюємо lame

wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz 
tar zxvf lame-3.98.4.tar.gz 
cd lame-3.98.4 
./configure
make
make install
cd ..

Завантажуємо, розпаковуємо та компілюємо DAHDI

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz 
tar xvfz dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config
cd ..

Завантажуємо, розпаковуємо та компілюємо libpri

wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
tar xvfz libpri-current.tar.gz
cd libpri-*
make 
make install
cd ..

Тепер переходимо до найголовнішого - завантажуємо Asterisk

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

Розпаковуємо

tar xvfz asterisk-13-current.tar.gz
cd asterisk-13.*

Для роботи з cdr_mysql:

yum install Mariadb-devel

Почнемо встановлення Asterisk 13. Необхідні модулі встановлюємо командою make menuselect.

./configure --libdir=/usr/lib64
contrib/scripts/get_mp3_source.sh
make menuselect

Здебільшого, всі необхідні модулі вже включені. Ви можете щось додати або видалити. При виборі модуля буде короткий опис його призначення. У розділі Add-ons для підтримки mp3 увімкніть модуль 'format_mp3'

У вкладці Core Sound Packages виберіть необхідні формати звукових пакетів.

У Music On Hold File Packages включаємо всі модулі.

У Extras Sound Packages включаємо перші 4 модулі, що містять EN

Продовжуємо встановлення:

make
make install
make samples
make config

Створюємо користувача і даємо йому права для роботи з Asterisk.

useradd -m asterisk
chown asterisk.asterisk /var/run/asterisk 
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib64/asterisk

Перезапускаємо Asterisk

systemctl restart asterisk

 

Зробимо деяке налаштування для MySQL. Підключаємося до MySQL.

mysql -uroot –p(пароль заданный при установке MySQL(mariadb))

Після введення пароля ми опинимося в консолі MySQL. Створимо користувача asterisk і паролем ‘password’.

create user 'asterisk'@'localhost' identified by 'password';

Створимо базу даних asteriskcdrdb, asterisk.

create database asterisk;
create database asteriskcdrdb;

Далі визначаємо власника бази даних

GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY 'password';
flush privileges;

Приступимо до налаштування безпеки. За замовчуванням у CentOS 7 замість iptables використовує службу FirewallD. Синтаксис FirewallD виглядає:

firewall-cmd —permanent —add-port=№порта/протокол

Запустимо та увімкнемо автозавантаження FirewallD

systemctl start  firewalldsystemctl enable firewalld

Додамо правила:

firewall-cmd --zone=public --add-port=5060/udp --permanent
firewall-cmd --zone=public --add-port=5061/udp --permanent
firewall-cmd --zone=public --add-port=4569/udp --permanent
firewall-cmd --zone=public --add-port=5060/tcp --permanent
firewall-cmd --zone=public --add-port=5061/tcp --permanent
firewall-cmd --zone=public --add-port=5038/tcp --permanent
firewall-cmd --zone=public --add-port=10000-20000/udp --permanent
firewall-cmd --reload

Переконаємося, що правила додалися:

#firewall-cmd --zone=public  --list-all

public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 80/tcp 5061/tcp 4569/udp 5060/tcp 10000-20000/udp 5061/udp 5060/udp 5038/tcp
  masquerade: no
  forward-ports:
  icmp-blocks: echo-reply echo-request
  rich rules:

На цьому встановлення закінчено.

Встановлення додаткових кодеків:

wget http://asterisk.hosting.lv/bin/codec_g729-ast130-gcc4-glibc2.2-x86_64-pentium4.so

mv codec_g729-ast130-gcc4-glibc2.2-x86_64-pentium4.so codec_g729.so

wget http://asterisk.hosting.lv/bin/codec_g723-ast130-gcc4-glibc2.2-x86_64-pentium4.so

mv codec_g723-ast130-gcc4-glibc2.2-x86_64-pentium4.so codec_g723.so

 

asterisk -vvvr

module load codec_g729.so

module load codec_g723.so

Проблеми в процесі встановлення.

У багатьох, у процесі встановлення та налаштування, виникають різні помилки, тому ми вирішили в кінці цієї статті навести розв'язання помилок, які у вас можуть виникнути.

Проблема:

[CC] format_mp3.c -> format_mp3.o
format_mp3.c:39:24: fatal error: mp3/mpg123.h: No such file or directory

Розв'язання проблеми:

cd /usr/src/asterisk-*/
contrib/scripts/get_mp3_source.sh

 

Проблема:

configure: error: *** termcap support not found

Розв'язання проблеми:

yum install libtermcap-devel

 

Проблема:

configure: *** XML documentation will not be available because the 'libxml2' development package is missing.
configure: *** Please run the 'configure' script with the '--disable-xmldoc' parameter option
configure: *** or install the 'libxml2' development package.

Розв'язання проблеми:

yum -y install libxml2-devel

 

Проблема:

Doxygen is not installed. Please install and re-run the configuration script.

Розв'язання проблеми:

yum -y install doxygen

 

Проблема:

configure: error: *** uuid support not found (this typically means the uuid development package is missing)

Розв'язання проблеми:

yum -y install libuuid-devel

 

Проблема:

Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

Розв'язання проблеми:

/etc/selinux/config SELINUX=disabledreboot

 

Примітка: матеріал міг бути створений за підтримки ШІ з подальшою людською редакцією. Відповідальний за зміст: Dmytro Lomaka, Kaltenkirchen.