ryzhov / asterisk-bundle
AsteriskBundle for symfony framework
v1.0
2017-02-11 19:33 UTC
Requires
- php: >=5.3.2
- ryzhov/pami: ~1.0
This package is not auto-updated.
Last update: 2024-09-15 02:09:21 UTC
README
AsteriskBundle
提供了将 Asterisk PAMI 库集成到 Symfony2 框架中的功能。
许可协议
此包采用 MIT 许可协议 发布。
安装
使用 composer 需要安装此包及其依赖项
$ composer require ryzhov/asterisk-bundle
注册包
// app/AppKernel.php public function registerBundles() { $bundles = array( new Ryzhov\Bundle\AsteriskBundle(), ); }
用法
在配置文件中添加 asterisk
部分
asterisk: connections: default: host: "%asterisk_host%" port: "%asterisk_ami_port%" username: "%asterisk_ami_username%" secret: "%asterisk_ami_secret%" connect_timeout: 5 read_timeout: 5 clients: main: connection: default logger_channel: ami
在此,我们配置了连接参数和我们的应用程序将拥有的 AMI 客户端。在此示例中,您的服务容器将包含服务 asterisk.main_client
和 asterisk.ami_connection.default
连接参数。AMI 客户端服务接口参考Asterisk PAMI。
使用标签 asterisk.ami_event_handler
注册异步事件处理器,它将只处理指定的事件。
parameters: events: - "PAMI\\Message\\Event\\DeviceStateChangeEvent" - "PAMI\\Message\\Event\\PeerStatusEvent" services: service.event_handler: class: AppBundle\Service\EventHandler calls: - [setLogger, ["@logger"]] tags: - { name: monolog.logger, channel: event } - { name: asterisk.ami_event_handler, client: asterisk.main_client, events: "%events%" }
事件处理器示例
namespace AppBundle\Service; use PAMI\Listener\IEventListener; use PAMI\Message\Event\EventMessage; class EventHandler implements IEventListener { . . . public function handle(EventMessage $event) { $this->logger->debug(sprintf('class: "%s" handle', get_class($event))); } }
这是代码示例 ryzhov/example-asterisk-ami
$ composer create-project ryzhov/example-asterisk-ami
-- configure ami socket parameters here --
asterisk_host (localhost): 127.0.0.1
asterisk_ami_port (5038):
asterisk_ami_username (ami):
asterisk_ami_secret (pass4ami):
--
$ cd example-asterisk-ami
$ php bin/console event-handler