背景是,我正在尝试调试我目前遇到的 FreePBX 问题。通道变量REC_STATUS
被设置为RECORDING
不应该设置为的值。
经过大量的故障排除,在拨号方案中没有发现任何可能导致这种情况的迹象后,我决定插入一个NoOp(${REC_STATUS})
作为拨号方案代码的第一行,以便在新来电时执行。猜猜怎么着?REC_STATUS
已经设置RECORDING
为这些新呼叫的拨号方案执行的第一行。
我的问题是:在拨号计划开始执行之前,这个通道变量是如何设置的?
答案1
事实证明,有一种方法可以在 Asterisk 中设置全局变量,当您去请求某个通道的变量时,如果该通道上尚未设置该变量,则会显示全局值。
我通过在拨号计划上执行以下操作解决了我的问题:
Set(GLOBAL(REC_STATUS)=)
使用以下任何选项均不起作用:
Set(REC_STATUS=)
Set(_REC_STATUS=)
Set(__REC_STATUS=)