!!! This component is no longer being actively developed, though bugs will be fixed if reported.
An Asterisk component which hooks into the Asterisk Management Interface (AMI) on remote systems. Using it adds additional layer of security as you can now lock down AMI to listen on only on localhost.
Require this package with composer using the following command:
$ composer require plinker/asterisk
Creating a client instance is done as follows:
<?php
require 'vendor/autoload.php';
/**
* Initialize plinker client.
*
* @param string $server - URL to server listener.
* @param string $config - server secret, and/or a additional component data
*/
$client = new \Plinker\Core\Client(
'http://example.com/server.php',
[
'secret' => 'a secret password',
'database' => [
'dsn' => 'mysql:host=127.0.0.1;dbname=asterisk',
'username' => '',
'password' => '',
'database' => '',
'freeze' => false,
'debug' => false
],
'ami' => [
'server' => '127.0.0.1',
'port' => '5038',
'username' => '',
'password' => ''
]
]
);
// or using global function
$client = plinker_client('http://example.com/server.php', 'a secret password', [
'database' => [
'dsn' => 'mysql:host=127.0.0.1;dbname=asterisk',
'username' => '',
'password' => '',
'database' => '',
'freeze' => false,
'debug' => false
],
'ami' => [
'server' => '127.0.0.1',
'port' => '5038',
'username' => '',
'password' => ''
]
]);
Once setup, you call the class though its namespace to its method.
Execute ASM command.
Call
$result = $client->asterisk->command('sip show peers');
Response
Connect into AMI and issue asterisk command [queue show *].
Call
$result = $client->asterisk->getQueue('foo');
Response
Connect into AMI and issue asterisk command [core show channels].
Call
$result = $client->asterisk->coreShowChannels();
Response
Array
(
'active_channels' => 0,
'active_calls' => 0,
'calls_processed' => 0
}
And other methods see: vendor/asterisk/src/Asterisk.php
There are no tests setup for this component.
Please see CONTRIBUTING for details.
If you discover any security related issues, please contact me via https://cherone.co.uk instead of using the issue tracker.
If you use this project and make money from it or want to show your appreciation, please feel free to make a donation https://www.paypal.me/lcherone, thanks.
Get your company or name listed throughout the documentation and on each github repository, contact me at https://cherone.co.uk for further details.
The MIT License (MIT). Please see License File for more information.
See the organisations page for additional components.