38aa6b7120a947d25b47d18568299c3d452d7a6e
[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 _0xe53b=['ami','../ami','redis','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','catch','[userReport][devicestatelist]','prototype','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','omit','actionid','format','name','trunk:save','isNotNull','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:save','trunk:%s','Local','indexOf','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','address','[userReport][peerstatus]','peer','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','util','ioredis','bluebird','../../../config/environment'];(function(_0x206a6c,_0x4418fa){var _0x2899e2=function(_0x197553){while(--_0x197553){_0x206a6c['push'](_0x206a6c['shift']());}};_0x2899e2(++_0x4418fa);}(_0xe53b,0x1a4));var _0xbe53=function(_0x41f453,_0x13e9b7){_0x41f453=_0x41f453-0x0;var _0x52b211=_0xe53b[_0x41f453];return _0x52b211;};'use strict';var _=require(_0xbe53('0x0'));var moment=require(_0xbe53('0x1'));var util=require(_0xbe53('0x2'));var Redis=require(_0xbe53('0x3'));var BPromise=require(_0xbe53('0x4'));var config=require(_0xbe53('0x5'));var logger=require('../../../config/logger')(_0xbe53('0x6'));var ami=require(_0xbe53('0x7'));config[_0xbe53('0x8')]=_[_0xbe53('0x9')](config[_0xbe53('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0xbe53('0xa'))(new Redis(config[_0xbe53('0x8')]));function UserReport(_0x2f349a){this['trunks']=_0x2f349a[_0xbe53('0xb')];this[_0xbe53('0xc')]=_0x2f349a[_0xbe53('0xc')];this[_0xbe53('0xd')]=_0x2f349a[_0xbe53('0xd')];ami['on'](_0xbe53('0xe'),this[_0xbe53('0xf')][_0xbe53('0x10')](this));ami['on'](_0xbe53('0x11'),this[_0xbe53('0xf')][_0xbe53('0x10')](this));ami['on']('devicestatechange',this[_0xbe53('0x12')][_0xbe53('0x10')](this));ami['on'](_0xbe53('0x13'),this[_0xbe53('0x14')][_0xbe53('0x10')](this));return this[_0xbe53('0x15')]();}function showSipRegistrations(){Promise[_0xbe53('0x16')]()[_0xbe53('0x17')](ami[_0xbe53('0x18')]())['catch'](function(_0x5dffe1){logger[_0xbe53('0x19')](_0xbe53('0x1a'),util[_0xbe53('0x1b')](_0x5dffe1,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xbe53('0x16')]()[_0xbe53('0x17')](ami[_0xbe53('0x1c')]())[_0xbe53('0x1d')](function(_0x11d6a1){logger[_0xbe53('0x19')](_0xbe53('0x1e'),util['inspect'](_0x11d6a1,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xbe53('0x16')]()[_0xbe53('0x17')](ami['actionSipPeerStatus']())['catch'](function(_0x59b213){logger[_0xbe53('0x19')]('[userReport][sippeerstatus]',util[_0xbe53('0x1b')](_0x59b213,{'showHidden':![],'depth':null}));});}UserReport[_0xbe53('0x1f')][_0xbe53('0x15')]=function(){setInterval(function(){BPromise['resolve']()[_0xbe53('0x17')](showSipRegistrations())[_0xbe53('0x17')](listDeviceStates())[_0xbe53('0x17')](showPeersStatus());},0x32c8);};UserReport[_0xbe53('0x1f')]['isNotNull']=function(_0x2c4350){return _0x2c4350!==null&&!_[_0xbe53('0x20')](_0x2c4350);};UserReport[_0xbe53('0x1f')][_0xbe53('0x21')]=function(_0x530b6e,_0x1ccc56,_0xda914a){io['to'](_0x530b6e)[_0xbe53('0x21')](_0x1ccc56,_0xda914a);};UserReport['prototype'][_0xbe53('0xf')]=function(_0x40679b){try{if(this['isNotNull'](_0x40679b)){logger[_0xbe53('0x22')](_0xbe53('0x23'),_0x40679b[_0xbe53('0x24')],_0x40679b[_0xbe53('0x25')]);logger[_0xbe53('0x26')](_0xbe53('0x27'),util['inspect'](_0x40679b,{'showHidden':![],'depth':null}));var _0x2c8353=_[_0xbe53('0x28')](this[_0xbe53('0xb')],{'defaultuser':_0x40679b['username']});if(_0x2c8353){_0x40679b[_0xbe53('0x29')]=_0x40679b[_0xbe53('0x25')];_['merge'](_0x2c8353,_[_0xbe53('0x2a')](_0x40679b,['event',_0xbe53('0x2b'),'username','state']));logger[_0xbe53('0x26')]('[userReport][registry]\x20sending\x20trunk:save\x20event:',util[_0xbe53('0x1b')](_0x2c8353,{'showHidden':![],'depth':null}));this['emit'](util[_0xbe53('0x2c')]('trunk:%s',_0x2c8353[_0xbe53('0x2d')]),_0xbe53('0x2e'),_0x2c8353);}}}catch(_0x5e4339){logger[_0xbe53('0x19')](_0xbe53('0x27'),util[_0xbe53('0x1b')](_0x5e4339,{'showHidden':![],'depth':null}));}};UserReport[_0xbe53('0x1f')]['syncDeviceState']=function(_0x574491){try{if(this[_0xbe53('0x2f')](_0x574491)){logger['info'](_0xbe53('0x30'),_0x574491[_0xbe53('0x31')],_0x574491[_0xbe53('0x25')]);logger[_0xbe53('0x26')](_0xbe53('0x32'),util['inspect'](_0x574491,{'showHidden':![],'depth':null}));if(this[_0xbe53('0xc')][_0x574491[_0xbe53('0x31')]]){if(!this[_0xbe53('0xc')][_0x574491['device']][_0xbe53('0x33')]||_0x574491[_0xbe53('0x25')][_0xbe53('0x34')]()=='inuse'){this['agents'][_0x574491[_0xbe53('0x31')]][_0xbe53('0x33')]=![];if(this['agents'][_0x574491[_0xbe53('0x31')]][_0xbe53('0x25')]!==_0x574491[_0xbe53('0x25')]['toLowerCase']()){this['agents'][_0x574491['device']][_0xbe53('0x35')]=_[_0xbe53('0x36')](moment()[_0xbe53('0x2c')]('x'));}this[_0xbe53('0xc')][_0x574491[_0xbe53('0x31')]][_0xbe53('0x25')]=_0x574491[_0xbe53('0x25')][_0xbe53('0x34')]();this['agents'][_0x574491[_0xbe53('0x31')]][_0xbe53('0x37')](_0x574491);}}else if(this[_0xbe53('0xd')][_0x574491[_0xbe53('0x31')]]){if(this['telephones'][_0x574491[_0xbe53('0x31')]][_0xbe53('0x25')]!==_0x574491['state']['toLowerCase']()){this[_0xbe53('0xd')][_0x574491[_0xbe53('0x31')]][_0xbe53('0x35')]=_['toNumber'](moment()[_0xbe53('0x2c')]('x'));}this[_0xbe53('0xd')][_0x574491[_0xbe53('0x31')]]['state']=_0x574491['state'][_0xbe53('0x34')]();logger[_0xbe53('0x26')](_0xbe53('0x38'),util['inspect'](this[_0xbe53('0xd')][_0x574491[_0xbe53('0x31')]],{'showHidden':![],'depth':null}));this[_0xbe53('0x21')](util[_0xbe53('0x2c')]('telephone:%s',this[_0xbe53('0xd')][_0x574491[_0xbe53('0x31')]][_0xbe53('0x2d')]),_0xbe53('0x39'),this[_0xbe53('0xd')][_0x574491[_0xbe53('0x31')]]);}else if(this[_0xbe53('0xb')][_0x574491[_0xbe53('0x31')]]){if(this[_0xbe53('0xb')][_0x574491['device']]['state']!==_0x574491[_0xbe53('0x25')][_0xbe53('0x34')]()){this[_0xbe53('0xb')][_0x574491[_0xbe53('0x31')]][_0xbe53('0x35')]=_[_0xbe53('0x36')](moment()[_0xbe53('0x2c')]('x'));}this[_0xbe53('0xb')][_0x574491['device']]['state']=_0x574491[_0xbe53('0x25')][_0xbe53('0x34')]();logger[_0xbe53('0x26')]('[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:',util[_0xbe53('0x1b')](this[_0xbe53('0xb')][_0x574491[_0xbe53('0x31')]],{'showHidden':![],'depth':null}));this[_0xbe53('0x21')](util[_0xbe53('0x2c')](_0xbe53('0x3a'),this[_0xbe53('0xb')][_0x574491[_0xbe53('0x31')]][_0xbe53('0x2d')]),_0xbe53('0x2e'),this[_0xbe53('0xb')][_0x574491[_0xbe53('0x31')]]);}else if(_['startsWith'](_0x574491[_0xbe53('0x31')],_0xbe53('0x3b'))){var _0x5247db=_0x574491['device'];var _0x289b69=_0x5247db['substring'](_0x5247db['indexOf']('/')+0x1,_0x5247db[_0xbe53('0x3c')]('@'));var _0x1ab0d7=_[_0xbe53('0x28')](this[_0xbe53('0xc')],function(_0x38dbf8){return _0x38dbf8['mobile']==_0x289b69||_0x38dbf8['phone']==_0x289b69||_0x38dbf8[_0xbe53('0x3d')]==_0x289b69;});if(_0x1ab0d7){if(_0x1ab0d7['state']!==_0x574491[_0xbe53('0x25')][_0xbe53('0x34')]()){_0x1ab0d7[_0xbe53('0x35')]=_[_0xbe53('0x36')](moment()[_0xbe53('0x2c')]('x'));}_0x1ab0d7[_0xbe53('0x25')]=_0x574491[_0xbe53('0x25')][_0xbe53('0x34')]();_0x1ab0d7[_0xbe53('0x33')]=!![];_0x1ab0d7[_0xbe53('0x37')](_0x574491);}}}}catch(_0x29d1f2){logger[_0xbe53('0x19')](_0xbe53('0x32'),util[_0xbe53('0x1b')](_0x29d1f2,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0xbe53('0x14')]=function(_0x34e898){try{if(this[_0xbe53('0x2f')](_0x34e898)&&this['isNotNull'](_0x34e898['peerstatus'])){logger['info'](_0xbe53('0x3e'),_0x34e898['peer'],_0x34e898[_0xbe53('0x3f')],_0x34e898['peerstatus']);logger[_0xbe53('0x26')](_0xbe53('0x40'),util[_0xbe53('0x1b')](_0x34e898,{'showHidden':![],'depth':null}));if(this[_0xbe53('0xc')][_0x34e898[_0xbe53('0x41')]]){if(!this[_0xbe53('0xc')][_0x34e898[_0xbe53('0x41')]][_0xbe53('0x33')]||_0x34e898[_0xbe53('0x13')]['toLowerCase']()==_0xbe53('0x42')){this[_0xbe53('0xc')][_0x34e898['peer']]['local']=![];this['agents'][_0x34e898['peer']]['status']=_0x34e898[_0xbe53('0x13')][_0xbe53('0x34')]();this['agents'][_0x34e898[_0xbe53('0x41')]][_0xbe53('0x3f')]=_0x34e898[_0xbe53('0x3f')];this[_0xbe53('0xc')][_0x34e898[_0xbe53('0x41')]][_0xbe53('0x37')](_0x34e898);}}else if(this['telephones'][_0x34e898['peer']]){this[_0xbe53('0xd')][_0x34e898[_0xbe53('0x41')]][_0xbe53('0x43')]=_0x34e898['peerstatus']['toLowerCase']();this[_0xbe53('0xd')][_0x34e898[_0xbe53('0x41')]][_0xbe53('0x3f')]=_0x34e898[_0xbe53('0x3f')];logger[_0xbe53('0x26')](_0xbe53('0x44'),util['inspect'](this[_0xbe53('0xd')][_0x34e898['peer']],{'showHidden':![],'depth':null}));this[_0xbe53('0x21')](util[_0xbe53('0x2c')](_0xbe53('0x45'),this[_0xbe53('0xd')][_0x34e898[_0xbe53('0x41')]][_0xbe53('0x2d')]),'telephone:save',this[_0xbe53('0xd')][_0x34e898[_0xbe53('0x41')]]);}else if(this[_0xbe53('0xb')][_0x34e898[_0xbe53('0x41')]]){this[_0xbe53('0xb')][_0x34e898['peer']]['status']=_0x34e898[_0xbe53('0x13')]['toLowerCase']();this[_0xbe53('0xb')][_0x34e898[_0xbe53('0x41')]][_0xbe53('0x3f')]=_0x34e898['address'];logger[_0xbe53('0x26')](_0xbe53('0x46'),util[_0xbe53('0x1b')](this[_0xbe53('0xb')][_0x34e898[_0xbe53('0x41')]],{'showHidden':![],'depth':null}));this[_0xbe53('0x21')](util[_0xbe53('0x2c')](_0xbe53('0x3a'),this[_0xbe53('0xb')][_0x34e898[_0xbe53('0x41')]][_0xbe53('0x2d')]),_0xbe53('0x2e'),this[_0xbe53('0xb')][_0x34e898[_0xbe53('0x41')]]);}}}catch(_0xe6fa03){logger[_0xbe53('0x19')](_0xbe53('0x40'),util[_0xbe53('0x1b')](_0xe6fa03,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;