e6cdc97653f7d04b5afb8690a4cf5f64430ab6f5
[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 _0x70ba=['close','exports','bluebird','util','lodash','../../config/logger','ami','../../config/environment','asterisk','port','username','password','keepConnected','Action','promisify','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','sipshowregistry','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','then','actionSipPeerStatus','catch','log'];(function(_0x51eaf7,_0x71181e){var _0x1dd933=function(_0x46c02d){while(--_0x46c02d){_0x51eaf7['push'](_0x51eaf7['shift']());}};_0x1dd933(++_0x71181e);}(_0x70ba,0x19c));var _0xa70b=function(_0x3d8c50,_0x897375){_0x3d8c50=_0x3d8c50-0x0;var _0x44655e=_0x70ba[_0x3d8c50];return _0x44655e;};'use strict';var Manager=require('asterisk-manager');var BPromise=require(_0xa70b('0x0'));var moment=require('moment');var util=require(_0xa70b('0x1'));var _=require(_0xa70b('0x2'));var logger=require(_0xa70b('0x3'))(_0xa70b('0x4'));var config=require(_0xa70b('0x5'));var ami=new Manager(config[_0xa70b('0x6')][_0xa70b('0x7')],config[_0xa70b('0x6')]['ip'],config[_0xa70b('0x6')][_0xa70b('0x8')],config[_0xa70b('0x6')][_0xa70b('0x9')],!![]);ami[_0xa70b('0xa')]();ami[_0xa70b('0xb')]=BPromise[_0xa70b('0xc')](ami['action']);function error(_0x120cae){logger[_0xa70b('0xd')](util[_0xa70b('0xe')](_0xa70b('0xf'),config['asterisk'][_0xa70b('0x8')],config[_0xa70b('0x6')]['ip'],config[_0xa70b('0x6')][_0xa70b('0x7')],util[_0xa70b('0x10')](_0x120cae,![],null)));}function close(){logger['error'](util['format'](_0xa70b('0x11'),config[_0xa70b('0x6')]['username'],config[_0xa70b('0x6')]['ip'],config[_0xa70b('0x6')]['port']));}ami[_0xa70b('0x12')]=function(){return function(){return ami[_0xa70b('0xb')]({'action':_0xa70b('0x13')});};};ami[_0xa70b('0x14')]=function(){return function(){return ami['Action']({'action':_0xa70b('0x15')});};};ami['actionSipPeerStatus']=function(){return function(){return ami[_0xa70b('0xb')]({'action':_0xa70b('0x16')});};};ami[_0xa70b('0x17')]=function(){return function(){return ami['Action']({'action':_0xa70b('0x18')});};};ami[_0xa70b('0x19')]=function(){return function(){return ami[_0xa70b('0xb')]({'action':_0xa70b('0x1a')});};};function connect(_0x42714a){logger[_0xa70b('0x1b')](util['format'](_0xa70b('0x1c'),config[_0xa70b('0x6')][_0xa70b('0x8')],config[_0xa70b('0x6')]['ip'],config[_0xa70b('0x6')][_0xa70b('0x7')]));ami[_0xa70b('0x1d')]('error',error);ami['once']('close',close);}ami['on'](_0xa70b('0x1e'),connect);ami['on'](_0xa70b('0x1f'),function(_0x562db8){logger[_0xa70b('0x1b')](util[_0xa70b('0xe')](_0xa70b('0x20'),config[_0xa70b('0x6')][_0xa70b('0x8')],config[_0xa70b('0x6')]['ip'],config[_0xa70b('0x6')][_0xa70b('0x7')],util['inspect'](_0x562db8,![],null)));});ami['on'](_0xa70b('0x21'),function(_0x1a7f11){logger[_0xa70b('0x1b')](util[_0xa70b('0xe')](_0xa70b('0x22'),config[_0xa70b('0x6')][_0xa70b('0x8')],config['asterisk']['ip'],config[_0xa70b('0x6')][_0xa70b('0x7')]));return BPromise['resolve']()['then'](ami[_0xa70b('0x12')]())[_0xa70b('0x23')](ami[_0xa70b('0x14')]())[_0xa70b('0x23')](ami[_0xa70b('0x24')]())['then'](ami['actionQueueSummary']())[_0xa70b('0x23')](ami[_0xa70b('0x19')]())[_0xa70b('0x25')](function(_0x524f4c){console[_0xa70b('0x26')](_0x524f4c);});});ami[_0xa70b('0x1d')](_0xa70b('0xd'),error);ami[_0xa70b('0x1d')](_0xa70b('0x27'),close);module[_0xa70b('0x28')]=ami;