Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La aplicación Gotolf() permite hacer bifurcaciones en la ejecución del Dialplan en función del valor que
toma una variable. La sintaxis es:
Gotolf(expresión?destino1:destino2)
La aplicación Gotolf() evalúa la expresión indicada y si es cierta, la ejecución del Dialplan salta a un
punto determinado del mismo y, si es falsa, salta a otro punto. Estos saltos en la ejecución del Dialplan
son similares a los saltos de ejecución que existen en cualquier lenguaje de programación y el destino
puede ser una prioridad cualquiera dentro del contexto actual o puede ser una prioridad en otro contexto
diferente.
La expresión que se evalúa en la aplicación Gotolf() suele ser una variable local o una variable global, a
las que se puede asignar tanto un numero como una cadena alfanumérica. La asignación e un valor a
una variable se lleva a cabo mediante la aplicación Set():
-Para las variables locales Set(nombre-variable= valor) y solo son válidas en el contexto donde están
definidas.
La aplicación Hangu() tienen pleno sentido en las bifurcaciones finalizando cada una de las ramas de
ejecución. Si las ramas no están finalizadas con esta aplicación falla la lógica del Dialplan, ya que al
continuar la ejecución por la primera rama, también se ejecuta la segunda.
Cuando se produce un reinicio de Asterisk las variables locales y globales pierden el valor asignado, por
lo que se pierde también el estado de <<no molestar>> que tenía la extensión antes del reinicio.
Asterisk incorpora una base de datos que permite asignar valores a variables de forma permanente y
que permanecen incluso ante un reinicio del sistema. El uso de esta base de datos permite implementar
funciones que no es posible llevar a cabo solo con variables locales y globales.
La lectura se lleva a cabo asignando a una variable el contenido de una clave de una determinada
familia también mediante la aplicación Set().
Lectura: Set(variable=$(DB(familia/clave))
La base de datos de Asterisk permite implementar funciones como el desvío de llamadas, en la que
cada extensión puede guardar en la base de datos su número de extensión de desvío cuando está
desviada. Al llamar a una extensión, se consulta en la base de datos el número asignado y se llama a
ese número mediante la aplicación Dial(). En el siguiente diagrama las extensiones utilizan el código
40XXX para almacenar en la base de datos el número de extensión de desvío y el código 41 para
anularlo.
Esta clave puede contener el número correspondiente a otra extensión (desvío activado) o el número
correspondiente a ella misma (desvío no activado).
-Una extensión activa el desvío marcando el número 40XXX. La aplicación Set() asigna a su clave en la
base de datos en valor XXX, que es el número de desvío. En la anulación del desvío se asigna el
verdadero número a la clave de extensión.
-En la llamada a una extensión se busca en la base de datos el valor asignado a su clave, que puede
ser el verdadero número o el de desvío, y se marca mediante la aplicación Dial().