Instalación de Asterisk 11.12.1 en CentOS 7

En este articulo veremos como instalar la ultima versión de Asterisk de la rama 11 en un VPS remoto con instalado CentOS 7

Para el articulo se ha utilizado un VPS de Digital Ocean con 512 MB RAM.

Una vez adquirido el VPS se accede vía SSH. La primera vez el servidor nos solicitará el cambio de la contraseña de root predefinida (la que hemos recibido por correo electrónico). Cambiada la contraseña se continúa con los pasos que siguen.

 

PREPARACIÓN DEL VPS

Se actualiza el sistema:

yum update -y

Se instalan los repositorios Epel para CentOS 7:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-1.noarch.rpm

Se continúa con la configuración de la zona horaria (personalizar según su país):

rm /etc/localtime

ln -s /usr/share/zoneinfo/America/Bogota /etc/localtime

Se configura el idioma (español). Para buscar el español de Colombia

localectl list-locales | grep CO

es_CO
es_CO.iso88591
es_CO.utf8

Para configurarlo

localectl set-locale LANG=es_CO.iso88591

Se instala el paquete del network time protocol para tener siempre actualizada la hora del servidor:

yum install ntp -y

Se configura para que arranque en automático utilizando el nuevo sistema de arranque de CentOS 7 Systemd:

systemctl enable ntpd

ln -s '/usr/lib/systemd/system/ntpd.service' '/etc/systemd/system/multi-user.target.wants/ntpd.service'

Se inicia:

systemctl start ntpd

Para ver si está corriendo correctamente:

systemctl | grep ntpd

ntpd.service                  loaded active running   Network Time Service

Se instalan las fuentes del Kernel instalado que se necesitarán al momento de la instalación de DAHDI:

yum install -y kernel-devel-$(uname -r)

Se crea la partición de Swap ya que no viene por defecto:

dd if=/dev/zero of=/swapfile bs=1024 count=512k

mkswap /swapfile

swapon /swapfile

Se configura la partición de swap para que arranque con el sistema:

nano /etc/fstab

al final del archivo se añade la línea que sigue:

/swapfile swap swap defaults 0 0

Se cambian los permisos del archivo recién creado:

chmod 0600 /swapfile

En el CentOS de digital Ocean Selinux está desactivado por defecto. En el caso de otro servidor local o remoto, averiguar siempre que lo esté:

nano /etc/selinux/config

Los dos parámetros presentes tienen que estar configurados de la siguiente manera:

SELINUX=disabled
SELINUXTYPE=targeted

Se reinicia el sistema:

reboot

 

INSTALACIÓN LIBRERÍAS Y DEPENDENCIAS PARA ASTERISK

Vorbis:

yum install libvorbis libvorbis-devel vorbis-tools libogg libogg-devel -y

Curl:

yum install curl curl-devel libidn-devel -y

Paquetes para la compilación de las fuentes:

yum install gcc ncurses-devel make gcc-c++ mingw64-termcap-static zlib-devel libtool bison-devel \
bison openssl-devel bzip2-devel wget newt-devel subversion flex gtk2-devel net-tools -y

En CentOS 7 ya no está presente MySQL sino MariaDB:

yum install mariadb mariadb-server mariadb-devel -y

ODBC:

yum install unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl-devel -y

SQLite:

yum install sqlite sqlite-devel -y

Festival:

yum install festival festival-devel hispavoces-pal-diphone hispavoces-sfl-diphone -y

Libuuid y uiid para la correcta compilación de las librerías de PjSIP y el correcto funcionamiento del protocolo ICE en Asterisk:

yum install libuuid libuuid-devel uuid uuid-devel -y

Speex y WavPack:

yum install speex speex-devel wavpack wavpack-devel

Lame desde las fuentes:

cd /usr/src
wget http://ufpr.dl.sourceforge.net/sourceforge/lame/lame-3.99.5.tar.gz
tar -xf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix=/usr --libdir=/usr/lib64/
make
make install

Libmad desde las fuentes:

cd /usr/src
wget http://prdownloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz
tar -xf libmad-0.15.1b.tar.gz
cd libmad-0.15.1b
./configure --prefix=/usr --libdir=/usr/lib64/

nano +129 Makefile

CFLAGS = -Wall -g -O -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2

