UNPKG

asterisk-manager-tls

Version:

Node.js Asterisk Manager conection IO socket TCP OR TLS socket

278 lines (117 loc) 3.81 kB
## Asterisk Manager TLS This is a library for conection socket to Asterisk Manager with TCP or with TLS You need access Asterisk Manager in configuration manager.conf ## Install ... npm install asterisk-manager-tls ... ## Usage example with TLS const astersik_Manager = require('asterisk-manager-tls'); //instance let ami = astersik_Manager(); //options, username,secret... this a configuracion manager.conf const options = { 'hostname' : hostname, 'port' : porttls, 'username' : 'admin', 'password' : 'admin', 'ssl' : 'enable', 'cert' : fs.readFileSync('ssl/client.pem'), 'key' : fs.readFileSync('ssl/client.key'), 'requestCert' : false, 'rejectUnauthorized' : false, 'ca' : [fs.readFileSync('ssl/ca.pem')] }; ## Usage example with out TLS const astersik_Manager = require('asterisk-manager'); //instance let ami = astersik_Manager(); //options, username,secret... this a configuracion manager.conf const options = { 'hostname' : hostname, 'port' : port, 'username' : 'admin', 'password' : 'admin', 'ssl' : 'off' }; ## connection TLS and whithout TLS //library connect socket //and with socket connected send Login //create connection ami.login(options) //in case de error of socket connection, library emit event error ami.on('error', function(data){ /* Lost connection to server. */ }); //when in case authentication fail, library emit event error ami.on('error', function(data){ /* { Response: 'Error', ActionID: '991', Message: 'Authentication failed', '': undefined } */ }); //when library connect success socket in manager asterisk, library emit event connected, its only information. ami.on('connect', function(){ //where login Asterisk is success, libary emit event information 'Ready' ami.on('Ready', function(){ ... //your code here ... }); }); ##Events library emit. //instance let ami = astersik_Manager(); //create all events of asterisk //not need into event Ready ami.on('EventAny', function(dataJson){ ... //your code here ... }); //create event especific of asterisk //example Asterisk Event name OriginateResponse // * // <asterisk's event name> // * ami.on('OriginateResponse', function(data){ ... //your code here ... }); //sokect control error ami.on('error', function(err){ ... //your code here ... }); //Manager Create Action to send Asterisk //see documentation AMI actions //https://wiki.asterisk.org/wiki/display/AST/Asterisk+18+AMI+Actions //https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+AMI+Actions //https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+AMI+Actions let form = { Action : 'Originate', Channel: 'sip/67890', Exten: '6789', Context: 'success', Async: 'no' }; let ActionID = ami.action(form); ##Manager restart ami //logoff asterisk manager ami.logoff(); //renew login ami.login(options) ##Manager hard-restart ami // close sokect tcp //the function include emit logoff ami.disconnect(); //renew socket and login ami.login(options);