http://www.sinologic.net/A principios de años comentamos que iniciaríamos una serie de artículos introductorios sobre Asterisk orientados principalmente a aquellas personas que quieren comenzar y que no saben por donde. Si bien existen libros que pueden seguir, en Sinologic vamos a crear algunos artículos que seguro que ayudarán a cualquiera a aprender cómo funciona Asterisk de una forma rápida, sencilla y eficaz.

El primero de esta serie de artículos es “Cómo instalar Asterisk“, algo fundamental y que debemos aprender. Seguro que existen cientos de artículos donde se explican cómo instalar Asterisk, pero confío en que puedas ver algunas diferencias que pueden hacer de tu Asterisk algo mejor que el resto. 😉

Para seguir esta lista de artículos, puedes ver el tag #ast101 con los que vamos a marcarlos, de forma que pueda ser fácilmente identificables y sirva para que cualquier visitante pueda aprender a instalar y configurar Asterisk en condiciones.

Antes de empezar, vamos a plantear dos posibles escenarios: Centos o Debian. Ambos sistemas disponen de Asterisk en modo “paquete binario”, por lo que si vemos que se nos complica la instalación, siempre podemos instalarlo mediante yumapt-get y tendremos un Asterisk listo para funcionar, aunque no tan “pro” como este que vamos a instalar ahora.

La forma de instalar Asterisk es uno de los puntos más importantes, ya que de esto dependerá el soporte y las características que tendremos disponibles, los recursos utilizados e incluso algún bug de seguridad que otro, por lo tanto, vamos a empezar…


Descarga del código fuente de Asterisk

Hay varias formas de descargar el código fuente de Asterisk, una de ellas es accediendo a la web http://downloads.asterisk.org/pub/telephony/asterisk/ y buscando el paquete tar.gz que queramos. No obstante, soy más de utilizar la herramienta subversion (svn) ya que podemos actualizar el código fuente y ver qué ha cambiado con tan solo ejecutar el comando svn update. Para ello, vamos a irnos al directorio /usr/src (el directorio oficial donde trabajar con código fuente) y descargaremos la versión estable de Asterisk en el directorio ‘asterisk

yum -y install subversion || apt-get install subversion

cd /usr/src

svn co http://svn.asterisk.org/svn/asterisk/branches/11/ asterisk


Dependencias

Las dependencias son aquellos paquetes que vamos a necesitar para instalar Asterisk. Por supuesto, ya que vamos a instalar Asterisk desde código fuente, vamos a necesitar instalar las librerías y compiladores que utiliza Asterisk, en su modo “desarrollo” (developer, devel o dev) así que vamos a proceder a la instalación. Por lo general, podríamos poner una lista gigantesca de todos los paquetes y librerías necesarias para la compilación, no obstante, vamos a acelerar un poco la instalación de estas librerías mediante un par de comandos:

cd /usr/src/asterisk/contrib/scripts

./install_prereq install

ldconfig -v

El script install_prereq hace una comprobación de los paquetes ya instalados en tu sistema e instala automáticamente el resto de paquetes que pueden hacer falta para una instalación completa. Lo bueno de esta forma de instalar dependencias, es que nos va a permitir compilar Asterisk con prácticamente todas las opciones que podamos necesitar, todo el soporte para poder compilar cualquier módulo, lo malo es que, al poder compilar cualquier módulo, tendremos que filtrar manualmente qué módulos queremos cargar y cuales no.


Compilación

cd /usr/src/asterisk

./configure

Con el comando configure, el sistema analiza todas las librerías que tenemos instaladas (incluyendo las que hemos instalado en el apartado de ‘dependencias’) y prepara el código fuente para la compilación completa del sistema. Aunque podemos empezar la compilación, hay un comando que es recomendable ejecutar antes:

make menuconfig

