Сборка 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/
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.