para que quede:

CFLAGS = -Wall -g -O -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2

make
make install

SoX desde las fuentes:

cd /usr/src
wget http://downloads.sourceforge.net/project/sox/sox/14.4.1/sox-14.4.1.tar.gz
tar -xf sox-14.4.1.tar.gz
cd sox-14.4.1
./configure --prefix=/usr --libdir=/usr/lib64/
make
make install

Se instala la ultima versión de DAHDI y LibPRI:

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-l...
tar -xf dahdi-linux-complete-2.10.0+2.10.0.tar.gz
cd dahdi-linux-complete-2.10.0+2.10.0
make
make install
make config

Se inicia DAHDI con el viejo sistema de arranque:

service dahdi start

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.14.tar.gz
tar -xf libpri-1.4.14.tar.gz
cd libpri-1.4.14
make
make install

SpanDSP y relativas librerías para el soporte FAX:

yum install libtiff libtiff-devel libxml2 libxml2-devel -y

cd /usr/src
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre21.tgz
tar -xf spandsp-0.0.6pre21.tgz
cd spandsp-0.0.6
./configure --prefix=/usr --libdir=/usr/lib64/
make
make install

Iksemel y relativas librerías para el soporte XMPP:

yum install gnutls gnutls-devel gnutls-utils iksemel iksemel-devel -y

OpenLDAP:

yum install compat-openldap openldap openldap-clients openldap-devel openldap-servers -y

SNMP:

yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils -y

El Lenguaje LUA para el dialplan:

yum install lua lua-devel -y

LibiCAL y Neon para el soporte de los calendarios:

yum install libical libical-devel neon neon-devel -y

LibSRTP para el cifrado del flujo media:

yum install libsrtp libsrtp-devel -y

 

INSTALACIÓN DE ASTERISK

Se descarga la ultima versión disponible de Asterisk, rama 11:

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11.12.1.ta...
tar -xf asterisk-11.12.1.tar.gz
cd asterisk-11.12.1
./configure --libdir=/usr/lib64
make menuselect

Seleccionan los módulos que quieren activar/desactivar. En mi caso:

Captura

Se guardan los cambios y se continúa:

contrib/scripts/get_mp3_source.sh
make
make install
make samples

Para que Asterisk se inicie en automático hay que crear una nueva entrada en el sistema de arranque Systemd:

nano /usr/lib/systemd/system/asterisk.service

Se copian las líneas que siguen:

[Unit]
Description=Asterisk PBX
Documentation=man:asterisk(8)
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/sbin/asterisk -g -f
ExecReload=/usr/sbin/asterisk -rx 'core reload'
Restart=always
RestartSec=1
WorkingDirectory=/usr/sbin

[Install]
WantedBy=multi-user.target

Se guardan los cambios y se activa el servicio:

systemctl enable asterisk

ln -s '/usr/lib/systemd/system/asterisk.service' '/etc/systemd/system/multi-user.target.wants/asterisk.service'

Para tener la certeza que arranque al Boot de Linux, se reinicia el servidor:

reboot

Se accede nuevamente al servidor remoto y luego a la consola de Asterisk:

asterisk -rvvvvvvvvvv

Asterisk 11.12.1, Copyright (C) 1999 - 2013 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 11.12.1 currently running on sip21 (pid = 639)
CLI>

Perfecto!!!

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

9 comentarios

Cortafuego en CentOS 7

Una nota.

En CentOS 7 ha cambiado también la gestión del cortafuego que se basa en Firewalld.

Si se quiere utilizar el "viejo" IPtables los pasos a seguir son:

systemctl stop firewalld
systemctl mask firewalld

yum install iptables-services

systemctl enable iptables

service iptables stop

mv /etc/sysconfig/iptables /etc/sysconfig/iptables.old

service iptables start

Luego se configura normalmente.

Compatibilidad con el libro Asterisk 11 v 1.1

Cuento con la ultima versión del libro Asterisk 11 v 1.1, en el se utiliza centOS 6.5, es posible seguir este post para emplear centOS 7 y continuar con la integridad del libro, veo que cambia MySQL por Maria. al parecer es el único cambio significativo.

Saludos

Re: Compatibilidad con el libro Asterisk 11 v 1.1

Hola,

