Instalar y configurar Asterisk en CentOS 6.6

9th Apr 2015Posted in: Tutoriales 0

Asterisk_Logo.svg

Para comenzar voy a dar una breve descripción de lo que es Asterisk por si alguien no lo sabe.

  • Asterisk es un software libre creado por Mark Spencer fundador de la empresa Digium la principal desarrolladora, que realiza funciones de PBX. Una PBX resumiendo mucho es una central teléfonica.
  • Asterisk permite gestionar llamadas, buzones de correo, crear una IVR (Interactive Voice Response) entre muchas otras cosas.
  • Reconoce un montón de protocolos de VoIP (Voice over IP) entre los que se encuentran SIP e IAX que son de los más importantes.

Ahora que ya sabemos sobre Asterisk vamos a instalarlo y configurarlo para un servidor CentOS 6.6

La parte de la instalación es diferente según la distro que usemos pero la configuración es la misma tanto para Ubuntu, CentOS, Debian, etc.

Instalación

Lo primero que vamos a hacer es agregar el repositorio dentro de /etc/yum.repos.d/ :

  • El primer repositorio que vamos a introducir será: centos-asterisk.repo

[asterisk-tested]
name=CentOS-$releasever - Asterisk - Tested
baseurl=http://packages.asterisk.org/centos/$releasever/tested/$basearch/
enabled=0
gpgcheck=0
#gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium

[asterisk-current]
name=CentOS-$releasever - Asterisk - Current
baseurl=http://packages.asterisk.org/centos/$releasever/current/$basearch/
enabled=1
gpgcheck=0
#gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium

  • El segundo repositorio será : centos-digium.repo

[digium-tested]
name=CentOS-$releasever - Digium - Tested
baseurl=http://packages.digium.com/centos/$releasever/tested/$basearch/
enabled=0
gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium

[digium-current]
name=CentOS-$releasever - Digium - Current
baseurl=http://packages.digium.com/centos/$releasever/current/$basearch/
enabled=1
gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium

Una vez terminado esto hacemos un
yum update

Ahora instalaremos el paquete asterisknow-version.noarch

yum install asterisknow-version

Instalando este paquete añadimos el resto de repositorios de Asterisk, con todas sus versiones disponibles. Ahora veremos que dentro de la carpeta /etc/yum.repos.d se han creado nuevos ficheros. Nosotros vamos ha instalar la versión 13 de Asterisk.

Para elegir una versión en concreto (por defecto utiliza el repositorio de la versión 11) utilizamos el parámetro –enablerepo (habilita el repositorio que le indicamos) en la instalación con yum, es decir, podemos instalar cualquier versión indicándole el repositorio adecuado
yum install asterisk asterisk-configs asterisk-sounds-core-es-gsm --enablerepo=asterisk-13

Como vamos a instalar la última versión de Asterisk, habilitaremos que el repositorio por defecto para actualizar Asterisk sea centos-asterisk-13.repo.

Para ello modificamos el parámetro enabled del repositorio centos-asterisk-11.repo a 0, para que éste esté deshabilitado. Y de la misma forma, modificamos el parámetro enabled del repositorio centos-asterisk-13.repo a 1, por lo que pasará a ser el repositorio utilizado para las actualizaciones de Asterisk. Dependiendo de la versión que hayamos instalado habilitaremos el repositorio de nuestra versión.

Configuración

Vamos a la carpeta de configuración que esta en /etc/asterisk

cd /etc/asterisk/

Encontraremos muchos archivos de los cuales ahora mismo utilizaremos tres:

  • sip.conf → En él se registran los usuarios SIP que vamos a utilizar
  • extensions.conf → En él registramos las extensiones
  • voicemail.conf → En él registramos los buzones de correo

Empezamos con el archivo sip.conf

Bajamos al final del fichero o donde queramos, elegimos el final por comodidad de saber dónde están siempre. Y seguimos la siguiente estructura para cada usuario:

[ejemplo]
type=friend
secret=pass
qualify=yes
nat=no
host=dynamic
canreinvite=no
context= contexto
mailbox= buzon

  • Deberemos poner entre corchetes el nombre del usuario, en este caso ejemplo
  • La contraseña del usuario se pone en secret
  • En host hemos decidido poner dynamic para que el usuario se pueda conectar desde cualquier IP de la red
  • Context es el contexto, le ponemos el contexto en el que va a estar
  • Mailbox es el buzón de voz

Ahora os voy a dejar un ejemplo del que yo he hecho
[rack]
type=friend
secret=1234
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=iesjg
mailbox=00@buzon

Sobre la línea 343 del sip.conf establecemos language=es, con esto hacemos que todos los usuarios que creemos tengan como lenguaje por defecto español.

Ahora vamos a configurar el voicemail.conf

Para configurar los buzones bajamos hasta el fondo y creamos un contexto, por ejemplo [buzon] y configuramos así los buzones con la siguiente estructura:
número => pass,nombre,correo

Y ahora el ejemplo que yo he hecho:

00 => 1234,rack,rack@iesjorgeguillen.es

Ya por último vamos a configurar el extensions.conf

En el fondo del documento, en mi caso, voy a añadir la configuración

Crearemos un contexto en mi caso [iesjg], recordad que los contextos van entre corchetes.

Y ahora dentro de ese contexto crearemos extensiones como por ejemplo:
exten => 00,1,Dial(SIP/rack,15,Ttm)
same => n,VoiceMail(00@buzon)
same => n,Hangup()

  • Lo que hace es cada vez que llamen a la extensión 00 en primer lugar llama al SIP/rack (que está creado en sip.conf) durante 15 segundos con una música de fondo y la llamada se puede reenviar a otro teléfono
  • Utilizamos “same” para no tener que estar poniendo por cada línea “exten => 00”
  • Si no se contesta, en siguiente lugar “n” salta el correo con la función VoiceMail (00@buzón) configurado anteriormente en voicemail.conf
  • Y por último hacemos un Hangup() para colgar

Ahora voy a poner algunas funciones útiles de Asterisk.

  1. Dial()

  • Con esta función realiza una llamada a donde le pasemos en este caso SIP/rack

  1. VoiceMail()

  • Con esta función se llama al buzón de voz de ese usuario para dejar un mensaje (número_buzón@contexto_en_voicemail.conf)

  1. Hangup()

  • Con esta función colgamos.

  1. Wait()

  • Con esta función se realiza una espera, el tiempo que queramos pasarle Wait(1), espera 1 segundo.

  1. VoiceMailMain()

  • Llama al menú del buzón de voz, te preguntará la extensión y su contraseña para escuchar los mensajes.

  1. Answer()

  • Con esta función la PBX Asterisk responde la llamada.

  1. Record()

  • Con esta función se graba un audio. Por ejemplo para crear un menú.

  1. Background()

  • Reproduce un audio en background.

 

Ahora reiniciamos el servicio.
service asterisk restart

Y ahora ejecutamos la consola de asterisk para llevar una monitorización.

asterisk -rvvvvvvvvvvv

Cuando conectemos teléfonos con los usuarios SIP creados podremos verlos en la consola ejecutando:

sip show peers

Tags: , ,


Related Posts

Leave a Reply