当分机响起星号时执行命令

execute a command when extension ringing asterisk

我使用这些命令在数据库中保存来电显示:

exten => s,1,MYSQL(Connect connid localhost root 123456 CallerID) 
exten => s,2,Set(idcaller=${CALLERID(name)})
exten => s,3,MYSQL(Query resultid ${connid} INSERT INTO CallerID SET Num="${idcaller}")
exten => s,4,MYSQL(Disconnect ${connid})

现在我想在分机响铃时执行这些命令... 这意味着首先 IVR 工作然后拨号分机 ID 然后这些命令必须工作...... 我必须把我的命令放在哪里? 非常感谢。

你不能在响铃状态下做任何事情,它没有在asterisk中实现

您可以在拨号前输入分机时执行此操作 - 只需将其放在拨号命令之前,如

exten => 100,1,MYSQL(Connect connid localhost root 123456 CallerID) 
exten => 100,2,Set(idcaller=${CALLERID(name)})
exten => 100,3,MYSQL(Query resultid ${connid} INSERT INTO CallerID SET Num="${idcaller}")
exten => 100,4,MYSQL(Disconnect ${connid})
exten => 100,n,Dial(SIP/100,,ro)

注意,MYSQL 命令已删除。用户 func_odbc 或实时。

要在分机响铃时执行某些操作,您必须使用 AMI 接口并使用它编写自己的应用程序来检测振铃状态并将其写入数据库(或执行您喜欢的任何其他操作)。

https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=4817239