Built motion from commit (unavailable).|2.4.19
[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 _0x3168=['exports','lodash','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','syncPeerStatus','loopSyncRealTimeShow','then','actionSipShowRegistry','actionDeviceStateList','catch','[loopSyncRealTimeShow]','error','inspect','prototype','resolve','actionSipPeerStatus','isNotNull','isUndefined','emit','username','stateRegistry','state','merge','event','format','trunk:%s','name','trunk:save','[syncRegistry][UserReport]','device','toLowerCase','local','stateTime','updateStatusRealtime','toNumber','telephone:%s','telephone:save','startsWith','Local','indexOf','mobile','phone','accountcode','peerstatus','peer','registered','status','address'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x3168,0x1c1));var _0x8316=function(_0xa4e5bf,_0x1cbc96){_0xa4e5bf=_0xa4e5bf-0x0;var _0x91a142=_0x3168[_0xa4e5bf];return _0x91a142;};'use strict';var _=require(_0x8316('0x0'));var moment=require('moment');var BPromise=require('bluebird');var util=require(_0x8316('0x1'));var Redis=require(_0x8316('0x2'));var config=require(_0x8316('0x3'));var logger=require(_0x8316('0x4'))(_0x8316('0x5'));var ami=require(_0x8316('0x6'));config[_0x8316('0x7')]=_['defaults'](config[_0x8316('0x7')],{'host':_0x8316('0x8'),'port':0x18eb});var io=require(_0x8316('0x9'))(new Redis(config[_0x8316('0x7')]));function UserReport(_0x280a89){this[_0x8316('0xa')]=_0x280a89['trunks'];this[_0x8316('0xb')]=_0x280a89[_0x8316('0xb')];this['telephones']=_0x280a89[_0x8316('0xc')];ami['on'](_0x8316('0xd'),this[_0x8316('0xe')][_0x8316('0xf')](this));ami['on'](_0x8316('0x10'),this[_0x8316('0xe')][_0x8316('0xf')](this));ami['on'](_0x8316('0x11'),this[_0x8316('0x12')][_0x8316('0xf')](this));ami['on']('peerstatus',this[_0x8316('0x13')][_0x8316('0xf')](this));this[_0x8316('0x14')]();return BPromise['resolve']()[_0x8316('0x15')](ami[_0x8316('0x16')]())[_0x8316('0x15')](ami[_0x8316('0x17')]())[_0x8316('0x15')](ami['actionSipPeerStatus']())[_0x8316('0x18')](loggerCatch(_0x8316('0x19')));}function loggerCatch(_0x3244d1){return function(_0xa17b39){logger[_0x8316('0x1a')](_0x3244d1,util[_0x8316('0x1b')](_0xa17b39,{'showHidden':![],'depth':null}));};}UserReport[_0x8316('0x1c')][_0x8316('0x14')]=function(){setInterval(function(){BPromise[_0x8316('0x1d')]()['then'](ami[_0x8316('0x16')]())[_0x8316('0x15')](ami[_0x8316('0x17')]())[_0x8316('0x15')](ami[_0x8316('0x1e')]())[_0x8316('0x18')](loggerCatch(_0x8316('0x19')));},0x32c8);};UserReport[_0x8316('0x1c')][_0x8316('0x1f')]=function(_0x24809e){return _0x24809e!==null&&!_[_0x8316('0x20')](_0x24809e);};UserReport[_0x8316('0x1c')][_0x8316('0x21')]=function(_0x5736a5,_0x2c5029,_0x13dd7f){io['to'](_0x5736a5)[_0x8316('0x21')](_0x2c5029,_0x13dd7f);};UserReport[_0x8316('0x1c')][_0x8316('0xe')]=function(_0x432dec){try{if(this[_0x8316('0x1f')](_0x432dec)){var _0x3e1f09=_['find'](this[_0x8316('0xa')],{'registry':_0x432dec[_0x8316('0x22')]});if(_0x3e1f09){_0x432dec[_0x8316('0x23')]=_0x432dec[_0x8316('0x24')];_[_0x8316('0x25')](_0x3e1f09,_['omit'](_0x432dec,[_0x8316('0x26'),'actionid',_0x8316('0x22'),_0x8316('0x24')]));this[_0x8316('0x21')](util[_0x8316('0x27')](_0x8316('0x28'),_0x3e1f09[_0x8316('0x29')]),_0x8316('0x2a'),_0x3e1f09);}}}catch(_0x1ba99d){logger['error'](_0x8316('0x2b'),util[_0x8316('0x1b')](_0x1ba99d,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncDeviceState']=function(_0x712d75){try{if(this[_0x8316('0x1f')](_0x712d75)){if(this[_0x8316('0xb')][_0x712d75['device']]){if(!this['agents'][_0x712d75[_0x8316('0x2c')]]['local']||_0x712d75[_0x8316('0x24')][_0x8316('0x2d')]()=='inuse'){this[_0x8316('0xb')][_0x712d75[_0x8316('0x2c')]][_0x8316('0x2e')]=![];if(this[_0x8316('0xb')][_0x712d75[_0x8316('0x2c')]][_0x8316('0x24')]!==_0x712d75[_0x8316('0x24')][_0x8316('0x2d')]()){this[_0x8316('0xb')][_0x712d75[_0x8316('0x2c')]][_0x8316('0x2f')]=_['toNumber'](moment()[_0x8316('0x27')]('x'));}this['agents'][_0x712d75['device']]['state']=_0x712d75[_0x8316('0x24')][_0x8316('0x2d')]();this['agents'][_0x712d75[_0x8316('0x2c')]][_0x8316('0x30')](_0x712d75);}}else if(this[_0x8316('0xc')][_0x712d75['device']]){if(this[_0x8316('0xc')][_0x712d75['device']][_0x8316('0x24')]!==_0x712d75[_0x8316('0x24')][_0x8316('0x2d')]()){this[_0x8316('0xc')][_0x712d75[_0x8316('0x2c')]][_0x8316('0x2f')]=_[_0x8316('0x31')](moment()[_0x8316('0x27')]('x'));}this[_0x8316('0xc')][_0x712d75['device']]['state']=_0x712d75[_0x8316('0x24')][_0x8316('0x2d')]();this['emit'](util[_0x8316('0x27')](_0x8316('0x32'),this[_0x8316('0xc')][_0x712d75[_0x8316('0x2c')]][_0x8316('0x29')]),_0x8316('0x33'),this[_0x8316('0xc')][_0x712d75['device']]);}else if(this[_0x8316('0xa')][_0x712d75[_0x8316('0x2c')]]){if(this[_0x8316('0xa')][_0x712d75[_0x8316('0x2c')]]['state']!==_0x712d75['state'][_0x8316('0x2d')]()){this[_0x8316('0xa')][_0x712d75[_0x8316('0x2c')]][_0x8316('0x2f')]=_['toNumber'](moment()[_0x8316('0x27')]('x'));}this[_0x8316('0xa')][_0x712d75[_0x8316('0x2c')]][_0x8316('0x24')]=_0x712d75[_0x8316('0x24')][_0x8316('0x2d')]();this[_0x8316('0x21')](util['format'](_0x8316('0x28'),this[_0x8316('0xa')][_0x712d75[_0x8316('0x2c')]]['name']),_0x8316('0x2a'),this[_0x8316('0xa')][_0x712d75[_0x8316('0x2c')]]);}else if(_[_0x8316('0x34')](_0x712d75[_0x8316('0x2c')],'Queue')){}else if(_['startsWith'](_0x712d75[_0x8316('0x2c')],_0x8316('0x35'))){var _0x4aeddd=_0x712d75[_0x8316('0x2c')];var _0x337de8=_0x4aeddd['substring'](_0x4aeddd[_0x8316('0x36')]('/')+0x1,_0x4aeddd['indexOf']('@'));var _0x223a9a=_['find'](this[_0x8316('0xb')],function(_0x6706f0){return _0x6706f0[_0x8316('0x37')]==_0x337de8||_0x6706f0[_0x8316('0x38')]==_0x337de8||_0x6706f0[_0x8316('0x39')]==_0x337de8;});if(_0x223a9a){if(_0x223a9a[_0x8316('0x24')]!==_0x712d75['state'][_0x8316('0x2d')]()){_0x223a9a[_0x8316('0x2f')]=_[_0x8316('0x31')](moment()['format']('x'));}_0x223a9a['state']=_0x712d75[_0x8316('0x24')][_0x8316('0x2d')]();_0x223a9a[_0x8316('0x2e')]=!![];_0x223a9a[_0x8316('0x30')](_0x712d75);}}else{}}}catch(_0x4f385b){logger[_0x8316('0x1a')]('[syncDeviceState][UserReport]',util[_0x8316('0x1b')](_0x4f385b,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x8316('0x13')]=function(_0x51ac80){try{if(this[_0x8316('0x1f')](_0x51ac80)&&this['isNotNull'](_0x51ac80[_0x8316('0x3a')])){if(this[_0x8316('0xb')][_0x51ac80[_0x8316('0x3b')]]){if(!this['agents'][_0x51ac80[_0x8316('0x3b')]][_0x8316('0x2e')]||_0x51ac80[_0x8316('0x3a')][_0x8316('0x2d')]()==_0x8316('0x3c')){this[_0x8316('0xb')][_0x51ac80[_0x8316('0x3b')]][_0x8316('0x2e')]=![];this[_0x8316('0xb')][_0x51ac80[_0x8316('0x3b')]][_0x8316('0x3d')]=_0x51ac80['peerstatus'][_0x8316('0x2d')]();this['agents'][_0x51ac80[_0x8316('0x3b')]][_0x8316('0x3e')]=_0x51ac80[_0x8316('0x3e')];this[_0x8316('0xb')][_0x51ac80['peer']]['updateStatusRealtime'](_0x51ac80);}}else if(this[_0x8316('0xc')][_0x51ac80['peer']]){this['telephones'][_0x51ac80['peer']][_0x8316('0x3d')]=_0x51ac80['peerstatus'][_0x8316('0x2d')]();this[_0x8316('0xc')][_0x51ac80['peer']][_0x8316('0x3e')]=_0x51ac80[_0x8316('0x3e')];this[_0x8316('0x21')](util[_0x8316('0x27')](_0x8316('0x32'),this[_0x8316('0xc')][_0x51ac80[_0x8316('0x3b')]][_0x8316('0x29')]),_0x8316('0x33'),this[_0x8316('0xc')][_0x51ac80['peer']]);}else if(this[_0x8316('0xa')][_0x51ac80[_0x8316('0x3b')]]){this[_0x8316('0xa')][_0x51ac80[_0x8316('0x3b')]][_0x8316('0x3d')]=_0x51ac80[_0x8316('0x3a')]['toLowerCase']();this[_0x8316('0xa')][_0x51ac80[_0x8316('0x3b')]][_0x8316('0x3e')]=_0x51ac80[_0x8316('0x3e')];this['emit'](util[_0x8316('0x27')](_0x8316('0x28'),this['trunks'][_0x51ac80['peer']][_0x8316('0x29')]),_0x8316('0x2a'),this[_0x8316('0xa')][_0x51ac80['peer']]);}else{}}}catch(_0x47b0ed){logger[_0x8316('0x1a')]('[syncPeerStatus][UserReport]',util[_0x8316('0x1b')](_0x47b0ed,{'showHidden':![],'depth':null}));}};module[_0x8316('0x3f')]=UserReport;