WaitExten en Macros cuando tienes un WaitExten en tu context

107 views
Skip to first unread message

Abel Molina Landrián

unread,
Feb 11, 2008, 10:30:57 AM2/11/08
to aster...@googlegroups.com

Hola a todos

Estoy esperimentando un intrigane comportamiento.

Desde la macro-stdexten tengo una condicion de tiempo que lanza una
macro macro-sleeping en dependencia de la hora. La cosa es que cuando
alguien me llama pasada medianoche se dispara la macro diciendo "Estamos
durmiendo, pero si es importante presiona la tecla 1".

En caso de NO oprimir 1 en la macro-sleeping esta macro termina, regresa
a la macro-stdexten y va directamente al buzón SIN intentar llamar a mi
extension.

Pero si el caller oprime 1 lo que hago es darle un valor a una variable
"despierta" que utilizo en el regreso a macro-stdexten para decirle que
haga el Dial a mi extensión antes de pasar al buzón.

En teoría está todo muy bonito, lo que pasa es que el WaitExten que
tengo en la macro-sleeping para capturar el "1" manda la tecla oprimida
a mi contexto en vez de la extensión 1,1 de la macro. Igual ocurre
aunque ponga _X,1.
Tambien he probado con Background y siempre ocurre igual.

Dato adicional: En mi contexto tengo un WaitExten en la extensión "s",
supongo que es a ese al que está regresando.

Resumiendo: que el WaitExten de la macro está enviando la tecla oprimida
a mi contexto en vez de la correspondiente extension de dicha macro.
Incluso ni poniendole extension inválida "i" a la macro, ni "_."

¿Alguna idea?

Iñaki Baz Castillo

unread,
Feb 11, 2008, 10:43:30 AM2/11/08
to aster...@googlegroups.com
On Monday 11 February 2008 16:30:57 Abel Molina Landrián wrote:
> Resumiendo: que el WaitExten de la macro está enviando la tecla oprimida
> a mi contexto en vez de la correspondiente extension de dicha macro.
> Incluso ni poniendole extension inválida "i" a la macro, ni "_."
>
> ¿Alguna idea?

Creo que lo has concluido todo tú mismo: en las Macros los IVR
funcionan "raro", o tal vez ese sea el comportamiento predeterminado "vaya
usted a saber porqué".
Me ha venido a la memoria que hace ya tiempo lo probé y me ocurría lo mismo.
Lo que no sé es si será un bug, yo que tú por si acaso lo reportaría.

--
Iñaki Baz Castillo
i...@in.ilimit.es

Jorge Eduardo Silva Jackson

unread,
Feb 11, 2008, 11:45:17 AM2/11/08
to aster...@googlegroups.com
On Mon, 2008-02-11 at 16:43 +0100, Iñaki Baz Castillo wrote:
> On Monday 11 February 2008 16:30:57 Abel Molina Landrián wrote:
> > Resumiendo: que el WaitExten de la macro está enviando la tecla oprimida
> > a mi contexto en vez de la correspondiente extension de dicha macro.
> > Incluso ni poniendole extension inválida "i" a la macro, ni "_."
> >
> > ¿Alguna idea?
>
> Creo que lo has concluido todo tú mismo: en las Macros los IVR
> funcionan "raro", o tal vez ese sea el comportamiento predeterminado "vaya
> usted a saber porqué".

En el BootCamp que hice, el instructor dijo bien claro que en las Macros
solo se podía poner la extension Start, no admitía otra extension bajo
determinadas circunstancias ...(al menos eso es lo que recuerdo).

5 minutos mas tarde.....

Encontre esto en voip-info. porque me quede con la duda..


http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Macro


Saludos
EDU

davidp

unread,
Feb 11, 2008, 11:56:18 AM2/11/08
to asterisk-es

Puedes probar a usar "Read" en lugar de WaitExten. Así tendrás en una
variable la tecla que ha pulsado el usuario, y ya actúas en
consecuencia...

davidp.

Elio Rojano

unread,
Feb 11, 2008, 1:13:10 PM2/11/08
to aster...@googlegroups.com
Si es que entendemos lo que queremos... xD

No es que SOLO se pueda poner la extensión 's' -start-, si no que SIEMPRE va a entrar en la extensión 's' -start- en la macro.

tu en la macro puedes poner todas las extensiones que quieras, pero cuando la llames: Macro(prueba) va a buscar SIEMPRE la extension: exten=>s,1,comando...

aunque sí que puedes hacer una macro:

[macro-prueba]
exten=>s,1,Goto(333,1)

exten=>333,1,Playback(bienvenida)

¿aclarado? :)

El día 11/02/08, Jorge Eduardo Silva Jackson <sys...@gmail.com> escribió:

En el BootCamp que hice, el instructor dijo bien claro que en las Macros
solo se podía poner la extension Start, no admitía otra extension bajo
determinadas circunstancias ...(al menos eso es lo que recuerdo).

5 minutos mas tarde.....

Encontre esto en voip-info. porque me quede con la duda..


http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Macro


Saludos
EDU




> Me ha venido a la memoria que hace ya tiempo lo probé y me ocurría lo mismo.
> Lo que no sé es si será un bug, yo que tú por si acaso lo reportaría.
>





Jorge Eduardo Silva Jackson

unread,
Feb 11, 2008, 2:20:53 PM2/11/08
to aster...@googlegroups.com
On Mon, 2008-02-11 at 19:13 +0100, Elio Rojano wrote:
> Si es que entendemos lo que queremos... xD
>
> No es que SOLO se pueda poner la extensión 's' -start-, si no que
> SIEMPRE va a entrar en la extensión 's' -start- en la macro.
>
> tu en la macro puedes poner todas las extensiones que quieras, pero
> cuando la llames: Macro(prueba) va a buscar SIEMPRE la extension:
> exten=>s,1,comando...
>
> aunque sí que puedes hacer una macro:
>
> [macro-prueba]
> exten=>s,1,Goto(333,1)
>
> exten=>333,1,Playback(bienvenida)
>
> ¿aclarado? :)

Queda claro..
Gracias.
EDU

Abel Molina Landrián

unread,
Feb 12, 2008, 3:03:15 AM2/12/08
to aster...@googlegroups.com
¡¡ GENIAL !!
Por eso me gusta tanto esta lista.

Gracias David

davidp escribió:

Abel Molina Landrián

unread,
Feb 12, 2008, 3:06:24 AM2/12/08
to aster...@googlegroups.com
Es cierto lo que dices Jorge
En la página que referencias dice:

Note that key presses within a macro will cause a jump to the calling context and WILL NOT jump to the appropriate extension within the macro context. This is a shame and means code becomes a lot more complex.
(The same appears to happen also with jumps to the 'h' extension: if a macro executes a Dial(), when the called party hangs up the control passes to the 'h' extension of the calling context. However, please note that the 'h' extension is still needed inside the Macro context in case of a command, application, or extension exiting non-zero - i.e. the user hangs up in the middle of a Record() - in this case the 'h' extension of the Macro context is used, not the 'h' extension of the calling context.) By way of example, with the following dial plan, the caller hears "One" and not "Two".

PERO, yo tengo una extensión ´h´ dentro de la macro-stdexten que si funciona, de hecho la uso para generar mensajes de aviso de llamadas perdidas.
Es curioso.


Jorge Eduardo Silva Jackson escribió:
Reply all
Reply to author
Forward
0 new messages