我有一个php脚本,在[macro-blkvm-clr]中接听电话时运行 宏。 php获得3个参数第一个参数应该是来电号码这是我的行
exten => s,n,AGI(/var/lib/asterisk/agi-bin/alertcalls.php,${CALLERID(num)},1,${MASTER_CHANNEL(CONNECTEDLINE(num))})
我不知道为什么,但是当星号将参数发送到php时,它会将其设置为已接听的电话。例如,ext 300调用ext 200,在日志中调用我看到的内容
Executing [s@macro-blkvm-clr:2] AGI("PJSIP/200-00000253", "/var/lib/asterisk/agi-bin/alertcalls.php,200,1,200") in new stack
为什么会这样。以及如何发送真正的分机(在这种情况下为300)
对所有帮手说话,对不起我的英语,我希望我很清楚答案 0 :(得分:1)
您可以保存
exten => s,n,SET(VAR1=${CALLERID(num)})
exten => s,n,AGI(/var/lib/asterisk/agi-bin/alertcalls.php,${VAR1},1,${MASTER_CHANNEL(CONNECTEDLINE(num))})
答案 1 :(得分:0)
在连接被叫和呼叫频道之前,为CALLED派对频道(它被发明为隐私)执行了这个宏。
您可以通过将Dumpchan作为宏中的第一优先级来查看所有变量。
答案 2 :(得分:0)
在${CALLERID(num)}
通话之前,将来电显示号码保存到频道变量中,然后引用该号码。
你应该总是能够引用netstat -n
,但是如果它在那时不适合你,那么上面就是一个简单的解决方法。