1/19/2012

Archivos de configuración de Asterisk



En esta sección, voy a presentar a los archivos de configuración de Asterisk, y le mostrará cómo utilizar algunas características avanzadas.
Asterisk es un sistema de telefonía muy flexible. Sin embargo, aun con esta flexibilidad, es un poco complejo. Asterisk tiene unos pocos archivos de configuración los cuales controlan casi todos los aspectos de como este opera. El formato de estos archivos de configuración, sin embargo, es muy simple. Los archivos de configuración son archivos de texto plano, y pueden ser editado con cualquier editor de texto.
Secciones y configuración
Los archivos de configuración son cortados dentro de varias secciones, los nombres de las secciones son encerrados en corchetes. Los nombres de secciones no pueden contener espacios, y son sensibles a minúscula y mayúscula. Dentro de cada sección, usted puedes asignar valores para varias configuraciones. En general,  la configuración en una sección es independiente de los valores de en otra sección. Algunas configuraciones toman valores tales como falso y verdadero, mientras que otras tienen valores más específicos.  La sintaxis para asignar un valor para una configuración es escribir el nombre de la configuración, un signo igual y el valor, así:


[nombre-sección]
setting=true

[otra_sección]
setting=false
setting2=true

Algunos archivos de configuración de Asterisk también pueden crean objetos. La sintaxis para un objeto es ligeramente diferente, de la sintaxis para la configuración. Para crear un objeto, usted debe especificar el tipo de objeto, una flecha formada por el signo igual (=>), un  signo de mayor que, y la configuración de ese objeto.

[sección-nombre]
algun_objeto => settings

[sección-nombre]
etiqueta1=valor1
etiqueta2=valor2
objeto1 => nombre1

etiqueta1=valor0
etiqueta3=valor3
objeto2  => nombre2 
Para hacerle la vida más fácil a los usuarios que se inician con Asterisk y que no tienen ninguna experiencia con los archivos de configuración, los desarrolladores han hecho que usted también pueda crear objetos con el signo de igual. Por lo tanto, las siguientes líneas son también funcionalmente equivalentes.

algún_objeto => settings

algún_objeto = settings

Es común ver ambas versiones de sintaxis, especialmente en la documentación en línea de Asterisk.
En el ejemplo anterior, objecto1 hereda tanto a etiqueta1 y etiqueta2.  Es importante señalar que el objecto2 también hereda etiquta2, junto con etiqutal1 (con el nuevo valor remplazan el valor de valor0) y etiquta3.
En resumen, todos los objetos heredan los valores definidos por encima de ellos en la sección actual.


Comentarios

Podemos agregar comentarios en los archivos de configuración de Asterisk. Los comentarios hace los archivos de configuración  mas fácil de leer, y pueden ser usado para temporalmente deshabilitar ciertas configuración.

Comentarios en una sola línea

Los comentarios en una sola línea comienzan con el carácter (;)  punto y coma. El analizador de configuración de Asterisk trata todo después del punto y coma como un comentario. ver el siguiente ejemplo:

[nombre-contexto]
setting=true

[otro_contexto]
setting=false      ; este es un comentario
; esta linea es un comentario
;awesome=true  ; el punto y coma al principio de la linea convierte 
;la instrucción en comentario.




Bloques de Comentarios

Asterisk también permite crear bloques de comentarios. Un bloque de comentario es un comentario que comienza con una secuencia de carácter.


;--




 y continua a través   de múltiples líneas .

--;


hasta que el carácter que cierra el comentario es encontrado. Los bloque de comentarios finalizan inmediatamente después que --; es encontrado.

Usando el constructor Include y  Exec.

El constructor #include le dice a Asterisk para leer el contenido de otro archivo de configuración, y actúa como si el contenido estuviera localizado en el archivo de configuración principal. La sintaxis es #include nombre-archivo, donde nombre-archivo es el nombre del archivo que usted quiere incluir. Este constructor es mayormente usado para cortar un archivo de configuración grande en piezas más pequeñas, por que es mas manejable.  

El #exec va un paso mas adelante. Este permite ejecutar un programa externo, y poner la salida de este programa dentro del archivo de configuración actual. La sintaxis es #exec programa, donde programa es el nombre del programa que usted quiere ejecutar. 


Habilitando la Funcionalidad #exec

El constructor #exec no esta habilitado por defecto, porque tiene alguno riesgo en termino de rendimiento y seguridad. Para habilitar esta funcionalidad, edite el archivo de configuración asterisk.conf (localizado por defecto en /etc/asterisk) y localice la sección [options], cambie la opción  execincludes=yes. Por defecto el encabezado de la sección [options] y la opción execincludes=yes son marcados como comentarios, usted debe remover el punto y coma del comienzo ambas lineas.

Veamos un ejemplo de ambos constructores en acción.

[nombre-contexto]
setting=true
#include  otro archivo.conf      ; Incluye otro archivo de configuración.
# exec otroprograma               ; ejecutar otro programa


  
Agregando Configuración para una Sección Existente


Si usted quiere agregar parámetros de configuración para una sección que ya existe de un archivo de configuración (o mas adelante, o cuando se usan los constructores  #include y #exec), agregue un signo de (+) encerrado paréntesis, después del encabezado de la sección, como se muestra abajo:

[nombre-contexto]
setting=value1

[nombre-contexto](+)
setting2=value2


El ejemplo muestra que el parámetro setting2 fue agregado para una sección existente del archivo de configuración. 

Los Templates (o plantillas)

Otro constructor que podemos usar dentro de la mayoría de los archivo de configuración de Asterisk son los templates. Un template es una sección de un archivo de configuración que es unicamente usado como una base para crear otras secciones desde esta.

Sintaxis de las Plantillas


Para definir una sección como un template, ponga un signo de exclamación (!) dentro de paréntesis después del encabezado de la sección, como se muestra en el ejemplo siguiente:


[nombre-plantilla](!)
setting=value

Usando Plantillas (Templates)

Para usar una plantilla cuando crea otro contexto, simplemente debe poner el nombre de la plantilla dentro paréntesis después del nombre del encabezado del contexto a crear, como se muestra. Si usted quieres heredar múltiples plantillas, use coma para separar los nombres de las misma. Ejemplo.

[nombre-contexto1](!)          ; esto define el nombre de contexto como una plantilla
setting=value

[nombre-contexto2](!)        ;le indica al contexto 2 que herede los parámetros del contexto 1
settting=value2

[nombre-contexto3](nombre-plantilla1,nombre-plantilla2)      ; Aqui indicamos al contexto 3 que herede los   parámetros de la plantilla 1 y 2.

 La nueva sección creada heredara todos los valores y objetos definidos en las plantilla(s), como también cualquier nueva configuración o objetos definido en los nuevo contexto creado.

Los parámetros y objetos nuevos creados sobrescriben los que son definidos con el mismo nombre en la plantilla. Considere este ejemplo: 

















La sección [test-three] será procesada ​​como si se hubiera escrito de la siguiente manera: 



Aprende a Implementar Asterisk paso a paso y en español
Libro: Asterisk PBX: Instalación, implementación y puesta en marcha.