Решение проблемы

Установка Asterisk 13 на Debian 8


Расскажу без лишних комментариев и отступлений об установке чистого asterisk 13 на сервер Debian 8. Ранее я уже рассматривал этот вопрос на разных дистрибутивах и версиях. Сейчас просто освежу и актуализирую предыдущие заметки на тему установки астериска, чтобы можно было простым копипастом быстро все развернуть на голом сервере. У меня по старым инструкциям не получилось, были ошибки небольшие, поэтому решил заново описать, как быстро установить asterisk на debian.

Содержание:

  • 1 Введение
  • 2 Подготовка сервера
  • 3 Установка Asterisk 13
  • 4 Заключение
  • 5 Дополнительные материалы по Debian

Введение

Установка Asterisk 13 на Debian 8

Если у вас еще нет готового сервера, рекомендую мою статью по установке и настройке Debian. Я не буду касаться вопроса настройки фаервола, буду считать, что он выключен. Но на сервере с астериском, особенно если он смотрит в интернет напрямую, обязательно надо настроить firewall. По этому поводу рекомендую мою подробную статью по настройке iptables. Там хоть и идет речь о другой операционной системе, но сами правила iptables во всех системах абсолютно одинаковые.

Приступаем к установке астериска. Я буду работать на следующей системе:

Проверка версии системы Debian

Подготовка сервера

Устанавливаем на сервер необходимые пакеты. Скажу честно, я точно не знаю, нужны ли они все. Список подсмотрел у себя, но он явно избыточный, так как там еще и freepbx ставится. Заглянул еще в несколько руководств и сделал компиляцию, убрав то, что сразу показалось лишним. Думаю, тут есть еще что-то лишнее, например libsqlite3-dev, но на 100% не уверен, а проверять каждый пакет не хочется.

# apt-get install build-essential autoconf libncurses5-dev libssl-dev libxml2-dev libsqlite3-dev libmysqlclient-dev curl mpg123 libxml2 libxml2-dev libaudiofile-dev subversion sox libsox-fmt-all uuid-dev libjansson-dev libiksemel-dev libssl-dev libtiff5-dev mysql-client libmyodbc lame linux-headers-`uname -r` mysql-server mysql-client libtool

Установка пакетов в Debian

Дожидаемся установки всех пакетов. В процессе будет задан вопрос с паролем root для mysql, так что не уходите далеко от консоли. Параллельно можно пока скачать исходники необходимых программ — pjproject, jansson.

# cd /usr/src

# wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2
# wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz

После установки пакетов, приступаем к сборке pjproject и jansson:

# cd /usr/src

# tar -xjvf pjproject-2.*
# cd pjproject-2.*
# CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib64
# make dep
# make
# make install
# cd /usr/src

# tar vxfz jansson.tar.gz
# cd jansson-*
# autoreconf -i
# ./configure --libdir=/usr/lib64
# make
# make install

На этом подготовка сервера к установке asterisk 13 закончена. Приступаем к самому главному.

Установка Asterisk 13

Установка Asterisk 13 на Debian 8

Скачиваем и устанавливаем asterisk на debian:

# 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-*
# contrib/scripts/install_prereq install
# contrib/scripts/get_mp3_source.sh
# ./configure --libdir=/usr/lib64
# make menuselect

Asterisk menuselect

К тому, что установлено по-умолчанию, я добавляю:

  • На первой вкладке format_mp3.
  • В Core Sound Packages указываю русские звуки RU-WAV.
  • В Extras Sound Packages выбираю английский EN-WAV, русского, к сожалению, нет.

Продолжаю, после принятия настроек, нажатием на Save & Exit.

# make

# make install
# make samples
# make config
# ldconfig

После установки, пробуем запустить asterisk:

# systemctl start asterisk

Job for asterisk.service failed. See 'systemctl status asterisk.service' and 'journalctl -xn' for details.

Asterisk не стартует. Я получаю ошибку. Смотрим, в чем проблема:

Asterisk не запускается

Starting Asterisk PBX: asterisk/usr/sbin/asterisk: error while loading shared libraries: libasteriskssl.so.1

Астериск не может найти один из модулей. Проверяем, где он в системе:

# whereis libasteriskssl.so.1

libasteriskssl.so: /usr/lib64/libasteriskssl.so.1 /usr/lib64/libasteriskssl.so

Мне не понятна эта ошибка запуска астериска. Сама библиотека на месте и лежит в /usr/lib64. Параметр при сборке астериска:

# ./configure --libdir=/usr/lib64

Должен явно указывать смотреть библиотеки в этой папке, но почему-то все равно возникает ошибка. Исправляем ее вручную. Добавляем в /etc/ld.so.conf.d/libc.conf необходимый путь до библиотеки:

/usr/lib64

После этого выполняем:

# ldconfig

Снова пробуем стартовать:

# systemctl start asterisk

И проверяем работу:

Проверка состояния сервиса asterisk

Добавим астериск в автозагрузку:

# systemctl enable asterisk

Запускаем консоль астериск и убеждаемся, что все в порядке:

# rasterisk

консоль rasterisk

Все в порядке, сервер телефонии asterisk установлен и готов к работе.

Заключение

Мы установили оригинальную версию asterisk 13 на сервер под управлением debian 8 без каких-либо дополнений и web панелей. Дальше можно приступать к настройке. Я рекомендую воспользоваться моей инструкцией по базовой настройке asterisk с нуля. Там подробно рассказано как сконфигурировать основной функционал, который удовлетворит потребности в телефонии для среднестатистического офиса. Настройка включает в себя так же запись разговоров и подробную статистику звонков.


СМОТРИ ТАКЖЕ