Streaming, event-driven access to the Asterisk Manager Interface (AMI), built on top of ReactPHP.
MIT License
Feature: Forward compatibility with Promise v3.
(#80 by @SimonFrings)
Feature: Simplify usage by supporting new default loop and new Socket API.
(#70 by @clue and #71 by @SimonFrings)
// old (still supported)
$factory = new Clue\React\Ami\Factory($loop);
// new (using default loop)
$factory = new Clue\React\Ami\Factory();
Feature: Full PHP 8.3 compatibility.
(#67, #73 and #79 by @SimonFrings)
Minor documentation improvements.
(#69 by @PaulRotmann and #77 by @yadaiio)
Improve test suite and use GitHub actions for continuous integration (CI).
(#67 and #78 by @SimonFrings)
Feature: Support authentication with URL-encoded special characters.
(#66 by @clue)
$user = 'he:llo';
$pass = 'p@ss';
$promise = $factory->createClient(
rawurlencode($user) . ':' . rawurlencode($pass) . '@localhost'
);
Minor documentation improvements and add support / sponsorship info.
(#58 by @clue)
Improve test suite and add .gitattributes
to exclude dev files from exports.
Prepare PHP 8 support, update to PHPUnit 9 and simplify test matrix.
(#57 and #59 by @clue and #61 and #65 by @SimonFrings)
First stable release, now following SemVer!
Feature / Fix: Support Asterisk 14+ command output format as well as legacy format.
(#54 by @clue)
Feature / Fix: Support parsing messages with multiple newlines between messages.
(#53 by @glet and @clue)
Improve README and API documentation.
(#55 by @clue)
Improve test suite, support PHPUnit 7 - legacy PHPUnit 4, test against legacy PHP 5.3 through PHP 7.3
and update project homepage.
(#51 and #52 by @clue)
Contains no other changes, so it's actually fully compatible with the v0.4.0 release.
Feature / BC break: Simplify Collection
by extending Response
and merging Collector
into ActionSender
(#41 by @clue)
// old
$collector = new Collector($client);
$collector->coreShowChannels()->then(function (Collection $collection) {
var_dump($collection->getResponse()->getFieldValue('Message'));
});
// new
$collector = new ActionSender($client);
$collector->coreShowChannels()->then(function (Collection $collection) {
var_dump($collection->getFieldValue('Message'));
});
Feature / BC break: Replace deprecated SocketClient with new Socket component and
improve forward compatibility with upcoming ReactPHP components
(#39 by @clue)
Feature / BC break: Consistently require URL when creating client
(#40 by @clue)
Feature / Fix: Update SocketClient to v0.5 and fix secure connection via TLS
(#38 by @clue)
Improve test suite by adding PHPUnit to require-dev,
fix HHVM build for now again and ignore future HHVM build errors,
test against legacy PHP 5.3 through PHP 7.1 and
lock Travis distro so new defaults will not break the build
(#34, #35, #36 and #37 by @clue)
Api
to ActionSender
to reflect its responsibilitylogout()
to proper logoff()
Response::getCommandOutput()
helper