Con este comando, accederemos a un sistema de menús donde podremos ver qué módulos podemos compilar y seleccionar alguno extra o evitar que se compile alguno que no nos interese. Podríamos seleccionar únicamente los módulos que queremos compilar, pero es más interesante compilarlos todos y seleccionar cual no queremos a posteriori. Una vez revisado todo, empezamos la compilación:

make && make install

Con este comando, comenzamos la compilación, que según la potencia del sistema puede llevar unos 7~12 minutos y tras la compilación, instalará cada archivo en su correspondiente directorio:

  • Archivos ejecutables en el directorio /usr/sbin
  • Módulos de Asterisk en el directorio /usr/lib/asterisk/modules
  • Archivos de sonidos en el directorio /var/lib/asterisk/sounds
  • Archivos temporales y spool en /var/spool/asterisk
  • Archivos de logs y CDR en /var/log/asterisk

Archivos de ejemplo

Si os fijáis, no se instalan los archivos de configuración, ya que, en caso de estar actualizando y tener ya archivos de configuración nuestros, sobreescribiríamos estos archivos. Por esta razón, hay un comando especial para crear los archivos de configuración básicos y que sobreescribiría cualquier archivo de configuración que hubiera:

make samples

Tras ejecutar este comando, el sistema creará en el directorio /etc/asterisk, todos los archivos de configuración. Tanto los que necesitemos, como los que no.


Últimos pasos

Por último, y para finalizar la instalación, ejecutaremos un último comando que generará los scripts de arranque, de forma que cuando encendamos el servidor, arranque Asterisk automáticamente.

make config

Con esto, se podría finalizar la instalación básica, pero con la ventaja de disponer de soporte de prácticamente cualquier módulo. No obstante, no nos vamos a quedar aquí y vamos a hacer unas cosas más para asegurarnos que nuestro Asterisk está realmente bien instalado y configurado. Primeramente necesitaremos arrancar el servicio:

service asterisk start

Una vez ejecutada esta línea, ya tendremos nuestro servidor Asterisk instalado y listo para empezar a configurar, algo que dejaremos para una siguiente entrega.

