artem
12.01.2016
20154

Сборка Asterisk 13 с поддержкой протокола pjsip и SRTP из исходников в ОС CentOS6-minimal.

В рамках данной статьи рассматривается подробная сборка Asterisk 13 из исходников на сервере с Centos minimal. Статья в первую очередь написана для новичков в Asterisk, но обладающих опытом администрирования linux-систем.

1. Установка необходимого инструментария и зависимостей, а также обновление системы:

yum groupinstall base -y
yum groupinstall core -y
yum groupinstall «Development Tools» -y
yum install -y kernel-devel kernel-headers

yum install -y e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear php php-gd php-mysql php-pdo php-mbstring ncurses-devel mysql-connector-odbc unixODBC unixODBC-devel audiofile-devel libogg-devel openssl-devel zlib-devel perl-DateManip sox git wget net-tools psmisc

yum install -y gcc-c++ make gnutls-devel libxml2-devel ncurses-devel subversion doxygen texinfo curl-devel net-snmp-devel neon-devel uuid-devel libuuid-devel sqlite-devel sqlit speex-devel gsm-devel libtool libtool-tdl libtool-ltdl-devel

yum -y install libuuid-devel
yum -y install jansson-devel (предварительно требуется установка репозитория epel: yum install epel-release)

yum update -y

Перезагрузка системы:

reboot

2. Отключение SELinux.с

Так как FreePBX не работает корректно c SELinux, а в дальнейшем планируется установка FreePBX на данный сервер, то следует отключить службу SELinux. Делается это изменением параметра SELINUX= в конфигурационном файле /etc/selinux/config на значение disabled

vim /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing — SELinux security policy is enforced.
# permissive — SELinux prints warnings instead of enforcing.
# disabled — No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted — Targeted processes are protected,
# mls — Multi Level Security protection.
SELINUXTYPE=targeted

Командой sestatus проверяется статус SELinux:

[root@localhost ~]# sestatus
SELinux status: disabled

3. Установка базы данных и ее начальная подготовка

Можно использовать mysql или mariadb. В данном случае выбор остановился на mysql

yum install mysql mysql-devel mysql-server mysql-connector-odbc

Добавление mysql в автозагрузку

chkconfig mysqld on
chkconfig mysqld —add

Корректность можно проверить следующей командой:

chkconfig mysqld —list
mysqld 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл

Запуск сервиса: service mysqld start

Далее можно настроить необходимые параметры безопасности БД:
— задать root-пароль;
— отключить удаленный доступ под пользователем root;
— удалить анонимных пользователей и тестовые БД.
В принципе на все вопросы можно ответить утвердительно «y».

4. Сборка SRTP

cd /usr/src
wget http://heanet.dl.sourceforge.net/project/srtp/srtp/1.4.4/srtp-1.4.4.tgz
tar xvf srtp-1.4.4.tgz
make runtest
make install

Если make runtest выдает ошибку вида:

test/dtls_srtp_driver >/dev/null
cd test; ./rtpw_test.sh >/dev/null
./rtpw_test.sh: line 27: rtpw: команда не найдена
make: *** [runtest] Ошибка 254

необходимо в файле с исходниками test/rtpw_test.sh заменить строку RTPW=rtpw на строку RTPW=./rtpw

5. Сборка Pjproject

cd /usr/src
git clone git://github.com/asterisk/pjproject pjproject
cd pjproject/
./configure —libdir=/usr/lib64 —prefix=/usr —enable-shared —disable-sound —disable-resample
make dep
make
make install
ldconfig
ldconfig -p | grep pj

Если вывод будет подобен нижеуказанному, следовательно все установилось корректно:

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

6. Для конвертации mp3 необходимо установить lame.

— Установка репозитория rpmforge

rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum repolist — проверка установленных репозиториев

rpmforge RHEL 6 — RPMforge.net — dag 4718

— Собственно установка lame

yum install lame

7. Установка DAHDI

cd /usr/src/
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

8. Установка LibPRI

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

9. Установка SpanDSP

cd /usr/src/
wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
tar zxvf spandsp-0.0.6.tar.gz
cd spandsp-0.0.6
./configure
make
make install
ln -s /usr/local/lib/libspandsp.so.2 /usr/lib64/libspandsp.so.2

10. Установка Asterisk13

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar xvfz asterisk-13-current.tar.gz
cd asterisk-13.*
contrib/scripts/get_mp3_source.sh
./configure —libdir=/usr/lib64
make menuselect — выбиаются все необходимые параметры, но в принципе можно оставить по умолчанию, главное чтобы были включены необходимые драйверы каналов
make
make install
make config
ldconfig

Далее заменить в файле /usr/sbin/safe_asterisk строку ASTARGS=»» на ASTARGS=»-U asterisk»

Запуск службы Asterisk:

service asterisk start
asterisk -cvvv
asterisk
asterisk -rvvv

Если видна нижеуказанная строка, то установка прошла корректно:

certain conditions. Type ‘core show license’ for details.
=========================================================================
Connected to Asterisk 13.6.0 currently running on localhost (pid = 16592)
localhost*CLI>

На этом установка завершена, далее можно переходить к настройке АТС.

В продолжении, полезным будет статья Установка FreePBX 12 /kb/freepbx/ustanovka-freepbx-12/

Кейсы внедрения
Asterisk от VoxLink
Узнайте, какие крупные компании уже используют Asterisk в работе.
Скачать
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

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

Безопасен в использовании.

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

Надежен в эксплуатации.

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

Гибкий в настройке.

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

Имеет огромный функционал.

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

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

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

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.