En la lista de Asterisk-ES a veces se comenta una utilidad que parece que no mucha gente conoce llamada “dynamic features”. Oficialmente esta característica forma parte del conjunto de “recursos” que componen Asterisk y que, como su nombre indica, son añadidos dinámicos, lo que realmente significan, recursos que pueden ser accedidos dinámicamente durante una llamada.

Estos añadidos son por ejemplo, las transferencias, el parking de llamadas y el mapa de aplicaciones (applicationmap), entre otros, y se definen en el archivo features.conf donde vamos a encontrar opciones y una serie de parámetros junto con un código de tecla que debemos pulsar para poder utilizarlos.

Como ejemplo de estos añadidos encontramos los básicos como:

  • blindxfer (transferencia ciega)
  • atxfer (transferencia atendida)
  • automon (grabación bajo demanda)
  • pickupexten (captura de llamadas que suenan en los terminales del “grupo”)
  • automixmon (grabación bajo demanda y posterior mezcla de las locuciones)

Hay una parte muy interesante llamada applicationmap que consiste en una serie de combinaciones que podemos modificar para ejecutar aplicaciones básicas de dialplan, durante una conversación.

Por ejemplo: testfeature => #9,peer,Playback,tt-monkeys

Este comando permitirá que cuando el llamante como el llamado durante una conversación, pulse las teclas # y 9, se reproduzca la locución tt-monkeys, algo muy gracioso, pero muy interesante en ciertos momentos.

Existe una limitación para este tipo de comandos, y es que no es recomendable utilizarlo para ejecutar aplicaciones relacionadas con el dialplan directo, es decir: Macro, Goto, Background, WaitExten y algunas de este tipo, pero en cambio sí que se puede ejecutar un “AGI(aplicacion.agi)” 😛

Para evitar el uso accidental de este tipo de comandos on-line, se hace necesario habilitar dicho comando mediante una variable llamada DYNAMIC_FEATURES justo antes de hacer la llamada: Set(DYNAMIC_FEATURES=testfeature)

En Asterisk 1.6, nos encontramos algunas novedades bastante interesantes, como:

  • atxferdropcall (permite no perder la llamada en caso de que la transferencia no se realice corréctamente, en cuyo caso volvería a sonar en el usuario que inició la transferencia)
  • atxfernoanswertimeout (permite cambiar el timeout que una llamada transferida esté a la espera antes de volver a la extensión que inició la transferencia)
  • Grupos para habilitar varios applicationmaps sin necesidad de definirlos todos:
    Set(DYNAMIC_FEATURES=grupo)

    donde:
    [grupo]
    testfeature=>#9

Grandes cosas se pueden llegar a hacer utilizando estas ventajas de Asterisk que son poco conocidas pero muy, muy útiles si se conocen.

Que lo disfruteis. 😀

3 Comentarios

  • Esto siempre que se pase el Audio por Asterisk.. si hay canreinvite no vale 🙂

  • Según el módo DTMF que pongas, se envían por el audio o por SIP, por lo que sí que funcionaría aun que tengas el canreinvite activado. 🙂

  • Yo estuve hace unos dias probando esas caracteristicas pero no logre hacer lo que queria ( LO QUIERO HACER CON APPLICATIONMAP NO CON LAS APLICACIONES PARA TRANSFERENCIA QUE TRAE ASTERISK POR DEFECTO):

    Tengo una llamada donde estan hablando operador y cliente. Quiero que cuando el OPERADOR marque la tecla asterisco (*) comunique al CLIENTE con otro operador.

    esto tengo en features:

    test => *,self/caller,Macro,mimacro

    y esto en extensions:

    [macro-mimacro]
    exten = s,1,Background(record/momentolecomunicamos)
    exten = s,2,Dial(SIP/60,20,L(295000)m)

    Funciona, el problema es que tengo que pedirle al CLIENTE que marque *. Si el operador lo marca no pasa nada, si cambio el self/caller por otra cosa obtengo otro tipo de resultados como que es el operador el que se comunica con el cliente. Pero nunca lo que busco,

    Alguien?

Archivos

© 2014 Sinologic, inc. All rights reserved.

Menú

Redes sociales