b041abcdccd3fa67dbac628981dd56948e053ec7
[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 _0x90dc=['telephones','registryentry','registry','syncRegistry','bind','devicestatechange','syncDeviceState','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','merge','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','inuse','local','toLowerCase','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:%s','startsWith','Local','substring','indexOf','mobile','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','peerstatus','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','ioredis','bluebird','../../../config/logger','ami','redis','defaults','localhost','trunks','agents'];(function(_0x152449,_0x49f41d){var _0x5b58b2=function(_0x226c30){while(--_0x226c30){_0x152449['push'](_0x152449['shift']());}};_0x5b58b2(++_0x49f41d);}(_0x90dc,0x176));var _0xc90d=function(_0x2f58fe,_0x5ca5c9){_0x2f58fe=_0x2f58fe-0x0;var _0x678171=_0x90dc[_0x2f58fe];return _0x678171;};'use strict';var _=require(_0xc90d('0x0'));var moment=require(_0xc90d('0x1'));var util=require('util');var Redis=require(_0xc90d('0x2'));var BPromise=require(_0xc90d('0x3'));var config=require('../../../config/environment');var logger=require(_0xc90d('0x4'))(_0xc90d('0x5'));var ami=require('../ami');config[_0xc90d('0x6')]=_[_0xc90d('0x7')](config['redis'],{'host':_0xc90d('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function UserReport(_0x1be005){this[_0xc90d('0x9')]=_0x1be005[_0xc90d('0x9')];this[_0xc90d('0xa')]=_0x1be005['agents'];this['telephones']=_0x1be005[_0xc90d('0xb')];ami['on'](_0xc90d('0xc'),this['syncRegistry']['bind'](this));ami['on'](_0xc90d('0xd'),this[_0xc90d('0xe')][_0xc90d('0xf')](this));ami['on'](_0xc90d('0x10'),this[_0xc90d('0x11')][_0xc90d('0xf')](this));ami['on']('peerstatus',this[_0xc90d('0x12')][_0xc90d('0xf')](this));return this[_0xc90d('0x13')]();}function showSipRegistrations(){Promise[_0xc90d('0x14')]()[_0xc90d('0x15')](ami[_0xc90d('0x16')]())[_0xc90d('0x17')](function(_0x52e192){logger[_0xc90d('0x18')](_0xc90d('0x19'),util[_0xc90d('0x1a')](_0x52e192,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()['then'](ami['actionDeviceStateList']())[_0xc90d('0x17')](function(_0x445be3){logger[_0xc90d('0x18')](_0xc90d('0x1b'),util[_0xc90d('0x1a')](_0x445be3,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xc90d('0x14')]()[_0xc90d('0x15')](ami[_0xc90d('0x1c')]())[_0xc90d('0x17')](function(_0x59d8c1){logger['error'](_0xc90d('0x1d'),util[_0xc90d('0x1a')](_0x59d8c1,{'showHidden':![],'depth':null}));});}UserReport['prototype'][_0xc90d('0x13')]=function(){setInterval(function(){BPromise['resolve']()[_0xc90d('0x15')](showSipRegistrations())['then'](listDeviceStates())[_0xc90d('0x15')](showPeersStatus());},0x32c8);};UserReport[_0xc90d('0x1e')][_0xc90d('0x1f')]=function(_0x42686f){return _0x42686f!==null&&!_[_0xc90d('0x20')](_0x42686f);};UserReport[_0xc90d('0x1e')][_0xc90d('0x21')]=function(_0x142cb9,_0x53e390,_0x29d8c1){io['to'](_0x142cb9)[_0xc90d('0x21')](_0x53e390,_0x29d8c1);};UserReport[_0xc90d('0x1e')][_0xc90d('0xe')]=function(_0x197b2c){try{if(this[_0xc90d('0x1f')](_0x197b2c)){logger[_0xc90d('0x22')](_0xc90d('0x23'),_0x197b2c[_0xc90d('0x24')],_0x197b2c[_0xc90d('0x25')]);logger[_0xc90d('0x26')](_0xc90d('0x27'),util['inspect'](_0x197b2c,{'showHidden':![],'depth':null}));var _0x51a746=_[_0xc90d('0x28')](this[_0xc90d('0x9')],{'defaultuser':_0x197b2c[_0xc90d('0x24')]});if(_0x51a746){_0x197b2c['stateRegistry']=_0x197b2c[_0xc90d('0x25')];_[_0xc90d('0x29')](_0x51a746,_['omit'](_0x197b2c,[_0xc90d('0x2a'),_0xc90d('0x2b'),'username',_0xc90d('0x25')]));logger['debug'](_0xc90d('0x2c'),util[_0xc90d('0x1a')](_0x51a746,{'showHidden':![],'depth':null}));this[_0xc90d('0x21')](util[_0xc90d('0x2d')]('trunk:%s',_0x51a746[_0xc90d('0x2e')]),_0xc90d('0x2f'),_0x51a746);}}}catch(_0x2b3200){logger[_0xc90d('0x18')]('[userReport][registry]',util[_0xc90d('0x1a')](_0x2b3200,{'showHidden':![],'depth':null}));}};UserReport[_0xc90d('0x1e')][_0xc90d('0x11')]=function(_0x5dd205){try{if(this[_0xc90d('0x1f')](_0x5dd205)){logger[_0xc90d('0x22')](_0xc90d('0x30'),_0x5dd205[_0xc90d('0x31')],_0x5dd205['state']);logger['debug'](_0xc90d('0x32'),util[_0xc90d('0x1a')](_0x5dd205,{'showHidden':![],'depth':null}));if(this['agents'][_0x5dd205[_0xc90d('0x31')]]){if(!this[_0xc90d('0xa')][_0x5dd205['device']]['local']||_0x5dd205[_0xc90d('0x25')]['toLowerCase']()==_0xc90d('0x33')){this[_0xc90d('0xa')][_0x5dd205['device']][_0xc90d('0x34')]=![];if(this['agents'][_0x5dd205[_0xc90d('0x31')]]['state']!==_0x5dd205[_0xc90d('0x25')][_0xc90d('0x35')]()){this['agents'][_0x5dd205[_0xc90d('0x31')]][_0xc90d('0x36')]=_[_0xc90d('0x37')](moment()['format']('x'));}this[_0xc90d('0xa')][_0x5dd205['device']][_0xc90d('0x25')]=_0x5dd205[_0xc90d('0x25')][_0xc90d('0x35')]();this[_0xc90d('0xa')][_0x5dd205[_0xc90d('0x31')]][_0xc90d('0x38')](_0x5dd205);}}else if(this[_0xc90d('0xb')][_0x5dd205['device']]){if(this['telephones'][_0x5dd205['device']][_0xc90d('0x25')]!==_0x5dd205[_0xc90d('0x25')][_0xc90d('0x35')]()){this[_0xc90d('0xb')][_0x5dd205[_0xc90d('0x31')]][_0xc90d('0x36')]=_['toNumber'](moment()[_0xc90d('0x2d')]('x'));}this[_0xc90d('0xb')][_0x5dd205[_0xc90d('0x31')]][_0xc90d('0x25')]=_0x5dd205['state'][_0xc90d('0x35')]();logger['debug'](_0xc90d('0x39'),util[_0xc90d('0x1a')](this[_0xc90d('0xb')][_0x5dd205[_0xc90d('0x31')]],{'showHidden':![],'depth':null}));this[_0xc90d('0x21')](util[_0xc90d('0x2d')](_0xc90d('0x3a'),this['telephones'][_0x5dd205[_0xc90d('0x31')]]['name']),_0xc90d('0x3b'),this[_0xc90d('0xb')][_0x5dd205[_0xc90d('0x31')]]);}else if(this[_0xc90d('0x9')][_0x5dd205[_0xc90d('0x31')]]){if(this[_0xc90d('0x9')][_0x5dd205[_0xc90d('0x31')]]['state']!==_0x5dd205['state'][_0xc90d('0x35')]()){this[_0xc90d('0x9')][_0x5dd205[_0xc90d('0x31')]][_0xc90d('0x36')]=_[_0xc90d('0x37')](moment()[_0xc90d('0x2d')]('x'));}this['trunks'][_0x5dd205['device']][_0xc90d('0x25')]=_0x5dd205[_0xc90d('0x25')][_0xc90d('0x35')]();logger[_0xc90d('0x26')](_0xc90d('0x3c'),util[_0xc90d('0x1a')](this[_0xc90d('0x9')][_0x5dd205[_0xc90d('0x31')]],{'showHidden':![],'depth':null}));this[_0xc90d('0x21')](util['format'](_0xc90d('0x3d'),this[_0xc90d('0x9')][_0x5dd205[_0xc90d('0x31')]][_0xc90d('0x2e')]),_0xc90d('0x2f'),this['trunks'][_0x5dd205['device']]);}else if(_[_0xc90d('0x3e')](_0x5dd205[_0xc90d('0x31')],_0xc90d('0x3f'))){var _0xa733e0=_0x5dd205['device'];var _0x1e283b=_0xa733e0[_0xc90d('0x40')](_0xa733e0[_0xc90d('0x41')]('/')+0x1,_0xa733e0[_0xc90d('0x41')]('@'));var _0x42ab10=_[_0xc90d('0x28')](this[_0xc90d('0xa')],function(_0x5f3560){return _0x5f3560[_0xc90d('0x42')]==_0x1e283b||_0x5f3560['phone']==_0x1e283b||_0x5f3560[_0xc90d('0x43')]==_0x1e283b;});if(_0x42ab10){if(_0x42ab10[_0xc90d('0x25')]!==_0x5dd205[_0xc90d('0x25')]['toLowerCase']()){_0x42ab10[_0xc90d('0x36')]=_[_0xc90d('0x37')](moment()['format']('x'));}_0x42ab10[_0xc90d('0x25')]=_0x5dd205[_0xc90d('0x25')]['toLowerCase']();_0x42ab10[_0xc90d('0x34')]=!![];_0x42ab10['updateStatusRealtime'](_0x5dd205);}}}}catch(_0x4563e9){logger[_0xc90d('0x18')]('[userReport][devicestatechange]',util[_0xc90d('0x1a')](_0x4563e9,{'showHidden':![],'depth':null}));}};UserReport[_0xc90d('0x1e')][_0xc90d('0x12')]=function(_0x1135d1){try{if(this[_0xc90d('0x1f')](_0x1135d1)&&this['isNotNull'](_0x1135d1['peerstatus'])){logger['info'](_0xc90d('0x44'),_0x1135d1[_0xc90d('0x45')],_0x1135d1[_0xc90d('0x46')],_0x1135d1[_0xc90d('0x47')]);logger[_0xc90d('0x26')](_0xc90d('0x48'),util[_0xc90d('0x1a')](_0x1135d1,{'showHidden':![],'depth':null}));if(this[_0xc90d('0xa')][_0x1135d1['peer']]){if(!this[_0xc90d('0xa')][_0x1135d1[_0xc90d('0x45')]][_0xc90d('0x34')]||_0x1135d1[_0xc90d('0x47')][_0xc90d('0x35')]()==_0xc90d('0x49')){this[_0xc90d('0xa')][_0x1135d1['peer']][_0xc90d('0x34')]=![];this[_0xc90d('0xa')][_0x1135d1[_0xc90d('0x45')]][_0xc90d('0x4a')]=_0x1135d1[_0xc90d('0x47')][_0xc90d('0x35')]();this[_0xc90d('0xa')][_0x1135d1[_0xc90d('0x45')]][_0xc90d('0x46')]=_0x1135d1['address'];this[_0xc90d('0xa')][_0x1135d1[_0xc90d('0x45')]]['updateStatusRealtime'](_0x1135d1);}}else if(this[_0xc90d('0xb')][_0x1135d1[_0xc90d('0x45')]]){this[_0xc90d('0xb')][_0x1135d1[_0xc90d('0x45')]][_0xc90d('0x4a')]=_0x1135d1[_0xc90d('0x47')][_0xc90d('0x35')]();this['telephones'][_0x1135d1['peer']][_0xc90d('0x46')]=_0x1135d1[_0xc90d('0x46')];logger[_0xc90d('0x26')](_0xc90d('0x4b'),util[_0xc90d('0x1a')](this[_0xc90d('0xb')][_0x1135d1['peer']],{'showHidden':![],'depth':null}));this[_0xc90d('0x21')](util['format']('telephone:%s',this[_0xc90d('0xb')][_0x1135d1[_0xc90d('0x45')]][_0xc90d('0x2e')]),_0xc90d('0x3b'),this[_0xc90d('0xb')][_0x1135d1[_0xc90d('0x45')]]);}else if(this[_0xc90d('0x9')][_0x1135d1[_0xc90d('0x45')]]){this[_0xc90d('0x9')][_0x1135d1['peer']][_0xc90d('0x4a')]=_0x1135d1[_0xc90d('0x47')][_0xc90d('0x35')]();this[_0xc90d('0x9')][_0x1135d1[_0xc90d('0x45')]][_0xc90d('0x46')]=_0x1135d1[_0xc90d('0x46')];logger[_0xc90d('0x26')](_0xc90d('0x4c'),util['inspect'](this['trunks'][_0x1135d1[_0xc90d('0x45')]],{'showHidden':![],'depth':null}));this[_0xc90d('0x21')](util[_0xc90d('0x2d')]('trunk:%s',this['trunks'][_0x1135d1[_0xc90d('0x45')]][_0xc90d('0x2e')]),_0xc90d('0x2f'),this['trunks'][_0x1135d1['peer']]);}}}catch(_0x3239d0){logger[_0xc90d('0x18')](_0xc90d('0x48'),util[_0xc90d('0x1a')](_0x3239d0,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;