Built motion from commit (unavailable).|2.5.5
[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 _0x20e2=['actionSipShowRegistry','sipshowregistry','devicestatelist','actionSipPeerStatus','sippeerstatus','queuesummary','actionCoreShowChannels','info','once','close','connect','inspect','then','actionDeviceStateList','actionQueueSummary','catch','log','exports','bluebird','moment','lodash','ami','../../config/environment','asterisk','username','keepConnected','Action','action','error','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','port','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s'];(function(_0x33476d,_0x43ea1b){var _0x407dd3=function(_0x382765){while(--_0x382765){_0x33476d['push'](_0x33476d['shift']());}};_0x407dd3(++_0x43ea1b);}(_0x20e2,0x75));var _0x220e=function(_0x232e80,_0x5325a2){_0x232e80=_0x232e80-0x0;var _0xcbd9c6=_0x20e2[_0x232e80];return _0xcbd9c6;};'use strict';var Manager=require('asterisk-manager');var BPromise=require(_0x220e('0x0'));var moment=require(_0x220e('0x1'));var util=require('util');var _=require(_0x220e('0x2'));var logger=require('../../config/logger')(_0x220e('0x3'));var config=require(_0x220e('0x4'));var ami=new Manager(config[_0x220e('0x5')]['port'],config[_0x220e('0x5')]['ip'],config[_0x220e('0x5')][_0x220e('0x6')],config[_0x220e('0x5')]['password'],!![]);ami[_0x220e('0x7')]();ami[_0x220e('0x8')]=BPromise['promisify'](ami[_0x220e('0x9')]);function error(_0x50df60){logger[_0x220e('0xa')](util[_0x220e('0xb')](_0x220e('0xc'),config[_0x220e('0x5')][_0x220e('0x6')],config['asterisk']['ip'],config['asterisk'][_0x220e('0xd')],util['inspect'](_0x50df60,![],null)));}function close(){logger[_0x220e('0xa')](util[_0x220e('0xb')](_0x220e('0xe'),config[_0x220e('0x5')]['username'],config['asterisk']['ip'],config[_0x220e('0x5')][_0x220e('0xd')]));}ami[_0x220e('0xf')]=function(){return function(){return ami[_0x220e('0x8')]({'action':_0x220e('0x10')});};};ami['actionDeviceStateList']=function(){return function(){return ami[_0x220e('0x8')]({'action':_0x220e('0x11')});};};ami[_0x220e('0x12')]=function(){return function(){return ami[_0x220e('0x8')]({'action':_0x220e('0x13')});};};ami['actionQueueSummary']=function(){return function(){return ami[_0x220e('0x8')]({'action':_0x220e('0x14')});};};ami[_0x220e('0x15')]=function(){return function(){return ami[_0x220e('0x8')]({'action':'coreshowchannels'});};};function connect(_0x17d99f){logger[_0x220e('0x16')](util[_0x220e('0xb')]('Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s',config['asterisk']['username'],config[_0x220e('0x5')]['ip'],config['asterisk'][_0x220e('0xd')]));ami['once'](_0x220e('0xa'),error);ami[_0x220e('0x17')](_0x220e('0x18'),close);}ami['on'](_0x220e('0x19'),connect);ami['on']('shutdown',function(_0x2c2bc2){logger[_0x220e('0x16')](util[_0x220e('0xb')]('Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s',config[_0x220e('0x5')][_0x220e('0x6')],config[_0x220e('0x5')]['ip'],config[_0x220e('0x5')]['port'],util[_0x220e('0x1a')](_0x2c2bc2,![],null)));});ami['on']('fullybooted',function(_0x42a13a){logger['info'](util[_0x220e('0xb')]('Fullybooted\x20\x22%s\x22\x20to\x20%s:%s',config[_0x220e('0x5')][_0x220e('0x6')],config[_0x220e('0x5')]['ip'],config[_0x220e('0x5')][_0x220e('0xd')]));return BPromise['resolve']()[_0x220e('0x1b')](ami[_0x220e('0xf')]())['then'](ami[_0x220e('0x1c')]())[_0x220e('0x1b')](ami[_0x220e('0x12')]())[_0x220e('0x1b')](ami[_0x220e('0x1d')]())['then'](ami['actionCoreShowChannels']())[_0x220e('0x1e')](function(_0x30ca8e){console[_0x220e('0x1f')](_0x30ca8e);});});ami[_0x220e('0x17')]('error',error);ami[_0x220e('0x17')]('close',close);module[_0x220e('0x20')]=ami;