0

我正在做一个记录呼叫者在线时长的项目。

我的问题是,如何添加事件监听器以挂断 AMI 或 AGI?

目前,我正在尝试使用 AGI 的 Manager 类,但是当调用终止时事件没有触发。

$Log_File = "/var/www/html/admin/modules/timetracker/agi-bin/Log.txt";

function CallHungUp($e,$ch=NULL,$u=NULL,$ca=NULL)
{
    file_put_contents( $Log_File,"HANGUP E - " . implode(' ',$e),FILE_APPEND);
}

$asm = new AGI_AsteriskManager();
if($asm->connect("localhost","Secret","Info"))
{
    $asm->add_event_handler('Hangup','CallHungUp');
}
else
{
    file_put_contents( $Log_File,"UNABLE TO CONNECT TO ASM",FILE_APPEND);
}
4

1 回答 1

0

有3种可能的方式

1)使用h扩展

2) 检查 SIGKILL 事件

3)长时间操作后检查通道(状态)。

于 2019-08-17T13:17:12.147 回答