Adonis Asterisk AMI
Easy control via asterisk manager interface (AMI).
Installation and configuration
Using npm:
npm i adonis-asterisk-ami --save
Using yarn:
yarn add adonis-asterisk-ami
Once it's installed, you can register the service provider in bootsrap/app.js
in the aceProviders
:
const aceProviders = ... 'adonis-asterisk-ami/providers/AsteriskAmiProvider' ...
And add commands in commands
:
const commands = ... 'Adonis/Commands/Ami:Listen' 'Adonis/Commands/Ami:Action' 'Adonis/Commands/Ami:Dongle:Sms' 'Adonis/Commands/Ami:Dongle:Ussd' ...
Then add ami.js
file in config
folder with this code:
'use strict' const Env = moduleexports = // client's parameters reconnect: false maxAttemptsCount: 30 attemptsDelay: 1000 keepAlive: false keepAliveDelay: 1000 emitEventsByTypes: true eventTypeToLowerCase: false emitResponsesById: true addTime: false eventFilter: null // connection parameters host: Env port: Env username: Env secret: Env dongle: sms: device: Env
For more information abount client's parameters see documentation.
Usage
Connection options
You are can specify connection parameters for all commands.
Option | Description |
---|---|
--host | Asterisk AMI server host |
--port | Asterisk AMI server port |
--username | Asterisk AMI server username |
--secret | Asterisk AMI server secret |
Listen ami events
./ace ami:listen
// app/Listeners/AsteriskAmi.js'use strict' const AsteriskAmi = exports = moduleexports = {} AsteriskAmi { console} // bootsrap/events.js...Event...
For more information about event
property see asterisk-ami-client documentation.
If would you like to see event log in the console use debug option
./ace ami:listen --debug
Send ami action
./ace ami:action <action> --props='<key1>:<value1>;<key2>:<value2>' --id=<UNIQUE_ID?>
const props = _ // Foo:Bar,ActionID:<UNIQUE_ID?>Ace
Options props
and id
is not required.
Send sms messages using chan dongle
./ace ami:dongle:sms <phone> <message> <device?> --id=<UNIQUE_ID?>
Ace
For sending long messages use pdu mode.
./ace ami:dongle:sms <phone> <message> <device?> --pdu --id=<UNIQUE_ID?>
Ace
Argument device
and option id
is not required.
Send ussd commands using chan dongle
./ace ami:dongle:ussd <device> <ussd> --id=<UNIQUE_ID>
Ace;
Option id
is not required.
Without Adonis App
See bin folder
Credits
Support
Having trouble? Open an issue!
License
The MIT License (MIT). Please see License File for more information.