41601c72ef0f4a5a50b8ecdad2020791dd324b4b
[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 _0xd1a1=['bind','registry','devicestatechange','syncDeviceState','peerstatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','[userReport][sipshowregistry]','inspect','actionDeviceStateList','error','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','event','actionid','format','trunk:%s','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','toNumber','updateStatusRealtime','stateTime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','accountcode','syncPeerStatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','address','peer','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','[userReport][peerstatus]','exports','bluebird','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry'];(function(_0x202da7,_0xa7019){var _0x28960a=function(_0x3a30b5){while(--_0x3a30b5){_0x202da7['push'](_0x202da7['shift']());}};_0x28960a(++_0xa7019);}(_0xd1a1,0x1a9));var _0x1d1a=function(_0x1c2685,_0x32f9d8){_0x1c2685=_0x1c2685-0x0;var _0x1579da=_0xd1a1[_0x1c2685];return _0x1579da;};'use strict';var _=require('lodash');var moment=require('moment');var util=require('util');var Redis=require('ioredis');var BPromise=require(_0x1d1a('0x0'));var config=require(_0x1d1a('0x1'));var logger=require(_0x1d1a('0x2'))('ami');var ami=require(_0x1d1a('0x3'));config[_0x1d1a('0x4')]=_[_0x1d1a('0x5')](config['redis'],{'host':_0x1d1a('0x6'),'port':0x18eb});var io=require(_0x1d1a('0x7'))(new Redis(config[_0x1d1a('0x4')]));function UserReport(_0x2497b2){this[_0x1d1a('0x8')]=_0x2497b2[_0x1d1a('0x8')];this['agents']=_0x2497b2[_0x1d1a('0x9')];this['telephones']=_0x2497b2[_0x1d1a('0xa')];ami['on'](_0x1d1a('0xb'),this[_0x1d1a('0xc')][_0x1d1a('0xd')](this));ami['on'](_0x1d1a('0xe'),this[_0x1d1a('0xc')]['bind'](this));ami['on'](_0x1d1a('0xf'),this[_0x1d1a('0x10')][_0x1d1a('0xd')](this));ami['on'](_0x1d1a('0x11'),this['syncPeerStatus'][_0x1d1a('0xd')](this));return this[_0x1d1a('0x12')]();}function showSipRegistrations(){Promise[_0x1d1a('0x13')]()[_0x1d1a('0x14')](ami[_0x1d1a('0x15')]())[_0x1d1a('0x16')](function(_0x2977f7){logger['error'](_0x1d1a('0x17'),util[_0x1d1a('0x18')](_0x2977f7,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x1d1a('0x13')]()['then'](ami[_0x1d1a('0x19')]())[_0x1d1a('0x16')](function(_0xfbedd1){logger[_0x1d1a('0x1a')]('[userReport][devicestatelist]',util[_0x1d1a('0x18')](_0xfbedd1,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()['then'](ami[_0x1d1a('0x1b')]())['catch'](function(_0x16bd0f){logger['error'](_0x1d1a('0x1c'),util[_0x1d1a('0x18')](_0x16bd0f,{'showHidden':![],'depth':null}));});}UserReport[_0x1d1a('0x1d')][_0x1d1a('0x12')]=function(){setInterval(function(){BPromise['resolve']()[_0x1d1a('0x14')](showSipRegistrations())[_0x1d1a('0x14')](listDeviceStates())[_0x1d1a('0x14')](showPeersStatus());},0x32c8);};UserReport[_0x1d1a('0x1d')][_0x1d1a('0x1e')]=function(_0x502e10){return _0x502e10!==null&&!_[_0x1d1a('0x1f')](_0x502e10);};UserReport[_0x1d1a('0x1d')][_0x1d1a('0x20')]=function(_0x600951,_0x11c12a,_0x50e054){io['to'](_0x600951)[_0x1d1a('0x20')](_0x11c12a,_0x50e054);};UserReport['prototype'][_0x1d1a('0xc')]=function(_0x4c7fdd){try{if(this['isNotNull'](_0x4c7fdd)){logger[_0x1d1a('0x21')](_0x1d1a('0x22'),_0x4c7fdd[_0x1d1a('0x23')],_0x4c7fdd[_0x1d1a('0x24')]);logger[_0x1d1a('0x25')](_0x1d1a('0x26'),util[_0x1d1a('0x18')](_0x4c7fdd,{'showHidden':![],'depth':null}));var _0x4c6e41=_[_0x1d1a('0x27')](this[_0x1d1a('0x8')],{'defaultuser':_0x4c7fdd[_0x1d1a('0x23')]});if(_0x4c6e41){_0x4c7fdd[_0x1d1a('0x28')]=_0x4c7fdd[_0x1d1a('0x24')];_['merge'](_0x4c6e41,_['omit'](_0x4c7fdd,[_0x1d1a('0x29'),_0x1d1a('0x2a'),_0x1d1a('0x23'),'state']));logger['debug']('[userReport][registry]\x20sending\x20trunk:save\x20event:',util['inspect'](_0x4c6e41,{'showHidden':![],'depth':null}));this[_0x1d1a('0x20')](util[_0x1d1a('0x2b')](_0x1d1a('0x2c'),_0x4c6e41[_0x1d1a('0x2d')]),_0x1d1a('0x2e'),_0x4c6e41);}}}catch(_0x5be26a){logger[_0x1d1a('0x1a')](_0x1d1a('0x26'),util[_0x1d1a('0x18')](_0x5be26a,{'showHidden':![],'depth':null}));}};UserReport[_0x1d1a('0x1d')][_0x1d1a('0x10')]=function(_0x19d7a3){try{if(this[_0x1d1a('0x1e')](_0x19d7a3)){logger['info'](_0x1d1a('0x2f'),_0x19d7a3[_0x1d1a('0x30')],_0x19d7a3[_0x1d1a('0x24')]);logger[_0x1d1a('0x25')](_0x1d1a('0x31'),util[_0x1d1a('0x18')](_0x19d7a3,{'showHidden':![],'depth':null}));if(this['agents'][_0x19d7a3['device']]){if(!this[_0x1d1a('0x9')][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x32')]||_0x19d7a3[_0x1d1a('0x24')][_0x1d1a('0x33')]()=='inuse'){this[_0x1d1a('0x9')][_0x19d7a3['device']]['local']=![];if(this['agents'][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x24')]!==_0x19d7a3[_0x1d1a('0x24')][_0x1d1a('0x33')]()){this['agents'][_0x19d7a3[_0x1d1a('0x30')]]['stateTime']=_[_0x1d1a('0x34')](moment()[_0x1d1a('0x2b')]('x'));}this[_0x1d1a('0x9')][_0x19d7a3[_0x1d1a('0x30')]]['state']=_0x19d7a3[_0x1d1a('0x24')]['toLowerCase']();this[_0x1d1a('0x9')][_0x19d7a3['device']][_0x1d1a('0x35')](_0x19d7a3);}}else if(this[_0x1d1a('0xa')][_0x19d7a3[_0x1d1a('0x30')]]){if(this[_0x1d1a('0xa')][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x24')]!==_0x19d7a3['state']['toLowerCase']()){this[_0x1d1a('0xa')][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x36')]=_[_0x1d1a('0x34')](moment()['format']('x'));}this[_0x1d1a('0xa')][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x24')]=_0x19d7a3[_0x1d1a('0x24')]['toLowerCase']();logger[_0x1d1a('0x25')](_0x1d1a('0x37'),util['inspect'](this[_0x1d1a('0xa')][_0x19d7a3[_0x1d1a('0x30')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x1d1a('0x2b')](_0x1d1a('0x38'),this[_0x1d1a('0xa')][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x2d')]),_0x1d1a('0x39'),this[_0x1d1a('0xa')][_0x19d7a3['device']]);}else if(this[_0x1d1a('0x8')][_0x19d7a3['device']]){if(this[_0x1d1a('0x8')][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x24')]!==_0x19d7a3[_0x1d1a('0x24')]['toLowerCase']()){this[_0x1d1a('0x8')][_0x19d7a3['device']][_0x1d1a('0x36')]=_['toNumber'](moment()[_0x1d1a('0x2b')]('x'));}this[_0x1d1a('0x8')][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x24')]=_0x19d7a3[_0x1d1a('0x24')][_0x1d1a('0x33')]();logger[_0x1d1a('0x25')](_0x1d1a('0x3a'),util[_0x1d1a('0x18')](this[_0x1d1a('0x8')][_0x19d7a3[_0x1d1a('0x30')]],{'showHidden':![],'depth':null}));this[_0x1d1a('0x20')](util['format']('trunk:%s',this[_0x1d1a('0x8')][_0x19d7a3[_0x1d1a('0x30')]][_0x1d1a('0x2d')]),_0x1d1a('0x2e'),this[_0x1d1a('0x8')][_0x19d7a3[_0x1d1a('0x30')]]);}else if(_[_0x1d1a('0x3b')](_0x19d7a3[_0x1d1a('0x30')],_0x1d1a('0x3c'))){var _0x516b89=_0x19d7a3[_0x1d1a('0x30')];var _0x25b93b=_0x516b89['substring'](_0x516b89[_0x1d1a('0x3d')]('/')+0x1,_0x516b89[_0x1d1a('0x3d')]('@'));var _0x4ead1d=_[_0x1d1a('0x27')](this[_0x1d1a('0x9')],function(_0x2e9ea0){return _0x2e9ea0['mobile']==_0x25b93b||_0x2e9ea0['phone']==_0x25b93b||_0x2e9ea0[_0x1d1a('0x3e')]==_0x25b93b;});if(_0x4ead1d){if(_0x4ead1d[_0x1d1a('0x24')]!==_0x19d7a3[_0x1d1a('0x24')]['toLowerCase']()){_0x4ead1d[_0x1d1a('0x36')]=_[_0x1d1a('0x34')](moment()[_0x1d1a('0x2b')]('x'));}_0x4ead1d[_0x1d1a('0x24')]=_0x19d7a3['state'][_0x1d1a('0x33')]();_0x4ead1d[_0x1d1a('0x32')]=!![];_0x4ead1d[_0x1d1a('0x35')](_0x19d7a3);}}}}catch(_0x51ec54){logger['error'](_0x1d1a('0x31'),util[_0x1d1a('0x18')](_0x51ec54,{'showHidden':![],'depth':null}));}};UserReport[_0x1d1a('0x1d')][_0x1d1a('0x3f')]=function(_0x4ad319){try{if(this[_0x1d1a('0x1e')](_0x4ad319)&&this['isNotNull'](_0x4ad319['peerstatus'])){logger['info'](_0x1d1a('0x40'),_0x4ad319['peer'],_0x4ad319[_0x1d1a('0x41')],_0x4ad319[_0x1d1a('0x11')]);logger['debug']('[userReport][peerstatus]',util['inspect'](_0x4ad319,{'showHidden':![],'depth':null}));if(this[_0x1d1a('0x9')][_0x4ad319[_0x1d1a('0x42')]]){if(!this[_0x1d1a('0x9')][_0x4ad319[_0x1d1a('0x42')]][_0x1d1a('0x32')]||_0x4ad319[_0x1d1a('0x11')][_0x1d1a('0x33')]()==_0x1d1a('0x43')){this['agents'][_0x4ad319[_0x1d1a('0x42')]][_0x1d1a('0x32')]=![];this['agents'][_0x4ad319['peer']][_0x1d1a('0x44')]=_0x4ad319[_0x1d1a('0x11')]['toLowerCase']();this[_0x1d1a('0x9')][_0x4ad319['peer']][_0x1d1a('0x41')]=_0x4ad319[_0x1d1a('0x41')];this[_0x1d1a('0x9')][_0x4ad319[_0x1d1a('0x42')]][_0x1d1a('0x35')](_0x4ad319);}}else if(this[_0x1d1a('0xa')][_0x4ad319[_0x1d1a('0x42')]]){this['telephones'][_0x4ad319[_0x1d1a('0x42')]][_0x1d1a('0x44')]=_0x4ad319['peerstatus'][_0x1d1a('0x33')]();this[_0x1d1a('0xa')][_0x4ad319[_0x1d1a('0x42')]][_0x1d1a('0x41')]=_0x4ad319[_0x1d1a('0x41')];logger[_0x1d1a('0x25')](_0x1d1a('0x45'),util[_0x1d1a('0x18')](this[_0x1d1a('0xa')][_0x4ad319[_0x1d1a('0x42')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x1d1a('0x2b')](_0x1d1a('0x38'),this[_0x1d1a('0xa')][_0x4ad319[_0x1d1a('0x42')]][_0x1d1a('0x2d')]),'telephone:save',this[_0x1d1a('0xa')][_0x4ad319[_0x1d1a('0x42')]]);}else if(this[_0x1d1a('0x8')][_0x4ad319[_0x1d1a('0x42')]]){this['trunks'][_0x4ad319['peer']][_0x1d1a('0x44')]=_0x4ad319[_0x1d1a('0x11')][_0x1d1a('0x33')]();this[_0x1d1a('0x8')][_0x4ad319[_0x1d1a('0x42')]][_0x1d1a('0x41')]=_0x4ad319['address'];logger[_0x1d1a('0x25')](_0x1d1a('0x46'),util[_0x1d1a('0x18')](this[_0x1d1a('0x8')][_0x4ad319['peer']],{'showHidden':![],'depth':null}));this[_0x1d1a('0x20')](util[_0x1d1a('0x2b')]('trunk:%s',this[_0x1d1a('0x8')][_0x4ad319['peer']]['name']),'trunk:save',this['trunks'][_0x4ad319[_0x1d1a('0x42')]]);}}}catch(_0x40bc3e){logger[_0x1d1a('0x1a')](_0x1d1a('0x47'),util['inspect'](_0x40bc3e,{'showHidden':![],'depth':null}));}};module[_0x1d1a('0x48')]=UserReport;