Built motion from commit 639a1a7f.|2.6.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 _0x19df=['exports','lodash','moment','ioredis','../../../config/logger','ami','../ami','redis','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','devicestatechange','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','[userReport][devicestatelist]','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','[userReport][registry]\x20sending\x20trunk:save\x20event:','name','trunk:save','syncDeviceState','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','toNumber','format','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:%s','startsWith','substring','phone','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save'];(function(_0x3d78d7,_0x44acea){var _0x4b6784=function(_0x284157){while(--_0x284157){_0x3d78d7['push'](_0x3d78d7['shift']());}};_0x4b6784(++_0x44acea);}(_0x19df,0x91));var _0xf19d=function(_0x1bd2a6,_0x45f0fc){_0x1bd2a6=_0x1bd2a6-0x0;var _0x525206=_0x19df[_0x1bd2a6];return _0x525206;};'use strict';var _=require(_0xf19d('0x0'));var moment=require(_0xf19d('0x1'));var util=require('util');var Redis=require(_0xf19d('0x2'));var BPromise=require('bluebird');var config=require('../../../config/environment');var logger=require(_0xf19d('0x3'))(_0xf19d('0x4'));var ami=require(_0xf19d('0x5'));config[_0xf19d('0x6')]=_['defaults'](config['redis'],{'host':_0xf19d('0x7'),'port':0x18eb});var io=require(_0xf19d('0x8'))(new Redis(config[_0xf19d('0x6')]));function UserReport(_0x5630f3){this[_0xf19d('0x9')]=_0x5630f3[_0xf19d('0x9')];this['agents']=_0x5630f3[_0xf19d('0xa')];this[_0xf19d('0xb')]=_0x5630f3['telephones'];ami['on'](_0xf19d('0xc'),this[_0xf19d('0xd')][_0xf19d('0xe')](this));ami['on']('registry',this['syncRegistry'][_0xf19d('0xe')](this));ami['on'](_0xf19d('0xf'),this['syncDeviceState'][_0xf19d('0xe')](this));ami['on'](_0xf19d('0x10'),this[_0xf19d('0x11')][_0xf19d('0xe')](this));return this[_0xf19d('0x12')]();}function showSipRegistrations(){Promise[_0xf19d('0x13')]()[_0xf19d('0x14')](ami[_0xf19d('0x15')]())[_0xf19d('0x16')](function(_0x1caf48){logger[_0xf19d('0x17')](_0xf19d('0x18'),util[_0xf19d('0x19')](_0x1caf48,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()[_0xf19d('0x14')](ami[_0xf19d('0x1a')]())[_0xf19d('0x16')](function(_0x450890){logger['error'](_0xf19d('0x1b'),util[_0xf19d('0x19')](_0x450890,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xf19d('0x13')]()[_0xf19d('0x14')](ami['actionSipPeerStatus']())[_0xf19d('0x16')](function(_0x4382d1){logger[_0xf19d('0x17')](_0xf19d('0x1c'),util[_0xf19d('0x19')](_0x4382d1,{'showHidden':![],'depth':null}));});}UserReport[_0xf19d('0x1d')][_0xf19d('0x12')]=function(){setInterval(function(){BPromise[_0xf19d('0x13')]()['then'](showSipRegistrations())['then'](listDeviceStates())[_0xf19d('0x14')](showPeersStatus());},0x32c8);};UserReport[_0xf19d('0x1d')][_0xf19d('0x1e')]=function(_0x3fdc85){return _0x3fdc85!==null&&!_[_0xf19d('0x1f')](_0x3fdc85);};UserReport['prototype'][_0xf19d('0x20')]=function(_0x2e993d,_0x50ee97,_0x46ed75){io['to'](_0x2e993d)[_0xf19d('0x20')](_0x50ee97,_0x46ed75);};UserReport[_0xf19d('0x1d')]['syncRegistry']=function(_0x4905c4){try{if(this['isNotNull'](_0x4905c4)){logger[_0xf19d('0x21')](_0xf19d('0x22'),_0x4905c4[_0xf19d('0x23')],_0x4905c4[_0xf19d('0x24')]);logger[_0xf19d('0x25')](_0xf19d('0x26'),util[_0xf19d('0x19')](_0x4905c4,{'showHidden':![],'depth':null}));var _0x52ceb5=_[_0xf19d('0x27')](this[_0xf19d('0x9')],{'defaultuser':_0x4905c4[_0xf19d('0x23')]});if(_0x52ceb5){_0x4905c4[_0xf19d('0x28')]=_0x4905c4[_0xf19d('0x24')];_[_0xf19d('0x29')](_0x52ceb5,_['omit'](_0x4905c4,['event','actionid',_0xf19d('0x23'),_0xf19d('0x24')]));logger[_0xf19d('0x25')](_0xf19d('0x2a'),util[_0xf19d('0x19')](_0x52ceb5,{'showHidden':![],'depth':null}));this['emit'](util['format']('trunk:%s',_0x52ceb5[_0xf19d('0x2b')]),_0xf19d('0x2c'),_0x52ceb5);}}}catch(_0xe129bc){logger[_0xf19d('0x17')](_0xf19d('0x26'),util[_0xf19d('0x19')](_0xe129bc,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0xf19d('0x2d')]=function(_0x4cea18){try{if(this[_0xf19d('0x1e')](_0x4cea18)){logger['info'](_0xf19d('0x2e'),_0x4cea18[_0xf19d('0x2f')],_0x4cea18[_0xf19d('0x24')]);logger[_0xf19d('0x25')](_0xf19d('0x30'),util[_0xf19d('0x19')](_0x4cea18,{'showHidden':![],'depth':null}));if(this[_0xf19d('0xa')][_0x4cea18[_0xf19d('0x2f')]]){if(!this[_0xf19d('0xa')][_0x4cea18[_0xf19d('0x2f')]][_0xf19d('0x31')]||_0x4cea18[_0xf19d('0x24')][_0xf19d('0x32')]()==_0xf19d('0x33')){this[_0xf19d('0xa')][_0x4cea18[_0xf19d('0x2f')]][_0xf19d('0x31')]=![];if(this['agents'][_0x4cea18[_0xf19d('0x2f')]][_0xf19d('0x24')]!==_0x4cea18[_0xf19d('0x24')][_0xf19d('0x32')]()){this[_0xf19d('0xa')][_0x4cea18[_0xf19d('0x2f')]]['stateTime']=_[_0xf19d('0x34')](moment()[_0xf19d('0x35')]('x'));}this[_0xf19d('0xa')][_0x4cea18[_0xf19d('0x2f')]][_0xf19d('0x24')]=_0x4cea18[_0xf19d('0x24')][_0xf19d('0x32')]();this['agents'][_0x4cea18[_0xf19d('0x2f')]][_0xf19d('0x36')](_0x4cea18);}}else if(this[_0xf19d('0xb')][_0x4cea18[_0xf19d('0x2f')]]){if(this[_0xf19d('0xb')][_0x4cea18[_0xf19d('0x2f')]][_0xf19d('0x24')]!==_0x4cea18[_0xf19d('0x24')][_0xf19d('0x32')]()){this['telephones'][_0x4cea18[_0xf19d('0x2f')]]['stateTime']=_['toNumber'](moment()[_0xf19d('0x35')]('x'));}this[_0xf19d('0xb')][_0x4cea18[_0xf19d('0x2f')]][_0xf19d('0x24')]=_0x4cea18['state'][_0xf19d('0x32')]();logger['debug'](_0xf19d('0x37'),util[_0xf19d('0x19')](this[_0xf19d('0xb')][_0x4cea18[_0xf19d('0x2f')]],{'showHidden':![],'depth':null}));this[_0xf19d('0x20')](util[_0xf19d('0x35')]('telephone:%s',this[_0xf19d('0xb')][_0x4cea18['device']][_0xf19d('0x2b')]),'telephone:save',this[_0xf19d('0xb')][_0x4cea18['device']]);}else if(this[_0xf19d('0x9')][_0x4cea18['device']]){if(this[_0xf19d('0x9')][_0x4cea18[_0xf19d('0x2f')]]['state']!==_0x4cea18['state'][_0xf19d('0x32')]()){this[_0xf19d('0x9')][_0x4cea18[_0xf19d('0x2f')]]['stateTime']=_[_0xf19d('0x34')](moment()['format']('x'));}this['trunks'][_0x4cea18[_0xf19d('0x2f')]]['state']=_0x4cea18['state']['toLowerCase']();logger['debug'](_0xf19d('0x38'),util['inspect'](this[_0xf19d('0x9')][_0x4cea18[_0xf19d('0x2f')]],{'showHidden':![],'depth':null}));this[_0xf19d('0x20')](util[_0xf19d('0x35')](_0xf19d('0x39'),this[_0xf19d('0x9')][_0x4cea18[_0xf19d('0x2f')]][_0xf19d('0x2b')]),_0xf19d('0x2c'),this[_0xf19d('0x9')][_0x4cea18[_0xf19d('0x2f')]]);}else if(_[_0xf19d('0x3a')](_0x4cea18[_0xf19d('0x2f')],'Local')){var _0x562a12=_0x4cea18[_0xf19d('0x2f')];var _0x1c6c1f=_0x562a12[_0xf19d('0x3b')](_0x562a12['indexOf']('/')+0x1,_0x562a12['indexOf']('@'));var _0x13ab59=_[_0xf19d('0x27')](this[_0xf19d('0xa')],function(_0x3917d2){return _0x3917d2['mobile']==_0x1c6c1f||_0x3917d2[_0xf19d('0x3c')]==_0x1c6c1f||_0x3917d2[_0xf19d('0x3d')]==_0x1c6c1f;});if(_0x13ab59){if(_0x13ab59[_0xf19d('0x24')]!==_0x4cea18[_0xf19d('0x24')][_0xf19d('0x32')]()){_0x13ab59['stateTime']=_[_0xf19d('0x34')](moment()[_0xf19d('0x35')]('x'));}_0x13ab59[_0xf19d('0x24')]=_0x4cea18[_0xf19d('0x24')][_0xf19d('0x32')]();_0x13ab59[_0xf19d('0x31')]=!![];_0x13ab59[_0xf19d('0x36')](_0x4cea18);}}}}catch(_0x3330da){logger[_0xf19d('0x17')](_0xf19d('0x30'),util[_0xf19d('0x19')](_0x3330da,{'showHidden':![],'depth':null}));}};UserReport[_0xf19d('0x1d')][_0xf19d('0x11')]=function(_0x381791){try{if(this['isNotNull'](_0x381791)&&this['isNotNull'](_0x381791[_0xf19d('0x10')])){logger[_0xf19d('0x21')](_0xf19d('0x3e'),_0x381791[_0xf19d('0x3f')],_0x381791[_0xf19d('0x40')],_0x381791[_0xf19d('0x10')]);logger[_0xf19d('0x25')](_0xf19d('0x41'),util['inspect'](_0x381791,{'showHidden':![],'depth':null}));if(this[_0xf19d('0xa')][_0x381791['peer']]){if(!this[_0xf19d('0xa')][_0x381791[_0xf19d('0x3f')]][_0xf19d('0x31')]||_0x381791[_0xf19d('0x10')][_0xf19d('0x32')]()==_0xf19d('0x42')){this[_0xf19d('0xa')][_0x381791[_0xf19d('0x3f')]]['local']=![];this[_0xf19d('0xa')][_0x381791[_0xf19d('0x3f')]][_0xf19d('0x43')]=_0x381791[_0xf19d('0x10')][_0xf19d('0x32')]();this[_0xf19d('0xa')][_0x381791[_0xf19d('0x3f')]][_0xf19d('0x40')]=_0x381791[_0xf19d('0x40')];this[_0xf19d('0xa')][_0x381791['peer']][_0xf19d('0x36')](_0x381791);}}else if(this[_0xf19d('0xb')][_0x381791[_0xf19d('0x3f')]]){this[_0xf19d('0xb')][_0x381791['peer']][_0xf19d('0x43')]=_0x381791[_0xf19d('0x10')][_0xf19d('0x32')]();this[_0xf19d('0xb')][_0x381791[_0xf19d('0x3f')]][_0xf19d('0x40')]=_0x381791[_0xf19d('0x40')];logger['debug'](_0xf19d('0x44'),util[_0xf19d('0x19')](this[_0xf19d('0xb')][_0x381791[_0xf19d('0x3f')]],{'showHidden':![],'depth':null}));this[_0xf19d('0x20')](util[_0xf19d('0x35')](_0xf19d('0x45'),this[_0xf19d('0xb')][_0x381791[_0xf19d('0x3f')]][_0xf19d('0x2b')]),_0xf19d('0x46'),this['telephones'][_0x381791[_0xf19d('0x3f')]]);}else if(this['trunks'][_0x381791[_0xf19d('0x3f')]]){this['trunks'][_0x381791[_0xf19d('0x3f')]]['status']=_0x381791['peerstatus']['toLowerCase']();this[_0xf19d('0x9')][_0x381791['peer']][_0xf19d('0x40')]=_0x381791[_0xf19d('0x40')];logger[_0xf19d('0x25')]('[userReport][peerstatus]\x20sending\x20trunk:save\x20event:',util[_0xf19d('0x19')](this[_0xf19d('0x9')][_0x381791['peer']],{'showHidden':![],'depth':null}));this[_0xf19d('0x20')](util[_0xf19d('0x35')](_0xf19d('0x39'),this[_0xf19d('0x9')][_0x381791['peer']]['name']),_0xf19d('0x2c'),this['trunks'][_0x381791[_0xf19d('0x3f')]]);}}}catch(_0xd38b32){logger[_0xf19d('0x17')](_0xf19d('0x41'),util[_0xf19d('0x19')](_0xd38b32,{'showHidden':![],'depth':null}));}};module[_0xf19d('0x47')]=UserReport;