Built motion from commit 9d1906d1.|2.5.40
[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 _0x61d0=['isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','state','debug','find','username','stateRegistry','merge','omit','event','[userReport][registry]\x20sending\x20trunk:save\x20event:','trunk:%s','name','trunk:save','[userReport][registry]','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','updateStatusRealtime','stateTime','toNumber','format','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','trunks','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','phone','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','address','[userReport][peerstatus]','peer','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','util','bluebird','../../../config/logger','ami','../ami','redis','defaults','agents','telephones','registryentry','syncRegistry','bind','registry','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','prototype','isNotNull'];(function(_0x4aa7c7,_0x24efb1){var _0xa81fe0=function(_0x495d19){while(--_0x495d19){_0x4aa7c7['push'](_0x4aa7c7['shift']());}};_0xa81fe0(++_0x24efb1);}(_0x61d0,0x1b0));var _0x061d=function(_0x349a9e,_0x473cb8){_0x349a9e=_0x349a9e-0x0;var _0x24c207=_0x61d0[_0x349a9e];return _0x24c207;};'use strict';var _=require(_0x061d('0x0'));var moment=require('moment');var util=require(_0x061d('0x1'));var Redis=require('ioredis');var BPromise=require(_0x061d('0x2'));var config=require('../../../config/environment');var logger=require(_0x061d('0x3'))(_0x061d('0x4'));var ami=require(_0x061d('0x5'));config[_0x061d('0x6')]=_[_0x061d('0x7')](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function UserReport(_0xcaf426){this['trunks']=_0xcaf426['trunks'];this['agents']=_0xcaf426[_0x061d('0x8')];this[_0x061d('0x9')]=_0xcaf426[_0x061d('0x9')];ami['on'](_0x061d('0xa'),this[_0x061d('0xb')][_0x061d('0xc')](this));ami['on'](_0x061d('0xd'),this[_0x061d('0xb')]['bind'](this));ami['on']('devicestatechange',this[_0x061d('0xe')][_0x061d('0xc')](this));ami['on'](_0x061d('0xf'),this[_0x061d('0x10')][_0x061d('0xc')](this));return this[_0x061d('0x11')]();}function showSipRegistrations(){Promise[_0x061d('0x12')]()[_0x061d('0x13')](ami[_0x061d('0x14')]())[_0x061d('0x15')](function(_0x48dea8){logger[_0x061d('0x16')](_0x061d('0x17'),util[_0x061d('0x18')](_0x48dea8,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x061d('0x12')]()[_0x061d('0x13')](ami[_0x061d('0x19')]())[_0x061d('0x15')](function(_0x2638a1){logger[_0x061d('0x16')](_0x061d('0x1a'),util[_0x061d('0x18')](_0x2638a1,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x061d('0x12')]()[_0x061d('0x13')](ami[_0x061d('0x1b')]())['catch'](function(_0x57be84){logger[_0x061d('0x16')]('[userReport][sippeerstatus]',util[_0x061d('0x18')](_0x57be84,{'showHidden':![],'depth':null}));});}UserReport[_0x061d('0x1c')][_0x061d('0x11')]=function(){setInterval(function(){BPromise['resolve']()[_0x061d('0x13')](showSipRegistrations())['then'](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0x061d('0x1c')][_0x061d('0x1d')]=function(_0x22933e){return _0x22933e!==null&&!_[_0x061d('0x1e')](_0x22933e);};UserReport[_0x061d('0x1c')]['emit']=function(_0x1c7fb7,_0x2bc200,_0x4fcfaa){io['to'](_0x1c7fb7)[_0x061d('0x1f')](_0x2bc200,_0x4fcfaa);};UserReport[_0x061d('0x1c')]['syncRegistry']=function(_0x19ccad){try{if(this[_0x061d('0x1d')](_0x19ccad)){logger[_0x061d('0x20')](_0x061d('0x21'),_0x19ccad['username'],_0x19ccad[_0x061d('0x22')]);logger[_0x061d('0x23')]('[userReport][registry]',util[_0x061d('0x18')](_0x19ccad,{'showHidden':![],'depth':null}));var _0x1afb3d=_[_0x061d('0x24')](this['trunks'],{'defaultuser':_0x19ccad[_0x061d('0x25')]});if(_0x1afb3d){_0x19ccad[_0x061d('0x26')]=_0x19ccad['state'];_[_0x061d('0x27')](_0x1afb3d,_[_0x061d('0x28')](_0x19ccad,[_0x061d('0x29'),'actionid',_0x061d('0x25'),_0x061d('0x22')]));logger[_0x061d('0x23')](_0x061d('0x2a'),util[_0x061d('0x18')](_0x1afb3d,{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x061d('0x2b'),_0x1afb3d[_0x061d('0x2c')]),_0x061d('0x2d'),_0x1afb3d);}}}catch(_0x279662){logger[_0x061d('0x16')](_0x061d('0x2e'),util[_0x061d('0x18')](_0x279662,{'showHidden':![],'depth':null}));}};UserReport[_0x061d('0x1c')][_0x061d('0xe')]=function(_0x1144df){try{if(this[_0x061d('0x1d')](_0x1144df)){logger[_0x061d('0x20')](_0x061d('0x2f'),_0x1144df[_0x061d('0x30')],_0x1144df[_0x061d('0x22')]);logger[_0x061d('0x23')](_0x061d('0x31'),util[_0x061d('0x18')](_0x1144df,{'showHidden':![],'depth':null}));if(this['agents'][_0x1144df['device']]){if(!this['agents'][_0x1144df[_0x061d('0x30')]][_0x061d('0x32')]||_0x1144df[_0x061d('0x22')][_0x061d('0x33')]()==_0x061d('0x34')){this[_0x061d('0x8')][_0x1144df['device']][_0x061d('0x32')]=![];if(this[_0x061d('0x8')][_0x1144df['device']][_0x061d('0x22')]!==_0x1144df[_0x061d('0x22')][_0x061d('0x33')]()){this['agents'][_0x1144df[_0x061d('0x30')]]['stateTime']=_['toNumber'](moment()['format']('x'));}this[_0x061d('0x8')][_0x1144df[_0x061d('0x30')]][_0x061d('0x22')]=_0x1144df['state']['toLowerCase']();this[_0x061d('0x8')][_0x1144df[_0x061d('0x30')]][_0x061d('0x35')](_0x1144df);}}else if(this[_0x061d('0x9')][_0x1144df[_0x061d('0x30')]]){if(this[_0x061d('0x9')][_0x1144df[_0x061d('0x30')]][_0x061d('0x22')]!==_0x1144df[_0x061d('0x22')][_0x061d('0x33')]()){this['telephones'][_0x1144df['device']][_0x061d('0x36')]=_[_0x061d('0x37')](moment()[_0x061d('0x38')]('x'));}this[_0x061d('0x9')][_0x1144df[_0x061d('0x30')]]['state']=_0x1144df[_0x061d('0x22')][_0x061d('0x33')]();logger[_0x061d('0x23')](_0x061d('0x39'),util[_0x061d('0x18')](this['telephones'][_0x1144df['device']],{'showHidden':![],'depth':null}));this[_0x061d('0x1f')](util[_0x061d('0x38')](_0x061d('0x3a'),this[_0x061d('0x9')][_0x1144df['device']][_0x061d('0x2c')]),_0x061d('0x3b'),this[_0x061d('0x9')][_0x1144df['device']]);}else if(this['trunks'][_0x1144df[_0x061d('0x30')]]){if(this[_0x061d('0x3c')][_0x1144df[_0x061d('0x30')]][_0x061d('0x22')]!==_0x1144df[_0x061d('0x22')][_0x061d('0x33')]()){this[_0x061d('0x3c')][_0x1144df[_0x061d('0x30')]][_0x061d('0x36')]=_[_0x061d('0x37')](moment()[_0x061d('0x38')]('x'));}this[_0x061d('0x3c')][_0x1144df['device']][_0x061d('0x22')]=_0x1144df[_0x061d('0x22')][_0x061d('0x33')]();logger[_0x061d('0x23')](_0x061d('0x3d'),util[_0x061d('0x18')](this[_0x061d('0x3c')][_0x1144df[_0x061d('0x30')]],{'showHidden':![],'depth':null}));this[_0x061d('0x1f')](util[_0x061d('0x38')]('trunk:%s',this[_0x061d('0x3c')][_0x1144df['device']][_0x061d('0x2c')]),_0x061d('0x2d'),this[_0x061d('0x3c')][_0x1144df[_0x061d('0x30')]]);}else if(_[_0x061d('0x3e')](_0x1144df[_0x061d('0x30')],_0x061d('0x3f'))){var _0x2ca8b4=_0x1144df['device'];var _0x20e6f7=_0x2ca8b4[_0x061d('0x40')](_0x2ca8b4[_0x061d('0x41')]('/')+0x1,_0x2ca8b4[_0x061d('0x41')]('@'));var _0x3f6a3f=_[_0x061d('0x24')](this['agents'],function(_0x4ed863){return _0x4ed863[_0x061d('0x42')]==_0x20e6f7||_0x4ed863[_0x061d('0x43')]==_0x20e6f7||_0x4ed863['accountcode']==_0x20e6f7;});if(_0x3f6a3f){if(_0x3f6a3f['state']!==_0x1144df[_0x061d('0x22')][_0x061d('0x33')]()){_0x3f6a3f[_0x061d('0x36')]=_[_0x061d('0x37')](moment()[_0x061d('0x38')]('x'));}_0x3f6a3f[_0x061d('0x22')]=_0x1144df['state']['toLowerCase']();_0x3f6a3f[_0x061d('0x32')]=!![];_0x3f6a3f[_0x061d('0x35')](_0x1144df);}}}}catch(_0x4a3d33){logger[_0x061d('0x16')](_0x061d('0x31'),util['inspect'](_0x4a3d33,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x061d('0x10')]=function(_0x857765){try{if(this[_0x061d('0x1d')](_0x857765)&&this[_0x061d('0x1d')](_0x857765['peerstatus'])){logger['info'](_0x061d('0x44'),_0x857765['peer'],_0x857765[_0x061d('0x45')],_0x857765['peerstatus']);logger[_0x061d('0x23')](_0x061d('0x46'),util[_0x061d('0x18')](_0x857765,{'showHidden':![],'depth':null}));if(this['agents'][_0x857765['peer']]){if(!this[_0x061d('0x8')][_0x857765[_0x061d('0x47')]]['local']||_0x857765[_0x061d('0xf')][_0x061d('0x33')]()==_0x061d('0x48')){this[_0x061d('0x8')][_0x857765['peer']][_0x061d('0x32')]=![];this[_0x061d('0x8')][_0x857765[_0x061d('0x47')]][_0x061d('0x49')]=_0x857765['peerstatus'][_0x061d('0x33')]();this[_0x061d('0x8')][_0x857765[_0x061d('0x47')]]['address']=_0x857765[_0x061d('0x45')];this[_0x061d('0x8')][_0x857765['peer']][_0x061d('0x35')](_0x857765);}}else if(this[_0x061d('0x9')][_0x857765[_0x061d('0x47')]]){this['telephones'][_0x857765['peer']]['status']=_0x857765[_0x061d('0xf')][_0x061d('0x33')]();this[_0x061d('0x9')][_0x857765['peer']][_0x061d('0x45')]=_0x857765[_0x061d('0x45')];logger['debug'](_0x061d('0x4a'),util['inspect'](this[_0x061d('0x9')][_0x857765['peer']],{'showHidden':![],'depth':null}));this[_0x061d('0x1f')](util[_0x061d('0x38')](_0x061d('0x3a'),this[_0x061d('0x9')][_0x857765[_0x061d('0x47')]]['name']),_0x061d('0x3b'),this['telephones'][_0x857765['peer']]);}else if(this[_0x061d('0x3c')][_0x857765[_0x061d('0x47')]]){this[_0x061d('0x3c')][_0x857765[_0x061d('0x47')]][_0x061d('0x49')]=_0x857765[_0x061d('0xf')][_0x061d('0x33')]();this[_0x061d('0x3c')][_0x857765[_0x061d('0x47')]][_0x061d('0x45')]=_0x857765[_0x061d('0x45')];logger[_0x061d('0x23')](_0x061d('0x4b'),util[_0x061d('0x18')](this[_0x061d('0x3c')][_0x857765['peer']],{'showHidden':![],'depth':null}));this[_0x061d('0x1f')](util['format'](_0x061d('0x2b'),this[_0x061d('0x3c')][_0x857765[_0x061d('0x47')]]['name']),_0x061d('0x2d'),this[_0x061d('0x3c')][_0x857765[_0x061d('0x47')]]);}}}catch(_0x92cb45){logger[_0x061d('0x16')](_0x061d('0x46'),util['inspect'](_0x92cb45,{'showHidden':![],'depth':null}));}};module[_0x061d('0x4c')]=UserReport;