Built motion from commit 85328c08.|2.5.50
[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 _0x5848=['syncRegistry','bind','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isUndefined','isNotNull','[userReport][registry]\x20registry:%s\x20state:%s','username','state','stateRegistry','merge','omit','event','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','emit','format','trunk:%s','name','[userReport][registry]','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','toLowerCase','inuse','toNumber','updateStatusRealtime','stateTime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:save','startsWith','Local','indexOf','find','mobile','accountcode','info','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','[userReport][peerstatus]','registered','local','address','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','util','ioredis','bluebird','../../../config/environment','ami','../ami','redis','trunks','agents','telephones','registryentry'];(function(_0x1d306d,_0x57d4f0){var _0x1e41c8=function(_0x29a017){while(--_0x29a017){_0x1d306d['push'](_0x1d306d['shift']());}};_0x1e41c8(++_0x57d4f0);}(_0x5848,0xd1));var _0x8584=function(_0x3e9aa0,_0x1d8616){_0x3e9aa0=_0x3e9aa0-0x0;var _0x213eed=_0x5848[_0x3e9aa0];return _0x213eed;};'use strict';var _=require(_0x8584('0x0'));var moment=require(_0x8584('0x1'));var util=require(_0x8584('0x2'));var Redis=require(_0x8584('0x3'));var BPromise=require(_0x8584('0x4'));var config=require(_0x8584('0x5'));var logger=require('../../../config/logger')(_0x8584('0x6'));var ami=require(_0x8584('0x7'));config[_0x8584('0x8')]=_['defaults'](config[_0x8584('0x8')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function UserReport(_0x2c64e8){this[_0x8584('0x9')]=_0x2c64e8[_0x8584('0x9')];this['agents']=_0x2c64e8[_0x8584('0xa')];this[_0x8584('0xb')]=_0x2c64e8[_0x8584('0xb')];ami['on'](_0x8584('0xc'),this[_0x8584('0xd')]['bind'](this));ami['on']('registry',this[_0x8584('0xd')][_0x8584('0xe')](this));ami['on'](_0x8584('0xf'),this[_0x8584('0x10')][_0x8584('0xe')](this));ami['on'](_0x8584('0x11'),this[_0x8584('0x12')]['bind'](this));return this[_0x8584('0x13')]();}function showSipRegistrations(){Promise[_0x8584('0x14')]()[_0x8584('0x15')](ami['actionSipShowRegistry']())[_0x8584('0x16')](function(_0x19060c){logger[_0x8584('0x17')](_0x8584('0x18'),util[_0x8584('0x19')](_0x19060c,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x8584('0x14')]()[_0x8584('0x15')](ami[_0x8584('0x1a')]())['catch'](function(_0xa74f28){logger['error'](_0x8584('0x1b'),util['inspect'](_0xa74f28,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x8584('0x14')]()[_0x8584('0x15')](ami[_0x8584('0x1c')]())[_0x8584('0x16')](function(_0x3f1aa8){logger[_0x8584('0x17')](_0x8584('0x1d'),util[_0x8584('0x19')](_0x3f1aa8,{'showHidden':![],'depth':null}));});}UserReport[_0x8584('0x1e')]['syncRealtimeShow']=function(){setInterval(function(){BPromise[_0x8584('0x14')]()['then'](showSipRegistrations())[_0x8584('0x15')](listDeviceStates())[_0x8584('0x15')](showPeersStatus());},0x32c8);};UserReport[_0x8584('0x1e')]['isNotNull']=function(_0x2fa8dc){return _0x2fa8dc!==null&&!_[_0x8584('0x1f')](_0x2fa8dc);};UserReport[_0x8584('0x1e')]['emit']=function(_0x471ca7,_0x583ba6,_0x2bc209){io['to'](_0x471ca7)['emit'](_0x583ba6,_0x2bc209);};UserReport[_0x8584('0x1e')][_0x8584('0xd')]=function(_0x47d353){try{if(this[_0x8584('0x20')](_0x47d353)){logger['info'](_0x8584('0x21'),_0x47d353[_0x8584('0x22')],_0x47d353[_0x8584('0x23')]);logger['debug']('[userReport][registry]',util[_0x8584('0x19')](_0x47d353,{'showHidden':![],'depth':null}));var _0x298beb=_['find'](this[_0x8584('0x9')],{'defaultuser':_0x47d353[_0x8584('0x22')]});if(_0x298beb){_0x47d353[_0x8584('0x24')]=_0x47d353[_0x8584('0x23')];_[_0x8584('0x25')](_0x298beb,_[_0x8584('0x26')](_0x47d353,[_0x8584('0x27'),'actionid',_0x8584('0x22'),'state']));logger[_0x8584('0x28')](_0x8584('0x29'),util[_0x8584('0x19')](_0x298beb,{'showHidden':![],'depth':null}));this[_0x8584('0x2a')](util[_0x8584('0x2b')](_0x8584('0x2c'),_0x298beb[_0x8584('0x2d')]),'trunk:save',_0x298beb);}}}catch(_0xade1b2){logger[_0x8584('0x17')](_0x8584('0x2e'),util['inspect'](_0xade1b2,{'showHidden':![],'depth':null}));}};UserReport[_0x8584('0x1e')][_0x8584('0x10')]=function(_0x9ad8d5){try{if(this[_0x8584('0x20')](_0x9ad8d5)){logger['info'](_0x8584('0x2f'),_0x9ad8d5[_0x8584('0x30')],_0x9ad8d5[_0x8584('0x23')]);logger[_0x8584('0x28')](_0x8584('0x31'),util['inspect'](_0x9ad8d5,{'showHidden':![],'depth':null}));if(this[_0x8584('0xa')][_0x9ad8d5['device']]){if(!this[_0x8584('0xa')][_0x9ad8d5[_0x8584('0x30')]]['local']||_0x9ad8d5['state'][_0x8584('0x32')]()==_0x8584('0x33')){this['agents'][_0x9ad8d5[_0x8584('0x30')]]['local']=![];if(this['agents'][_0x9ad8d5[_0x8584('0x30')]][_0x8584('0x23')]!==_0x9ad8d5['state']['toLowerCase']()){this[_0x8584('0xa')][_0x9ad8d5[_0x8584('0x30')]]['stateTime']=_[_0x8584('0x34')](moment()[_0x8584('0x2b')]('x'));}this[_0x8584('0xa')][_0x9ad8d5[_0x8584('0x30')]]['state']=_0x9ad8d5['state'][_0x8584('0x32')]();this[_0x8584('0xa')][_0x9ad8d5[_0x8584('0x30')]][_0x8584('0x35')](_0x9ad8d5);}}else if(this[_0x8584('0xb')][_0x9ad8d5['device']]){if(this[_0x8584('0xb')][_0x9ad8d5[_0x8584('0x30')]]['state']!==_0x9ad8d5[_0x8584('0x23')][_0x8584('0x32')]()){this['telephones'][_0x9ad8d5[_0x8584('0x30')]][_0x8584('0x36')]=_[_0x8584('0x34')](moment()['format']('x'));}this[_0x8584('0xb')][_0x9ad8d5['device']][_0x8584('0x23')]=_0x9ad8d5[_0x8584('0x23')]['toLowerCase']();logger[_0x8584('0x28')](_0x8584('0x37'),util[_0x8584('0x19')](this[_0x8584('0xb')][_0x9ad8d5['device']],{'showHidden':![],'depth':null}));this[_0x8584('0x2a')](util[_0x8584('0x2b')]('telephone:%s',this[_0x8584('0xb')][_0x9ad8d5[_0x8584('0x30')]]['name']),'telephone:save',this[_0x8584('0xb')][_0x9ad8d5[_0x8584('0x30')]]);}else if(this['trunks'][_0x9ad8d5[_0x8584('0x30')]]){if(this['trunks'][_0x9ad8d5[_0x8584('0x30')]][_0x8584('0x23')]!==_0x9ad8d5['state'][_0x8584('0x32')]()){this['trunks'][_0x9ad8d5[_0x8584('0x30')]]['stateTime']=_[_0x8584('0x34')](moment()['format']('x'));}this[_0x8584('0x9')][_0x9ad8d5[_0x8584('0x30')]][_0x8584('0x23')]=_0x9ad8d5[_0x8584('0x23')][_0x8584('0x32')]();logger[_0x8584('0x28')](_0x8584('0x38'),util[_0x8584('0x19')](this['trunks'][_0x9ad8d5[_0x8584('0x30')]],{'showHidden':![],'depth':null}));this[_0x8584('0x2a')](util[_0x8584('0x2b')](_0x8584('0x2c'),this[_0x8584('0x9')][_0x9ad8d5[_0x8584('0x30')]][_0x8584('0x2d')]),_0x8584('0x39'),this[_0x8584('0x9')][_0x9ad8d5[_0x8584('0x30')]]);}else if(_[_0x8584('0x3a')](_0x9ad8d5[_0x8584('0x30')],_0x8584('0x3b'))){var _0x1db74d=_0x9ad8d5['device'];var _0x5bb862=_0x1db74d['substring'](_0x1db74d[_0x8584('0x3c')]('/')+0x1,_0x1db74d['indexOf']('@'));var _0x3abce0=_[_0x8584('0x3d')](this[_0x8584('0xa')],function(_0x23426f){return _0x23426f[_0x8584('0x3e')]==_0x5bb862||_0x23426f['phone']==_0x5bb862||_0x23426f[_0x8584('0x3f')]==_0x5bb862;});if(_0x3abce0){if(_0x3abce0['state']!==_0x9ad8d5['state']['toLowerCase']()){_0x3abce0[_0x8584('0x36')]=_[_0x8584('0x34')](moment()['format']('x'));}_0x3abce0[_0x8584('0x23')]=_0x9ad8d5[_0x8584('0x23')][_0x8584('0x32')]();_0x3abce0['local']=!![];_0x3abce0['updateStatusRealtime'](_0x9ad8d5);}}}}catch(_0x34a018){logger[_0x8584('0x17')](_0x8584('0x31'),util[_0x8584('0x19')](_0x34a018,{'showHidden':![],'depth':null}));}};UserReport[_0x8584('0x1e')][_0x8584('0x12')]=function(_0x223a6d){try{if(this[_0x8584('0x20')](_0x223a6d)&&this[_0x8584('0x20')](_0x223a6d[_0x8584('0x11')])){logger[_0x8584('0x40')](_0x8584('0x41'),_0x223a6d[_0x8584('0x42')],_0x223a6d['address'],_0x223a6d['peerstatus']);logger[_0x8584('0x28')](_0x8584('0x43'),util[_0x8584('0x19')](_0x223a6d,{'showHidden':![],'depth':null}));if(this['agents'][_0x223a6d[_0x8584('0x42')]]){if(!this[_0x8584('0xa')][_0x223a6d[_0x8584('0x42')]]['local']||_0x223a6d['peerstatus'][_0x8584('0x32')]()==_0x8584('0x44')){this[_0x8584('0xa')][_0x223a6d[_0x8584('0x42')]][_0x8584('0x45')]=![];this[_0x8584('0xa')][_0x223a6d[_0x8584('0x42')]]['status']=_0x223a6d['peerstatus'][_0x8584('0x32')]();this[_0x8584('0xa')][_0x223a6d[_0x8584('0x42')]][_0x8584('0x46')]=_0x223a6d[_0x8584('0x46')];this[_0x8584('0xa')][_0x223a6d[_0x8584('0x42')]][_0x8584('0x35')](_0x223a6d);}}else if(this[_0x8584('0xb')][_0x223a6d[_0x8584('0x42')]]){this[_0x8584('0xb')][_0x223a6d[_0x8584('0x42')]]['status']=_0x223a6d[_0x8584('0x11')]['toLowerCase']();this[_0x8584('0xb')][_0x223a6d[_0x8584('0x42')]][_0x8584('0x46')]=_0x223a6d[_0x8584('0x46')];logger[_0x8584('0x28')](_0x8584('0x47'),util['inspect'](this[_0x8584('0xb')][_0x223a6d['peer']],{'showHidden':![],'depth':null}));this['emit'](util[_0x8584('0x2b')]('telephone:%s',this[_0x8584('0xb')][_0x223a6d[_0x8584('0x42')]][_0x8584('0x2d')]),'telephone:save',this[_0x8584('0xb')][_0x223a6d[_0x8584('0x42')]]);}else if(this['trunks'][_0x223a6d[_0x8584('0x42')]]){this[_0x8584('0x9')][_0x223a6d[_0x8584('0x42')]]['status']=_0x223a6d[_0x8584('0x11')][_0x8584('0x32')]();this['trunks'][_0x223a6d[_0x8584('0x42')]]['address']=_0x223a6d[_0x8584('0x46')];logger[_0x8584('0x28')](_0x8584('0x48'),util[_0x8584('0x19')](this[_0x8584('0x9')][_0x223a6d['peer']],{'showHidden':![],'depth':null}));this[_0x8584('0x2a')](util[_0x8584('0x2b')]('trunk:%s',this[_0x8584('0x9')][_0x223a6d[_0x8584('0x42')]][_0x8584('0x2d')]),_0x8584('0x39'),this['trunks'][_0x223a6d[_0x8584('0x42')]]);}}}catch(_0x342c67){logger[_0x8584('0x17')](_0x8584('0x43'),util[_0x8584('0x19')](_0x342c67,{'showHidden':![],'depth':null}));}};module[_0x8584('0x49')]=UserReport;