当用户挂断来自IVR的呼叫时运行回调

时间:2016-09-13 09:57:18

标签: php asterisk agi

我使用这个PHP库PAGI来构建一个带有Asterisk的IVR应用程序。 对于每个调用,我需要做一些清理并向数据库写一些东西。所以我在用户挂断电话后需要一些回调/处理程序。

ASAIK,这个库提供了一些检测用户挂起的方法:

pcntl_signal(SIGHUP, $signalHandler);

但是,在通过发送命令ANSWER接听电话后,这不起作用。如果在没有ANSWER的情况下使用它,则在挂断呼叫后上述回调会起作用!

所以我想知道我的情况的解决方法是什么?

1 个答案:

答案 0 :(得分:0)

实际上我有一台服务器,上面装有Asterisk,Digium卡(FSX KS Signaling)和固定电话。客户可以拨打连接到我服务器的公用电话号码以获得IVR服务。 我发现当用户挂断电话时,星号不会将SIGHUP发送到我的AGI脚本。当从内部网络调用IVR时, 工作。

我终于通过调整chan_dahdi.conf中的一些配置来解决它。

busydetect=yes
busycount=3

如果你和我有类似情况,希望这会有所帮助!