Built motion from commit (unavailable).|2.5.23
[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 _0x00c2=['trunk:%s','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','[userReport][devicestatechange]','device','local','toLowerCase','inuse','toNumber','updateStatusRealtime','stateTime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','startsWith','Local','substring','indexOf','phone','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','address','[userReport][peerstatus]','peer','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','ioredis','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','registry','syncDeviceState','bind','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','catch','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','[userReport][registry]','find','stateRegistry','state','merge','omit','event','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','format'];(function(_0x134a4d,_0x2597cf){var _0x113871=function(_0x470877){while(--_0x470877){_0x134a4d['push'](_0x134a4d['shift']());}};_0x113871(++_0x2597cf);}(_0x00c2,0x6a));var _0x200c=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x00c2[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0x200c('0x0'));var moment=require(_0x200c('0x1'));var util=require('util');var Redis=require(_0x200c('0x2'));var BPromise=require('bluebird');var config=require(_0x200c('0x3'));var logger=require(_0x200c('0x4'))('ami');var ami=require(_0x200c('0x5'));config[_0x200c('0x6')]=_[_0x200c('0x7')](config[_0x200c('0x6')],{'host':_0x200c('0x8'),'port':0x18eb});var io=require(_0x200c('0x9'))(new Redis(config[_0x200c('0x6')]));function UserReport(_0x19f1bc){this['trunks']=_0x19f1bc[_0x200c('0xa')];this[_0x200c('0xb')]=_0x19f1bc['agents'];this[_0x200c('0xc')]=_0x19f1bc[_0x200c('0xc')];ami['on'](_0x200c('0xd'),this[_0x200c('0xe')]['bind'](this));ami['on'](_0x200c('0xf'),this[_0x200c('0xe')]['bind'](this));ami['on']('devicestatechange',this[_0x200c('0x10')][_0x200c('0x11')](this));ami['on'](_0x200c('0x12'),this[_0x200c('0x13')][_0x200c('0x11')](this));return this[_0x200c('0x14')]();}function showSipRegistrations(){Promise[_0x200c('0x15')]()[_0x200c('0x16')](ami['actionSipShowRegistry']())['catch'](function(_0x6454e1){logger[_0x200c('0x17')](_0x200c('0x18'),util[_0x200c('0x19')](_0x6454e1,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x200c('0x15')]()[_0x200c('0x16')](ami[_0x200c('0x1a')]())[_0x200c('0x1b')](function(_0x82ea47){logger[_0x200c('0x17')](_0x200c('0x1c'),util[_0x200c('0x19')](_0x82ea47,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x200c('0x15')]()['then'](ami[_0x200c('0x1d')]())[_0x200c('0x1b')](function(_0x4c4ffb){logger['error'](_0x200c('0x1e'),util['inspect'](_0x4c4ffb,{'showHidden':![],'depth':null}));});}UserReport[_0x200c('0x1f')]['syncRealtimeShow']=function(){setInterval(function(){BPromise['resolve']()[_0x200c('0x16')](showSipRegistrations())[_0x200c('0x16')](listDeviceStates())[_0x200c('0x16')](showPeersStatus());},0x32c8);};UserReport[_0x200c('0x1f')][_0x200c('0x20')]=function(_0x5af20f){return _0x5af20f!==null&&!_[_0x200c('0x21')](_0x5af20f);};UserReport[_0x200c('0x1f')]['emit']=function(_0x195e2f,_0x3a13f4,_0x1dab90){io['to'](_0x195e2f)[_0x200c('0x22')](_0x3a13f4,_0x1dab90);};UserReport['prototype'][_0x200c('0xe')]=function(_0x38bc7f){try{if(this[_0x200c('0x20')](_0x38bc7f)){logger[_0x200c('0x23')](_0x200c('0x24'),_0x38bc7f[_0x200c('0x25')],_0x38bc7f['state']);logger['debug'](_0x200c('0x26'),util[_0x200c('0x19')](_0x38bc7f,{'showHidden':![],'depth':null}));var _0x24da53=_[_0x200c('0x27')](this['trunks'],{'registry':_0x38bc7f[_0x200c('0x25')]});if(_0x24da53){_0x38bc7f[_0x200c('0x28')]=_0x38bc7f[_0x200c('0x29')];_[_0x200c('0x2a')](_0x24da53,_[_0x200c('0x2b')](_0x38bc7f,[_0x200c('0x2c'),'actionid',_0x200c('0x25'),_0x200c('0x29')]));logger[_0x200c('0x2d')](_0x200c('0x2e'),util[_0x200c('0x19')](_0x24da53,{'showHidden':![],'depth':null}));this[_0x200c('0x22')](util[_0x200c('0x2f')](_0x200c('0x30'),_0x24da53[_0x200c('0x31')]),_0x200c('0x32'),_0x24da53);}}}catch(_0x22bf23){logger['error']('[userReport][registry]',util[_0x200c('0x19')](_0x22bf23,{'showHidden':![],'depth':null}));}};UserReport[_0x200c('0x1f')]['syncDeviceState']=function(_0x370e07){try{if(this[_0x200c('0x20')](_0x370e07)){logger[_0x200c('0x23')](_0x200c('0x33'),_0x370e07['device'],_0x370e07['state']);logger[_0x200c('0x2d')](_0x200c('0x34'),util[_0x200c('0x19')](_0x370e07,{'showHidden':![],'depth':null}));if(this['agents'][_0x370e07['device']]){if(!this['agents'][_0x370e07[_0x200c('0x35')]][_0x200c('0x36')]||_0x370e07[_0x200c('0x29')][_0x200c('0x37')]()==_0x200c('0x38')){this[_0x200c('0xb')][_0x370e07[_0x200c('0x35')]]['local']=![];if(this[_0x200c('0xb')][_0x370e07[_0x200c('0x35')]][_0x200c('0x29')]!==_0x370e07['state'][_0x200c('0x37')]()){this[_0x200c('0xb')][_0x370e07[_0x200c('0x35')]]['stateTime']=_[_0x200c('0x39')](moment()[_0x200c('0x2f')]('x'));}this[_0x200c('0xb')][_0x370e07['device']][_0x200c('0x29')]=_0x370e07[_0x200c('0x29')][_0x200c('0x37')]();this[_0x200c('0xb')][_0x370e07['device']][_0x200c('0x3a')](_0x370e07);}}else if(this[_0x200c('0xc')][_0x370e07[_0x200c('0x35')]]){if(this['telephones'][_0x370e07['device']][_0x200c('0x29')]!==_0x370e07[_0x200c('0x29')][_0x200c('0x37')]()){this[_0x200c('0xc')][_0x370e07['device']][_0x200c('0x3b')]=_[_0x200c('0x39')](moment()[_0x200c('0x2f')]('x'));}this['telephones'][_0x370e07[_0x200c('0x35')]][_0x200c('0x29')]=_0x370e07['state']['toLowerCase']();logger[_0x200c('0x2d')](_0x200c('0x3c'),util[_0x200c('0x19')](this[_0x200c('0xc')][_0x370e07[_0x200c('0x35')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x200c('0x2f')](_0x200c('0x3d'),this['telephones'][_0x370e07[_0x200c('0x35')]][_0x200c('0x31')]),'telephone:save',this[_0x200c('0xc')][_0x370e07[_0x200c('0x35')]]);}else if(this[_0x200c('0xa')][_0x370e07[_0x200c('0x35')]]){if(this['trunks'][_0x370e07['device']][_0x200c('0x29')]!==_0x370e07[_0x200c('0x29')][_0x200c('0x37')]()){this[_0x200c('0xa')][_0x370e07['device']][_0x200c('0x3b')]=_[_0x200c('0x39')](moment()[_0x200c('0x2f')]('x'));}this[_0x200c('0xa')][_0x370e07[_0x200c('0x35')]][_0x200c('0x29')]=_0x370e07[_0x200c('0x29')]['toLowerCase']();logger[_0x200c('0x2d')]('[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:',util[_0x200c('0x19')](this[_0x200c('0xa')][_0x370e07[_0x200c('0x35')]],{'showHidden':![],'depth':null}));this[_0x200c('0x22')](util[_0x200c('0x2f')](_0x200c('0x30'),this[_0x200c('0xa')][_0x370e07[_0x200c('0x35')]]['name']),_0x200c('0x32'),this[_0x200c('0xa')][_0x370e07[_0x200c('0x35')]]);}else if(_[_0x200c('0x3e')](_0x370e07[_0x200c('0x35')],_0x200c('0x3f'))){var _0x420861=_0x370e07[_0x200c('0x35')];var _0x5636c3=_0x420861[_0x200c('0x40')](_0x420861['indexOf']('/')+0x1,_0x420861[_0x200c('0x41')]('@'));var _0x5e462a=_[_0x200c('0x27')](this[_0x200c('0xb')],function(_0x445b45){return _0x445b45['mobile']==_0x5636c3||_0x445b45[_0x200c('0x42')]==_0x5636c3||_0x445b45[_0x200c('0x43')]==_0x5636c3;});if(_0x5e462a){if(_0x5e462a['state']!==_0x370e07['state'][_0x200c('0x37')]()){_0x5e462a['stateTime']=_['toNumber'](moment()['format']('x'));}_0x5e462a[_0x200c('0x29')]=_0x370e07[_0x200c('0x29')]['toLowerCase']();_0x5e462a[_0x200c('0x36')]=!![];_0x5e462a[_0x200c('0x3a')](_0x370e07);}}}}catch(_0x2846c6){logger[_0x200c('0x17')](_0x200c('0x34'),util[_0x200c('0x19')](_0x2846c6,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x200c('0x13')]=function(_0x5926b0){try{if(this[_0x200c('0x20')](_0x5926b0)&&this[_0x200c('0x20')](_0x5926b0[_0x200c('0x12')])){logger[_0x200c('0x23')](_0x200c('0x44'),_0x5926b0['peer'],_0x5926b0[_0x200c('0x45')],_0x5926b0[_0x200c('0x12')]);logger['debug'](_0x200c('0x46'),util['inspect'](_0x5926b0,{'showHidden':![],'depth':null}));if(this[_0x200c('0xb')][_0x5926b0[_0x200c('0x47')]]){if(!this[_0x200c('0xb')][_0x5926b0[_0x200c('0x47')]][_0x200c('0x36')]||_0x5926b0[_0x200c('0x12')][_0x200c('0x37')]()==_0x200c('0x48')){this[_0x200c('0xb')][_0x5926b0[_0x200c('0x47')]][_0x200c('0x36')]=![];this[_0x200c('0xb')][_0x5926b0[_0x200c('0x47')]][_0x200c('0x49')]=_0x5926b0[_0x200c('0x12')][_0x200c('0x37')]();this['agents'][_0x5926b0[_0x200c('0x47')]][_0x200c('0x45')]=_0x5926b0[_0x200c('0x45')];this[_0x200c('0xb')][_0x5926b0[_0x200c('0x47')]][_0x200c('0x3a')](_0x5926b0);}}else if(this[_0x200c('0xc')][_0x5926b0['peer']]){this['telephones'][_0x5926b0['peer']][_0x200c('0x49')]=_0x5926b0[_0x200c('0x12')]['toLowerCase']();this[_0x200c('0xc')][_0x5926b0[_0x200c('0x47')]][_0x200c('0x45')]=_0x5926b0['address'];logger['debug'](_0x200c('0x4a'),util[_0x200c('0x19')](this[_0x200c('0xc')][_0x5926b0[_0x200c('0x47')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x200c('0x2f')](_0x200c('0x3d'),this[_0x200c('0xc')][_0x5926b0[_0x200c('0x47')]][_0x200c('0x31')]),'telephone:save',this[_0x200c('0xc')][_0x5926b0[_0x200c('0x47')]]);}else if(this[_0x200c('0xa')][_0x5926b0['peer']]){this['trunks'][_0x5926b0[_0x200c('0x47')]][_0x200c('0x49')]=_0x5926b0['peerstatus'][_0x200c('0x37')]();this['trunks'][_0x5926b0[_0x200c('0x47')]]['address']=_0x5926b0[_0x200c('0x45')];logger[_0x200c('0x2d')](_0x200c('0x4b'),util[_0x200c('0x19')](this[_0x200c('0xa')][_0x5926b0[_0x200c('0x47')]],{'showHidden':![],'depth':null}));this[_0x200c('0x22')](util[_0x200c('0x2f')](_0x200c('0x30'),this[_0x200c('0xa')][_0x5926b0[_0x200c('0x47')]][_0x200c('0x31')]),_0x200c('0x32'),this[_0x200c('0xa')][_0x5926b0[_0x200c('0x47')]]);}}}catch(_0x2366c8){logger['error'](_0x200c('0x46'),util[_0x200c('0x19')](_0x2366c8,{'showHidden':![],'depth':null}));}};module[_0x200c('0x4c')]=UserReport;