You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Asterisk拨号计划中ExecIf变量被忽略 主叫ID改写不生效问题

Asterisk主叫ID改写规则不生效问题排查

核心错误点

  • 语法错误导致规则加载失败,是你配置的规则完全不生效的直接原因,具体有两个问题:
    1. Set函数使用错误:Set的参数需要直接写变量名=值的结构,你错误的将CALLERID(num)用${}包裹,相当于你尝试给4111这个值对应的变量赋值,逻辑完全错误。
    2. 括号不匹配:ExecIf函数、Set函数都缺少必要的闭合右括号,拨号计划解析时直接判定该行无效,不会加载。

修正后配置

exten => 4111,1,ExecIf($["${CALLERID(num)}" = "4111"]?Set(CALLERID(num)=4442))
exten => 4111,n(dial),Dial(DAHDI/g7/${EXTEN},10)
exten => 4111,n,Hangup()

验证方式

执行dialplan reload重载拨号计划后,先查看CLI输出确认没有语法报错,测试呼叫时开启CLI日志级别core set verbose 5,可以看到主叫ID修改的执行日志,确认规则生效。

内容的提问来源于stack exchange,提问作者elbarna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:54:07