Built motion from commit (unavailable).|2.5.6
[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 _0xd6f9=['Local','indexOf','mobile','phone','accountcode','[syncDeviceState][UserReport]','syncPeerStatus','peer','status','address','[syncPeerStatus][UserReport]','exports','lodash','moment','bluebird','util','ioredis','../../../config/environment','ami','../ami','redis','defaults','trunks','agents','telephones','syncRegistry','bind','registry','syncDeviceState','peerstatus','loopSyncRealTimeShow','resolve','actionDeviceStateList','then','actionSipPeerStatus','catch','[loopSyncRealTimeShow]','prototype','actionSipShowRegistry','isUndefined','emit','isNotNull','find','username','stateRegistry','state','merge','event','actionid','trunk:%s','name','trunk:save','error','inspect','device','toLowerCase','inuse','local','toNumber','format','updateStatusRealtime','telephone:%s','telephone:save','stateTime','Queue','startsWith'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0xd6f9,0x198));var _0x9d6f=function(_0x44cb92,_0x59afa3){_0x44cb92=_0x44cb92-0x0;var _0x56b9e6=_0xd6f9[_0x44cb92];return _0x56b9e6;};'use strict';var _=require(_0x9d6f('0x0'));var moment=require(_0x9d6f('0x1'));var BPromise=require(_0x9d6f('0x2'));var util=require(_0x9d6f('0x3'));var Redis=require(_0x9d6f('0x4'));var config=require(_0x9d6f('0x5'));var logger=require('../../../config/logger')(_0x9d6f('0x6'));var ami=require(_0x9d6f('0x7'));config[_0x9d6f('0x8')]=_[_0x9d6f('0x9')](config[_0x9d6f('0x8')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function UserReport(_0xcd7038){this[_0x9d6f('0xa')]=_0xcd7038[_0x9d6f('0xa')];this[_0x9d6f('0xb')]=_0xcd7038['agents'];this['telephones']=_0xcd7038[_0x9d6f('0xc')];ami['on']('registryentry',this[_0x9d6f('0xd')][_0x9d6f('0xe')](this));ami['on'](_0x9d6f('0xf'),this['syncRegistry'][_0x9d6f('0xe')](this));ami['on']('devicestatechange',this[_0x9d6f('0x10')][_0x9d6f('0xe')](this));ami['on'](_0x9d6f('0x11'),this['syncPeerStatus'][_0x9d6f('0xe')](this));this[_0x9d6f('0x12')]();return BPromise[_0x9d6f('0x13')]()['then'](ami['actionSipShowRegistry']())['then'](ami[_0x9d6f('0x14')]())[_0x9d6f('0x15')](ami[_0x9d6f('0x16')]())[_0x9d6f('0x17')](loggerCatch(_0x9d6f('0x18')));}function loggerCatch(_0x44a718){return function(_0x5380c7){logger['error'](_0x44a718,util['inspect'](_0x5380c7,{'showHidden':![],'depth':null}));};}UserReport[_0x9d6f('0x19')]['loopSyncRealTimeShow']=function(){setInterval(function(){BPromise['resolve']()[_0x9d6f('0x15')](ami[_0x9d6f('0x1a')]())[_0x9d6f('0x15')](ami[_0x9d6f('0x14')]())['then'](ami[_0x9d6f('0x16')]())[_0x9d6f('0x17')](loggerCatch(_0x9d6f('0x18')));},0x32c8);};UserReport[_0x9d6f('0x19')]['isNotNull']=function(_0x3e4ec4){return _0x3e4ec4!==null&&!_[_0x9d6f('0x1b')](_0x3e4ec4);};UserReport[_0x9d6f('0x19')][_0x9d6f('0x1c')]=function(_0x1149c6,_0x1a3c53,_0x4ee3e4){io['to'](_0x1149c6)['emit'](_0x1a3c53,_0x4ee3e4);};UserReport[_0x9d6f('0x19')][_0x9d6f('0xd')]=function(_0x1c484d){try{if(this[_0x9d6f('0x1d')](_0x1c484d)){var _0x44fd95=_[_0x9d6f('0x1e')](this[_0x9d6f('0xa')],{'registry':_0x1c484d[_0x9d6f('0x1f')]});if(_0x44fd95){_0x1c484d[_0x9d6f('0x20')]=_0x1c484d[_0x9d6f('0x21')];_[_0x9d6f('0x22')](_0x44fd95,_['omit'](_0x1c484d,[_0x9d6f('0x23'),_0x9d6f('0x24'),'username','state']));this[_0x9d6f('0x1c')](util['format'](_0x9d6f('0x25'),_0x44fd95[_0x9d6f('0x26')]),_0x9d6f('0x27'),_0x44fd95);}}}catch(_0x29a60b){logger[_0x9d6f('0x28')]('[syncRegistry][UserReport]',util[_0x9d6f('0x29')](_0x29a60b,{'showHidden':![],'depth':null}));}};UserReport[_0x9d6f('0x19')]['syncDeviceState']=function(_0x47dbd9){try{if(this['isNotNull'](_0x47dbd9)){if(this[_0x9d6f('0xb')][_0x47dbd9[_0x9d6f('0x2a')]]){if(!this[_0x9d6f('0xb')][_0x47dbd9[_0x9d6f('0x2a')]]['local']||_0x47dbd9[_0x9d6f('0x21')][_0x9d6f('0x2b')]()==_0x9d6f('0x2c')){this[_0x9d6f('0xb')][_0x47dbd9[_0x9d6f('0x2a')]][_0x9d6f('0x2d')]=![];if(this[_0x9d6f('0xb')][_0x47dbd9[_0x9d6f('0x2a')]]['state']!==_0x47dbd9[_0x9d6f('0x21')][_0x9d6f('0x2b')]()){this[_0x9d6f('0xb')][_0x47dbd9[_0x9d6f('0x2a')]]['stateTime']=_[_0x9d6f('0x2e')](moment()[_0x9d6f('0x2f')]('x'));}this[_0x9d6f('0xb')][_0x47dbd9[_0x9d6f('0x2a')]][_0x9d6f('0x21')]=_0x47dbd9[_0x9d6f('0x21')]['toLowerCase']();this['agents'][_0x47dbd9[_0x9d6f('0x2a')]][_0x9d6f('0x30')](_0x47dbd9);}}else if(this[_0x9d6f('0xc')][_0x47dbd9['device']]){if(this[_0x9d6f('0xc')][_0x47dbd9['device']][_0x9d6f('0x21')]!==_0x47dbd9[_0x9d6f('0x21')][_0x9d6f('0x2b')]()){this['telephones'][_0x47dbd9[_0x9d6f('0x2a')]]['stateTime']=_[_0x9d6f('0x2e')](moment()['format']('x'));}this[_0x9d6f('0xc')][_0x47dbd9[_0x9d6f('0x2a')]]['state']=_0x47dbd9[_0x9d6f('0x21')][_0x9d6f('0x2b')]();this[_0x9d6f('0x1c')](util[_0x9d6f('0x2f')](_0x9d6f('0x31'),this[_0x9d6f('0xc')][_0x47dbd9[_0x9d6f('0x2a')]][_0x9d6f('0x26')]),_0x9d6f('0x32'),this[_0x9d6f('0xc')][_0x47dbd9[_0x9d6f('0x2a')]]);}else if(this[_0x9d6f('0xa')][_0x47dbd9[_0x9d6f('0x2a')]]){if(this[_0x9d6f('0xa')][_0x47dbd9[_0x9d6f('0x2a')]][_0x9d6f('0x21')]!==_0x47dbd9[_0x9d6f('0x21')][_0x9d6f('0x2b')]()){this['trunks'][_0x47dbd9['device']][_0x9d6f('0x33')]=_[_0x9d6f('0x2e')](moment()[_0x9d6f('0x2f')]('x'));}this[_0x9d6f('0xa')][_0x47dbd9[_0x9d6f('0x2a')]][_0x9d6f('0x21')]=_0x47dbd9['state'][_0x9d6f('0x2b')]();this[_0x9d6f('0x1c')](util[_0x9d6f('0x2f')](_0x9d6f('0x25'),this['trunks'][_0x47dbd9[_0x9d6f('0x2a')]][_0x9d6f('0x26')]),'trunk:save',this['trunks'][_0x47dbd9[_0x9d6f('0x2a')]]);}else if(_['startsWith'](_0x47dbd9[_0x9d6f('0x2a')],_0x9d6f('0x34'))){}else if(_[_0x9d6f('0x35')](_0x47dbd9[_0x9d6f('0x2a')],_0x9d6f('0x36'))){var _0x1efa84=_0x47dbd9['device'];var _0xc7c5af=_0x1efa84['substring'](_0x1efa84[_0x9d6f('0x37')]('/')+0x1,_0x1efa84[_0x9d6f('0x37')]('@'));var _0x571859=_['find'](this[_0x9d6f('0xb')],function(_0x3458f5){return _0x3458f5[_0x9d6f('0x38')]==_0xc7c5af||_0x3458f5[_0x9d6f('0x39')]==_0xc7c5af||_0x3458f5[_0x9d6f('0x3a')]==_0xc7c5af;});if(_0x571859){if(_0x571859[_0x9d6f('0x21')]!==_0x47dbd9[_0x9d6f('0x21')][_0x9d6f('0x2b')]()){_0x571859[_0x9d6f('0x33')]=_[_0x9d6f('0x2e')](moment()[_0x9d6f('0x2f')]('x'));}_0x571859[_0x9d6f('0x21')]=_0x47dbd9[_0x9d6f('0x21')][_0x9d6f('0x2b')]();_0x571859[_0x9d6f('0x2d')]=!![];_0x571859[_0x9d6f('0x30')](_0x47dbd9);}}else{}}}catch(_0x3e1c9f){logger[_0x9d6f('0x28')](_0x9d6f('0x3b'),util[_0x9d6f('0x29')](_0x3e1c9f,{'showHidden':![],'depth':null}));}};UserReport[_0x9d6f('0x19')][_0x9d6f('0x3c')]=function(_0x773691){try{if(this['isNotNull'](_0x773691)&&this['isNotNull'](_0x773691[_0x9d6f('0x11')])){if(this[_0x9d6f('0xb')][_0x773691[_0x9d6f('0x3d')]]){if(!this[_0x9d6f('0xb')][_0x773691['peer']][_0x9d6f('0x2d')]||_0x773691[_0x9d6f('0x11')]['toLowerCase']()=='registered'){this['agents'][_0x773691[_0x9d6f('0x3d')]][_0x9d6f('0x2d')]=![];this[_0x9d6f('0xb')][_0x773691[_0x9d6f('0x3d')]][_0x9d6f('0x3e')]=_0x773691[_0x9d6f('0x11')]['toLowerCase']();this[_0x9d6f('0xb')][_0x773691['peer']]['address']=_0x773691['address'];this[_0x9d6f('0xb')][_0x773691[_0x9d6f('0x3d')]][_0x9d6f('0x30')](_0x773691);}}else if(this[_0x9d6f('0xc')][_0x773691[_0x9d6f('0x3d')]]){this['telephones'][_0x773691[_0x9d6f('0x3d')]][_0x9d6f('0x3e')]=_0x773691[_0x9d6f('0x11')]['toLowerCase']();this[_0x9d6f('0xc')][_0x773691[_0x9d6f('0x3d')]]['address']=_0x773691[_0x9d6f('0x3f')];this[_0x9d6f('0x1c')](util[_0x9d6f('0x2f')](_0x9d6f('0x31'),this[_0x9d6f('0xc')][_0x773691[_0x9d6f('0x3d')]][_0x9d6f('0x26')]),_0x9d6f('0x32'),this[_0x9d6f('0xc')][_0x773691[_0x9d6f('0x3d')]]);}else if(this['trunks'][_0x773691['peer']]){this[_0x9d6f('0xa')][_0x773691[_0x9d6f('0x3d')]][_0x9d6f('0x3e')]=_0x773691[_0x9d6f('0x11')]['toLowerCase']();this['trunks'][_0x773691[_0x9d6f('0x3d')]][_0x9d6f('0x3f')]=_0x773691[_0x9d6f('0x3f')];this[_0x9d6f('0x1c')](util[_0x9d6f('0x2f')](_0x9d6f('0x25'),this[_0x9d6f('0xa')][_0x773691[_0x9d6f('0x3d')]][_0x9d6f('0x26')]),_0x9d6f('0x27'),this[_0x9d6f('0xa')][_0x773691[_0x9d6f('0x3d')]]);}else{}}}catch(_0x1f6daa){logger[_0x9d6f('0x28')](_0x9d6f('0x40'),util[_0x9d6f('0x29')](_0x1f6daa,{'showHidden':![],'depth':null}));}};module[_0x9d6f('0x41')]=UserReport;