asterisk-manager-tls

0.2.5 • Public • Published

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);

Package Sidebar

Install

npm i asterisk-manager-tls

Weekly Downloads

2

Version

0.2.5

License

ISC

Unpacked Size

28.1 kB

Total Files

10

Last publish

Collaborators

  • gurunier