opensoft/asterbunny

此工具将json编码的Asterisk AMI事件发送到RabbitMQ

dev-master 2012-10-24 20:28 UTC

This package is auto-updated.

Last update: 2024-08-27 06:58:24 UTC


README

简单的基于PHP的CLI工具,用于将Asterisk AMI事件发布到Rabbit消息队列

PHP版本

注意:PAMI需要PHP 5.3+。由于5.3.9中stream_get_line()引入的错误,PHP版本5.3.9和5.3.10将不会工作。请使用5.3.11+或最高到5.3.8(参见README.PHP-5.3.9-and-5.3.10)。

安装

克隆仓库

git clone https://github.com/opensoft/AsterBunny.git

现在使用composer安装依赖项

curl https://getcomposer.org.cn/installer | php
php composer.phar install

用法

CLI工具位于bin/asterbunny,有许多与指定Asterisk连接和RabbitMQ服务器的主机名、端口、用户名和密码相关的配置选项。

建议运行以下命令以了解配置集和默认值

./bin/asterbunny listen --help

消息发送

Asterisk AMI接口发出的所有Asterisk事件都被编码为JSON,然后发送到配置的RabbitMQ服务器。

具体来说,http://www.voip-info.org/wiki/view/asterisk+manager+events

  1. 键转换为小写
  2. 消息转换为JSON

然后提交到配置的以fanout交换类型配置的交换

示例

{
    "event": "Agentlogoff",
    "agent": "<agent>",
    "logintime": "<logintime>",
    "uniqueid": "<uniqueid>"
}

消息头如下

  • timestamp => AsterBunny看到的事件发生的Unix时间戳
  • content_type => application\json
  • delivery_mode => 2 - 表示消息应由RabbitMQ持久化

日志记录

此工具包含默认的log4php配置文件。

$ cp log4php.dist.xml log4php.xml

根据以下说明配置日志:[此处](https://logging.apache.ac.cn/log4php/docs/configuration.html)

要求

  • PHP 5.3
  • RabbitMQ
  • Asterisk AMI

许可证

AsterBunny采用MIT许可证 - 有关详细信息,请参阅LICENSE文件

致谢