domingo, 6 de febrero de 2011

Telefonía IP: Asterisk extensions.conf definición, ubicación, estructura

Definición

El principal archivo de configuración del Asterisk es el extensions.conf.  En el se plasma toda la lógica de funcionamiento del sistema mejor conocida como dialplan o plan de discado.

En el extensions.conf se controlan todas las conexiones al asterisk, tanto entrantes como salientes, por tanto en él definimos todo el comportamiento de nuestra central telefónica IP.

Ubicación

Por defecto está ubicado en /etc/asterisk/ es un archivo de texto por lo que puedes editarlo con vim, por ejemplo vim /etc/asterisk/extensions.conf

Estructura

La estructura del extensions.conf es bien sencilla, consta de dos secciones principales [general] y [global] . Posterior a estas secciones predefinicas creamos secciones especiales llamadas contextos.

Sección [general]

Es la primera sección que nos encontramos al abrir el archivo, contiene varias opciones, entre las más importantes tenemos:

static: esta opción controla la operación del comanto "dialplan save"(Asterisk 1.6) o "save dialplan"(Asterisk 1.4).  Su valor por predeterminado es no, es decir, no puedes ejecutar los comandos. 

writeprotect: Si writeprotect=no y static=yes, pueees salvar el dialplan actual desde la CLI (Command Line Interface) con el comando "dialplan save". Las definiciones de variables globales en la sessión [globals] no se ve afectada.  Su valor predeterminado es no .

Nota muy importante:  el comando "save dialplan" sobreescribirá tu extensions.conf existente con uno nuevo generado por el dialplan qe se encuentre cargado.

Mi recomendación:  no uses el comando "save dialplan" ni "dialplan save" utiliza como mecanismo de administración y edición del dialplan el vim para editar el archivo de configuración, luego haces un "extensions reload" o "dialplan reload"

autofallthrough: si colocas yes una vez que la lógica de programación de una extensión termine, Asterisk terminará la llamada con BUSY, CONGESTION o HANGUP, que es la conducta deseada, caso contrario Asterisk esperará que marques otra extensión

clearglobalvars: Si colocas yes el valor de las variables globales serán borradas cada vez que ocurra una recarga del dialplan, caso contrario, el valor de la variable global persistirá aunque elimines la variable del archivo.

priorityjumping: si colocas yes las aplicaciones que soportan salto en las prioridades de acuerdo a su resultado, por ejemplo Dial(), lo harán.

Ejemplo

   [general]
   static=yes
   writeprotect=yes
   autofallthrough=yes
   clearglobalvars=no
   priorityjumping=no


Sección [globals]

En esta sección defines tus variables globales y sus valores.  En Asterisk no es tan cierto que sean variables, porque normalmente su valor se mantiene constante ya que por lo general se colocan valores que te servirán para paametrizar, por ejemplo

Ejemplo:

   [globals]
     E1-PROVEEDOR1=ZAP/r1
     CODAREA=241

Es costumbre aceptada que sean expresadas en mayúsculas.

Si deseas hacer referencia al valor de una variable, debes colocarla entre llaves y precedidas del símbolo de dólar, por ejemplo:

${CODAREA}


Luego de estas dos secciones vienen nuestros contextos.

En un próximo post, comenzaremos a definir y crear contextos

4 comentarios:

  1. Ok ya instale Asterisk... y ahora? xD

    ResponderEliminar
  2. Jaja muchas gracias me has salvado xD

    Saludos

    ResponderEliminar
  3. Hola mi correo es dcuesta01@gmail.com; trabajo en una escuela publica de arte donde tenemos una central telefónica asterisk 1.4.x con centos, el problema es que cuando llaman desde afuera solo suena un interno si este esta ocupado o no atiende o deriva a guardar en correo de voz, lo que me gustaría que hiciera es que se derive a otros 3 internos y de estar ocupado aguarden en línea asta que se desvíe a alguno de estos internos
    Por donde empiezo?

    ResponderEliminar
  4. Muy buena la información... El asterisk colombia es de mucha utilidad para poder comunicarnos con un buen servicio con las personas que deseamos.

    ResponderEliminar