Built motion from commit (unavailable).|2.5.13
[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 _0x1477=['stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:%s','startsWith','substring','indexOf','mobile','phone','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','util','bluebird','../../../config/environment','ami','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','find','stateRegistry','merge','omit','event','actionid','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','name','trunk:save','[userReport][registry]','[userReport][devicestatechange]\x20device:%s\x20state:%s','[userReport][devicestatechange]','device','local','toLowerCase'];(function(_0x34f944,_0x2e88f9){var _0x5a78ed=function(_0x560722){while(--_0x560722){_0x34f944['push'](_0x34f944['shift']());}};_0x5a78ed(++_0x2e88f9);}(_0x1477,0x14e));var _0x7147=function(_0x2207c1,_0x3fcf28){_0x2207c1=_0x2207c1-0x0;var _0x28b953=_0x1477[_0x2207c1];return _0x28b953;};'use strict';var _=require(_0x7147('0x0'));var moment=require(_0x7147('0x1'));var util=require(_0x7147('0x2'));var Redis=require('ioredis');var BPromise=require(_0x7147('0x3'));var config=require(_0x7147('0x4'));var logger=require('../../../config/logger')(_0x7147('0x5'));var ami=require(_0x7147('0x6'));config[_0x7147('0x7')]=_[_0x7147('0x8')](config[_0x7147('0x7')],{'host':_0x7147('0x9'),'port':0x18eb});var io=require(_0x7147('0xa'))(new Redis(config[_0x7147('0x7')]));function UserReport(_0x2f2be5){this['trunks']=_0x2f2be5[_0x7147('0xb')];this[_0x7147('0xc')]=_0x2f2be5[_0x7147('0xc')];this[_0x7147('0xd')]=_0x2f2be5['telephones'];ami['on'](_0x7147('0xe'),this[_0x7147('0xf')]['bind'](this));ami['on']('registry',this[_0x7147('0xf')][_0x7147('0x10')](this));ami['on'](_0x7147('0x11'),this[_0x7147('0x12')][_0x7147('0x10')](this));ami['on'](_0x7147('0x13'),this[_0x7147('0x14')][_0x7147('0x10')](this));return this[_0x7147('0x15')]();}function showSipRegistrations(){Promise[_0x7147('0x16')]()[_0x7147('0x17')](ami['actionSipShowRegistry']())[_0x7147('0x18')](function(_0x5e59ce){logger[_0x7147('0x19')](_0x7147('0x1a'),util[_0x7147('0x1b')](_0x5e59ce,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x7147('0x16')]()[_0x7147('0x17')](ami[_0x7147('0x1c')]())[_0x7147('0x18')](function(_0x32b9f8){logger['error'](_0x7147('0x1d'),util[_0x7147('0x1b')](_0x32b9f8,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()[_0x7147('0x17')](ami[_0x7147('0x1e')]())['catch'](function(_0xbcad86){logger[_0x7147('0x19')](_0x7147('0x1f'),util['inspect'](_0xbcad86,{'showHidden':![],'depth':null}));});}UserReport[_0x7147('0x20')][_0x7147('0x15')]=function(){setInterval(function(){BPromise['resolve']()[_0x7147('0x17')](showSipRegistrations())[_0x7147('0x17')](listDeviceStates())[_0x7147('0x17')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0x7147('0x21')]=function(_0x42087d){return _0x42087d!==null&&!_['isUndefined'](_0x42087d);};UserReport[_0x7147('0x20')][_0x7147('0x22')]=function(_0x44c2c4,_0x275c7a,_0x471538){io['to'](_0x44c2c4)[_0x7147('0x22')](_0x275c7a,_0x471538);};UserReport[_0x7147('0x20')][_0x7147('0xf')]=function(_0x138657){try{if(this[_0x7147('0x21')](_0x138657)){logger[_0x7147('0x23')](_0x7147('0x24'),_0x138657[_0x7147('0x25')],_0x138657[_0x7147('0x26')]);logger['debug']('[userReport][registry]',util[_0x7147('0x1b')](_0x138657,{'showHidden':![],'depth':null}));var _0x4e0b85=_[_0x7147('0x27')](this[_0x7147('0xb')],{'registry':_0x138657['username']});if(_0x4e0b85){_0x138657[_0x7147('0x28')]=_0x138657[_0x7147('0x26')];_[_0x7147('0x29')](_0x4e0b85,_[_0x7147('0x2a')](_0x138657,[_0x7147('0x2b'),_0x7147('0x2c'),_0x7147('0x25'),_0x7147('0x26')]));logger[_0x7147('0x2d')](_0x7147('0x2e'),util[_0x7147('0x1b')](_0x4e0b85,{'showHidden':![],'depth':null}));this[_0x7147('0x22')](util[_0x7147('0x2f')]('trunk:%s',_0x4e0b85[_0x7147('0x30')]),_0x7147('0x31'),_0x4e0b85);}}}catch(_0xc7710c){logger[_0x7147('0x19')](_0x7147('0x32'),util[_0x7147('0x1b')](_0xc7710c,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x7147('0x12')]=function(_0x2d0358){try{if(this[_0x7147('0x21')](_0x2d0358)){logger[_0x7147('0x23')](_0x7147('0x33'),_0x2d0358['device'],_0x2d0358[_0x7147('0x26')]);logger[_0x7147('0x2d')](_0x7147('0x34'),util[_0x7147('0x1b')](_0x2d0358,{'showHidden':![],'depth':null}));if(this[_0x7147('0xc')][_0x2d0358['device']]){if(!this[_0x7147('0xc')][_0x2d0358[_0x7147('0x35')]][_0x7147('0x36')]||_0x2d0358['state'][_0x7147('0x37')]()=='inuse'){this['agents'][_0x2d0358[_0x7147('0x35')]]['local']=![];if(this[_0x7147('0xc')][_0x2d0358[_0x7147('0x35')]][_0x7147('0x26')]!==_0x2d0358['state'][_0x7147('0x37')]()){this[_0x7147('0xc')][_0x2d0358[_0x7147('0x35')]][_0x7147('0x38')]=_[_0x7147('0x39')](moment()[_0x7147('0x2f')]('x'));}this[_0x7147('0xc')][_0x2d0358[_0x7147('0x35')]][_0x7147('0x26')]=_0x2d0358['state']['toLowerCase']();this['agents'][_0x2d0358[_0x7147('0x35')]][_0x7147('0x3a')](_0x2d0358);}}else if(this['telephones'][_0x2d0358[_0x7147('0x35')]]){if(this[_0x7147('0xd')][_0x2d0358[_0x7147('0x35')]]['state']!==_0x2d0358[_0x7147('0x26')][_0x7147('0x37')]()){this['telephones'][_0x2d0358[_0x7147('0x35')]][_0x7147('0x38')]=_['toNumber'](moment()[_0x7147('0x2f')]('x'));}this[_0x7147('0xd')][_0x2d0358['device']]['state']=_0x2d0358[_0x7147('0x26')][_0x7147('0x37')]();logger[_0x7147('0x2d')](_0x7147('0x3b'),util[_0x7147('0x1b')](this['telephones'][_0x2d0358[_0x7147('0x35')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x7147('0x2f')]('telephone:%s',this[_0x7147('0xd')][_0x2d0358[_0x7147('0x35')]]['name']),_0x7147('0x3c'),this[_0x7147('0xd')][_0x2d0358[_0x7147('0x35')]]);}else if(this['trunks'][_0x2d0358['device']]){if(this['trunks'][_0x2d0358[_0x7147('0x35')]][_0x7147('0x26')]!==_0x2d0358[_0x7147('0x26')][_0x7147('0x37')]()){this[_0x7147('0xb')][_0x2d0358[_0x7147('0x35')]]['stateTime']=_[_0x7147('0x39')](moment()[_0x7147('0x2f')]('x'));}this[_0x7147('0xb')][_0x2d0358[_0x7147('0x35')]][_0x7147('0x26')]=_0x2d0358['state'][_0x7147('0x37')]();logger['debug'](_0x7147('0x3d'),util[_0x7147('0x1b')](this[_0x7147('0xb')][_0x2d0358['device']],{'showHidden':![],'depth':null}));this['emit'](util[_0x7147('0x2f')](_0x7147('0x3e'),this[_0x7147('0xb')][_0x2d0358['device']][_0x7147('0x30')]),_0x7147('0x31'),this['trunks'][_0x2d0358[_0x7147('0x35')]]);}else if(_[_0x7147('0x3f')](_0x2d0358[_0x7147('0x35')],'Local')){var _0x51f67d=_0x2d0358[_0x7147('0x35')];var _0x2d6c3b=_0x51f67d[_0x7147('0x40')](_0x51f67d[_0x7147('0x41')]('/')+0x1,_0x51f67d['indexOf']('@'));var _0x479aa6=_[_0x7147('0x27')](this['agents'],function(_0x49a80d){return _0x49a80d[_0x7147('0x42')]==_0x2d6c3b||_0x49a80d[_0x7147('0x43')]==_0x2d6c3b||_0x49a80d[_0x7147('0x44')]==_0x2d6c3b;});if(_0x479aa6){if(_0x479aa6[_0x7147('0x26')]!==_0x2d0358[_0x7147('0x26')][_0x7147('0x37')]()){_0x479aa6[_0x7147('0x38')]=_[_0x7147('0x39')](moment()[_0x7147('0x2f')]('x'));}_0x479aa6[_0x7147('0x26')]=_0x2d0358[_0x7147('0x26')][_0x7147('0x37')]();_0x479aa6[_0x7147('0x36')]=!![];_0x479aa6[_0x7147('0x3a')](_0x2d0358);}}}}catch(_0x204a6c){logger[_0x7147('0x19')](_0x7147('0x34'),util[_0x7147('0x1b')](_0x204a6c,{'showHidden':![],'depth':null}));}};UserReport[_0x7147('0x20')][_0x7147('0x14')]=function(_0x8302ff){try{if(this['isNotNull'](_0x8302ff)&&this[_0x7147('0x21')](_0x8302ff['peerstatus'])){logger[_0x7147('0x23')](_0x7147('0x45'),_0x8302ff[_0x7147('0x46')],_0x8302ff[_0x7147('0x47')],_0x8302ff[_0x7147('0x13')]);logger['debug']('[userReport][peerstatus]',util[_0x7147('0x1b')](_0x8302ff,{'showHidden':![],'depth':null}));if(this[_0x7147('0xc')][_0x8302ff[_0x7147('0x46')]]){if(!this[_0x7147('0xc')][_0x8302ff[_0x7147('0x46')]][_0x7147('0x36')]||_0x8302ff[_0x7147('0x13')][_0x7147('0x37')]()==_0x7147('0x48')){this[_0x7147('0xc')][_0x8302ff[_0x7147('0x46')]][_0x7147('0x36')]=![];this[_0x7147('0xc')][_0x8302ff['peer']][_0x7147('0x49')]=_0x8302ff[_0x7147('0x13')]['toLowerCase']();this[_0x7147('0xc')][_0x8302ff[_0x7147('0x46')]][_0x7147('0x47')]=_0x8302ff[_0x7147('0x47')];this[_0x7147('0xc')][_0x8302ff[_0x7147('0x46')]][_0x7147('0x3a')](_0x8302ff);}}else if(this[_0x7147('0xd')][_0x8302ff[_0x7147('0x46')]]){this[_0x7147('0xd')][_0x8302ff[_0x7147('0x46')]][_0x7147('0x49')]=_0x8302ff[_0x7147('0x13')][_0x7147('0x37')]();this[_0x7147('0xd')][_0x8302ff[_0x7147('0x46')]][_0x7147('0x47')]=_0x8302ff['address'];logger[_0x7147('0x2d')](_0x7147('0x4a'),util[_0x7147('0x1b')](this[_0x7147('0xd')][_0x8302ff[_0x7147('0x46')]],{'showHidden':![],'depth':null}));this[_0x7147('0x22')](util[_0x7147('0x2f')](_0x7147('0x4b'),this['telephones'][_0x8302ff[_0x7147('0x46')]][_0x7147('0x30')]),'telephone:save',this[_0x7147('0xd')][_0x8302ff['peer']]);}else if(this['trunks'][_0x8302ff['peer']]){this[_0x7147('0xb')][_0x8302ff[_0x7147('0x46')]]['status']=_0x8302ff[_0x7147('0x13')][_0x7147('0x37')]();this['trunks'][_0x8302ff[_0x7147('0x46')]]['address']=_0x8302ff[_0x7147('0x47')];logger[_0x7147('0x2d')](_0x7147('0x4c'),util[_0x7147('0x1b')](this['trunks'][_0x8302ff[_0x7147('0x46')]],{'showHidden':![],'depth':null}));this[_0x7147('0x22')](util[_0x7147('0x2f')](_0x7147('0x3e'),this['trunks'][_0x8302ff['peer']]['name']),_0x7147('0x31'),this[_0x7147('0xb')][_0x8302ff[_0x7147('0x46')]]);}}}catch(_0x6f0890){logger[_0x7147('0x19')]('[userReport][peerstatus]',util[_0x7147('0x1b')](_0x6f0890,{'showHidden':![],'depth':null}));}};module[_0x7147('0x4d')]=UserReport;