el sistema de arranque de CentOS 7 es completamente nuevo y puede ser que algunos programas no tengan todavía ese sistema disponible pues el único problema que le veo es ese; que tengas problemas a la hora de configurar el arranque automático para algunos programas que se instalan desde la fuentes.

Personalmente primero averiguaría esa parte.

Saludos

GUI

Alguna GUI funciona con esta distribución de Asterisk

Re: dahdi

Hola,

DAHDI se requerido por la aplicación meetme (conferencias audio) y para el trunking del protocolo IAX2. Como para las conferencias audio es mejor utilizar ConfBridge (más completa) y IAX2 casi no se utiliza, puedes realizar la instalación sin DAHDI.

Saludos

make en lame

Cordial Saludo
Siempre me da el mismo problema al hacer make tengo centos 7 32bits
make[3]: se sale del directorio `/usr/src/lame-3.99/ACM'
make[2]: se sale del directorio `/usr/src/lame-3.99/ACM'
make[1]: se sale del directorio `/usr/src/lame-3.99/ACM'
Making install in mac
make[1]: se ingresa al directorio `/usr/src/lame-3.99/mac'
make[2]: se ingresa al directorio `/usr/src/lame-3.99/mac'
make[2]: No se hace nada para `install-exec-am'.
make[2]: No se hace nada para `install-data-am'.
make[2]: se sale del directorio `/usr/src/lame-3.99/mac'
make[1]: se sale del directorio `/usr/src/lame-3.99/mac'
Making install in macosx
make[1]: se ingresa al directorio `/usr/src/lame-3.99/macosx'
Making install in English.lproj
make[2]: se ingresa al directorio `/usr/src/lame-3.99/macosx/English.lproj'
make[3]: se ingresa al directorio `/usr/src/lame-3.99/macosx/English.lproj'
make[3]: No se hace nada para `install-exec-am'.
make[3]: No se hace nada para `install-data-am'.
make[3]: se sale del directorio `/usr/src/lame-3.99/macosx/English.lproj'
make[2]: se sale del directorio `/usr/src/lame-3.99/macosx/English.lproj'
Making install in LAME.xcodeproj
make[2]: se ingresa al directorio `/usr/src/lame-3.99/macosx/LAME.xcodeproj'
make[3]: se ingresa al directorio `/usr/src/lame-3.99/macosx/LAME.xcodeproj'
make[3]: No se hace nada para `install-exec-am'.
make[3]: No se hace nada para `install-data-am'.
make[3]: se sale del directorio `/usr/src/lame-3.99/macosx/LAME.xcodeproj'
make[2]: se sale del directorio `/usr/src/lame-3.99/macosx/LAME.xcodeproj'
make[2]: se ingresa al directorio `/usr/src/lame-3.99/macosx'
make[3]: se ingresa al directorio `/usr/src/lame-3.99/macosx'
make[3]: No se hace nada para `install-exec-am'.
make[3]: No se hace nada para `install-data-am'.
make[3]: se sale del directorio `/usr/src/lame-3.99/macosx'
make[2]: se sale del directorio `/usr/src/lame-3.99/macosx'
make[1]: se sale del directorio `/usr/src/lame-3.99/macosx'
Making install in vc_solution
make[1]: se ingresa al directorio `/usr/src/lame-3.99/vc_solution'
make[2]: se ingresa al directorio `/usr/src/lame-3.99/vc_solution'
make[2]: No se hace nada para `install-exec-am'.
make[2]: No se hace nada para `install-data-am'.
make[2]: se sale del directorio `/usr/src/lame-3.99/vc_solution'
make[1]: se sale del directorio `/usr/src/lame-3.99/vc_solution'
make[1]: se ingresa al directorio `/usr/src/lame-3.99'
make[2]: se ingresa al directorio `/usr/src/lame-3.99'
make[2]: No se hace nada para `install-exec-am'.
make[2]: No se hace nada para `install-data-am'.

LAME EN CENTOS 7

Gracias amigo por responder a mi peticion estoy tratando de instalar asterisk con a2billing en centos 7 pero al compilar lame me sale el error anterior descrito dice que se sale del directorio al hacer make igual con make install 

Suscribirse a Comentarios de "Instalación de Asterisk 11.12.1 en CentOS 7" Suscribirse a VozToVoice - Todos los comentarios