ryzhov / pami
PHP Asterisk 管理器接口 (AMI) 客户端,由 marcelog/pami 分支而来
Requires
- php: >=5.3.3
- psr/log: ^1.0.2
This package is not auto-updated.
Last update: 2024-09-14 19:36:58 UTC
README
这是 https://github.com/marcelog/PAMI 的分支
PAMI 代表 PHP Asterisk 管理器接口。正如其名所示,它只是一组 PHP 类,允许您向 AMI 发送命令或接收事件,使用观察者-监听器模式。
安装
将此库添加到您的 Composer 配置中。在 composer.json 文件中
"require": { "ryzhov/pami": "dev-master" }
快速入门
// Make sure you include the composer autoload. require __DIR__ . '/vendor/autoload.php'; $options = array( 'host' => '2.3.4.5', 'scheme' => 'tcp://', 'port' => 9999, 'username' => 'asd', 'secret' => 'asd', 'connect_timeout' => 10, 'read_timeout' => 10 ); $client = new \PAMI\Client\Impl\ClientImpl($options); // Registering a closure $client->registerEventListener(function ($event) { }); // Register a specific method of an object for event listening $client->registerEventListener(array($listener, 'handle')); // Register an IEventListener: $client->registerEventListener($listener);
使用谓词
在注册事件监听器时,可以(可选地)使用第二个参数:一个将在调用回调之前评估的闭包。只有当此谓词返回 true 时,才会调用回调
use PAMI\Message\Event\DialEvent; $client->registerEventListener( array($listener, 'handleDialStart'), function ($event) { return $event instanceof DialEvent && $event->getSubEvent() == 'Begin'; }) );
调试、日志记录
您可以(可选地)设置一个兼容 PSR-3 的记录器
$pami->setLogger($logger);
默认情况下,客户端将使用 NullLogger。
感谢
-
Marcelo Gornstein marcelog@gmail.com
-
Jason Blank 在调试队列功能和其他一些 ami 不一致性方面提供了帮助。
-
Francesco Usseglio Gaudi,在调试 Originate 动作方面提供了帮助。
-
Matías Barletta,为vgms支持做出了贡献。
-
Eli Hunter,在引入tls兼容性方面提供了帮助。
-
Freddy dafredmail at googlemail,在添加串烧支持方面提供了帮助和测试环境。
-
Joshua Elson 在尝试和调试加载的 asterisk 服务器方面提供了帮助。
-
Jacob Kiers 在引入和测试异步agi功能以及CEL事件支持方面提供了帮助。
-
Richard Baar 注意到从套接字读取时缺少 eof 支持,以及在 JabberEvent 和 JabberAction 中的 ScreenName。
-
Scot Opell 在调试 5.3.9 和 5.3.10 中的 stream_get_line() 方面提供了帮助。
-
Brian (wormling) 在尝试和修复 asyncagi 上的错误方面做出了贡献。
-
Henning Bragge 在处理 newstate 事件和队列方面提供了帮助。
-
mbonneau 为 ParkedCall 和 UnParkedCall 事件做出了贡献。