Como Instalar y Configurar Dos Servidores Asterisk

Primero debemos preguntarnos ¿Qué es Asterisk?, Asterisk es un programa de software libre (bajo licencia GPL) que proporciona funcionalidades de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto básicos como primarios. Mas info.

Esta guía está basada en un sistema Linux, preferiblemente CentOS 5 (para una ilustracion de Como instalar CentOS 5 en modo gráfico), por lo que se requiere conocimientos básico de comandos de linux y distribución de los directorios. Esta es una lista de fuentes para aprendizaje:

Requisitos de paquetes necesarios para instalar asterisk

1.- Debemos loguearnos como root desde consola con el comando:

su -

2.- Luego instalamos los paquetes necesarios para asterisk con el comando yum de la siguiente forma:

yum install gcc ncurses ncurses-devel make gcc-c++ libtermcap libtermcap-devel zlib zlib-devel libtool bison bison-devel openssl-devel bzip2 bzip2-devel wget newt newt-devel libxml2 libxml2-devel

Recomiendo que al instalar CentOS instalen los paquetes de herramientas de desarrollo (Development Tools), ya que incluyen los paquetes de arriba.

Descargar, descomprimir y compilar Asterisk

1.- Luego de tener todos estos paquetes instalados procedemos a descargar asterisk y libPRI desde http://www.asterisk.org/downloads la versión actual de asterisk es la 1.8.3.2 y LibPRI 1.4.11.5
2.- Una ves descargados los archivos copiarlos al directorio /usr/src
3.- Descomprimir los archivos con tar -xzvf nombre_de_archivo
4.- Acceder al directorio libbpricon cd /usr/src/libpri (que es uno de los archivos descomprimidos, listar con ls -s para ver todos los directorios de la carpeta src)
5.- Luego de accerder al directorio anterior solo debemos compilar libpri con los comandos:

make
make install

6.- Ahora retrocedemos y accedemos al directorio de asterisk con cd /usr/src/asterisk
7.- Luego de acceder nos queda compilar y configurar los archivos con los comandos:

make install
make samples (esto creará archivos de ejemplos)
make config (configura los servicios de inicio)

Requisitos para instalar Asterisk Addons

Asterisk Addons incluyen una serie de nuevos controladores de código abierto y servicios públicos incluyendo soporte para reproducción de mp3, MySQL en tiempo real y soporte para las CDR, chan_mobile, y un controlador alternativo H.323 (chan_ooh323).

Antes de comenzar primero debemos saber que es lo que queremos hacer con los archivos de addons para poder elegir solo los los paquetes que vallamos a utilzar, como mysql-devel, en este caso usaremos el de mysql para salvar los logs de asterisk en esta base de datos, osea los CDR.

1.- Para instalar los paquetes necesarios para usar mysql con asterisk debemos instalar los siguientes paquetes

yum install mysql-devel

2.- Descargar asterisk-addons desde http://www.asterisk.org/downloads la versión actual es la 1.6.2.3.
3.- Aqui hace el mismo procedimiento que hicimos arriba el cual es descomprimir el archivo con tar -xzvf nombre_de_archivo
4.- Luego acceder al directorio con cd /usr/src/asterisk-addons
5.- Solo nos queda configurar y compilar con:

./configure
make menuselect (nos muestra un menú y seleccionamos lo que queremos instalar)
make
make install

Configurar Extensiones en Asterisk con SIP.conf

Para crear una extension o varias, solo tenemos que editar el archivo sip.conf ya que anteriormente habiamos compilado los samples. Solo debemos acceder al directorio donde asterisk almacena todos los archivos de configuracoion esto lo hacemos de la siguiente forma utilizando el editor de texto vim o gedit:

vim /etc/asterisk/sip.conf

Ahora se nos muestra un archivo como este con varios textos.

;
; SIP Configuration example for Asterisk
;
; Note: Please read the security documentation for Asterisk in order to
; 	understand the risks of installing Asterisk with the sample
;	configuration. If your Asterisk is installed on a public
;	IP address connected to the Internet, you will want to learn
;	about the various security settings BEFORE you start
;	Asterisk..........................

Solo tenemos que ir al final de este y ahí comenzar a crear nuestras extensiones.

Digamos que en el mundo real las extensiones funcionan de la siguiente forma, si tenemos dos servidores asterisk dígase A y B, en el servidor A queremos configurar varias extensiones desde 1001 hasta la 1050, en un servidor B deberías crear las extensiones con el prefijo diferente al del servidor A por ejemplo desde la 2001 hasta la 2050 por así decirlo, basta ya de charla y veamos como se crea una extensión en el SIP.conf. como se muestra debajo.

[1001]
type=friend
username=1901
secret=123456
quality=yes
nat=no
host=dynamic
canreinvite=no
disallow=all
allow=gsm
allow=ullaw
allow=allaw
allow=g729
context=internal ;nos indica el grupo o área a la que pertenece una extensión

Eso es todo ya tenemos una extensión creada con SIP.conf, pero para poder comunicarnos tenemos que configurar estas extensiones en archivo extensions.conf, yo ya he creado varias extensiones 1001,1002,1003 para esto se hace el mismo procedimiento que hicimos con la 1001.

Configurar Extensiones en Asterisk con Extensions.conf

Para configurar las extensiones ya creadas, solo tenemos que editar el archivo extensiones.conf ya que anteriormente habiamos compilado los samples. Solo debemos acceder al directorio donde asterisk almacena todos los archivos de configuracoión esto lo hacemos de la siguiente manera, utilizando el editor de texto vim o gedit:

vim /etc/asterisk/extensions.conf

Ahora se nos muestra un archivo como este con varios textos:

; extensions.conf - the Asterisk dial plan
;
; Static extension configuration file, used by
; the pbx_config module. This is where you configure all your
; inbound and outbound calls in Asterisk.
;
; This configuration file is reloaded
; - With the "dialplan reload" command in the CLI
; - With the "reload" command (that reloads everything) in the CLI

;
; The "General" category is for certain variables.

Solo tenemos que ir al final de este y ahí comenzar a configurar nuestras extensiones.

Tener en cuenta que aquí trabajamos con los grupos o áreas, ejemplo si anteriormente habías creado una extensión en el archivo SIP.conf y esta en el context le habías asignado local, entonces local es el grupo o área al que pertenece dicha extensión. Pero basta de charla veamos como configurar nuestras extensiones para poder llamar entre ellas en un ambiente local como se muestra debajo.

[internal]
exten => 1001,1,Dial(SIP/1901)
exten => 1001,n,Hangup
exten => 1002,1,Dial(SIP/1902)
exten => 1002,n,Hangup
exten => 1003,1,Dial(SIP/1903)
exten => 1003,n,Hangup
exten => _10XX,1,Dial(IAX2/centos2/${EXTEN},30,Tt) ;esto es para enlazar con otro servidor asterisk mas abajo se explica
exten => _10XX,n,Hangup

Si se fijan [internal] es el grupo o área que asigné a mis extensiones ya creadas en el archivo SIP.conf. Tener en cuenta que cuando configuramos extensiones a estas le damos prioridad de llamar, colgar, cerrar, etc. Ejemplo si en la 1001 asignamos 1 después de la (coma) esto indica que la máxima prioridad es llamar primero, la n significa que seguirá ese mismo orden a lo otro que le vaya asignando.

Recomendado
  • Alvaro Hilario

    Muy bien cuando sale la parte 2