我有一台 Asterisk 13.23.1 服务器,带有 freePBX 10.13.66-1。
我的问题是这样的,在一个 IVR 中,当呼叫者输入无效目的地(输入 IVR 计划中未配置的号码)时,它应该转到“无有效选项”目的地(分机 2300),但 IVR 计划却跳转到组分机 2400,我搜索呼叫日志仍然不明白为什么它跳转到该目的地。
以下是日志中的问题:
[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
希望有人能帮助我理解为什么会发生这种情况以及如何解决它。
答案1
抱歉我回复晚了。在这个特定的呼叫中,用户在 11:44:04 时在 WaitExten 应用程序(该应用程序在 11:44:00 被调用)期间仅在键盘上输入了“2”。这会将拨号计划执行发送到 ivr-21 上下文中的分机 2,而后者以第二优先级将拨号计划执行发送到 ext-group 上下文中的分机 2400。分机 2 与用户在 3 秒数字超时之前在键盘上输入的 2 有效匹配。
在 ivr-21 上下文中,除了单数分机名 2 之外,您可能还拥有以“2x”开头的多数分机名。最好让所有以 2 开头的分机名具有相同的长度,这样您就不会因为用户输入数字时可能发生的超时而出现错误。