1c26cafaac185cbf9a32d4623ca6df9d988e0847
[motion2.git] / server / services / ami / ami.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x77ca=['action','error','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','inspect','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','actionDeviceStateList','devicestatelist','sippeerstatus','actionQueueSummary','queuesummary','actionCoreShowChannels','coreshowchannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','connect','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','resolve','then','actionSipPeerStatus','catch','log','close','exports','asterisk-manager','bluebird','moment','util','lodash','asterisk','port','username','password','Action'];(function(_0x12a554,_0x3d7ef8){var _0x244ba0=function(_0x5eb5ff){while(--_0x5eb5ff){_0x12a554['push'](_0x12a554['shift']());}};_0x244ba0(++_0x3d7ef8);}(_0x77ca,0x107));var _0xa77c=function(_0x38a7b1,_0x4e6237){_0x38a7b1=_0x38a7b1-0x0;var _0x5308ec=_0x77ca[_0x38a7b1];return _0x5308ec;};'use strict';var Manager=require(_0xa77c('0x0'));var BPromise=require(_0xa77c('0x1'));var moment=require(_0xa77c('0x2'));var util=require(_0xa77c('0x3'));var _=require(_0xa77c('0x4'));var logger=require('../../config/logger')('ami');var config=require('../../config/environment');var ami=new Manager(config[_0xa77c('0x5')][_0xa77c('0x6')],config[_0xa77c('0x5')]['ip'],config[_0xa77c('0x5')][_0xa77c('0x7')],config[_0xa77c('0x5')][_0xa77c('0x8')],!![]);ami['keepConnected']();ami[_0xa77c('0x9')]=BPromise['promisify'](ami[_0xa77c('0xa')]);function error(_0xc8f1c5){logger[_0xa77c('0xb')](util[_0xa77c('0xc')](_0xa77c('0xd'),config[_0xa77c('0x5')]['username'],config[_0xa77c('0x5')]['ip'],config[_0xa77c('0x5')][_0xa77c('0x6')],util[_0xa77c('0xe')](_0xc8f1c5,![],null)));}function close(){logger['error'](util[_0xa77c('0xc')](_0xa77c('0xf'),config[_0xa77c('0x5')][_0xa77c('0x7')],config[_0xa77c('0x5')]['ip'],config['asterisk'][_0xa77c('0x6')]));}ami[_0xa77c('0x10')]=function(){return function(){return ami[_0xa77c('0x9')]({'action':'sipshowregistry'});};};ami[_0xa77c('0x11')]=function(){return function(){return ami[_0xa77c('0x9')]({'action':_0xa77c('0x12')});};};ami['actionSipPeerStatus']=function(){return function(){return ami['Action']({'action':_0xa77c('0x13')});};};ami[_0xa77c('0x14')]=function(){return function(){return ami[_0xa77c('0x9')]({'action':_0xa77c('0x15')});};};ami[_0xa77c('0x16')]=function(){return function(){return ami['Action']({'action':_0xa77c('0x17')});};};function connect(_0x1feb86){logger[_0xa77c('0x18')](util[_0xa77c('0xc')](_0xa77c('0x19'),config[_0xa77c('0x5')][_0xa77c('0x7')],config[_0xa77c('0x5')]['ip'],config['asterisk']['port']));ami[_0xa77c('0x1a')](_0xa77c('0xb'),error);ami[_0xa77c('0x1a')]('close',close);}ami['on'](_0xa77c('0x1b'),connect);ami['on'](_0xa77c('0x1c'),function(_0x495a52){logger[_0xa77c('0x18')](util[_0xa77c('0xc')](_0xa77c('0x1d'),config['asterisk']['username'],config[_0xa77c('0x5')]['ip'],config[_0xa77c('0x5')][_0xa77c('0x6')],util[_0xa77c('0xe')](_0x495a52,![],null)));});ami['on'](_0xa77c('0x1e'),function(_0x1bf496){logger[_0xa77c('0x18')](util[_0xa77c('0xc')](_0xa77c('0x1f'),config[_0xa77c('0x5')][_0xa77c('0x7')],config[_0xa77c('0x5')]['ip'],config[_0xa77c('0x5')]['port']));return BPromise[_0xa77c('0x20')]()['then'](ami[_0xa77c('0x10')]())['then'](ami[_0xa77c('0x11')]())[_0xa77c('0x21')](ami[_0xa77c('0x22')]())['then'](ami[_0xa77c('0x14')]())['then'](ami[_0xa77c('0x16')]())[_0xa77c('0x23')](function(_0x2a6b39){console[_0xa77c('0x24')](_0x2a6b39);});});ami['once']('error',error);ami[_0xa77c('0x1a')](_0xa77c('0x25'),close);module[_0xa77c('0x26')]=ami;