Instalando Asterisk-ES-RSP

En Capa Tres usamos, desde hace unos meses, exclusivamente Asterisk-ES-RSP (http://www.asterisk-es-rsp.org) como fuente de instalación de nuestros sistemas. Os recomiendo, si no lo conoceis, una visita a la web que os he indicado un poco mas arriba. Basicamente es un proyecto colaborativo, abierto, donde buscamos inmovilizar una versión de Asterisk concreta (la 1.4.24.1) y backportar aquellos parches que consideramos interesantes. El objetivo es, ante todo, estabilidad.

En nuestro caso completo podemos afirmar que el uso de RSP como base de instalación ha supuesto bajar las incidencias debidas a mal funcionamiento de Asterisk y/o regresiones en updates virtualmente a cero. Y por supuesto ganar en tranquilidad, bajar la ocupación de nuestro personal de Soporte y poder dedicarnos a ampliar conocimientos y mercado.

Por ese motivo, os pongo a continuación una pequeña chuleta, redactada por uno de nuestros técnicos (Helí Nuñez) con los pasos de instalación y compilación de Asterisk-ES-RSP.  Estas instrucciones son válidas para los siguientes supuestos:

  1. Tengo un sistema nuevo Asterisk por desplegar y deseo un sistema lo mas estable posible.
  2. Tengo un Elastix/trixbox/FreePBX instalado y tengo problemas, por lo que uso Asterisk-ES-RSP para sobreescribir el software que viene de serie y ganar en estabilidad.
  3. Necesito controladores fiables para tarjetas OpenVox: la versión de Dahdi 2.3 que incorpora la RSP está parcheada incluyendo los controladores para todas las tarjetas OpenVox e incluye soporte para el cancelador de eco SoftECHO de Octasic.

Estas instrucciones suponen que descargais el software que tenemos en un .tar.gz en nuestra web, pero por supuesto podeis descargar desde el SVN de la web del proyecto si quereis tener los últimos parches aplicados (http://www.asterisk-es-rsp.org/doku.php/instalacion:descarga_y_compilacion).

Podríamos definir las siguientes fases de instalación de una asterisk-es-rsp:

1 – Sistema base.

2 – Resolución de dependencias de Asterisk.

3 – Instalación de asterisk-es-rsp

4 – Archivos de configuración de las tarjetas.

5 – Desarrollo del dialplan y puesta en marcha.

1 – Sistema base.

Nuestra centralita debe tener un sistema base antes de poder instalar un asterisk en ella. Cualquier GNU Linux sería una buena elección, aunque nosotros nos centraremos en un sistema base centrado en CentOS como sistema operativo, como podria ser una CentOS 5 o una Elastix 1.6.

En estos casos nos encontramos con 2 claros escenarios:

  1. Escenario A: Sistema base sin asterisk. (Caso de un CentOS 5 recien instalado o utilizado para otros menesteres)
  2. Escenario B: Sistema base con asterisk. (Caso de un CentOS 5 con asterisk o una Elastix 1.6)

En ambos casos presuponemos que tenemos conexión a internet.

2 – Resolución de dependencias de Asterisk.

Tanto si nos encontramos en los Escenarios A o B, deberemos asegurarnos de que cumplimos con las dependencias básicas de asterisk. Es fácil caer en el error de pensar que un equipo por tener una versión antigua de asterisk o tener un asterisk funcionando debe tener todas las dependencias de los paquetes resueltas.

[root@centralita ~]# yum install kernel kernel-devel bison gcc mysql-server mysql-devel httpd autoconf ncurses ncurses-devel libtermcap libtermcap-devel newt newt-devel gcc-c++ openssl-devel flex mc lm_sensors postfix httpd php*

Con esto deberían quedar resueltas las posibles dependencias a la hora de instalar asterisk.

3 – Instalación de asterisk-es-rsp

Primero de todo nos situaremos en la carpeta /usr/src/ de nuestra centralita o donde queramos dejar las fuentes de asterisk que vamos a compilar. Una vez situados en dicha carpeta nos bajamos las fuentes. Capatres tiene disponibles las fuentes en su pagina web.

[root@centralita ~]# cd /usr/src

[root@centralita src]# wget http://www.capatres.com/asterisk-es-rsp.tar.gz

Ahora continuamos descomprimiendo las fuentes

[root@centralita src]# tar xvf asterisk-es-rsp.tar.gz

Una vez tenemos las fuentes descomprimidas podemos pasar a compilar asterisk, para lo cual seguiremos siempre el siguiente orden de compilación e instalación:

1 – Libpri: make –> make install

2 – Dahdi: make –> make install

3 – Dahdi Tools: ./configure –> make –> make install –> make config

4 – Asterisk: ./configure –> make menuselect –> make –> make install –>make config –> [make es-sounds]

ESCENARIO A: –> make samples

5 – Asterisk Tools: ./configure –> make menuselect –> make –> make install

ESCENARIO A: –> make samples

Es importante notar que en los sistemas que solo queramos actualizar el asterisk no debemos hacer un make samples ya que queremos utilizar los archivos de configuración que ya usamos. En el caso de Asterisk, make es-sounds es opcional ya que sólo lo ejecutaremos si queremos tener en nuestro sistema las excelentes voces en español proporcionadas por www.voipnovatos.es

[root@centralita src]# cd asterisk-es-rsp/libpri/

[root@centralita libpri]# make && make install

[root@centralita libpri]# cd ../dahdi-2.3.0/

[root@centralita dahdi-2.3.0]# make && make install

[root@centralita dahdi-2.3.0]# cd tools/

[root@centralita tools]# ./configure

[root@centralita tools]# make && make install

[root@centralita tools]# make config

[root@centralita tools]# cd ../../asterisk/1.4.24/

[root@centralita 1.4.24]# ./configure

[root@centralita 1.4.24]# make menuselect

[root@centralita 1.4.24]# make && make install

[root@centralita 1.4.24]# make config

Opcionalmente: [root@centralita 1.4.24]# make es-sounds

Solo para Escenario A: [root@centralita 1.4.24]# make samples

[root@centralita 1.4.24]# cd ../asterisk-addons-1.4.9/

[root@centralita asterisk-addons-1.4.9]# ./configure

[root@centralita asterisk-addons-1.4.9]# make menuselect

[root@centralita asterisk-addons-1.4.9]# make && make install

Solo para Escenario A: [root@centralita asterisk-addons-1.4.9]# make samples

Si todo ha ido bien y no hemos tenido errores significativos, ya tendriamos nuestro asterisk-es-rsp instalado en la centralita.

4 – Archivos de configuración de las tarjetas.

Los archivos de configuración de las tarjetas son basicamente 3:

/etc/dahdi/modules

/etc/dahdi/system.conf

/etc/asterisk/chan_dahdi.conf

Dahdi viene con un montón de herramientas que nos ayudarán a configurar nuestras tarjetas correctamente.

Básicamente usaremos los siguientes scripts:

dahdi_hardware: nos dice si tenemos algún hardware compatible con dahdi instalado en nuestra centralita, y si el modulo esta cargado o no (nos dice el nombre del módulo, así como un + o un – en función de si esta cargado o no).

dahdi_cfg -vv: Configura el modulo y nos da informacion de su estado.

dahdi_genconf: Crea los archivos de configuración /etc/dahdi/system.conf y /etc/asterisk/chan-dahdi.conf de forma automática.

Lo primero que haremos será ejecutar dahdi_hardware para saber que módulo debemos añadir al archivo de configuración /etc/dahdi/modules si este no existe.

Después ejecutamos, dahdi_genconf, que nos creará los archivos de configuración /etc/dahdi/system.conf y /etc/asterisk/dahdi-channel.conf, este último fichero posee la configuración que debemos añadir al archivo /etc/asterisk/chan-dahdi.conf para poder usar la tarjeta desde asterisk. En sistemas basados en paneles web como elastix o freepbx, el archivo /etc/asterisk/chan_dahdi.conf incluye el archivo /etc/asterisk/dahdi-channels.conf mediante un include para simplificar la configuración.

Desde capatres siempre recomendamos no usar los archivos de configuración por defecto y usar solo las lineas de configuración que hacen lo que queremos. Por lo que siempre es recomendable editar los ficheros que se han creado y unicamente usarlos como base, no como norma. Un claro ejemplo de que uno no se debe fiar al 100% de los archivos de configuración por defecto es que normalmente el archivo de configuración /etc/dahdi/system.conf creado por el script dahdi_genconf nos define por defecto las zonas a “us” cuando normalmente estamos en “es”.

Ejemplo de configuración para una OpenVox A400P con 1 modulo FXO:

[root@centralita ~]# dahdi_hardware

pci:0000:11:00.0 wctdm- e159:0001 Wildcard TDM400P REV E/F

Al ejecutar dahdi_hardware vemos que necesitamos el módulo wctdm y que no esta cargado. Por lo que editamos el archivo /etc/dahdi/modules para que contenga una linea que diga “wctdm”.

[root@centralita ~]# echo wctdm >> /etc/dahdi/modules

[root@centralita ~]# /etc/init.d/dahdi restart

Unloading DAHDI hardware modules: done

Loading DAHDI hardware modules:

wctdm: [ OK ]

Running dahdi_cfg: [ OK ]

[root@centralita ~]# dahdi_hardware

pci:0000:11:00.0 wctdm+ e159:0001 Wildcard TDM400P REV E/F

[root@centralita ~]# dahdi_genconf

[root@centralita ~]# cat /etc/dahdi/system.conf

# Autogenerated by /usr/sbin/dahdi_genconf on Thu Jul 8 16:00:00 2010

# If you edit this file and execute /usr/sbin/dahdi_genconf again,

# your manual changes will be LOST.

# Dahdi Configuration File

#

# This file is parsed by the Dahdi Configurator, dahdi_cfg

#

# Span 1: WCTDM/4 “Wildcard TDM400P REV E/F Board 5″ (MASTER)

fxsks=1

echocanceller=oslec,1

# channel 2, WCTDM/4/1, no module.

# channel 3, WCTDM/4/2, no module.

# channel 4, WCTDM/4/3, no module.

# Global data

loadzone = es

defaultzone = es

En este caso vemos que el archivo de configuración /etc/dahdi/system.conf es correcto por lo que no realizaremos ninguna modificación.

Ahora observamos que ha hecho con el archivo /etc/asterisk/dahdi-channels.conf

[root@Dragon ~]# cat /etc/asterisk/dahdi-channels.conf

; Autogenerated by /usr/sbin/dahdi_genconf on Thu Jul 8 16:00:00 2010

; If you edit this file and execute /usr/sbin/dahdi_genconf again,

; your manual changes will be LOST.

; Dahdi Channels Configurations (chan_dahdi.conf)

;

; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended

; to be #include-d by /etc/chan_dahdi.conf that will include the global settings

;

; Span 1: WCTDM/4 “Wildcard TDM400P REV E/F Board 5″ (MASTER)

;;; line=”1 WCTDM/4/0 FXSKS”

signalling=fxs_ks

callerid=asreceived

group=0

context=from-pstn

channel => 1

callerid=

group=

context=default

Este archivo pese a ser correcto esta demasiado “sucio” para nuestro gusto por lo que lo modificaríamos a nuestro gusto y según nuestro dialplan.

Ahora una vez que tenemos el archivo /etc/asterisk/dahdi-channels.conf a nuestro gusto solo haria falta incluirlo en /etc/asterisk/chan_dahdi.conf de la forma que creamos más edecuada, ya sea mediante include, copiando la configuración y pegándola en su sitio correspondiente… etc etc.

5 – Desarrollo del dialplan y puesta en marcha.

Una vez tenemos asterisk-es-rsp funcionando y la tarjeta configurada tendremos que desarrollar el dialplan de asterisk para que se adecue a nuestras necesidades y poder poner el equipo en producción. Posiblemente esta sea la parte más bonita y que nos llevará más tiempo, y en la que realmente descubriremos todo el potencial que nos ofrece asterisk para nuestro negocio, cliente u hogar.

En próximos artículos del blog, el Grupo de Soporte de Capatres tratará los siguientes temas de interés:

  • Instalación del cancelador de echo por software OCTASIC
  • Archivos de configuración básicos de las tarjetas OpenVoz Analógicas.
  • Archivos de configuración básicos de las tarjetas OpenVoz Digitales.

Tags: , , , ,

2 Responses to “Instalando Asterisk-ES-RSP”

  1. kalderista says:

    Excelente artículo. Espero con impaciencia los próximos post sobre los archivos de configuración.

Leave a Reply

You must be logged in to post a comment.