Установка asterisk на CentOS 7: различия между версиями
Danil (обсуждение | вклад) |
Danil (обсуждение | вклад) |
||
Строка 51: | Строка 51: | ||
adduser asterisk -M -c "User for voip" | adduser asterisk -M -c "User for voip" | ||
+ | |||
'''Установка Asterisk'''<br> | '''Установка Asterisk'''<br> | ||
+ | |||
+ | Приступаем непосредственно к установке asterisk. Она состоит из нескольких этапов. Сначала мы собираем и устанавливаем все, что нужно для полноценной работы астериск, и в конце собираем его. Первым делом скачиваем необходимые компоненты: | ||
+ | |||
+ | cd /usr/src | ||
+ | wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz | ||
+ | wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz | ||
+ | wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz | ||
+ | wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz | ||
+ | wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2 | ||
+ | Если вы не используете аппаратные платы расширения для сервера asterisk, то вам dahdi и libpri не нужны. Не скачивайте и не собирайте их. | ||
+ | Устанавливаем DAHDI — драйверы для плат производства Digium: | ||
+ | |||
+ | tar xvfz dahdi-linux-complete-current.tar.gz | ||
+ | tar xvfz libpri-current.tar.gz | ||
+ | cd dahdi-linux-complete-* | ||
+ | make all | ||
+ | Если получаете ошибку: | ||
+ | |||
+ | You do not appear to have the sources for the 3.10.0-123.el7.x86_64 kernel installed | ||
+ | То тут 2 варианта: | ||
+ | |||
+ | Вы сделали обновление системы и не перезагрузили сервер. У вас отличаются значения ядра в выводе команды uname -r и реальным ядром системы в /usr/src/kernels. В таком случае вам нужно просто перезагрузить сервер. | ||
+ | Если дело не в обновлении и разных версиях ядра, то сделайте символьную ссылку на kernel в папке с dahdi: | ||
+ | ln -s /usr/src/kernels/3.10.0-123.el7.x86_64 /usr/src/dahdi-linux-complete-2.10.2+2.10.2/build | ||
+ | Не забудьте исправить пути на свои, версия dahdi и ядра скорее всего будет другая. Снова запускаете сборку: | ||
+ | |||
+ | make all | ||
+ | Если по какой-то причине у вас все равно не собирается dahdi, а текст ошибок не очень информативный и в интернете ничего не получается найти по этой ошибке, попробуйте установить более старую версию, для начала предыдущую. Взять ее можно тут. Я сталкивался с подобной ситуацией и этот путь помог выполнить установку успешно. А с последней версией dahdi не получалось. | ||
+ | Если все проходит без ошибок, то продолжаем сборку: | ||
+ | |||
+ | make install | ||
+ | make config | ||
+ | Устанавливаем libpri — библиотеку, предназначенную для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface).: | ||
+ | |||
+ | cd /usr/src/libpri-* | ||
+ | make | ||
+ | make install | ||
+ | Выполняем установку pjproject — open source библиотеку для разработки VoIP приложений на различных платформах: | ||
+ | |||
+ | cd /usr/src | ||
+ | tar -xjvf pjproject-2.4.tar.bz2 | ||
+ | cd pjproject-2.4 | ||
+ | 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 | ||
+ | Устанавливаем jansson — библиотеку на С для кодирования и декодирования JSON данных: | ||
+ | |||
+ | cd /usr/src | ||
+ | tar vxfz jansson.tar.gz | ||
+ | cd jansson-* | ||
+ | autoreconf -i | ||
+ | ./configure --libdir=/usr/lib64 | ||
+ | make | ||
+ | make install | ||
+ | И наконец компилируем и устанавливаем asterisk: | ||
+ | |||
+ | cd /usr/src | ||
+ | tar xvfz asterisk-13-current.tar.gz | ||
+ | cd asterisk-* | ||
+ | contrib/scripts/install_prereq install | ||
+ | ./configure --libdir=/usr/lib64 | ||
+ | contrib/scripts/get_mp3_source.sh | ||
+ | make menuselect | ||
+ | Появляется псевдографическая менюшка с выбором модулей. Все необходимые модули уже включен по-умолчанию. Добавим только поддержку mp3, либо, если вам необходимо app_mysql и cdr_mysql: | ||
+ | |||
+ | установка asterisk | ||
+ | Нажимаем Save & Exit и продолжаем установку: | ||
+ | |||
+ | make | ||
+ | make install | ||
+ | make config | ||
+ | ldconfig | ||
+ | chkconfig asterisk off | ||
+ | Устанавливаем звуки в хорошем качестве. По-умолчанию астериск ставит звуки низкого качества, чтобы система успешно работала на различном оборудовании. К примеру, на Rasberry Pi. Но на полноценный сервер мы можем установить звуки 8khz wav и G722 High Definition Wideband: | ||
+ | |||
+ | cd /var/lib/asterisk/sounds | ||
+ | wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz | ||
+ | wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz | ||
+ | tar xfz asterisk-core-sounds-en-wav-current.tar.gz | ||
+ | tar xfz asterisk-extra-sounds-en-wav-current.tar.gz | ||
+ | wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz | ||
+ | wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz | ||
+ | tar xfz asterisk-extra-sounds-en-g722-current.tar.gz | ||
+ | tar xfz asterisk-core-sounds-en-g722-current.tar.gz | ||
+ | Выставляем необходимые права на файлы и каталоги: | ||
+ | |||
+ | chown asterisk. /var/run/asterisk | ||
+ | chown -R asterisk. /etc/asterisk | ||
+ | chown -R asterisk. /var/{lib,log,spool}/asterisk | ||
+ | chown -R asterisk. /usr/lib64/asterisk | ||
+ | chown -R asterisk. /var/www/ | ||
+ | На этом установка непосредственно астериска закончена. Уже сейчас им можно полноценно пользоваться, настраивая через консоль и файлы конфигурации. Все компоненты для этого собраны, установлены и готовы к работе. |
Текущая версия на 11:52, 26 февраля 2019
Подготовка системы
Прежде чем начнем устанавливать asterisk, нам надо выполнить целый ряд подготовительных действий. Первым делом отключаем selinux. Для этого открываем файл:
mcedit /etc/sysconfig/selinux
и устанавливаем значение SELINUX=disabled. После этого применяем настройку без перезагрузки сервера:
setenforce 0
Рекомендация по отключению selinux дается в официальной инструкции по установке freepbx, так как это может привести к нарушению процесса инсталляции.
Дальше обновляем систему:
yum update yum groupinstall core base "Development Tools"
Устанавливаем необходимые пакеты для работы сервера voip:
yum install lynx mariadb-server mariadb php php-mysql php-mbstring tftp-server httpd ncurses-devel sendmail sendmail-cf sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel sqlite-devel net-tools gnutls-devel php-pear
Устанавливаем компонент pear:
pear install Console_Getopt
Теперь надо настроить iptabes. Подробно вопрос настройки firewall я рассмотрел отдельно. Там можно узнать все нюансы. Здесь же я прото скажу, что для начала нам нужно открыть 80-й порт, чтобы мы смогли работать с веб интерфейсом:
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT Для полноценной работы астериск, нужно открыть следующие порты:
iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 5061 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5061 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5038 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 5038 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT Для работы freepbx необходима mariadb. Это популярный форк mysql, который по-умолчанию предлагается в качестве mysql сервера в CentOS 7. Оба эти сервера имеют полную совместимость и могут в любой момент заменять друг друга. Запустим базу и добавим в автозагрузку:
systemctl enable mariadb.service systemctl start mariadb
При первоначальной конфигурации mariadb рекомендуется запустить скрипт mysql_secure_installation. Сделаем это:
/usr/bin/mysql_secure_installation
Подробнее о работе этого скрипта и вообще настройке mariadb можно прочитать в материале на тему web-сервера на centos 7.
Важное замечание. На этапе настройки mariadb не указывайте пароль root. Он должен быть пустым. Если его задать, то стандартная установка freepbx закончится ошибкой и сообщением: Error! Invalid Database Permissions. The error was: SQLSTATE[28000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO) Мы же двигаемся дальше. Для работы freepbx необходим веб сервер. В этом качестве у нас будет выступать httpd. Запускаем его:
systemctl start httpd
И добавляем в автозагрузку:
systemctl enable httpd
Теперь добавим пользователя, под которым будет работать астериск:
adduser asterisk -M -c "User for voip"
Установка Asterisk
Приступаем непосредственно к установке asterisk. Она состоит из нескольких этапов. Сначала мы собираем и устанавливаем все, что нужно для полноценной работы астериск, и в конце собираем его. Первым делом скачиваем необходимые компоненты:
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2
Если вы не используете аппаратные платы расширения для сервера asterisk, то вам dahdi и libpri не нужны. Не скачивайте и не собирайте их. Устанавливаем DAHDI — драйверы для плат производства Digium:
tar xvfz dahdi-linux-complete-current.tar.gz tar xvfz libpri-current.tar.gz cd dahdi-linux-complete-* make all
Если получаете ошибку:
You do not appear to have the sources for the 3.10.0-123.el7.x86_64 kernel installed То тут 2 варианта:
Вы сделали обновление системы и не перезагрузили сервер. У вас отличаются значения ядра в выводе команды uname -r и реальным ядром системы в /usr/src/kernels. В таком случае вам нужно просто перезагрузить сервер. Если дело не в обновлении и разных версиях ядра, то сделайте символьную ссылку на kernel в папке с dahdi:
ln -s /usr/src/kernels/3.10.0-123.el7.x86_64 /usr/src/dahdi-linux-complete-2.10.2+2.10.2/build
Не забудьте исправить пути на свои, версия dahdi и ядра скорее всего будет другая. Снова запускаете сборку:
make all
Если по какой-то причине у вас все равно не собирается dahdi, а текст ошибок не очень информативный и в интернете ничего не получается найти по этой ошибке, попробуйте установить более старую версию, для начала предыдущую. Взять ее можно тут. Я сталкивался с подобной ситуацией и этот путь помог выполнить установку успешно. А с последней версией dahdi не получалось. Если все проходит без ошибок, то продолжаем сборку:
make install make config
Устанавливаем libpri — библиотеку, предназначенную для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface).:
cd /usr/src/libpri-* make make install
Выполняем установку pjproject — open source библиотеку для разработки VoIP приложений на различных платформах:
cd /usr/src tar -xjvf pjproject-2.4.tar.bz2 cd pjproject-2.4 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
Устанавливаем jansson — библиотеку на С для кодирования и декодирования JSON данных:
cd /usr/src tar vxfz jansson.tar.gz cd jansson-* autoreconf -i ./configure --libdir=/usr/lib64 make make install
И наконец компилируем и устанавливаем asterisk:
cd /usr/src tar xvfz asterisk-13-current.tar.gz cd asterisk-* contrib/scripts/install_prereq install ./configure --libdir=/usr/lib64 contrib/scripts/get_mp3_source.sh make menuselect
Появляется псевдографическая менюшка с выбором модулей. Все необходимые модули уже включен по-умолчанию. Добавим только поддержку mp3, либо, если вам необходимо app_mysql и cdr_mysql:
установка asterisk Нажимаем Save & Exit и продолжаем установку:
make make install make config ldconfig chkconfig asterisk off
Устанавливаем звуки в хорошем качестве. По-умолчанию астериск ставит звуки низкого качества, чтобы система успешно работала на различном оборудовании. К примеру, на Rasberry Pi. Но на полноценный сервер мы можем установить звуки 8khz wav и G722 High Definition Wideband:
cd /var/lib/asterisk/sounds wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz tar xfz asterisk-core-sounds-en-wav-current.tar.gz tar xfz asterisk-extra-sounds-en-wav-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz tar xfz asterisk-extra-sounds-en-g722-current.tar.gz tar xfz asterisk-core-sounds-en-g722-current.tar.gz
Выставляем необходимые права на файлы и каталоги:
chown asterisk. /var/run/asterisk chown -R asterisk. /etc/asterisk chown -R asterisk. /var/{lib,log,spool}/asterisk chown -R asterisk. /usr/lib64/asterisk chown -R asterisk. /var/www/
На этом установка непосредственно астериска закончена. Уже сейчас им можно полноценно пользоваться, настраивая через консоль и файлы конфигурации. Все компоненты для этого собраны, установлены и готовы к работе.