fbbeacab20afa2f72989540c3e3d73b0c48f37c1
[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 _0x93d2=['prototype','isNotNull','isUndefined','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','[userReport][registry]','find','stateRegistry','omit','event','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','trunk:%s','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime','format','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','emit','startsWith','Local','substring','indexOf','phone','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','[userReport][peerstatus]','status','address','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','util','ioredis','bluebird','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','trunks','agents','telephones','registryentry','syncRegistry','bind','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','resolve','actionSipPeerStatus','[userReport][sippeerstatus]','syncRealtimeShow'];(function(_0x2b62c0,_0x4cb44d){var _0x272859=function(_0x124a51){while(--_0x124a51){_0x2b62c0['push'](_0x2b62c0['shift']());}};_0x272859(++_0x4cb44d);}(_0x93d2,0xc4));var _0x293d=function(_0x399bfc,_0x36d4b0){_0x399bfc=_0x399bfc-0x0;var _0x36846d=_0x93d2[_0x399bfc];return _0x36846d;};'use strict';var _=require(_0x293d('0x0'));var moment=require(_0x293d('0x1'));var util=require(_0x293d('0x2'));var Redis=require(_0x293d('0x3'));var BPromise=require(_0x293d('0x4'));var config=require(_0x293d('0x5'));var logger=require(_0x293d('0x6'))(_0x293d('0x7'));var ami=require(_0x293d('0x8'));config[_0x293d('0x9')]=_[_0x293d('0xa')](config[_0x293d('0x9')],{'host':_0x293d('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x293d('0x9')]));function UserReport(_0x347bdd){this['trunks']=_0x347bdd[_0x293d('0xc')];this[_0x293d('0xd')]=_0x347bdd['agents'];this[_0x293d('0xe')]=_0x347bdd[_0x293d('0xe')];ami['on'](_0x293d('0xf'),this[_0x293d('0x10')][_0x293d('0x11')](this));ami['on']('registry',this[_0x293d('0x10')][_0x293d('0x11')](this));ami['on'](_0x293d('0x12'),this[_0x293d('0x13')]['bind'](this));ami['on'](_0x293d('0x14'),this[_0x293d('0x15')][_0x293d('0x11')](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise['resolve']()[_0x293d('0x16')](ami[_0x293d('0x17')]())[_0x293d('0x18')](function(_0xced9d4){logger[_0x293d('0x19')](_0x293d('0x1a'),util[_0x293d('0x1b')](_0xced9d4,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()[_0x293d('0x16')](ami['actionDeviceStateList']())[_0x293d('0x18')](function(_0x4213be){logger['error']('[userReport][devicestatelist]',util[_0x293d('0x1b')](_0x4213be,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x293d('0x1c')]()[_0x293d('0x16')](ami[_0x293d('0x1d')]())[_0x293d('0x18')](function(_0x134414){logger[_0x293d('0x19')](_0x293d('0x1e'),util[_0x293d('0x1b')](_0x134414,{'showHidden':![],'depth':null}));});}UserReport['prototype'][_0x293d('0x1f')]=function(){setInterval(function(){BPromise[_0x293d('0x1c')]()[_0x293d('0x16')](showSipRegistrations())[_0x293d('0x16')](listDeviceStates())[_0x293d('0x16')](showPeersStatus());},0x32c8);};UserReport[_0x293d('0x20')][_0x293d('0x21')]=function(_0x20e29b){return _0x20e29b!==null&&!_[_0x293d('0x22')](_0x20e29b);};UserReport[_0x293d('0x20')]['emit']=function(_0x551a04,_0x5b1a02,_0x4c1368){io['to'](_0x551a04)['emit'](_0x5b1a02,_0x4c1368);};UserReport[_0x293d('0x20')][_0x293d('0x10')]=function(_0x4f4c23){try{if(this[_0x293d('0x21')](_0x4f4c23)){logger[_0x293d('0x23')](_0x293d('0x24'),_0x4f4c23[_0x293d('0x25')],_0x4f4c23[_0x293d('0x26')]);logger['debug'](_0x293d('0x27'),util['inspect'](_0x4f4c23,{'showHidden':![],'depth':null}));var _0x44a9a2=_[_0x293d('0x28')](this[_0x293d('0xc')],{'defaultuser':_0x4f4c23[_0x293d('0x25')]});if(_0x44a9a2){_0x4f4c23[_0x293d('0x29')]=_0x4f4c23['state'];_['merge'](_0x44a9a2,_[_0x293d('0x2a')](_0x4f4c23,[_0x293d('0x2b'),'actionid','username',_0x293d('0x26')]));logger[_0x293d('0x2c')](_0x293d('0x2d'),util[_0x293d('0x1b')](_0x44a9a2,{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x293d('0x2e'),_0x44a9a2[_0x293d('0x2f')]),_0x293d('0x30'),_0x44a9a2);}}}catch(_0x5469e3){logger[_0x293d('0x19')](_0x293d('0x27'),util[_0x293d('0x1b')](_0x5469e3,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncDeviceState']=function(_0x381bac){try{if(this[_0x293d('0x21')](_0x381bac)){logger['info'](_0x293d('0x31'),_0x381bac[_0x293d('0x32')],_0x381bac[_0x293d('0x26')]);logger[_0x293d('0x2c')](_0x293d('0x33'),util['inspect'](_0x381bac,{'showHidden':![],'depth':null}));if(this[_0x293d('0xd')][_0x381bac[_0x293d('0x32')]]){if(!this[_0x293d('0xd')][_0x381bac[_0x293d('0x32')]][_0x293d('0x34')]||_0x381bac['state'][_0x293d('0x35')]()==_0x293d('0x36')){this[_0x293d('0xd')][_0x381bac['device']][_0x293d('0x34')]=![];if(this[_0x293d('0xd')][_0x381bac[_0x293d('0x32')]][_0x293d('0x26')]!==_0x381bac[_0x293d('0x26')]['toLowerCase']()){this['agents'][_0x381bac[_0x293d('0x32')]][_0x293d('0x37')]=_[_0x293d('0x38')](moment()['format']('x'));}this['agents'][_0x381bac['device']][_0x293d('0x26')]=_0x381bac[_0x293d('0x26')][_0x293d('0x35')]();this[_0x293d('0xd')][_0x381bac['device']][_0x293d('0x39')](_0x381bac);}}else if(this[_0x293d('0xe')][_0x381bac[_0x293d('0x32')]]){if(this[_0x293d('0xe')][_0x381bac[_0x293d('0x32')]][_0x293d('0x26')]!==_0x381bac[_0x293d('0x26')]['toLowerCase']()){this[_0x293d('0xe')][_0x381bac[_0x293d('0x32')]][_0x293d('0x37')]=_['toNumber'](moment()[_0x293d('0x3a')]('x'));}this['telephones'][_0x381bac[_0x293d('0x32')]][_0x293d('0x26')]=_0x381bac['state'][_0x293d('0x35')]();logger[_0x293d('0x2c')](_0x293d('0x3b'),util[_0x293d('0x1b')](this[_0x293d('0xe')][_0x381bac['device']],{'showHidden':![],'depth':null}));this['emit'](util[_0x293d('0x3a')](_0x293d('0x3c'),this[_0x293d('0xe')][_0x381bac['device']]['name']),_0x293d('0x3d'),this[_0x293d('0xe')][_0x381bac[_0x293d('0x32')]]);}else if(this['trunks'][_0x381bac[_0x293d('0x32')]]){if(this['trunks'][_0x381bac[_0x293d('0x32')]][_0x293d('0x26')]!==_0x381bac[_0x293d('0x26')][_0x293d('0x35')]()){this['trunks'][_0x381bac[_0x293d('0x32')]][_0x293d('0x37')]=_[_0x293d('0x38')](moment()[_0x293d('0x3a')]('x'));}this[_0x293d('0xc')][_0x381bac[_0x293d('0x32')]][_0x293d('0x26')]=_0x381bac[_0x293d('0x26')]['toLowerCase']();logger[_0x293d('0x2c')](_0x293d('0x3e'),util[_0x293d('0x1b')](this[_0x293d('0xc')][_0x381bac[_0x293d('0x32')]],{'showHidden':![],'depth':null}));this[_0x293d('0x3f')](util['format'](_0x293d('0x2e'),this['trunks'][_0x381bac[_0x293d('0x32')]][_0x293d('0x2f')]),_0x293d('0x30'),this[_0x293d('0xc')][_0x381bac[_0x293d('0x32')]]);}else if(_[_0x293d('0x40')](_0x381bac[_0x293d('0x32')],_0x293d('0x41'))){var _0x2aa0b2=_0x381bac[_0x293d('0x32')];var _0x2d26c0=_0x2aa0b2[_0x293d('0x42')](_0x2aa0b2[_0x293d('0x43')]('/')+0x1,_0x2aa0b2[_0x293d('0x43')]('@'));var _0x50021d=_[_0x293d('0x28')](this['agents'],function(_0x4b62a1){return _0x4b62a1['mobile']==_0x2d26c0||_0x4b62a1[_0x293d('0x44')]==_0x2d26c0||_0x4b62a1['accountcode']==_0x2d26c0;});if(_0x50021d){if(_0x50021d[_0x293d('0x26')]!==_0x381bac[_0x293d('0x26')][_0x293d('0x35')]()){_0x50021d[_0x293d('0x37')]=_[_0x293d('0x38')](moment()[_0x293d('0x3a')]('x'));}_0x50021d[_0x293d('0x26')]=_0x381bac[_0x293d('0x26')][_0x293d('0x35')]();_0x50021d[_0x293d('0x34')]=!![];_0x50021d[_0x293d('0x39')](_0x381bac);}}}}catch(_0x11d002){logger[_0x293d('0x19')](_0x293d('0x33'),util['inspect'](_0x11d002,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncPeerStatus']=function(_0x4d5043){try{if(this['isNotNull'](_0x4d5043)&&this[_0x293d('0x21')](_0x4d5043[_0x293d('0x14')])){logger['info'](_0x293d('0x45'),_0x4d5043[_0x293d('0x46')],_0x4d5043['address'],_0x4d5043[_0x293d('0x14')]);logger[_0x293d('0x2c')](_0x293d('0x47'),util[_0x293d('0x1b')](_0x4d5043,{'showHidden':![],'depth':null}));if(this['agents'][_0x4d5043[_0x293d('0x46')]]){if(!this[_0x293d('0xd')][_0x4d5043[_0x293d('0x46')]][_0x293d('0x34')]||_0x4d5043['peerstatus']['toLowerCase']()=='registered'){this['agents'][_0x4d5043[_0x293d('0x46')]]['local']=![];this[_0x293d('0xd')][_0x4d5043['peer']][_0x293d('0x48')]=_0x4d5043[_0x293d('0x14')][_0x293d('0x35')]();this[_0x293d('0xd')][_0x4d5043[_0x293d('0x46')]]['address']=_0x4d5043['address'];this[_0x293d('0xd')][_0x4d5043[_0x293d('0x46')]][_0x293d('0x39')](_0x4d5043);}}else if(this['telephones'][_0x4d5043[_0x293d('0x46')]]){this['telephones'][_0x4d5043[_0x293d('0x46')]]['status']=_0x4d5043[_0x293d('0x14')]['toLowerCase']();this[_0x293d('0xe')][_0x4d5043[_0x293d('0x46')]][_0x293d('0x49')]=_0x4d5043[_0x293d('0x49')];logger[_0x293d('0x2c')]('[userReport][peerstatus]\x20sending\x20telephone:save\x20event:',util[_0x293d('0x1b')](this['telephones'][_0x4d5043[_0x293d('0x46')]],{'showHidden':![],'depth':null}));this[_0x293d('0x3f')](util[_0x293d('0x3a')](_0x293d('0x3c'),this[_0x293d('0xe')][_0x4d5043[_0x293d('0x46')]][_0x293d('0x2f')]),'telephone:save',this['telephones'][_0x4d5043[_0x293d('0x46')]]);}else if(this[_0x293d('0xc')][_0x4d5043[_0x293d('0x46')]]){this['trunks'][_0x4d5043[_0x293d('0x46')]][_0x293d('0x48')]=_0x4d5043['peerstatus'][_0x293d('0x35')]();this[_0x293d('0xc')][_0x4d5043[_0x293d('0x46')]]['address']=_0x4d5043[_0x293d('0x49')];logger['debug'](_0x293d('0x4a'),util['inspect'](this[_0x293d('0xc')][_0x4d5043[_0x293d('0x46')]],{'showHidden':![],'depth':null}));this[_0x293d('0x3f')](util[_0x293d('0x3a')](_0x293d('0x2e'),this[_0x293d('0xc')][_0x4d5043[_0x293d('0x46')]][_0x293d('0x2f')]),_0x293d('0x30'),this[_0x293d('0xc')][_0x4d5043[_0x293d('0x46')]]);}}}catch(_0x35158c){logger[_0x293d('0x19')](_0x293d('0x47'),util[_0x293d('0x1b')](_0x35158c,{'showHidden':![],'depth':null}));}};module[_0x293d('0x4b')]=UserReport;