ritch/ami-monitor

此包的最新版本(v1.1)没有可用的许可证信息。

v1.1 2021-01-22 01:24 UTC

This package is auto-updated.

Last update: 2024-09-22 10:21:00 UTC


README

这是Asterisk AMI与PHP的新合作。

捐赠

帮助这个项目成长。有很多事情需要改进。Donate

安装

使用Composer只需运行 composer require ritch/ami-monitor 或通过Github克隆此存储库。

如果您通过git直接克隆了项目,请运行 composer install

运行 npm install

我发誓,我会改进这段代码和这个解释,但如果您只阅读这段代码,主要是 monitorManager.php 或运行 php monitorManager.php,您可以使用。

配置

  1. config.ini.sample 复制到 config.ini 并放入您的配置

运行

  1. 如果您想使用Websocket,运行 node webSocketServer.js,不要忘记在 config.ini 中放入配置。
  2. 将样本复制到您的基本目录 cp -rf vendor/ritch/ami-monitor/samples . 或创建自己的监控器。
  3. 运行 php samples/monitorManager.php
  4. 在样本文件夹中有一个 index.html 文件,如果您使用Websocket并且一切正常,您将在网页上开始接收事件。

自定义文件监控示例

<?php 

namespace App;

//The path of autoload
include 'vendor/autoload.php';

use App\WebSocket;
use App\Ami;

set_time_limit(0);

$webSocket = new WebSocket();
$ami = new Ami();

//Filter some events or show All;
$event = [
	'All',
      /*'AgentLogin',
	'Hangup',
	'BridgeEnter',
	'AgentConnect',
	*/
];

do {
    switch ( @$amiEvent->Event ) {
	//If you has filtering some event, here you can do your logic, or send to websocket,
	case "Hangup":
		// You code here.
		$amiEvent = $ami->getEvent($event);
		$webSocket->emit( "MyCustomAction", [ $amiEvent ] );
		print_r($amiEvent);
	break;

	case "AgentConnect":
		// You code here.
	break;

	default:
		$amiEvent = $ami->getEvent($event);
		$webSocket->emit( "ami", [ $amiEvent ] );
		print_r($amiEvent);
	break;
     }
}
while ( Utils::check_asterisk_status() );

?>

捐赠

帮助这个项目成长。有很多事情需要改进。

Donate