8130709e02818b39dccaad455417072c76f089ba
[motion2.git] / server / services / ami / report / userReport.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 _0x73bd=['address','telephone:save','trunk:save','[syncPeerStatus][UserReport]','lodash','moment','bluebird','util','ioredis','../../../config/environment','ami','../ami','redis','defaults','localhost','socket.io-emitter','agents','telephones','registryentry','syncRegistry','bind','registry','syncDeviceState','peerstatus','loopSyncRealTimeShow','resolve','then','actionSipShowRegistry','actionSipPeerStatus','[loopSyncRealTimeShow]','error','inspect','prototype','isNotNull','emit','find','trunks','username','stateRegistry','state','omit','event','actionid','trunk:%s','name','[syncRegistry][UserReport]','device','local','toLowerCase','inuse','toNumber','format','updateStatusRealtime','telephone:%s','startsWith','substring','indexOf','mobile','phone','accountcode','stateTime','[syncDeviceState][UserReport]','peer','status'];(function(_0xc5e02a,_0xd9da3c){var _0xbeca77=function(_0x2a7d11){while(--_0x2a7d11){_0xc5e02a['push'](_0xc5e02a['shift']());}};_0xbeca77(++_0xd9da3c);}(_0x73bd,0x184));var _0xd73b=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x73bd[_0x59ee6f];return _0x4c0979;};'use strict';var _=require(_0xd73b('0x0'));var moment=require(_0xd73b('0x1'));var BPromise=require(_0xd73b('0x2'));var util=require(_0xd73b('0x3'));var Redis=require(_0xd73b('0x4'));var config=require(_0xd73b('0x5'));var logger=require('../../../config/logger')(_0xd73b('0x6'));var ami=require(_0xd73b('0x7'));config[_0xd73b('0x8')]=_[_0xd73b('0x9')](config['redis'],{'host':_0xd73b('0xa'),'port':0x18eb});var io=require(_0xd73b('0xb'))(new Redis(config['redis']));function UserReport(_0xa2c3b9){this['trunks']=_0xa2c3b9['trunks'];this[_0xd73b('0xc')]=_0xa2c3b9[_0xd73b('0xc')];this[_0xd73b('0xd')]=_0xa2c3b9[_0xd73b('0xd')];ami['on'](_0xd73b('0xe'),this[_0xd73b('0xf')][_0xd73b('0x10')](this));ami['on'](_0xd73b('0x11'),this['syncRegistry'][_0xd73b('0x10')](this));ami['on']('devicestatechange',this[_0xd73b('0x12')][_0xd73b('0x10')](this));ami['on'](_0xd73b('0x13'),this['syncPeerStatus'][_0xd73b('0x10')](this));this[_0xd73b('0x14')]();return BPromise[_0xd73b('0x15')]()[_0xd73b('0x16')](ami[_0xd73b('0x17')]())[_0xd73b('0x16')](ami['actionDeviceStateList']())[_0xd73b('0x16')](ami[_0xd73b('0x18')]())['catch'](loggerCatch(_0xd73b('0x19')));}function loggerCatch(_0x50f5d0){return function(_0xc70ef1){logger[_0xd73b('0x1a')](_0x50f5d0,util[_0xd73b('0x1b')](_0xc70ef1,{'showHidden':![],'depth':null}));};}UserReport[_0xd73b('0x1c')][_0xd73b('0x14')]=function(){setInterval(function(){BPromise[_0xd73b('0x15')]()[_0xd73b('0x16')](ami[_0xd73b('0x17')]())['then'](ami['actionDeviceStateList']())[_0xd73b('0x16')](ami[_0xd73b('0x18')]())['catch'](loggerCatch(_0xd73b('0x19')));},0x32c8);};UserReport['prototype'][_0xd73b('0x1d')]=function(_0xcfdba5){return _0xcfdba5!==null&&!_['isUndefined'](_0xcfdba5);};UserReport['prototype'][_0xd73b('0x1e')]=function(_0x54bdbb,_0x225d12,_0x334a59){io['to'](_0x54bdbb)[_0xd73b('0x1e')](_0x225d12,_0x334a59);};UserReport[_0xd73b('0x1c')][_0xd73b('0xf')]=function(_0x664c4d){try{if(this[_0xd73b('0x1d')](_0x664c4d)){var _0x5d0cd0=_[_0xd73b('0x1f')](this[_0xd73b('0x20')],{'registry':_0x664c4d[_0xd73b('0x21')]});if(_0x5d0cd0){_0x664c4d[_0xd73b('0x22')]=_0x664c4d[_0xd73b('0x23')];_['merge'](_0x5d0cd0,_[_0xd73b('0x24')](_0x664c4d,[_0xd73b('0x25'),_0xd73b('0x26'),_0xd73b('0x21'),_0xd73b('0x23')]));this[_0xd73b('0x1e')](util['format'](_0xd73b('0x27'),_0x5d0cd0[_0xd73b('0x28')]),'trunk:save',_0x5d0cd0);}}}catch(_0x569bf4){logger[_0xd73b('0x1a')](_0xd73b('0x29'),util[_0xd73b('0x1b')](_0x569bf4,{'showHidden':![],'depth':null}));}};UserReport[_0xd73b('0x1c')][_0xd73b('0x12')]=function(_0x513787){try{if(this[_0xd73b('0x1d')](_0x513787)){if(this[_0xd73b('0xc')][_0x513787[_0xd73b('0x2a')]]){if(!this['agents'][_0x513787[_0xd73b('0x2a')]][_0xd73b('0x2b')]||_0x513787[_0xd73b('0x23')][_0xd73b('0x2c')]()==_0xd73b('0x2d')){this[_0xd73b('0xc')][_0x513787[_0xd73b('0x2a')]][_0xd73b('0x2b')]=![];if(this['agents'][_0x513787[_0xd73b('0x2a')]]['state']!==_0x513787[_0xd73b('0x23')][_0xd73b('0x2c')]()){this[_0xd73b('0xc')][_0x513787[_0xd73b('0x2a')]]['stateTime']=_[_0xd73b('0x2e')](moment()[_0xd73b('0x2f')]('x'));}this['agents'][_0x513787[_0xd73b('0x2a')]][_0xd73b('0x23')]=_0x513787[_0xd73b('0x23')]['toLowerCase']();this['agents'][_0x513787[_0xd73b('0x2a')]][_0xd73b('0x30')](_0x513787);}}else if(this[_0xd73b('0xd')][_0x513787[_0xd73b('0x2a')]]){if(this[_0xd73b('0xd')][_0x513787['device']][_0xd73b('0x23')]!==_0x513787[_0xd73b('0x23')][_0xd73b('0x2c')]()){this[_0xd73b('0xd')][_0x513787[_0xd73b('0x2a')]]['stateTime']=_['toNumber'](moment()['format']('x'));}this[_0xd73b('0xd')][_0x513787[_0xd73b('0x2a')]][_0xd73b('0x23')]=_0x513787[_0xd73b('0x23')][_0xd73b('0x2c')]();this[_0xd73b('0x1e')](util[_0xd73b('0x2f')](_0xd73b('0x31'),this[_0xd73b('0xd')][_0x513787[_0xd73b('0x2a')]][_0xd73b('0x28')]),'telephone:save',this[_0xd73b('0xd')][_0x513787['device']]);}else if(this['trunks'][_0x513787[_0xd73b('0x2a')]]){if(this[_0xd73b('0x20')][_0x513787[_0xd73b('0x2a')]][_0xd73b('0x23')]!==_0x513787[_0xd73b('0x23')]['toLowerCase']()){this[_0xd73b('0x20')][_0x513787[_0xd73b('0x2a')]]['stateTime']=_['toNumber'](moment()['format']('x'));}this['trunks'][_0x513787[_0xd73b('0x2a')]]['state']=_0x513787[_0xd73b('0x23')][_0xd73b('0x2c')]();this[_0xd73b('0x1e')](util['format'](_0xd73b('0x27'),this[_0xd73b('0x20')][_0x513787[_0xd73b('0x2a')]][_0xd73b('0x28')]),'trunk:save',this[_0xd73b('0x20')][_0x513787[_0xd73b('0x2a')]]);}else if(_[_0xd73b('0x32')](_0x513787[_0xd73b('0x2a')],'Queue')){}else if(_[_0xd73b('0x32')](_0x513787['device'],'Local')){var _0x4d510f=_0x513787[_0xd73b('0x2a')];var _0x362f8a=_0x4d510f[_0xd73b('0x33')](_0x4d510f[_0xd73b('0x34')]('/')+0x1,_0x4d510f[_0xd73b('0x34')]('@'));var _0x5d5711=_['find'](this[_0xd73b('0xc')],function(_0x362f4){return _0x362f4[_0xd73b('0x35')]==_0x362f8a||_0x362f4[_0xd73b('0x36')]==_0x362f8a||_0x362f4[_0xd73b('0x37')]==_0x362f8a;});if(_0x5d5711){if(_0x5d5711[_0xd73b('0x23')]!==_0x513787[_0xd73b('0x23')][_0xd73b('0x2c')]()){_0x5d5711[_0xd73b('0x38')]=_[_0xd73b('0x2e')](moment()[_0xd73b('0x2f')]('x'));}_0x5d5711[_0xd73b('0x23')]=_0x513787['state']['toLowerCase']();_0x5d5711['local']=!![];_0x5d5711[_0xd73b('0x30')](_0x513787);}}else{}}}catch(_0x42b4a2){logger['error'](_0xd73b('0x39'),util[_0xd73b('0x1b')](_0x42b4a2,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncPeerStatus']=function(_0x29a90d){try{if(this[_0xd73b('0x1d')](_0x29a90d)&&this['isNotNull'](_0x29a90d[_0xd73b('0x13')])){if(this['agents'][_0x29a90d[_0xd73b('0x3a')]]){if(!this[_0xd73b('0xc')][_0x29a90d[_0xd73b('0x3a')]]['local']||_0x29a90d[_0xd73b('0x13')]['toLowerCase']()=='registered'){this[_0xd73b('0xc')][_0x29a90d[_0xd73b('0x3a')]][_0xd73b('0x2b')]=![];this[_0xd73b('0xc')][_0x29a90d[_0xd73b('0x3a')]][_0xd73b('0x3b')]=_0x29a90d[_0xd73b('0x13')][_0xd73b('0x2c')]();this[_0xd73b('0xc')][_0x29a90d['peer']][_0xd73b('0x3c')]=_0x29a90d[_0xd73b('0x3c')];this[_0xd73b('0xc')][_0x29a90d['peer']]['updateStatusRealtime'](_0x29a90d);}}else if(this[_0xd73b('0xd')][_0x29a90d[_0xd73b('0x3a')]]){this[_0xd73b('0xd')][_0x29a90d['peer']][_0xd73b('0x3b')]=_0x29a90d[_0xd73b('0x13')]['toLowerCase']();this['telephones'][_0x29a90d['peer']][_0xd73b('0x3c')]=_0x29a90d[_0xd73b('0x3c')];this[_0xd73b('0x1e')](util['format']('telephone:%s',this[_0xd73b('0xd')][_0x29a90d[_0xd73b('0x3a')]][_0xd73b('0x28')]),_0xd73b('0x3d'),this[_0xd73b('0xd')][_0x29a90d['peer']]);}else if(this[_0xd73b('0x20')][_0x29a90d[_0xd73b('0x3a')]]){this[_0xd73b('0x20')][_0x29a90d['peer']]['status']=_0x29a90d[_0xd73b('0x13')][_0xd73b('0x2c')]();this[_0xd73b('0x20')][_0x29a90d[_0xd73b('0x3a')]][_0xd73b('0x3c')]=_0x29a90d['address'];this['emit'](util[_0xd73b('0x2f')]('trunk:%s',this[_0xd73b('0x20')][_0x29a90d[_0xd73b('0x3a')]][_0xd73b('0x28')]),_0xd73b('0x3e'),this['trunks'][_0x29a90d['peer']]);}else{}}}catch(_0x257189){logger[_0xd73b('0x1a')](_0xd73b('0x3f'),util[_0xd73b('0x1b')](_0x257189,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;