下午好!
需要在 macro-auto-blkvm 中定义一个变量,然后在后续的上下文和宏中可以使用。
我尝试这样:
[macro-auto-blkvm]
include => macro-auto-blkvm-custom
exten => s,1,Set(__MACRO_RESULT=)
exten => s,n,Noop(===>>>> ANSWER RING <<<<===)
exten => s,n,Set(__MYNEWVAR=${STRFTIME(${EPOCH},,%F %T)})
但我${MYNEWVAR}
在其他上下文和宏中看不到它,例如在macro-hangupcall
. 如果你通过GLOBAL
它,它就会通过,但从逻辑上讲,这是不可能的。
变量丢失是因为 然后是另一个频道。要将变量传递到另一个通道,您必须使用 SHARED():
我们用所需的通道记录了一个变量:
扩展 => .,n,Set(CURCHANNEL=${CHANNEL})
接下来,我们创建我们需要的变量并将其共享到之前定义的通道中
exten => s,n,Set(SHARED(MANAGERANSWDATE,${CUR_CHANNEL})=${STRFTIME(${EPOCH},,%F %T)})
我们在正确的地方阅读它:
${SHARED(MANAGERANSWDATE,${CUR_CHANNEL})}