06c544838d39111f851918c1650dc60336acd793
[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 _0xc51f=['startsWith','Local','substring','indexOf','phone','accountcode','updateStatusRealtime','[syncDeviceState][UserReport]','peer','registered','status','address','[syncPeerStatus][UserReport]','exports','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','localhost','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','loopSyncRealTimeShow','resolve','actionSipShowRegistry','then','actionDeviceStateList','actionSipPeerStatus','catch','[loopSyncRealTimeShow]','error','inspect','prototype','isNotNull','isUndefined','emit','find','username','stateRegistry','state','merge','omit','event','actionid','format','name','device','local','toLowerCase','stateTime','toNumber','telephone:%s','telephone:save','trunk:%s','trunk:save','Queue'];(function(_0x1e163d,_0x8d9876){var _0x5bae8e=function(_0x18a5f6){while(--_0x18a5f6){_0x1e163d['push'](_0x1e163d['shift']());}};_0x5bae8e(++_0x8d9876);}(_0xc51f,0x1dc));var _0xfc51=function(_0x28edda,_0xbd447a){_0x28edda=_0x28edda-0x0;var _0x21f4a4=_0xc51f[_0x28edda];return _0x21f4a4;};'use strict';var _=require('lodash');var moment=require('moment');var BPromise=require('bluebird');var util=require('util');var Redis=require(_0xfc51('0x0'));var config=require(_0xfc51('0x1'));var logger=require(_0xfc51('0x2'))(_0xfc51('0x3'));var ami=require(_0xfc51('0x4'));config[_0xfc51('0x5')]=_['defaults'](config[_0xfc51('0x5')],{'host':_0xfc51('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xfc51('0x5')]));function UserReport(_0x2ffb21){this[_0xfc51('0x7')]=_0x2ffb21[_0xfc51('0x7')];this[_0xfc51('0x8')]=_0x2ffb21[_0xfc51('0x8')];this[_0xfc51('0x9')]=_0x2ffb21[_0xfc51('0x9')];ami['on'](_0xfc51('0xa'),this[_0xfc51('0xb')][_0xfc51('0xc')](this));ami['on'](_0xfc51('0xd'),this[_0xfc51('0xb')][_0xfc51('0xc')](this));ami['on'](_0xfc51('0xe'),this[_0xfc51('0xf')][_0xfc51('0xc')](this));ami['on'](_0xfc51('0x10'),this[_0xfc51('0x11')]['bind'](this));this[_0xfc51('0x12')]();return BPromise[_0xfc51('0x13')]()['then'](ami[_0xfc51('0x14')]())[_0xfc51('0x15')](ami[_0xfc51('0x16')]())[_0xfc51('0x15')](ami[_0xfc51('0x17')]())[_0xfc51('0x18')](loggerCatch(_0xfc51('0x19')));}function loggerCatch(_0x51564e){return function(_0x56d91f){logger[_0xfc51('0x1a')](_0x51564e,util[_0xfc51('0x1b')](_0x56d91f,{'showHidden':![],'depth':null}));};}UserReport[_0xfc51('0x1c')][_0xfc51('0x12')]=function(){setInterval(function(){BPromise['resolve']()[_0xfc51('0x15')](ami['actionSipShowRegistry']())[_0xfc51('0x15')](ami[_0xfc51('0x16')]())[_0xfc51('0x15')](ami[_0xfc51('0x17')]())[_0xfc51('0x18')](loggerCatch(_0xfc51('0x19')));},0x32c8);};UserReport['prototype'][_0xfc51('0x1d')]=function(_0x16cdaf){return _0x16cdaf!==null&&!_[_0xfc51('0x1e')](_0x16cdaf);};UserReport[_0xfc51('0x1c')][_0xfc51('0x1f')]=function(_0x16afca,_0x4ef2e1,_0x2b90f3){io['to'](_0x16afca)[_0xfc51('0x1f')](_0x4ef2e1,_0x2b90f3);};UserReport[_0xfc51('0x1c')][_0xfc51('0xb')]=function(_0x407cd7){try{if(this[_0xfc51('0x1d')](_0x407cd7)){var _0x1ea7a0=_[_0xfc51('0x20')](this[_0xfc51('0x7')],{'registry':_0x407cd7[_0xfc51('0x21')]});if(_0x1ea7a0){_0x407cd7[_0xfc51('0x22')]=_0x407cd7[_0xfc51('0x23')];_[_0xfc51('0x24')](_0x1ea7a0,_[_0xfc51('0x25')](_0x407cd7,[_0xfc51('0x26'),_0xfc51('0x27'),_0xfc51('0x21'),'state']));this[_0xfc51('0x1f')](util[_0xfc51('0x28')]('trunk:%s',_0x1ea7a0[_0xfc51('0x29')]),'trunk:save',_0x1ea7a0);}}}catch(_0x37a460){logger[_0xfc51('0x1a')]('[syncRegistry][UserReport]',util[_0xfc51('0x1b')](_0x37a460,{'showHidden':![],'depth':null}));}};UserReport[_0xfc51('0x1c')]['syncDeviceState']=function(_0x59b157){try{if(this['isNotNull'](_0x59b157)){if(this['agents'][_0x59b157[_0xfc51('0x2a')]]){if(!this[_0xfc51('0x8')][_0x59b157[_0xfc51('0x2a')]][_0xfc51('0x2b')]||_0x59b157[_0xfc51('0x23')][_0xfc51('0x2c')]()=='inuse'){this[_0xfc51('0x8')][_0x59b157[_0xfc51('0x2a')]]['local']=![];if(this[_0xfc51('0x8')][_0x59b157[_0xfc51('0x2a')]]['state']!==_0x59b157[_0xfc51('0x23')][_0xfc51('0x2c')]()){this[_0xfc51('0x8')][_0x59b157['device']][_0xfc51('0x2d')]=_[_0xfc51('0x2e')](moment()[_0xfc51('0x28')]('x'));}this[_0xfc51('0x8')][_0x59b157[_0xfc51('0x2a')]]['state']=_0x59b157[_0xfc51('0x23')][_0xfc51('0x2c')]();this['agents'][_0x59b157['device']]['updateStatusRealtime'](_0x59b157);}}else if(this['telephones'][_0x59b157[_0xfc51('0x2a')]]){if(this['telephones'][_0x59b157[_0xfc51('0x2a')]][_0xfc51('0x23')]!==_0x59b157[_0xfc51('0x23')][_0xfc51('0x2c')]()){this['telephones'][_0x59b157[_0xfc51('0x2a')]][_0xfc51('0x2d')]=_['toNumber'](moment()[_0xfc51('0x28')]('x'));}this[_0xfc51('0x9')][_0x59b157[_0xfc51('0x2a')]][_0xfc51('0x23')]=_0x59b157[_0xfc51('0x23')][_0xfc51('0x2c')]();this[_0xfc51('0x1f')](util['format'](_0xfc51('0x2f'),this['telephones'][_0x59b157['device']][_0xfc51('0x29')]),_0xfc51('0x30'),this[_0xfc51('0x9')][_0x59b157[_0xfc51('0x2a')]]);}else if(this[_0xfc51('0x7')][_0x59b157[_0xfc51('0x2a')]]){if(this[_0xfc51('0x7')][_0x59b157['device']]['state']!==_0x59b157[_0xfc51('0x23')]['toLowerCase']()){this[_0xfc51('0x7')][_0x59b157[_0xfc51('0x2a')]]['stateTime']=_[_0xfc51('0x2e')](moment()['format']('x'));}this[_0xfc51('0x7')][_0x59b157[_0xfc51('0x2a')]][_0xfc51('0x23')]=_0x59b157[_0xfc51('0x23')][_0xfc51('0x2c')]();this[_0xfc51('0x1f')](util['format'](_0xfc51('0x31'),this[_0xfc51('0x7')][_0x59b157[_0xfc51('0x2a')]][_0xfc51('0x29')]),_0xfc51('0x32'),this[_0xfc51('0x7')][_0x59b157[_0xfc51('0x2a')]]);}else if(_['startsWith'](_0x59b157[_0xfc51('0x2a')],_0xfc51('0x33'))){}else if(_[_0xfc51('0x34')](_0x59b157[_0xfc51('0x2a')],_0xfc51('0x35'))){var _0x253703=_0x59b157['device'];var _0x4ddeff=_0x253703[_0xfc51('0x36')](_0x253703[_0xfc51('0x37')]('/')+0x1,_0x253703[_0xfc51('0x37')]('@'));var _0x5029d1=_[_0xfc51('0x20')](this[_0xfc51('0x8')],function(_0x3dd3b){return _0x3dd3b['mobile']==_0x4ddeff||_0x3dd3b[_0xfc51('0x38')]==_0x4ddeff||_0x3dd3b[_0xfc51('0x39')]==_0x4ddeff;});if(_0x5029d1){if(_0x5029d1[_0xfc51('0x23')]!==_0x59b157[_0xfc51('0x23')][_0xfc51('0x2c')]()){_0x5029d1[_0xfc51('0x2d')]=_[_0xfc51('0x2e')](moment()[_0xfc51('0x28')]('x'));}_0x5029d1[_0xfc51('0x23')]=_0x59b157[_0xfc51('0x23')][_0xfc51('0x2c')]();_0x5029d1['local']=!![];_0x5029d1[_0xfc51('0x3a')](_0x59b157);}}else{}}}catch(_0x53be45){logger['error'](_0xfc51('0x3b'),util[_0xfc51('0x1b')](_0x53be45,{'showHidden':![],'depth':null}));}};UserReport[_0xfc51('0x1c')][_0xfc51('0x11')]=function(_0xb74949){try{if(this['isNotNull'](_0xb74949)&&this[_0xfc51('0x1d')](_0xb74949[_0xfc51('0x10')])){if(this[_0xfc51('0x8')][_0xb74949[_0xfc51('0x3c')]]){if(!this['agents'][_0xb74949[_0xfc51('0x3c')]][_0xfc51('0x2b')]||_0xb74949[_0xfc51('0x10')][_0xfc51('0x2c')]()==_0xfc51('0x3d')){this[_0xfc51('0x8')][_0xb74949['peer']][_0xfc51('0x2b')]=![];this[_0xfc51('0x8')][_0xb74949[_0xfc51('0x3c')]][_0xfc51('0x3e')]=_0xb74949[_0xfc51('0x10')][_0xfc51('0x2c')]();this[_0xfc51('0x8')][_0xb74949[_0xfc51('0x3c')]]['address']=_0xb74949[_0xfc51('0x3f')];this[_0xfc51('0x8')][_0xb74949[_0xfc51('0x3c')]][_0xfc51('0x3a')](_0xb74949);}}else if(this[_0xfc51('0x9')][_0xb74949['peer']]){this['telephones'][_0xb74949[_0xfc51('0x3c')]][_0xfc51('0x3e')]=_0xb74949[_0xfc51('0x10')]['toLowerCase']();this[_0xfc51('0x9')][_0xb74949[_0xfc51('0x3c')]][_0xfc51('0x3f')]=_0xb74949[_0xfc51('0x3f')];this[_0xfc51('0x1f')](util[_0xfc51('0x28')]('telephone:%s',this[_0xfc51('0x9')][_0xb74949[_0xfc51('0x3c')]][_0xfc51('0x29')]),_0xfc51('0x30'),this['telephones'][_0xb74949[_0xfc51('0x3c')]]);}else if(this[_0xfc51('0x7')][_0xb74949[_0xfc51('0x3c')]]){this[_0xfc51('0x7')][_0xb74949[_0xfc51('0x3c')]]['status']=_0xb74949['peerstatus'][_0xfc51('0x2c')]();this[_0xfc51('0x7')][_0xb74949['peer']][_0xfc51('0x3f')]=_0xb74949[_0xfc51('0x3f')];this[_0xfc51('0x1f')](util[_0xfc51('0x28')](_0xfc51('0x31'),this[_0xfc51('0x7')][_0xb74949['peer']]['name']),'trunk:save',this[_0xfc51('0x7')][_0xb74949['peer']]);}else{}}}catch(_0x5f440d){logger['error'](_0xfc51('0x40'),util[_0xfc51('0x1b')](_0x5f440d,{'showHidden':![],'depth':null}));}};module[_0xfc51('0x41')]=UserReport;