Tengo un servidor Asterisk 13.23.1 con freePBX 10.13.66-1.
Mi problema es este, en un IVR cuando la persona que llama pone un destino no válido (ingrese un número no configurado en el plan IVR) debe ir al destino "opción no válida" (extensión 2300) pero en lugar de eso, el plan IVR salta a la extensión del grupo 2400, busco el registro de la llamada y todavía no entiendo POR QUÉ salta a ese destino.
Aquí está el problema en los registros:
[2019-08-19 11:43:45] VERBOSE[26052][C-00000091] pbx.c: Executing [s@ivr-21:9] Set("DAHDI/i2/961599280-2f", "IVR_MSG=custom/IVR_gesthispania") in new stack
[2019-08-19 11:43:45] VERBOSE[26052][C-00000091] pbx.c: Executing [s@ivr-21:10] Set("DAHDI/i2/961599280-2f", "TIMEOUT(digit)=3") in new stack
[2019-08-19 11:43:45] VERBOSE[26052][C-00000091] func_timeout.c: Digit timeout set to 3.000
[2019-08-19 11:43:45] VERBOSE[26052][C-00000091] pbx.c: Executing [s@ivr-21:11] ExecIf("DAHDI/i2/961599280-2f", "1?Background(custom/IVR_gesthispania)") in new stack
[2019-08-19 11:43:45] VERBOSE[26052][C-00000091] file.c: <DAHDI/i2/961599280-2f> Playing 'custom/IVR_gesthispania.slin' (language 'es')
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx.c: Invalid extension '225' in context 'ivr-21' on DAHDI/i2/961599280-2f
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx.c: Executing [i@ivr-21:1] Set("DAHDI/i2/961599280-2f", "INVALID_LOOPCOUNT=1") in new stack
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx.c: Executing [i@ivr-21:2] GotoIf("DAHDI/i2/961599280-2f", "0?final") in new stack
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx.c: Executing [i@ivr-21:3] Set("DAHDI/i2/961599280-2f", "IVR_MSG=no-valid-responce-pls-try-again") in new stack
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx.c: Executing [i@ivr-21:4] Goto("DAHDI/i2/961599280-2f", "s,start") in new stack
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx_builtins.c: Goto (ivr-21,s,10)
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx.c: Executing [s@ivr-21:10] Set("DAHDI/i2/961599280-2f", "TIMEOUT(digit)=3") in new stack
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] func_timeout.c: Digit timeout set to 3.000
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx.c: Executing [s@ivr-21:11] ExecIf("DAHDI/i2/961599280-2f", "1?Background(no-valid-responce-pls-try-again)") in new stack
[2019-08-19 11:44:00] WARNING[26052][C-00000091] file.c: File no-valid-responce-pls-try-again does not exist in any format
[2019-08-19 11:44:00] WARNING[26052][C-00000091] file.c: Unable to open no-valid-responce-pls-try-again (format (alaw)): No such file or directory
[2019-08-19 11:44:00] WARNING[26052][C-00000091] pbx_builtins.c: ast_streamfile failed on DAHDI/i2/961599280-2f for no-valid-responce-pls-try-again
[2019-08-19 11:44:00] VERBOSE[26052][C-00000091] pbx.c: Executing [s@ivr-21:12] WaitExten("DAHDI/i2/961599280-2f", "10,") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [2@ivr-21:1] Set("DAHDI/i2/961599280-2f", "__ivrreturn=0") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [2@ivr-21:2] Goto("DAHDI/i2/961599280-2f", "ext-group,2400,1") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx_builtins.c: Goto (ext-group,2400,1)
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [2400@ext-group:1] GotoIf("DAHDI/i2/961599280-2f", "0?cid") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [2400@ext-group:2] Progress("DAHDI/i2/961599280-2f", "") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [2400@ext-group:3] Macro("DAHDI/i2/961599280-2f", "user-callerid,") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [s@macro-user-callerid:1] Set("DAHDI/i2/961599280-2f", "TOUCH_MONITOR=1566207824.2133") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [s@macro-user-callerid:2] Set("DAHDI/i2/961599280-2f", "AMPUSER=961599280") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [s@macro-user-callerid:3] GotoIf("DAHDI/i2/961599280-2f", "0?report") in new stack
[2019-08-19 11:44:04] VERBOSE[26052][C-00000091] pbx.c: Executing [s@macro-user-callerid:4] ExecIf("DAHDI/i2/961599280-2f", "1?Set(REALCALLERIDNUM=961599280)") in new stack
Espero que alguien pueda ayudarme a entender por qué sucede esto y cómo puedo solucionarlo.
Respuesta1
Perdón por tardar en contestar. En esta llamada en particular, el usuario a las 11:44:04 había ingresado solo "2" en su teclado durante la aplicación WaitExten a la que se llamó a las 11:44:00. Esto envió la ejecución del plan de marcado a la extensión 2 en el contexto ivr-21 que, con la segunda prioridad, envía la ejecución del plan de marcado a la extensión 2400 en el contexto del grupo ext. La extensión 2 es una coincidencia válida para el 2 que el usuario ingresó en su teclado antes del tiempo de espera de 3 segundos.
En el contexto ivr-21, es posible que tenga nombres de extensión de varios dígitos que comiencen con "2x" además del nombre de extensión de un solo dígito 2. Sería mejor que todos los nombres de extensión que comiencen con 2 tengan la misma longitud para que no termine con errores debido a tiempos de espera que pueden ocurrir mientras un usuario ingresa dígitos.