24e2cae087a1d5aa2ba886fe1ebb4c86419615c8
[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 _0x50d2=['actionid','state','format','trunk:%s','[syncRegistry][UserReport]','device','local','inuse','toLowerCase','stateTime','updateStatusRealtime','toNumber','telephone:%s','name','trunk:save','Queue','startsWith','Local','substring','indexOf','find','phone','[syncDeviceState][UserReport]','peerstatus','peer','registered','status','address','[syncPeerStatus][UserReport]','exports','lodash','bluebird','util','../../../config/environment','../../../config/logger','ami','../ami','defaults','redis','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','syncPeerStatus','then','actionSipShowRegistry','catch','[loopSyncRealTimeShow]','error','inspect','loopSyncRealTimeShow','actionDeviceStateList','prototype','isNotNull','emit','merge','event'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x50d2,0x15e));var _0x250d=function(_0x10c124,_0x2778b4){_0x10c124=_0x10c124-0x0;var _0x5f396c=_0x50d2[_0x10c124];return _0x5f396c;};'use strict';var _=require(_0x250d('0x0'));var moment=require('moment');var BPromise=require(_0x250d('0x1'));var util=require(_0x250d('0x2'));var Redis=require('ioredis');var config=require(_0x250d('0x3'));var logger=require(_0x250d('0x4'))(_0x250d('0x5'));var ami=require(_0x250d('0x6'));config['redis']=_[_0x250d('0x7')](config[_0x250d('0x8')],{'host':_0x250d('0x9'),'port':0x18eb});var io=require(_0x250d('0xa'))(new Redis(config['redis']));function UserReport(_0x4b4321){this['trunks']=_0x4b4321[_0x250d('0xb')];this[_0x250d('0xc')]=_0x4b4321[_0x250d('0xc')];this['telephones']=_0x4b4321[_0x250d('0xd')];ami['on'](_0x250d('0xe'),this[_0x250d('0xf')][_0x250d('0x10')](this));ami['on'](_0x250d('0x11'),this['syncRegistry'][_0x250d('0x10')](this));ami['on'](_0x250d('0x12'),this[_0x250d('0x13')][_0x250d('0x10')](this));ami['on']('peerstatus',this[_0x250d('0x14')][_0x250d('0x10')](this));this['loopSyncRealTimeShow']();return BPromise['resolve']()[_0x250d('0x15')](ami[_0x250d('0x16')]())[_0x250d('0x15')](ami['actionDeviceStateList']())[_0x250d('0x15')](ami['actionSipPeerStatus']())[_0x250d('0x17')](loggerCatch(_0x250d('0x18')));}function loggerCatch(_0x2f132d){return function(_0x5a6158){logger[_0x250d('0x19')](_0x2f132d,util[_0x250d('0x1a')](_0x5a6158,{'showHidden':![],'depth':null}));};}UserReport['prototype'][_0x250d('0x1b')]=function(){setInterval(function(){BPromise['resolve']()[_0x250d('0x15')](ami[_0x250d('0x16')]())[_0x250d('0x15')](ami[_0x250d('0x1c')]())['then'](ami['actionSipPeerStatus']())[_0x250d('0x17')](loggerCatch(_0x250d('0x18')));},0x32c8);};UserReport[_0x250d('0x1d')][_0x250d('0x1e')]=function(_0x1f4685){return _0x1f4685!==null&&!_['isUndefined'](_0x1f4685);};UserReport[_0x250d('0x1d')][_0x250d('0x1f')]=function(_0x50f9bd,_0x36b56c,_0x5bde37){io['to'](_0x50f9bd)['emit'](_0x36b56c,_0x5bde37);};UserReport[_0x250d('0x1d')][_0x250d('0xf')]=function(_0x3aa8d5){try{if(this['isNotNull'](_0x3aa8d5)){var _0x27eac1=_['find'](this[_0x250d('0xb')],{'registry':_0x3aa8d5['username']});if(_0x27eac1){_0x3aa8d5['stateRegistry']=_0x3aa8d5['state'];_[_0x250d('0x20')](_0x27eac1,_['omit'](_0x3aa8d5,[_0x250d('0x21'),_0x250d('0x22'),'username',_0x250d('0x23')]));this['emit'](util[_0x250d('0x24')](_0x250d('0x25'),_0x27eac1['name']),'trunk:save',_0x27eac1);}}}catch(_0x3e7dd8){logger[_0x250d('0x19')](_0x250d('0x26'),util[_0x250d('0x1a')](_0x3e7dd8,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x250d('0x13')]=function(_0x5476f2){try{if(this['isNotNull'](_0x5476f2)){if(this['agents'][_0x5476f2[_0x250d('0x27')]]){if(!this[_0x250d('0xc')][_0x5476f2['device']][_0x250d('0x28')]||_0x5476f2[_0x250d('0x23')]['toLowerCase']()==_0x250d('0x29')){this[_0x250d('0xc')][_0x5476f2[_0x250d('0x27')]][_0x250d('0x28')]=![];if(this[_0x250d('0xc')][_0x5476f2[_0x250d('0x27')]]['state']!==_0x5476f2[_0x250d('0x23')][_0x250d('0x2a')]()){this[_0x250d('0xc')][_0x5476f2[_0x250d('0x27')]][_0x250d('0x2b')]=_['toNumber'](moment()[_0x250d('0x24')]('x'));}this[_0x250d('0xc')][_0x5476f2['device']][_0x250d('0x23')]=_0x5476f2['state'][_0x250d('0x2a')]();this[_0x250d('0xc')][_0x5476f2[_0x250d('0x27')]][_0x250d('0x2c')](_0x5476f2);}}else if(this[_0x250d('0xd')][_0x5476f2['device']]){if(this[_0x250d('0xd')][_0x5476f2[_0x250d('0x27')]][_0x250d('0x23')]!==_0x5476f2['state']['toLowerCase']()){this[_0x250d('0xd')][_0x5476f2[_0x250d('0x27')]][_0x250d('0x2b')]=_[_0x250d('0x2d')](moment()['format']('x'));}this[_0x250d('0xd')][_0x5476f2[_0x250d('0x27')]][_0x250d('0x23')]=_0x5476f2['state'][_0x250d('0x2a')]();this[_0x250d('0x1f')](util[_0x250d('0x24')](_0x250d('0x2e'),this['telephones'][_0x5476f2[_0x250d('0x27')]][_0x250d('0x2f')]),'telephone:save',this['telephones'][_0x5476f2['device']]);}else if(this[_0x250d('0xb')][_0x5476f2['device']]){if(this[_0x250d('0xb')][_0x5476f2[_0x250d('0x27')]][_0x250d('0x23')]!==_0x5476f2[_0x250d('0x23')][_0x250d('0x2a')]()){this[_0x250d('0xb')][_0x5476f2['device']][_0x250d('0x2b')]=_[_0x250d('0x2d')](moment()[_0x250d('0x24')]('x'));}this['trunks'][_0x5476f2[_0x250d('0x27')]][_0x250d('0x23')]=_0x5476f2['state']['toLowerCase']();this[_0x250d('0x1f')](util[_0x250d('0x24')](_0x250d('0x25'),this['trunks'][_0x5476f2[_0x250d('0x27')]]['name']),_0x250d('0x30'),this[_0x250d('0xb')][_0x5476f2[_0x250d('0x27')]]);}else if(_['startsWith'](_0x5476f2[_0x250d('0x27')],_0x250d('0x31'))){}else if(_[_0x250d('0x32')](_0x5476f2[_0x250d('0x27')],_0x250d('0x33'))){var _0x6a27d9=_0x5476f2[_0x250d('0x27')];var _0x4523fa=_0x6a27d9[_0x250d('0x34')](_0x6a27d9[_0x250d('0x35')]('/')+0x1,_0x6a27d9['indexOf']('@'));var _0x24bdcd=_[_0x250d('0x36')](this[_0x250d('0xc')],function(_0x5be31e){return _0x5be31e['mobile']==_0x4523fa||_0x5be31e[_0x250d('0x37')]==_0x4523fa||_0x5be31e['accountcode']==_0x4523fa;});if(_0x24bdcd){if(_0x24bdcd[_0x250d('0x23')]!==_0x5476f2['state'][_0x250d('0x2a')]()){_0x24bdcd[_0x250d('0x2b')]=_['toNumber'](moment()[_0x250d('0x24')]('x'));}_0x24bdcd[_0x250d('0x23')]=_0x5476f2[_0x250d('0x23')][_0x250d('0x2a')]();_0x24bdcd[_0x250d('0x28')]=!![];_0x24bdcd[_0x250d('0x2c')](_0x5476f2);}}else{}}}catch(_0x3479a1){logger[_0x250d('0x19')](_0x250d('0x38'),util[_0x250d('0x1a')](_0x3479a1,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x250d('0x14')]=function(_0x5ac27e){try{if(this[_0x250d('0x1e')](_0x5ac27e)&&this[_0x250d('0x1e')](_0x5ac27e[_0x250d('0x39')])){if(this[_0x250d('0xc')][_0x5ac27e[_0x250d('0x3a')]]){if(!this[_0x250d('0xc')][_0x5ac27e[_0x250d('0x3a')]][_0x250d('0x28')]||_0x5ac27e[_0x250d('0x39')][_0x250d('0x2a')]()==_0x250d('0x3b')){this[_0x250d('0xc')][_0x5ac27e[_0x250d('0x3a')]][_0x250d('0x28')]=![];this['agents'][_0x5ac27e['peer']][_0x250d('0x3c')]=_0x5ac27e['peerstatus'][_0x250d('0x2a')]();this[_0x250d('0xc')][_0x5ac27e[_0x250d('0x3a')]][_0x250d('0x3d')]=_0x5ac27e[_0x250d('0x3d')];this[_0x250d('0xc')][_0x5ac27e[_0x250d('0x3a')]][_0x250d('0x2c')](_0x5ac27e);}}else if(this[_0x250d('0xd')][_0x5ac27e['peer']]){this[_0x250d('0xd')][_0x5ac27e[_0x250d('0x3a')]][_0x250d('0x3c')]=_0x5ac27e[_0x250d('0x39')]['toLowerCase']();this[_0x250d('0xd')][_0x5ac27e[_0x250d('0x3a')]]['address']=_0x5ac27e['address'];this['emit'](util[_0x250d('0x24')]('telephone:%s',this['telephones'][_0x5ac27e[_0x250d('0x3a')]][_0x250d('0x2f')]),'telephone:save',this['telephones'][_0x5ac27e['peer']]);}else if(this[_0x250d('0xb')][_0x5ac27e[_0x250d('0x3a')]]){this[_0x250d('0xb')][_0x5ac27e['peer']]['status']=_0x5ac27e[_0x250d('0x39')][_0x250d('0x2a')]();this[_0x250d('0xb')][_0x5ac27e['peer']]['address']=_0x5ac27e[_0x250d('0x3d')];this[_0x250d('0x1f')](util[_0x250d('0x24')](_0x250d('0x25'),this['trunks'][_0x5ac27e[_0x250d('0x3a')]]['name']),_0x250d('0x30'),this[_0x250d('0xb')][_0x5ac27e[_0x250d('0x3a')]]);}else{}}}catch(_0x1f3139){logger[_0x250d('0x19')](_0x250d('0x3e'),util[_0x250d('0x1a')](_0x1f3139,{'showHidden':![],'depth':null}));}};module[_0x250d('0x3f')]=UserReport;