f7188e763343b1b6d2fc3f828e60f893f7459ee1
[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 _0x9db6=['format','port','Action','sipshowregistry','actionDeviceStateList','devicestatelist','actionSipPeerStatus','queuesummary','coreshowchannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','connect','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','inspect','resolve','then','actionSipShowRegistry','actionQueueSummary','actionCoreShowChannels','catch','[ami.js][fullybooted]','exports','asterisk-manager','bluebird','util','../../config/logger','ami','../../config/environment','asterisk','username','password','keepConnected','action','error'];(function(_0xb946cb,_0x163b4a){var _0x53fb3b=function(_0x32ab48){while(--_0x32ab48){_0xb946cb['push'](_0xb946cb['shift']());}};_0x53fb3b(++_0x163b4a);}(_0x9db6,0x1b0));var _0x69db=function(_0x16e0c8,_0x4861eb){_0x16e0c8=_0x16e0c8-0x0;var _0xe4b5af=_0x9db6[_0x16e0c8];return _0xe4b5af;};'use strict';var Manager=require(_0x69db('0x0'));var BPromise=require(_0x69db('0x1'));var util=require(_0x69db('0x2'));var logger=require(_0x69db('0x3'))(_0x69db('0x4'));var config=require(_0x69db('0x5'));var ami=new Manager(config['asterisk']['port'],config[_0x69db('0x6')]['ip'],config[_0x69db('0x6')][_0x69db('0x7')],config['asterisk'][_0x69db('0x8')],!![]);ami[_0x69db('0x9')]();ami['Action']=BPromise['promisify'](ami[_0x69db('0xa')]);function error(_0x459964){logger[_0x69db('0xb')](util[_0x69db('0xc')]('Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s',config[_0x69db('0x6')][_0x69db('0x7')],config[_0x69db('0x6')]['ip'],config['asterisk'][_0x69db('0xd')],util['inspect'](_0x459964,![],null)));}function close(){logger[_0x69db('0xb')](util['format']('Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s',config[_0x69db('0x6')]['username'],config[_0x69db('0x6')]['ip'],config['asterisk'][_0x69db('0xd')]));}ami['actionSipShowRegistry']=function(){return function(){return ami[_0x69db('0xe')]({'action':_0x69db('0xf')});};};ami[_0x69db('0x10')]=function(){return function(){return ami[_0x69db('0xe')]({'action':_0x69db('0x11')});};};ami[_0x69db('0x12')]=function(){return function(){return ami[_0x69db('0xe')]({'action':'sippeerstatus'});};};ami['actionQueueSummary']=function(){return function(){return ami[_0x69db('0xe')]({'action':_0x69db('0x13')});};};ami['actionCoreShowChannels']=function(){return function(){return ami[_0x69db('0xe')]({'action':_0x69db('0x14')});};};function connect(){logger[_0x69db('0x15')](util['format'](_0x69db('0x16'),config['asterisk'][_0x69db('0x7')],config[_0x69db('0x6')]['ip'],config[_0x69db('0x6')][_0x69db('0xd')]));ami[_0x69db('0x17')](_0x69db('0xb'),error);ami[_0x69db('0x17')](_0x69db('0x18'),close);}ami['on'](_0x69db('0x19'),connect);ami['on'](_0x69db('0x1a'),function(_0x4a9df1){logger[_0x69db('0x15')](util['format'](_0x69db('0x1b'),config[_0x69db('0x6')][_0x69db('0x7')],config[_0x69db('0x6')]['ip'],config[_0x69db('0x6')]['port'],util[_0x69db('0x1c')](_0x4a9df1,![],null)));});ami['on']('fullybooted',function(){logger[_0x69db('0x15')](util['format']('Fullybooted\x20\x22%s\x22\x20to\x20%s:%s',config[_0x69db('0x6')][_0x69db('0x7')],config['asterisk']['ip'],config[_0x69db('0x6')][_0x69db('0xd')]));return Promise[_0x69db('0x1d')]()[_0x69db('0x1e')](ami[_0x69db('0x1f')]())[_0x69db('0x1e')](ami[_0x69db('0x10')]())[_0x69db('0x1e')](ami['actionSipPeerStatus']())[_0x69db('0x1e')](ami[_0x69db('0x20')]())[_0x69db('0x1e')](ami[_0x69db('0x21')]())[_0x69db('0x22')](function(_0x3bdf2c){logger[_0x69db('0xb')](_0x69db('0x23'),util[_0x69db('0x1c')](_0x3bdf2c,{'showHidden':![],'depth':null}));});});ami[_0x69db('0x17')](_0x69db('0xb'),error);ami[_0x69db('0x17')](_0x69db('0x18'),close);module[_0x69db('0x24')]=ami;