Built motion from commit (unavailable).|2.5.0
[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 _0x5c10=['telephone:save','trunks','startsWith','Queue','Local','substring','mobile','phone','[syncDeviceState][UserReport]','peer','status','address','telephone:%s','[syncPeerStatus][UserReport]','lodash','moment','bluebird','util','../../../config/environment','../../../config/logger','ami','../ami','redis','localhost','socket.io-emitter','agents','telephones','registryentry','syncRegistry','devicestatechange','syncDeviceState','bind','peerstatus','syncPeerStatus','loopSyncRealTimeShow','resolve','then','actionDeviceStateList','actionSipPeerStatus','[loopSyncRealTimeShow]','error','inspect','prototype','catch','isUndefined','emit','stateRegistry','state','omit','event','actionid','format','trunk:%s','trunk:save','[syncRegistry][UserReport]','isNotNull','device','local','inuse','stateTime','toNumber','toLowerCase','updateStatusRealtime','name'];(function(_0x6e51f1,_0x11371a){var _0x141b4c=function(_0x2e85e7){while(--_0x2e85e7){_0x6e51f1['push'](_0x6e51f1['shift']());}};_0x141b4c(++_0x11371a);}(_0x5c10,0x18e));var _0x05c1=function(_0x1cbaeb,_0x300003){_0x1cbaeb=_0x1cbaeb-0x0;var _0x3e7d2e=_0x5c10[_0x1cbaeb];return _0x3e7d2e;};'use strict';var _=require(_0x05c1('0x0'));var moment=require(_0x05c1('0x1'));var BPromise=require(_0x05c1('0x2'));var util=require(_0x05c1('0x3'));var Redis=require('ioredis');var config=require(_0x05c1('0x4'));var logger=require(_0x05c1('0x5'))(_0x05c1('0x6'));var ami=require(_0x05c1('0x7'));config['redis']=_['defaults'](config[_0x05c1('0x8')],{'host':_0x05c1('0x9'),'port':0x18eb});var io=require(_0x05c1('0xa'))(new Redis(config[_0x05c1('0x8')]));function UserReport(_0x5aba64){this['trunks']=_0x5aba64['trunks'];this['agents']=_0x5aba64[_0x05c1('0xb')];this[_0x05c1('0xc')]=_0x5aba64[_0x05c1('0xc')];ami['on'](_0x05c1('0xd'),this[_0x05c1('0xe')]['bind'](this));ami['on']('registry',this[_0x05c1('0xe')]['bind'](this));ami['on'](_0x05c1('0xf'),this[_0x05c1('0x10')][_0x05c1('0x11')](this));ami['on'](_0x05c1('0x12'),this[_0x05c1('0x13')][_0x05c1('0x11')](this));this[_0x05c1('0x14')]();return BPromise[_0x05c1('0x15')]()[_0x05c1('0x16')](ami['actionSipShowRegistry']())[_0x05c1('0x16')](ami[_0x05c1('0x17')]())[_0x05c1('0x16')](ami[_0x05c1('0x18')]())['catch'](loggerCatch(_0x05c1('0x19')));}function loggerCatch(_0x242230){return function(_0x29e1a7){logger[_0x05c1('0x1a')](_0x242230,util[_0x05c1('0x1b')](_0x29e1a7,{'showHidden':![],'depth':null}));};}UserReport[_0x05c1('0x1c')][_0x05c1('0x14')]=function(){setInterval(function(){BPromise[_0x05c1('0x15')]()['then'](ami['actionSipShowRegistry']())[_0x05c1('0x16')](ami['actionDeviceStateList']())['then'](ami[_0x05c1('0x18')]())[_0x05c1('0x1d')](loggerCatch(_0x05c1('0x19')));},0x32c8);};UserReport[_0x05c1('0x1c')]['isNotNull']=function(_0x3da95f){return _0x3da95f!==null&&!_[_0x05c1('0x1e')](_0x3da95f);};UserReport[_0x05c1('0x1c')][_0x05c1('0x1f')]=function(_0x2e0447,_0x8bada,_0x2d39d3){io['to'](_0x2e0447)[_0x05c1('0x1f')](_0x8bada,_0x2d39d3);};UserReport[_0x05c1('0x1c')][_0x05c1('0xe')]=function(_0x3b89e6){try{if(this['isNotNull'](_0x3b89e6)){var _0x1c3dfe=_['find'](this['trunks'],{'registry':_0x3b89e6['username']});if(_0x1c3dfe){_0x3b89e6[_0x05c1('0x20')]=_0x3b89e6[_0x05c1('0x21')];_['merge'](_0x1c3dfe,_[_0x05c1('0x22')](_0x3b89e6,[_0x05c1('0x23'),_0x05c1('0x24'),'username',_0x05c1('0x21')]));this['emit'](util[_0x05c1('0x25')](_0x05c1('0x26'),_0x1c3dfe['name']),_0x05c1('0x27'),_0x1c3dfe);}}}catch(_0x2c383c){logger['error'](_0x05c1('0x28'),util[_0x05c1('0x1b')](_0x2c383c,{'showHidden':![],'depth':null}));}};UserReport[_0x05c1('0x1c')][_0x05c1('0x10')]=function(_0x481304){try{if(this[_0x05c1('0x29')](_0x481304)){if(this[_0x05c1('0xb')][_0x481304[_0x05c1('0x2a')]]){if(!this[_0x05c1('0xb')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x2b')]||_0x481304[_0x05c1('0x21')]['toLowerCase']()==_0x05c1('0x2c')){this[_0x05c1('0xb')][_0x481304['device']][_0x05c1('0x2b')]=![];if(this[_0x05c1('0xb')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x21')]!==_0x481304['state']['toLowerCase']()){this[_0x05c1('0xb')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x2d')]=_[_0x05c1('0x2e')](moment()['format']('x'));}this[_0x05c1('0xb')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x21')]=_0x481304['state'][_0x05c1('0x2f')]();this[_0x05c1('0xb')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x30')](_0x481304);}}else if(this[_0x05c1('0xc')][_0x481304[_0x05c1('0x2a')]]){if(this[_0x05c1('0xc')][_0x481304[_0x05c1('0x2a')]]['state']!==_0x481304[_0x05c1('0x21')][_0x05c1('0x2f')]()){this[_0x05c1('0xc')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x2d')]=_[_0x05c1('0x2e')](moment()[_0x05c1('0x25')]('x'));}this[_0x05c1('0xc')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x21')]=_0x481304[_0x05c1('0x21')]['toLowerCase']();this[_0x05c1('0x1f')](util['format']('telephone:%s',this[_0x05c1('0xc')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x31')]),_0x05c1('0x32'),this['telephones'][_0x481304[_0x05c1('0x2a')]]);}else if(this[_0x05c1('0x33')][_0x481304[_0x05c1('0x2a')]]){if(this[_0x05c1('0x33')][_0x481304[_0x05c1('0x2a')]]['state']!==_0x481304[_0x05c1('0x21')][_0x05c1('0x2f')]()){this[_0x05c1('0x33')][_0x481304[_0x05c1('0x2a')]]['stateTime']=_[_0x05c1('0x2e')](moment()['format']('x'));}this[_0x05c1('0x33')][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x21')]=_0x481304[_0x05c1('0x21')][_0x05c1('0x2f')]();this[_0x05c1('0x1f')](util[_0x05c1('0x25')]('trunk:%s',this['trunks'][_0x481304[_0x05c1('0x2a')]][_0x05c1('0x31')]),_0x05c1('0x27'),this[_0x05c1('0x33')][_0x481304[_0x05c1('0x2a')]]);}else if(_[_0x05c1('0x34')](_0x481304['device'],_0x05c1('0x35'))){}else if(_['startsWith'](_0x481304['device'],_0x05c1('0x36'))){var _0x5e42f1=_0x481304[_0x05c1('0x2a')];var _0x4abdcb=_0x5e42f1[_0x05c1('0x37')](_0x5e42f1['indexOf']('/')+0x1,_0x5e42f1['indexOf']('@'));var _0x392c2c=_['find'](this[_0x05c1('0xb')],function(_0x1c1ffa){return _0x1c1ffa[_0x05c1('0x38')]==_0x4abdcb||_0x1c1ffa[_0x05c1('0x39')]==_0x4abdcb||_0x1c1ffa['accountcode']==_0x4abdcb;});if(_0x392c2c){if(_0x392c2c[_0x05c1('0x21')]!==_0x481304[_0x05c1('0x21')][_0x05c1('0x2f')]()){_0x392c2c[_0x05c1('0x2d')]=_[_0x05c1('0x2e')](moment()[_0x05c1('0x25')]('x'));}_0x392c2c[_0x05c1('0x21')]=_0x481304[_0x05c1('0x21')]['toLowerCase']();_0x392c2c['local']=!![];_0x392c2c[_0x05c1('0x30')](_0x481304);}}else{}}}catch(_0x2e2b65){logger['error'](_0x05c1('0x3a'),util[_0x05c1('0x1b')](_0x2e2b65,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncPeerStatus']=function(_0xe67e9a){try{if(this[_0x05c1('0x29')](_0xe67e9a)&&this['isNotNull'](_0xe67e9a['peerstatus'])){if(this['agents'][_0xe67e9a[_0x05c1('0x3b')]]){if(!this[_0x05c1('0xb')][_0xe67e9a['peer']][_0x05c1('0x2b')]||_0xe67e9a['peerstatus']['toLowerCase']()=='registered'){this[_0x05c1('0xb')][_0xe67e9a[_0x05c1('0x3b')]][_0x05c1('0x2b')]=![];this[_0x05c1('0xb')][_0xe67e9a['peer']][_0x05c1('0x3c')]=_0xe67e9a[_0x05c1('0x12')]['toLowerCase']();this[_0x05c1('0xb')][_0xe67e9a['peer']][_0x05c1('0x3d')]=_0xe67e9a[_0x05c1('0x3d')];this[_0x05c1('0xb')][_0xe67e9a[_0x05c1('0x3b')]][_0x05c1('0x30')](_0xe67e9a);}}else if(this[_0x05c1('0xc')][_0xe67e9a[_0x05c1('0x3b')]]){this[_0x05c1('0xc')][_0xe67e9a[_0x05c1('0x3b')]][_0x05c1('0x3c')]=_0xe67e9a[_0x05c1('0x12')]['toLowerCase']();this[_0x05c1('0xc')][_0xe67e9a['peer']][_0x05c1('0x3d')]=_0xe67e9a[_0x05c1('0x3d')];this[_0x05c1('0x1f')](util[_0x05c1('0x25')](_0x05c1('0x3e'),this[_0x05c1('0xc')][_0xe67e9a[_0x05c1('0x3b')]][_0x05c1('0x31')]),_0x05c1('0x32'),this[_0x05c1('0xc')][_0xe67e9a[_0x05c1('0x3b')]]);}else if(this[_0x05c1('0x33')][_0xe67e9a[_0x05c1('0x3b')]]){this[_0x05c1('0x33')][_0xe67e9a['peer']][_0x05c1('0x3c')]=_0xe67e9a[_0x05c1('0x12')][_0x05c1('0x2f')]();this[_0x05c1('0x33')][_0xe67e9a['peer']][_0x05c1('0x3d')]=_0xe67e9a[_0x05c1('0x3d')];this[_0x05c1('0x1f')](util[_0x05c1('0x25')]('trunk:%s',this[_0x05c1('0x33')][_0xe67e9a[_0x05c1('0x3b')]]['name']),'trunk:save',this[_0x05c1('0x33')][_0xe67e9a['peer']]);}else{}}}catch(_0x1d2d62){logger['error'](_0x05c1('0x3f'),util[_0x05c1('0x1b')](_0x1d2d62,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;