Built motion from commit (unavailable).|2.4.18
[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 _0xce0f=['telephone:save','trunk:save','startsWith','Local','substring','indexOf','find','phone','[syncDeviceState][UserReport]','peer','registered','status','address','telephone:%s','exports','lodash','moment','util','ioredis','ami','../ami','defaults','redis','localhost','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','loopSyncRealTimeShow','resolve','then','actionSipShowRegistry','actionDeviceStateList','actionSipPeerStatus','catch','[loopSyncRealTimeShow]','error','inspect','prototype','isUndefined','emit','isNotNull','state','merge','omit','actionid','username','format','trunk:%s','name','[syncRegistry][UserReport]','device','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime'];(function(_0x56acbd,_0x3dc5b0){var _0x5a0e26=function(_0x4e5121){while(--_0x4e5121){_0x56acbd['push'](_0x56acbd['shift']());}};_0x5a0e26(++_0x3dc5b0);}(_0xce0f,0xd2));var _0xfce0=function(_0x10f359,_0x188403){_0x10f359=_0x10f359-0x0;var _0x40a757=_0xce0f[_0x10f359];return _0x40a757;};'use strict';var _=require(_0xfce0('0x0'));var moment=require(_0xfce0('0x1'));var BPromise=require('bluebird');var util=require(_0xfce0('0x2'));var Redis=require(_0xfce0('0x3'));var config=require('../../../config/environment');var logger=require('../../../config/logger')(_0xfce0('0x4'));var ami=require(_0xfce0('0x5'));config['redis']=_[_0xfce0('0x6')](config[_0xfce0('0x7')],{'host':_0xfce0('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xfce0('0x7')]));function UserReport(_0x405ac1){this['trunks']=_0x405ac1[_0xfce0('0x9')];this[_0xfce0('0xa')]=_0x405ac1[_0xfce0('0xa')];this[_0xfce0('0xb')]=_0x405ac1[_0xfce0('0xb')];ami['on'](_0xfce0('0xc'),this[_0xfce0('0xd')][_0xfce0('0xe')](this));ami['on'](_0xfce0('0xf'),this['syncRegistry'][_0xfce0('0xe')](this));ami['on'](_0xfce0('0x10'),this[_0xfce0('0x11')][_0xfce0('0xe')](this));ami['on'](_0xfce0('0x12'),this[_0xfce0('0x13')][_0xfce0('0xe')](this));this[_0xfce0('0x14')]();return BPromise[_0xfce0('0x15')]()[_0xfce0('0x16')](ami[_0xfce0('0x17')]())[_0xfce0('0x16')](ami[_0xfce0('0x18')]())['then'](ami[_0xfce0('0x19')]())[_0xfce0('0x1a')](loggerCatch(_0xfce0('0x1b')));}function loggerCatch(_0x8d9c18){return function(_0x1a8bf9){logger[_0xfce0('0x1c')](_0x8d9c18,util[_0xfce0('0x1d')](_0x1a8bf9,{'showHidden':![],'depth':null}));};}UserReport[_0xfce0('0x1e')]['loopSyncRealTimeShow']=function(){setInterval(function(){BPromise['resolve']()[_0xfce0('0x16')](ami[_0xfce0('0x17')]())['then'](ami[_0xfce0('0x18')]())[_0xfce0('0x16')](ami[_0xfce0('0x19')]())[_0xfce0('0x1a')](loggerCatch('[loopSyncRealTimeShow]'));},0x32c8);};UserReport[_0xfce0('0x1e')]['isNotNull']=function(_0x20159c){return _0x20159c!==null&&!_[_0xfce0('0x1f')](_0x20159c);};UserReport[_0xfce0('0x1e')][_0xfce0('0x20')]=function(_0x50dabd,_0x3ac03e,_0x3ed302){io['to'](_0x50dabd)['emit'](_0x3ac03e,_0x3ed302);};UserReport[_0xfce0('0x1e')]['syncRegistry']=function(_0x242455){try{if(this[_0xfce0('0x21')](_0x242455)){var _0x543e96=_['find'](this[_0xfce0('0x9')],{'registry':_0x242455['username']});if(_0x543e96){_0x242455['stateRegistry']=_0x242455[_0xfce0('0x22')];_[_0xfce0('0x23')](_0x543e96,_[_0xfce0('0x24')](_0x242455,['event',_0xfce0('0x25'),_0xfce0('0x26'),_0xfce0('0x22')]));this[_0xfce0('0x20')](util[_0xfce0('0x27')](_0xfce0('0x28'),_0x543e96[_0xfce0('0x29')]),'trunk:save',_0x543e96);}}}catch(_0xbb3978){logger['error'](_0xfce0('0x2a'),util[_0xfce0('0x1d')](_0xbb3978,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncDeviceState']=function(_0xb275c7){try{if(this[_0xfce0('0x21')](_0xb275c7)){if(this['agents'][_0xb275c7[_0xfce0('0x2b')]]){if(!this[_0xfce0('0xa')][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x2c')]||_0xb275c7[_0xfce0('0x22')][_0xfce0('0x2d')]()==_0xfce0('0x2e')){this['agents'][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x2c')]=![];if(this['agents'][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x22')]!==_0xb275c7[_0xfce0('0x22')][_0xfce0('0x2d')]()){this['agents'][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x2f')]=_[_0xfce0('0x30')](moment()[_0xfce0('0x27')]('x'));}this[_0xfce0('0xa')][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x22')]=_0xb275c7[_0xfce0('0x22')][_0xfce0('0x2d')]();this['agents'][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x31')](_0xb275c7);}}else if(this[_0xfce0('0xb')][_0xb275c7[_0xfce0('0x2b')]]){if(this['telephones'][_0xb275c7['device']][_0xfce0('0x22')]!==_0xb275c7[_0xfce0('0x22')][_0xfce0('0x2d')]()){this[_0xfce0('0xb')][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x2f')]=_[_0xfce0('0x30')](moment()[_0xfce0('0x27')]('x'));}this[_0xfce0('0xb')][_0xb275c7['device']]['state']=_0xb275c7['state']['toLowerCase']();this[_0xfce0('0x20')](util[_0xfce0('0x27')]('telephone:%s',this['telephones'][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x29')]),_0xfce0('0x32'),this[_0xfce0('0xb')][_0xb275c7[_0xfce0('0x2b')]]);}else if(this[_0xfce0('0x9')][_0xb275c7[_0xfce0('0x2b')]]){if(this['trunks'][_0xb275c7['device']][_0xfce0('0x22')]!==_0xb275c7[_0xfce0('0x22')][_0xfce0('0x2d')]()){this[_0xfce0('0x9')][_0xb275c7[_0xfce0('0x2b')]][_0xfce0('0x2f')]=_[_0xfce0('0x30')](moment()[_0xfce0('0x27')]('x'));}this[_0xfce0('0x9')][_0xb275c7[_0xfce0('0x2b')]]['state']=_0xb275c7[_0xfce0('0x22')][_0xfce0('0x2d')]();this['emit'](util[_0xfce0('0x27')](_0xfce0('0x28'),this['trunks'][_0xb275c7['device']][_0xfce0('0x29')]),_0xfce0('0x33'),this[_0xfce0('0x9')][_0xb275c7[_0xfce0('0x2b')]]);}else if(_[_0xfce0('0x34')](_0xb275c7['device'],'Queue')){}else if(_[_0xfce0('0x34')](_0xb275c7[_0xfce0('0x2b')],_0xfce0('0x35'))){var _0x3a5586=_0xb275c7['device'];var _0x46d91e=_0x3a5586[_0xfce0('0x36')](_0x3a5586[_0xfce0('0x37')]('/')+0x1,_0x3a5586[_0xfce0('0x37')]('@'));var _0x4996eb=_[_0xfce0('0x38')](this['agents'],function(_0x18b438){return _0x18b438['mobile']==_0x46d91e||_0x18b438[_0xfce0('0x39')]==_0x46d91e||_0x18b438['accountcode']==_0x46d91e;});if(_0x4996eb){if(_0x4996eb[_0xfce0('0x22')]!==_0xb275c7[_0xfce0('0x22')][_0xfce0('0x2d')]()){_0x4996eb['stateTime']=_[_0xfce0('0x30')](moment()['format']('x'));}_0x4996eb[_0xfce0('0x22')]=_0xb275c7['state'][_0xfce0('0x2d')]();_0x4996eb[_0xfce0('0x2c')]=!![];_0x4996eb[_0xfce0('0x31')](_0xb275c7);}}else{}}}catch(_0x18cab6){logger[_0xfce0('0x1c')](_0xfce0('0x3a'),util[_0xfce0('0x1d')](_0x18cab6,{'showHidden':![],'depth':null}));}};UserReport[_0xfce0('0x1e')][_0xfce0('0x13')]=function(_0x4bd242){try{if(this[_0xfce0('0x21')](_0x4bd242)&&this[_0xfce0('0x21')](_0x4bd242[_0xfce0('0x12')])){if(this[_0xfce0('0xa')][_0x4bd242[_0xfce0('0x3b')]]){if(!this[_0xfce0('0xa')][_0x4bd242['peer']][_0xfce0('0x2c')]||_0x4bd242[_0xfce0('0x12')][_0xfce0('0x2d')]()==_0xfce0('0x3c')){this[_0xfce0('0xa')][_0x4bd242[_0xfce0('0x3b')]]['local']=![];this[_0xfce0('0xa')][_0x4bd242[_0xfce0('0x3b')]][_0xfce0('0x3d')]=_0x4bd242[_0xfce0('0x12')]['toLowerCase']();this[_0xfce0('0xa')][_0x4bd242[_0xfce0('0x3b')]][_0xfce0('0x3e')]=_0x4bd242[_0xfce0('0x3e')];this[_0xfce0('0xa')][_0x4bd242[_0xfce0('0x3b')]][_0xfce0('0x31')](_0x4bd242);}}else if(this[_0xfce0('0xb')][_0x4bd242[_0xfce0('0x3b')]]){this['telephones'][_0x4bd242[_0xfce0('0x3b')]][_0xfce0('0x3d')]=_0x4bd242[_0xfce0('0x12')][_0xfce0('0x2d')]();this['telephones'][_0x4bd242[_0xfce0('0x3b')]][_0xfce0('0x3e')]=_0x4bd242[_0xfce0('0x3e')];this['emit'](util['format'](_0xfce0('0x3f'),this[_0xfce0('0xb')][_0x4bd242[_0xfce0('0x3b')]][_0xfce0('0x29')]),'telephone:save',this['telephones'][_0x4bd242[_0xfce0('0x3b')]]);}else if(this[_0xfce0('0x9')][_0x4bd242[_0xfce0('0x3b')]]){this[_0xfce0('0x9')][_0x4bd242['peer']][_0xfce0('0x3d')]=_0x4bd242['peerstatus'][_0xfce0('0x2d')]();this[_0xfce0('0x9')][_0x4bd242['peer']]['address']=_0x4bd242[_0xfce0('0x3e')];this[_0xfce0('0x20')](util[_0xfce0('0x27')](_0xfce0('0x28'),this[_0xfce0('0x9')][_0x4bd242[_0xfce0('0x3b')]][_0xfce0('0x29')]),_0xfce0('0x33'),this[_0xfce0('0x9')][_0x4bd242[_0xfce0('0x3b')]]);}else{}}}catch(_0x4376cb){logger[_0xfce0('0x1c')]('[syncPeerStatus][UserReport]',util[_0xfce0('0x1d')](_0x4376cb,{'showHidden':![],'depth':null}));}};module[_0xfce0('0x40')]=UserReport;