Установка asterisk на CentOS 7: различия между версиями
Danil (обсуждение | вклад)  (Новая страница: «'''Подготовка системы''' Я рекомендую ознакомиться с моим материалом на тему первоначальн…»)  | 
				Danil (обсуждение | вклад)   | 
				||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
| − | '''Подготовка системы'''  | + | '''Подготовка системы'''<br>  | 
| − | |||
| − | Прежде чем   | + | Прежде чем начнем устанавливать asterisk, нам надо выполнить целый ряд подготовительных действий. Первым делом отключаем selinux. Для этого открываем файл:  | 
| − | + |  mcedit /etc/sysconfig/selinux  | |
и устанавливаем значение SELINUX=disabled. После этого применяем настройку без перезагрузки сервера:  | и устанавливаем значение SELINUX=disabled. После этого применяем настройку без перезагрузки сервера:  | ||
| − | + |  setenforce 0  | |
Рекомендация по отключению selinux дается в официальной инструкции по установке freepbx, так как это может привести к нарушению процесса инсталляции.  | Рекомендация по отключению selinux дается в официальной инструкции по установке freepbx, так как это может привести к нарушению процесса инсталляции.  | ||
Дальше обновляем систему:  | Дальше обновляем систему:  | ||
| − | + |  yum update  | |
| − | + |  yum groupinstall core base "Development Tools"  | |
Устанавливаем необходимые пакеты для работы сервера voip:  | Устанавливаем необходимые пакеты для работы сервера 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:  | ||
| − | + |  pear install Console_Getopt  | |
Теперь надо настроить iptabes. Подробно вопрос настройки firewall я рассмотрел отдельно. Там можно узнать все нюансы. Здесь же я прото скажу, что для начала нам нужно открыть 80-й порт, чтобы мы смогли работать с веб интерфейсом:  | Теперь надо настроить iptabes. Подробно вопрос настройки firewall я рассмотрел отдельно. Там можно узнать все нюансы. Здесь же я прото скажу, что для начала нам нужно открыть 80-й порт, чтобы мы смогли работать с веб интерфейсом:  | ||
| Строка 35: | Строка 34: | ||
Для работы freepbx необходима mariadb. Это популярный форк mysql, который по-умолчанию предлагается в качестве mysql сервера в CentOS 7. Оба эти сервера имеют полную совместимость и могут в любой момент заменять друг друга. Запустим базу и добавим в автозагрузку:  | Для работы freepbx необходима mariadb. Это популярный форк mysql, который по-умолчанию предлагается в качестве mysql сервера в CentOS 7. Оба эти сервера имеют полную совместимость и могут в любой момент заменять друг друга. Запустим базу и добавим в автозагрузку:  | ||
| − | + |  systemctl enable mariadb.service  | |
| − | + |  systemctl start mariadb  | |
При первоначальной конфигурации mariadb рекомендуется запустить скрипт mysql_secure_installation. Сделаем это:  | При первоначальной конфигурации mariadb рекомендуется запустить скрипт mysql_secure_installation. Сделаем это:  | ||
| − | + |  /usr/bin/mysql_secure_installation  | |
Подробнее о работе этого скрипта и вообще настройке mariadb можно прочитать в материале на тему web-сервера на centos 7.  | Подробнее о работе этого скрипта и вообще настройке mariadb можно прочитать в материале на тему web-сервера на centos 7.  | ||
| Строка 45: | Строка 44: | ||
Мы же двигаемся дальше. Для работы freepbx необходим веб сервер. В этом качестве у нас будет выступать httpd. Запускаем его:  | Мы же двигаемся дальше. Для работы freepbx необходим веб сервер. В этом качестве у нас будет выступать httpd. Запускаем его:  | ||
| − | + |  systemctl start httpd  | |
И добавляем в автозагрузку:  | И добавляем в автозагрузку:  | ||
| − | + |  systemctl enable httpd  | |
Теперь добавим пользователя, под которым будет работать астериск:  | Теперь добавим пользователя, под которым будет работать астериск:  | ||
| − | + |  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/
На этом установка непосредственно астериска закончена. Уже сейчас им можно полноценно пользоваться, настраивая через консоль и файлы конфигурации. Все компоненты для этого собраны, установлены и готовы к работе.