Built motion from commit (unavailable).|2.5.24
[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 _0xdf43=['trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','stateTime','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','toNumber','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:%s','Local','substring','indexOf','mobile','phone','syncPeerStatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','registered','status','address','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][peerstatus]','exports','lodash','util','ioredis','bluebird','../../../config/environment','../../../config/logger','ami','../ami','defaults','redis','localhost','socket.io-emitter','trunks','agents','telephones','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','then','actionSipShowRegistry','catch','[userReport][sipshowregistry]','inspect','resolve','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','error','[userReport][sippeerstatus]','prototype','syncRealtimeShow','isNotNull','isUndefined','info','[userReport][registry]\x20registry:%s\x20state:%s','state','[userReport][registry]','find','username','stateRegistry','merge','omit','event','actionid','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','emit','format','name'];(function(_0xc6918f,_0x2f1ada){var _0x28118f=function(_0x386541){while(--_0x386541){_0xc6918f['push'](_0xc6918f['shift']());}};_0x28118f(++_0x2f1ada);}(_0xdf43,0x6c));var _0x3df4=function(_0x4d613c,_0x55f220){_0x4d613c=_0x4d613c-0x0;var _0x301fe3=_0xdf43[_0x4d613c];return _0x301fe3;};'use strict';var _=require(_0x3df4('0x0'));var moment=require('moment');var util=require(_0x3df4('0x1'));var Redis=require(_0x3df4('0x2'));var BPromise=require(_0x3df4('0x3'));var config=require(_0x3df4('0x4'));var logger=require(_0x3df4('0x5'))(_0x3df4('0x6'));var ami=require(_0x3df4('0x7'));config['redis']=_[_0x3df4('0x8')](config[_0x3df4('0x9')],{'host':_0x3df4('0xa'),'port':0x18eb});var io=require(_0x3df4('0xb'))(new Redis(config['redis']));function UserReport(_0x45e268){this[_0x3df4('0xc')]=_0x45e268[_0x3df4('0xc')];this['agents']=_0x45e268[_0x3df4('0xd')];this[_0x3df4('0xe')]=_0x45e268[_0x3df4('0xe')];ami['on']('registryentry',this[_0x3df4('0xf')][_0x3df4('0x10')](this));ami['on'](_0x3df4('0x11'),this['syncRegistry'][_0x3df4('0x10')](this));ami['on'](_0x3df4('0x12'),this[_0x3df4('0x13')][_0x3df4('0x10')](this));ami['on'](_0x3df4('0x14'),this['syncPeerStatus']['bind'](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise['resolve']()[_0x3df4('0x15')](ami[_0x3df4('0x16')]())[_0x3df4('0x17')](function(_0xa98304){logger['error'](_0x3df4('0x18'),util[_0x3df4('0x19')](_0xa98304,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x3df4('0x1a')]()[_0x3df4('0x15')](ami[_0x3df4('0x1b')]())[_0x3df4('0x17')](function(_0x5b9988){logger['error'](_0x3df4('0x1c'),util['inspect'](_0x5b9988,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x3df4('0x1a')]()[_0x3df4('0x15')](ami[_0x3df4('0x1d')]())['catch'](function(_0x33a375){logger[_0x3df4('0x1e')](_0x3df4('0x1f'),util[_0x3df4('0x19')](_0x33a375,{'showHidden':![],'depth':null}));});}UserReport[_0x3df4('0x20')][_0x3df4('0x21')]=function(){setInterval(function(){BPromise[_0x3df4('0x1a')]()[_0x3df4('0x15')](showSipRegistrations())['then'](listDeviceStates())[_0x3df4('0x15')](showPeersStatus());},0x32c8);};UserReport[_0x3df4('0x20')][_0x3df4('0x22')]=function(_0x11baeb){return _0x11baeb!==null&&!_[_0x3df4('0x23')](_0x11baeb);};UserReport[_0x3df4('0x20')]['emit']=function(_0x200258,_0x2c7ca6,_0x5d7ad7){io['to'](_0x200258)['emit'](_0x2c7ca6,_0x5d7ad7);};UserReport[_0x3df4('0x20')][_0x3df4('0xf')]=function(_0x126670){try{if(this[_0x3df4('0x22')](_0x126670)){logger[_0x3df4('0x24')](_0x3df4('0x25'),_0x126670['username'],_0x126670[_0x3df4('0x26')]);logger['debug'](_0x3df4('0x27'),util['inspect'](_0x126670,{'showHidden':![],'depth':null}));var _0x484a58=_[_0x3df4('0x28')](this['trunks'],{'registry':_0x126670[_0x3df4('0x29')]});if(_0x484a58){_0x126670[_0x3df4('0x2a')]=_0x126670[_0x3df4('0x26')];_[_0x3df4('0x2b')](_0x484a58,_[_0x3df4('0x2c')](_0x126670,[_0x3df4('0x2d'),_0x3df4('0x2e'),_0x3df4('0x29'),'state']));logger[_0x3df4('0x2f')](_0x3df4('0x30'),util[_0x3df4('0x19')](_0x484a58,{'showHidden':![],'depth':null}));this[_0x3df4('0x31')](util[_0x3df4('0x32')]('trunk:%s',_0x484a58[_0x3df4('0x33')]),_0x3df4('0x34'),_0x484a58);}}}catch(_0x1a0fe8){logger['error'](_0x3df4('0x27'),util[_0x3df4('0x19')](_0x1a0fe8,{'showHidden':![],'depth':null}));}};UserReport[_0x3df4('0x20')]['syncDeviceState']=function(_0x11f732){try{if(this['isNotNull'](_0x11f732)){logger[_0x3df4('0x24')](_0x3df4('0x35'),_0x11f732[_0x3df4('0x36')],_0x11f732['state']);logger[_0x3df4('0x2f')](_0x3df4('0x37'),util['inspect'](_0x11f732,{'showHidden':![],'depth':null}));if(this[_0x3df4('0xd')][_0x11f732[_0x3df4('0x36')]]){if(!this[_0x3df4('0xd')][_0x11f732[_0x3df4('0x36')]][_0x3df4('0x38')]||_0x11f732[_0x3df4('0x26')][_0x3df4('0x39')]()=='inuse'){this[_0x3df4('0xd')][_0x11f732[_0x3df4('0x36')]]['local']=![];if(this[_0x3df4('0xd')][_0x11f732[_0x3df4('0x36')]][_0x3df4('0x26')]!==_0x11f732[_0x3df4('0x26')][_0x3df4('0x39')]()){this[_0x3df4('0xd')][_0x11f732['device']][_0x3df4('0x3a')]=_['toNumber'](moment()[_0x3df4('0x32')]('x'));}this['agents'][_0x11f732[_0x3df4('0x36')]]['state']=_0x11f732[_0x3df4('0x26')][_0x3df4('0x39')]();this['agents'][_0x11f732['device']][_0x3df4('0x3b')](_0x11f732);}}else if(this[_0x3df4('0xe')][_0x11f732[_0x3df4('0x36')]]){if(this[_0x3df4('0xe')][_0x11f732[_0x3df4('0x36')]]['state']!==_0x11f732[_0x3df4('0x26')][_0x3df4('0x39')]()){this[_0x3df4('0xe')][_0x11f732['device']][_0x3df4('0x3a')]=_['toNumber'](moment()['format']('x'));}this[_0x3df4('0xe')][_0x11f732[_0x3df4('0x36')]][_0x3df4('0x26')]=_0x11f732['state'][_0x3df4('0x39')]();logger[_0x3df4('0x2f')](_0x3df4('0x3c'),util[_0x3df4('0x19')](this['telephones'][_0x11f732[_0x3df4('0x36')]],{'showHidden':![],'depth':null}));this[_0x3df4('0x31')](util['format']('telephone:%s',this[_0x3df4('0xe')][_0x11f732[_0x3df4('0x36')]][_0x3df4('0x33')]),'telephone:save',this[_0x3df4('0xe')][_0x11f732[_0x3df4('0x36')]]);}else if(this['trunks'][_0x11f732[_0x3df4('0x36')]]){if(this['trunks'][_0x11f732[_0x3df4('0x36')]][_0x3df4('0x26')]!==_0x11f732['state'][_0x3df4('0x39')]()){this['trunks'][_0x11f732[_0x3df4('0x36')]]['stateTime']=_[_0x3df4('0x3d')](moment()[_0x3df4('0x32')]('x'));}this[_0x3df4('0xc')][_0x11f732['device']][_0x3df4('0x26')]=_0x11f732[_0x3df4('0x26')][_0x3df4('0x39')]();logger[_0x3df4('0x2f')](_0x3df4('0x3e'),util[_0x3df4('0x19')](this[_0x3df4('0xc')][_0x11f732[_0x3df4('0x36')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x3df4('0x32')](_0x3df4('0x3f'),this[_0x3df4('0xc')][_0x11f732[_0x3df4('0x36')]][_0x3df4('0x33')]),_0x3df4('0x34'),this['trunks'][_0x11f732[_0x3df4('0x36')]]);}else if(_['startsWith'](_0x11f732[_0x3df4('0x36')],_0x3df4('0x40'))){var _0x36acd7=_0x11f732['device'];var _0x1a767f=_0x36acd7[_0x3df4('0x41')](_0x36acd7[_0x3df4('0x42')]('/')+0x1,_0x36acd7[_0x3df4('0x42')]('@'));var _0x582f92=_['find'](this[_0x3df4('0xd')],function(_0x4f6440){return _0x4f6440[_0x3df4('0x43')]==_0x1a767f||_0x4f6440[_0x3df4('0x44')]==_0x1a767f||_0x4f6440['accountcode']==_0x1a767f;});if(_0x582f92){if(_0x582f92['state']!==_0x11f732[_0x3df4('0x26')][_0x3df4('0x39')]()){_0x582f92[_0x3df4('0x3a')]=_[_0x3df4('0x3d')](moment()[_0x3df4('0x32')]('x'));}_0x582f92[_0x3df4('0x26')]=_0x11f732[_0x3df4('0x26')][_0x3df4('0x39')]();_0x582f92['local']=!![];_0x582f92[_0x3df4('0x3b')](_0x11f732);}}}}catch(_0x51b3fa){logger['error'](_0x3df4('0x37'),util['inspect'](_0x51b3fa,{'showHidden':![],'depth':null}));}};UserReport[_0x3df4('0x20')][_0x3df4('0x45')]=function(_0x4450c7){try{if(this[_0x3df4('0x22')](_0x4450c7)&&this[_0x3df4('0x22')](_0x4450c7[_0x3df4('0x14')])){logger[_0x3df4('0x24')](_0x3df4('0x46'),_0x4450c7[_0x3df4('0x47')],_0x4450c7['address'],_0x4450c7['peerstatus']);logger['debug']('[userReport][peerstatus]',util[_0x3df4('0x19')](_0x4450c7,{'showHidden':![],'depth':null}));if(this[_0x3df4('0xd')][_0x4450c7['peer']]){if(!this[_0x3df4('0xd')][_0x4450c7[_0x3df4('0x47')]][_0x3df4('0x38')]||_0x4450c7[_0x3df4('0x14')]['toLowerCase']()==_0x3df4('0x48')){this['agents'][_0x4450c7['peer']]['local']=![];this[_0x3df4('0xd')][_0x4450c7[_0x3df4('0x47')]][_0x3df4('0x49')]=_0x4450c7[_0x3df4('0x14')]['toLowerCase']();this[_0x3df4('0xd')][_0x4450c7['peer']][_0x3df4('0x4a')]=_0x4450c7[_0x3df4('0x4a')];this[_0x3df4('0xd')][_0x4450c7[_0x3df4('0x47')]]['updateStatusRealtime'](_0x4450c7);}}else if(this[_0x3df4('0xe')][_0x4450c7['peer']]){this['telephones'][_0x4450c7[_0x3df4('0x47')]][_0x3df4('0x49')]=_0x4450c7[_0x3df4('0x14')][_0x3df4('0x39')]();this[_0x3df4('0xe')][_0x4450c7['peer']]['address']=_0x4450c7[_0x3df4('0x4a')];logger['debug'](_0x3df4('0x4b'),util['inspect'](this[_0x3df4('0xe')][_0x4450c7['peer']],{'showHidden':![],'depth':null}));this[_0x3df4('0x31')](util[_0x3df4('0x32')](_0x3df4('0x4c'),this[_0x3df4('0xe')][_0x4450c7['peer']][_0x3df4('0x33')]),_0x3df4('0x4d'),this[_0x3df4('0xe')][_0x4450c7[_0x3df4('0x47')]]);}else if(this[_0x3df4('0xc')][_0x4450c7[_0x3df4('0x47')]]){this[_0x3df4('0xc')][_0x4450c7[_0x3df4('0x47')]]['status']=_0x4450c7[_0x3df4('0x14')][_0x3df4('0x39')]();this[_0x3df4('0xc')][_0x4450c7[_0x3df4('0x47')]][_0x3df4('0x4a')]=_0x4450c7['address'];logger[_0x3df4('0x2f')]('[userReport][peerstatus]\x20sending\x20trunk:save\x20event:',util['inspect'](this[_0x3df4('0xc')][_0x4450c7[_0x3df4('0x47')]],{'showHidden':![],'depth':null}));this[_0x3df4('0x31')](util[_0x3df4('0x32')](_0x3df4('0x3f'),this[_0x3df4('0xc')][_0x4450c7[_0x3df4('0x47')]]['name']),_0x3df4('0x34'),this[_0x3df4('0xc')][_0x4450c7[_0x3df4('0x47')]]);}}}catch(_0x405645){logger['error'](_0x3df4('0x4e'),util['inspect'](_0x405645,{'showHidden':![],'depth':null}));}};module[_0x3df4('0x4f')]=UserReport;