Built motion from commit (unavailable).|2.5.29
[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 _0x7cfe=['localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','then','catch','error','inspect','actionDeviceStateList','[userReport][devicestatelist]','resolve','actionSipPeerStatus','syncRealtimeShow','prototype','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','stateRegistry','merge','omit','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','name','isNotNull','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','toLowerCase','inuse','local','toNumber','updateStatusRealtime','stateTime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:%s','trunk:save','startsWith','Local','substring','indexOf','find','mobile','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','[userReport][peerstatus]','registered','status','telephone:save','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','ioredis','bluebird','../../../config/environment','../../../config/logger','ami','../ami','redis'];(function(_0x3337ee,_0x6ddb26){var _0x146be6=function(_0x28149a){while(--_0x28149a){_0x3337ee['push'](_0x3337ee['shift']());}};_0x146be6(++_0x6ddb26);}(_0x7cfe,0x94));var _0xe7cf=function(_0x37d531,_0x19ede4){_0x37d531=_0x37d531-0x0;var _0x215c1d=_0x7cfe[_0x37d531];return _0x215c1d;};'use strict';var _=require(_0xe7cf('0x0'));var moment=require('moment');var util=require('util');var Redis=require(_0xe7cf('0x1'));var BPromise=require(_0xe7cf('0x2'));var config=require(_0xe7cf('0x3'));var logger=require(_0xe7cf('0x4'))(_0xe7cf('0x5'));var ami=require(_0xe7cf('0x6'));config[_0xe7cf('0x7')]=_['defaults'](config[_0xe7cf('0x7')],{'host':_0xe7cf('0x8'),'port':0x18eb});var io=require(_0xe7cf('0x9'))(new Redis(config[_0xe7cf('0x7')]));function UserReport(_0x4ad94d){this[_0xe7cf('0xa')]=_0x4ad94d[_0xe7cf('0xa')];this[_0xe7cf('0xb')]=_0x4ad94d['agents'];this[_0xe7cf('0xc')]=_0x4ad94d[_0xe7cf('0xc')];ami['on'](_0xe7cf('0xd'),this[_0xe7cf('0xe')][_0xe7cf('0xf')](this));ami['on'](_0xe7cf('0x10'),this['syncRegistry'][_0xe7cf('0xf')](this));ami['on'](_0xe7cf('0x11'),this[_0xe7cf('0x12')]['bind'](this));ami['on'](_0xe7cf('0x13'),this[_0xe7cf('0x14')]['bind'](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise['resolve']()[_0xe7cf('0x15')](ami['actionSipShowRegistry']())[_0xe7cf('0x16')](function(_0x37c3c9){logger[_0xe7cf('0x17')]('[userReport][sipshowregistry]',util[_0xe7cf('0x18')](_0x37c3c9,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()['then'](ami[_0xe7cf('0x19')]())[_0xe7cf('0x16')](function(_0x5dde78){logger[_0xe7cf('0x17')](_0xe7cf('0x1a'),util['inspect'](_0x5dde78,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xe7cf('0x1b')]()[_0xe7cf('0x15')](ami[_0xe7cf('0x1c')]())['catch'](function(_0x4a5e43){logger['error']('[userReport][sippeerstatus]',util[_0xe7cf('0x18')](_0x4a5e43,{'showHidden':![],'depth':null}));});}UserReport['prototype'][_0xe7cf('0x1d')]=function(){setInterval(function(){BPromise[_0xe7cf('0x1b')]()['then'](showSipRegistrations())[_0xe7cf('0x15')](listDeviceStates())[_0xe7cf('0x15')](showPeersStatus());},0x32c8);};UserReport[_0xe7cf('0x1e')]['isNotNull']=function(_0xbe8e61){return _0xbe8e61!==null&&!_[_0xe7cf('0x1f')](_0xbe8e61);};UserReport[_0xe7cf('0x1e')][_0xe7cf('0x20')]=function(_0x4204af,_0x4c6292,_0x562ba1){io['to'](_0x4204af)[_0xe7cf('0x20')](_0x4c6292,_0x562ba1);};UserReport['prototype'][_0xe7cf('0xe')]=function(_0x335619){try{if(this['isNotNull'](_0x335619)){logger[_0xe7cf('0x21')](_0xe7cf('0x22'),_0x335619[_0xe7cf('0x23')],_0x335619[_0xe7cf('0x24')]);logger[_0xe7cf('0x25')](_0xe7cf('0x26'),util[_0xe7cf('0x18')](_0x335619,{'showHidden':![],'depth':null}));var _0x37e40f=_['find'](this[_0xe7cf('0xa')],{'registry':_0x335619[_0xe7cf('0x23')]});if(_0x37e40f){_0x335619[_0xe7cf('0x27')]=_0x335619['state'];_[_0xe7cf('0x28')](_0x37e40f,_[_0xe7cf('0x29')](_0x335619,[_0xe7cf('0x2a'),_0xe7cf('0x2b'),_0xe7cf('0x23'),_0xe7cf('0x24')]));logger[_0xe7cf('0x25')](_0xe7cf('0x2c'),util['inspect'](_0x37e40f,{'showHidden':![],'depth':null}));this['emit'](util[_0xe7cf('0x2d')]('trunk:%s',_0x37e40f[_0xe7cf('0x2e')]),'trunk:save',_0x37e40f);}}}catch(_0x133612){logger[_0xe7cf('0x17')](_0xe7cf('0x26'),util[_0xe7cf('0x18')](_0x133612,{'showHidden':![],'depth':null}));}};UserReport[_0xe7cf('0x1e')][_0xe7cf('0x12')]=function(_0x547d6b){try{if(this[_0xe7cf('0x2f')](_0x547d6b)){logger[_0xe7cf('0x21')](_0xe7cf('0x30'),_0x547d6b[_0xe7cf('0x31')],_0x547d6b['state']);logger[_0xe7cf('0x25')](_0xe7cf('0x32'),util[_0xe7cf('0x18')](_0x547d6b,{'showHidden':![],'depth':null}));if(this[_0xe7cf('0xb')][_0x547d6b[_0xe7cf('0x31')]]){if(!this['agents'][_0x547d6b[_0xe7cf('0x31')]]['local']||_0x547d6b['state'][_0xe7cf('0x33')]()==_0xe7cf('0x34')){this[_0xe7cf('0xb')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x35')]=![];if(this[_0xe7cf('0xb')][_0x547d6b['device']]['state']!==_0x547d6b[_0xe7cf('0x24')][_0xe7cf('0x33')]()){this[_0xe7cf('0xb')][_0x547d6b[_0xe7cf('0x31')]]['stateTime']=_[_0xe7cf('0x36')](moment()['format']('x'));}this[_0xe7cf('0xb')][_0x547d6b['device']][_0xe7cf('0x24')]=_0x547d6b[_0xe7cf('0x24')][_0xe7cf('0x33')]();this[_0xe7cf('0xb')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x37')](_0x547d6b);}}else if(this[_0xe7cf('0xc')][_0x547d6b[_0xe7cf('0x31')]]){if(this[_0xe7cf('0xc')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x24')]!==_0x547d6b['state']['toLowerCase']()){this[_0xe7cf('0xc')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x38')]=_[_0xe7cf('0x36')](moment()[_0xe7cf('0x2d')]('x'));}this[_0xe7cf('0xc')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x24')]=_0x547d6b[_0xe7cf('0x24')]['toLowerCase']();logger['debug'](_0xe7cf('0x39'),util[_0xe7cf('0x18')](this[_0xe7cf('0xc')][_0x547d6b['device']],{'showHidden':![],'depth':null}));this['emit'](util[_0xe7cf('0x2d')](_0xe7cf('0x3a'),this[_0xe7cf('0xc')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x2e')]),'telephone:save',this[_0xe7cf('0xc')][_0x547d6b[_0xe7cf('0x31')]]);}else if(this[_0xe7cf('0xa')][_0x547d6b[_0xe7cf('0x31')]]){if(this[_0xe7cf('0xa')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x24')]!==_0x547d6b[_0xe7cf('0x24')][_0xe7cf('0x33')]()){this[_0xe7cf('0xa')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x38')]=_[_0xe7cf('0x36')](moment()['format']('x'));}this[_0xe7cf('0xa')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x24')]=_0x547d6b[_0xe7cf('0x24')][_0xe7cf('0x33')]();logger['debug'](_0xe7cf('0x3b'),util[_0xe7cf('0x18')](this[_0xe7cf('0xa')][_0x547d6b[_0xe7cf('0x31')]],{'showHidden':![],'depth':null}));this[_0xe7cf('0x20')](util[_0xe7cf('0x2d')](_0xe7cf('0x3c'),this[_0xe7cf('0xa')][_0x547d6b[_0xe7cf('0x31')]][_0xe7cf('0x2e')]),_0xe7cf('0x3d'),this['trunks'][_0x547d6b['device']]);}else if(_[_0xe7cf('0x3e')](_0x547d6b[_0xe7cf('0x31')],_0xe7cf('0x3f'))){var _0x379929=_0x547d6b[_0xe7cf('0x31')];var _0x499359=_0x379929[_0xe7cf('0x40')](_0x379929[_0xe7cf('0x41')]('/')+0x1,_0x379929['indexOf']('@'));var _0x3a33a2=_[_0xe7cf('0x42')](this[_0xe7cf('0xb')],function(_0x8474){return _0x8474[_0xe7cf('0x43')]==_0x499359||_0x8474['phone']==_0x499359||_0x8474[_0xe7cf('0x44')]==_0x499359;});if(_0x3a33a2){if(_0x3a33a2[_0xe7cf('0x24')]!==_0x547d6b[_0xe7cf('0x24')][_0xe7cf('0x33')]()){_0x3a33a2['stateTime']=_[_0xe7cf('0x36')](moment()['format']('x'));}_0x3a33a2[_0xe7cf('0x24')]=_0x547d6b[_0xe7cf('0x24')][_0xe7cf('0x33')]();_0x3a33a2[_0xe7cf('0x35')]=!![];_0x3a33a2[_0xe7cf('0x37')](_0x547d6b);}}}}catch(_0x502556){logger[_0xe7cf('0x17')]('[userReport][devicestatechange]',util['inspect'](_0x502556,{'showHidden':![],'depth':null}));}};UserReport[_0xe7cf('0x1e')][_0xe7cf('0x14')]=function(_0x267d60){try{if(this['isNotNull'](_0x267d60)&&this[_0xe7cf('0x2f')](_0x267d60['peerstatus'])){logger['info'](_0xe7cf('0x45'),_0x267d60[_0xe7cf('0x46')],_0x267d60[_0xe7cf('0x47')],_0x267d60['peerstatus']);logger[_0xe7cf('0x25')](_0xe7cf('0x48'),util[_0xe7cf('0x18')](_0x267d60,{'showHidden':![],'depth':null}));if(this[_0xe7cf('0xb')][_0x267d60['peer']]){if(!this['agents'][_0x267d60[_0xe7cf('0x46')]]['local']||_0x267d60[_0xe7cf('0x13')][_0xe7cf('0x33')]()==_0xe7cf('0x49')){this['agents'][_0x267d60[_0xe7cf('0x46')]][_0xe7cf('0x35')]=![];this['agents'][_0x267d60[_0xe7cf('0x46')]][_0xe7cf('0x4a')]=_0x267d60[_0xe7cf('0x13')][_0xe7cf('0x33')]();this[_0xe7cf('0xb')][_0x267d60[_0xe7cf('0x46')]]['address']=_0x267d60['address'];this[_0xe7cf('0xb')][_0x267d60['peer']][_0xe7cf('0x37')](_0x267d60);}}else if(this[_0xe7cf('0xc')][_0x267d60[_0xe7cf('0x46')]]){this[_0xe7cf('0xc')][_0x267d60[_0xe7cf('0x46')]]['status']=_0x267d60['peerstatus'][_0xe7cf('0x33')]();this[_0xe7cf('0xc')][_0x267d60[_0xe7cf('0x46')]]['address']=_0x267d60[_0xe7cf('0x47')];logger[_0xe7cf('0x25')]('[userReport][peerstatus]\x20sending\x20telephone:save\x20event:',util[_0xe7cf('0x18')](this[_0xe7cf('0xc')][_0x267d60[_0xe7cf('0x46')]],{'showHidden':![],'depth':null}));this[_0xe7cf('0x20')](util[_0xe7cf('0x2d')](_0xe7cf('0x3a'),this[_0xe7cf('0xc')][_0x267d60[_0xe7cf('0x46')]]['name']),_0xe7cf('0x4b'),this[_0xe7cf('0xc')][_0x267d60['peer']]);}else if(this[_0xe7cf('0xa')][_0x267d60['peer']]){this[_0xe7cf('0xa')][_0x267d60[_0xe7cf('0x46')]][_0xe7cf('0x4a')]=_0x267d60[_0xe7cf('0x13')][_0xe7cf('0x33')]();this[_0xe7cf('0xa')][_0x267d60[_0xe7cf('0x46')]][_0xe7cf('0x47')]=_0x267d60[_0xe7cf('0x47')];logger[_0xe7cf('0x25')](_0xe7cf('0x4c'),util['inspect'](this['trunks'][_0x267d60['peer']],{'showHidden':![],'depth':null}));this[_0xe7cf('0x20')](util[_0xe7cf('0x2d')]('trunk:%s',this[_0xe7cf('0xa')][_0x267d60[_0xe7cf('0x46')]][_0xe7cf('0x2e')]),_0xe7cf('0x3d'),this['trunks'][_0x267d60[_0xe7cf('0x46')]]);}}}catch(_0x1c5e65){logger['error'](_0xe7cf('0x48'),util[_0xe7cf('0x18')](_0x1c5e65,{'showHidden':![],'depth':null}));}};module[_0xe7cf('0x4d')]=UserReport;