20 Comentarios

  • […] Fuente: Sinologic […]

  • Gracias,de verdad muchas gracias.Seguiré estudiando.Dios lo bendiga.
    Saludos desde Medellin Colombia.

  • Como siempre un buen post

    solo para adicionar algo, tener en cuenta que apartir de asterisk 10 en adelante AstDB utiliza sqlite, por lo que hay que agregar en el script install_prereq el paquete sqlite-devel o de lo contrario instalar manualmente con yum install sqlite-devel.

    Saludos Cordiales

    • En el install-prereq ya instala el soporte de desarrollo de SQLite.
      Además, hay otro comando ‘opcional’ que es:
      /usr/src/asterisk/contrib/scripts/install_prereq install-unpackaged

      Esto instala desde código fuente cualquier paquete que no exista en nuestra distribución.
      Algo bastante más lento, pero igual de efectivo.

  • Estimado Elio,

    para asterisk 11 algo adicional que también hay que tener en cuenta antes de iniciar asterisk es ejecutar el comando ldconfig.

    #ldconfig -v

    luego de ello levantamos el servicio, de lo contrario no te deja levantar el servicio

    Nota: las pruebas se realizaron con Centos 6.5

    Saludos Cordiales

    • Hola Nalvarhu,

      El comando ‘ldconfig’ se utiliza para recargar la caché de la lista de librerías instaladas, de forma que cuando instalas una librería y luego ejecutas una aplicación, la aplicación pueda consultar esa lista en una caché haciendo la ejecución más rápida.
      Puede ser recomendable ejecutar ese comando, pero por alguna razón, en Debian/Ubuntu nunca me había hecho falta, no obstante, lo añadiré a la lista de comandos para que el resto de visitantes lo tengan presentes.

      Gracias!

  • Excelente guía, creo que esta es la mejor forma de instalar asterisk en un ambiente de producción, desde la primera vez que empecé con Asterisk siempre me fuí con la variante de instalarlo desde el código fuente y tengo un call center de 6 agentes trabajando 24x7x365 con centos 6 y con asterisk 1.8 por más de 2 años sin dar absolutamente ningún fallo.Mis saludos Elio y te animo a seguir escribiendo, leo tu blog con frecuencia.

    • Muchas gracias por tus comentarios.

      Recuerda que actualizar la versión cada cierto tiempo también es recomendable, no solo por las mejoras que trae (nuevas características, nuevas funcionalidades, etc…) si no por temas de seguridad.

      Aún así, la versión Asterisk 1.8 todavía tendrá soporte durante algún tiempo. 😀

  • Muy buena su explicacion..!!
    Gracias por el aporte
    Una consulta que tengo es la siguiente:
    – Si deseo realizar de Asterisk una IVR donde me conecto a la operadora de telefonia Movil “publica” por medio de un troncal de sip donde le registro con un usuario y una clave.
    ¿Como la telefonia me enviara el numero de telefono de la persona que llama a la operadora? ¿Necesitaria una cuenta sip para cada linea para tener su callerID?

    Desde ya Gracias.
    Aguardo atentamente las respuestas.

    • Generalmente te lo envía y Asterisk puede obtenerlo mediante la función CALLERID(num).
      En VoIP, es recomendable tener una cuenta por operador ya que de cada cuenta puedes tener todas las llamadas simultaneas que el operador te permita y a cualquier número que el operador te quiera enviar.

      Saludos,

  • Muchas gracias por el articulo, me parece muy interesante.

    Estoy intentando utilizar la pjsip con asterisk 12.3.0, la compilación de pjsip la no me ha generado ningún error, pero cuando estoy compilando Asterisk me genera el siguiente error:

    /usr/bin/ld: /usr/local/lib/libpjsip-ua-x86_64-unknown-linux-gnu.a(sip_inv.o): relocation R_X86_64_32 against `pjsip_sip_cfg_var’ can not be used when making a shared object; recompile with -fPIC

    y no se como lo puedo solucionar. Me puedes decir como podría conseguir compilar pjsip 2.2.1 y asterisk 12.3.0. Gracias.

  • Elio, como pregunta basica, con asterisk 11 el libpri y el dahdi no son necesarios en una instalacion donde todo los enlaces seran sip y se va a manejar solo colas de llamadas?

    • Hola Edwin.
      Si solo vas a trabajar con SIP y colas del llamadas, entonces no es necesario ni DAHDI y mucho menos LibPRI.
      🙂

      • Elio, el concepto aplica igual con asterisk 1.8 en una solucion con las mismas caracteristicas (colas, troncales sip/iax2)

  • Hola,

    Donde encuentro un tutorial para configurar del Asterisk ?

    Te dejo un gran salu2

  • Hola, yo tengo una pregunta, cual es la distribuicion mas recomendada para instalar asterisk? CentOS, Debian, Archliux, Fedora, Ubuntu?

    • Olvidenlo ya vi el otro post donde abordan este tema

  • Buenas noches,

    estoy volviendo a formarme con asterisk después de seis años y la verdad estoy bastante pez con él. Seguí los pasos que ponen en este tutorial (que por cierto, está perfectamente explicado). Tal y como pone en este doc, se instala la versión 11. La realidad es que por lo que leí, me gustaría pasar a la versión 1.8 y no encuentro ningún manual en el que pueda echar un vistazo para no perderme. Alguien puede ayudarme y recomendarme alguna guía para actualizar a 1.8 ?¿ La idea sería montar el asterisk en producción, realmente no sé si es recomendable actualizar a 1.8 o es mejor quedarme con la 11. Muchas gracias de antemano.
    saludos

Dejar un comentario

Archivos

© 2014 Sinologic, inc. All rights reserved.

Menú

Redes sociales