接听电话后获取来电号码



我有一个php脚本,当调用被应答时运行,它在[macro-blkvm-clr]中 宏观。PHP 得到 3 个 parms 第一个参数应该是来电号码这是我的线路

exten => s,n,AGI(/var/lib/asterisk/agi-bin/alertcalls.php,${CALLERID(num)},1,${MASTER_CHANNEL(CONNECTEDLINE(num))})

我不知道为什么,但是当它星号将参数发送到php时,它会将其设置为应答电话。 例如,分机 300 调用分机 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)

感谢所有帮助者,对不起我的英语,我希望我很清楚

您可以保存

exten => s,n,SET(VAR1=${CALLERID(num)})
exten => s,n,AGI(/var/lib/asterisk/agi-bin/alertcalls.php,${VAR1},1,${MASTER_CHANNEL(CONNECTEDLINE(num))})

在连接被叫和主叫频道之前为 CALL 方频道执行的 Becuase 宏(它是为了做隐私而发明的)。

您可以通过将 Dumpchan 作为宏中的第一优先级来查看所有变量。

Answer()呼叫之前,将呼叫方 ID 号保存到通道变量中,然后引用该号码。您应该始终能够引用${CALLERID(num)},但如果此时它对您不起作用,则上述方法很容易解决。

最新更新