86bad55d652aa5754bf93331955726af34cc8880
[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 _0x8146=['close','connect','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','info','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','resolve','then','actionSipPeerStatus','actionCoreShowChannels','exports','util','lodash','ami','../../config/environment','asterisk','port','keepConnected','action','error','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','username','inspect','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','Action','actionDeviceStateList','devicestatelist','sippeerstatus','actionQueueSummary','once'];(function(_0x27b7be,_0x538e2d){var _0x1aa77e=function(_0x52a210){while(--_0x52a210){_0x27b7be['push'](_0x27b7be['shift']());}};_0x1aa77e(++_0x538e2d);}(_0x8146,0x1eb));var _0x6814=function(_0x5bab26,_0x437a03){_0x5bab26=_0x5bab26-0x0;var _0x34e3f2=_0x8146[_0x5bab26];return _0x34e3f2;};'use strict';var Manager=require('asterisk-manager');var BPromise=require('bluebird');var moment=require('moment');var util=require(_0x6814('0x0'));var _=require(_0x6814('0x1'));var logger=require('../../config/logger')(_0x6814('0x2'));var config=require(_0x6814('0x3'));var ami=new Manager(config[_0x6814('0x4')][_0x6814('0x5')],config[_0x6814('0x4')]['ip'],config[_0x6814('0x4')]['username'],config[_0x6814('0x4')]['password'],!![]);ami[_0x6814('0x6')]();ami['Action']=BPromise['promisify'](ami[_0x6814('0x7')]);function error(_0x28799d){logger[_0x6814('0x8')](util[_0x6814('0x9')](_0x6814('0xa'),config[_0x6814('0x4')][_0x6814('0xb')],config[_0x6814('0x4')]['ip'],config[_0x6814('0x4')][_0x6814('0x5')],util[_0x6814('0xc')](_0x28799d,![],null)));}function close(){logger['error'](util[_0x6814('0x9')](_0x6814('0xd'),config[_0x6814('0x4')][_0x6814('0xb')],config[_0x6814('0x4')]['ip'],config[_0x6814('0x4')]['port']));}ami[_0x6814('0xe')]=function(){return function(){return ami[_0x6814('0xf')]({'action':'sipshowregistry'});};};ami[_0x6814('0x10')]=function(){return function(){return ami['Action']({'action':_0x6814('0x11')});};};ami['actionSipPeerStatus']=function(){return function(){return ami[_0x6814('0xf')]({'action':_0x6814('0x12')});};};ami[_0x6814('0x13')]=function(){return function(){return ami[_0x6814('0xf')]({'action':'queuesummary'});};};ami['actionCoreShowChannels']=function(){return function(){return ami[_0x6814('0xf')]({'action':'coreshowchannels'});};};function connect(_0x114b5d){logger['info'](util[_0x6814('0x9')]('Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s',config[_0x6814('0x4')]['username'],config[_0x6814('0x4')]['ip'],config[_0x6814('0x4')]['port']));ami[_0x6814('0x14')](_0x6814('0x8'),error);ami[_0x6814('0x14')](_0x6814('0x15'),close);}ami['on'](_0x6814('0x16'),connect);ami['on'](_0x6814('0x17'),function(_0x5c35fa){logger['info'](util[_0x6814('0x9')](_0x6814('0x18'),config['asterisk'][_0x6814('0xb')],config[_0x6814('0x4')]['ip'],config['asterisk'][_0x6814('0x5')],util[_0x6814('0xc')](_0x5c35fa,![],null)));});ami['on']('fullybooted',function(_0x3c1dd2){logger[_0x6814('0x19')](util[_0x6814('0x9')](_0x6814('0x1a'),config['asterisk'][_0x6814('0xb')],config[_0x6814('0x4')]['ip'],config[_0x6814('0x4')][_0x6814('0x5')]));return BPromise[_0x6814('0x1b')]()[_0x6814('0x1c')](ami[_0x6814('0xe')]())['then'](ami[_0x6814('0x10')]())[_0x6814('0x1c')](ami[_0x6814('0x1d')]())[_0x6814('0x1c')](ami[_0x6814('0x13')]())[_0x6814('0x1c')](ami[_0x6814('0x1e')]())['catch'](function(_0x59ac9c){console['log'](_0x59ac9c);});});ami[_0x6814('0x14')](_0x6814('0x8'),error);ami[_0x6814('0x14')]('close',close);module[_0x6814('0x1f')]=ami;