ritch / ami-monitor
此包的最新版本(v1.1)没有可用的许可证信息。
v1.1
2021-01-22 01:24 UTC
Requires
- wisembly/elephant.io: ^3.3
This package is auto-updated.
Last update: 2024-09-22 10:21:00 UTC
README
这是Asterisk AMI与PHP的新合作。
捐赠
安装
使用Composer只需运行 composer require ritch/ami-monitor 或通过Github克隆此存储库。
如果您通过git直接克隆了项目,请运行 composer install
运行 npm install
我发誓,我会改进这段代码和这个解释,但如果您只阅读这段代码,主要是 monitorManager.php 或运行 php monitorManager.php,您可以使用。
配置
- 将
config.ini.sample复制到config.ini并放入您的配置
运行
- 如果您想使用Websocket,运行
node webSocketServer.js,不要忘记在config.ini中放入配置。 - 将样本复制到您的基本目录
cp -rf vendor/ritch/ami-monitor/samples .或创建自己的监控器。 - 运行
php samples/monitorManager.php - 在样本文件夹中有一个
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() ); ?>
捐赠
帮助这个项目成长。有很多事情需要改进。