Built motion from commit 753c950e.|2.5.42
[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 _0xfb8c=['emit','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','event','trunk:%s','name','trunk:save','info','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','stateTime','toNumber','format','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','phone','peer','address','[userReport][peerstatus]','registered','updateStatusRealtime','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:%s','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','util','ioredis','bluebird','../../../config/environment','ami','../ami','redis','defaults','localhost','trunks','agents','telephones','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','resolve','then','catch','error','inspect','actionDeviceStateList','actionSipPeerStatus','prototype','syncRealtimeShow','isNotNull','isUndefined'];(function(_0x3480e6,_0x560c52){var _0x20ad1=function(_0x306450){while(--_0x306450){_0x3480e6['push'](_0x3480e6['shift']());}};_0x20ad1(++_0x560c52);}(_0xfb8c,0x14d));var _0xcfb8=function(_0x55a3e6,_0x1c8036){_0x55a3e6=_0x55a3e6-0x0;var _0x40dba3=_0xfb8c[_0x55a3e6];return _0x40dba3;};'use strict';var _=require(_0xcfb8('0x0'));var moment=require(_0xcfb8('0x1'));var util=require(_0xcfb8('0x2'));var Redis=require(_0xcfb8('0x3'));var BPromise=require(_0xcfb8('0x4'));var config=require(_0xcfb8('0x5'));var logger=require('../../../config/logger')(_0xcfb8('0x6'));var ami=require(_0xcfb8('0x7'));config[_0xcfb8('0x8')]=_[_0xcfb8('0x9')](config['redis'],{'host':_0xcfb8('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xcfb8('0x8')]));function UserReport(_0x32ca2c){this['trunks']=_0x32ca2c[_0xcfb8('0xb')];this[_0xcfb8('0xc')]=_0x32ca2c[_0xcfb8('0xc')];this[_0xcfb8('0xd')]=_0x32ca2c[_0xcfb8('0xd')];ami['on']('registryentry',this[_0xcfb8('0xe')][_0xcfb8('0xf')](this));ami['on'](_0xcfb8('0x10'),this[_0xcfb8('0xe')][_0xcfb8('0xf')](this));ami['on'](_0xcfb8('0x11'),this[_0xcfb8('0x12')][_0xcfb8('0xf')](this));ami['on'](_0xcfb8('0x13'),this[_0xcfb8('0x14')][_0xcfb8('0xf')](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise[_0xcfb8('0x15')]()[_0xcfb8('0x16')](ami['actionSipShowRegistry']())[_0xcfb8('0x17')](function(_0x657134){logger[_0xcfb8('0x18')]('[userReport][sipshowregistry]',util[_0xcfb8('0x19')](_0x657134,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xcfb8('0x15')]()[_0xcfb8('0x16')](ami[_0xcfb8('0x1a')]())[_0xcfb8('0x17')](function(_0x46ff55){logger[_0xcfb8('0x18')]('[userReport][devicestatelist]',util[_0xcfb8('0x19')](_0x46ff55,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xcfb8('0x15')]()[_0xcfb8('0x16')](ami[_0xcfb8('0x1b')]())['catch'](function(_0x521cb6){logger[_0xcfb8('0x18')]('[userReport][sippeerstatus]',util[_0xcfb8('0x19')](_0x521cb6,{'showHidden':![],'depth':null}));});}UserReport[_0xcfb8('0x1c')][_0xcfb8('0x1d')]=function(){setInterval(function(){BPromise['resolve']()[_0xcfb8('0x16')](showSipRegistrations())[_0xcfb8('0x16')](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0xcfb8('0x1c')][_0xcfb8('0x1e')]=function(_0x197bed){return _0x197bed!==null&&!_[_0xcfb8('0x1f')](_0x197bed);};UserReport[_0xcfb8('0x1c')][_0xcfb8('0x20')]=function(_0x4096b8,_0x1f93a3,_0x498652){io['to'](_0x4096b8)['emit'](_0x1f93a3,_0x498652);};UserReport[_0xcfb8('0x1c')][_0xcfb8('0xe')]=function(_0x5393c8){try{if(this[_0xcfb8('0x1e')](_0x5393c8)){logger['info'](_0xcfb8('0x21'),_0x5393c8[_0xcfb8('0x22')],_0x5393c8[_0xcfb8('0x23')]);logger[_0xcfb8('0x24')](_0xcfb8('0x25'),util[_0xcfb8('0x19')](_0x5393c8,{'showHidden':![],'depth':null}));var _0x2d6ec9=_[_0xcfb8('0x26')](this[_0xcfb8('0xb')],{'defaultuser':_0x5393c8['username']});if(_0x2d6ec9){_0x5393c8[_0xcfb8('0x27')]=_0x5393c8[_0xcfb8('0x23')];_[_0xcfb8('0x28')](_0x2d6ec9,_[_0xcfb8('0x29')](_0x5393c8,[_0xcfb8('0x2a'),'actionid',_0xcfb8('0x22'),_0xcfb8('0x23')]));logger['debug']('[userReport][registry]\x20sending\x20trunk:save\x20event:',util[_0xcfb8('0x19')](_0x2d6ec9,{'showHidden':![],'depth':null}));this[_0xcfb8('0x20')](util['format'](_0xcfb8('0x2b'),_0x2d6ec9[_0xcfb8('0x2c')]),_0xcfb8('0x2d'),_0x2d6ec9);}}}catch(_0x174e01){logger[_0xcfb8('0x18')](_0xcfb8('0x25'),util[_0xcfb8('0x19')](_0x174e01,{'showHidden':![],'depth':null}));}};UserReport[_0xcfb8('0x1c')][_0xcfb8('0x12')]=function(_0x1df354){try{if(this[_0xcfb8('0x1e')](_0x1df354)){logger[_0xcfb8('0x2e')](_0xcfb8('0x2f'),_0x1df354[_0xcfb8('0x30')],_0x1df354[_0xcfb8('0x23')]);logger[_0xcfb8('0x24')](_0xcfb8('0x31'),util[_0xcfb8('0x19')](_0x1df354,{'showHidden':![],'depth':null}));if(this[_0xcfb8('0xc')][_0x1df354['device']]){if(!this[_0xcfb8('0xc')][_0x1df354[_0xcfb8('0x30')]][_0xcfb8('0x32')]||_0x1df354[_0xcfb8('0x23')][_0xcfb8('0x33')]()=='inuse'){this[_0xcfb8('0xc')][_0x1df354['device']]['local']=![];if(this['agents'][_0x1df354['device']][_0xcfb8('0x23')]!==_0x1df354[_0xcfb8('0x23')][_0xcfb8('0x33')]()){this['agents'][_0x1df354[_0xcfb8('0x30')]][_0xcfb8('0x34')]=_['toNumber'](moment()['format']('x'));}this[_0xcfb8('0xc')][_0x1df354['device']][_0xcfb8('0x23')]=_0x1df354[_0xcfb8('0x23')][_0xcfb8('0x33')]();this[_0xcfb8('0xc')][_0x1df354[_0xcfb8('0x30')]]['updateStatusRealtime'](_0x1df354);}}else if(this['telephones'][_0x1df354[_0xcfb8('0x30')]]){if(this[_0xcfb8('0xd')][_0x1df354[_0xcfb8('0x30')]]['state']!==_0x1df354[_0xcfb8('0x23')][_0xcfb8('0x33')]()){this['telephones'][_0x1df354[_0xcfb8('0x30')]][_0xcfb8('0x34')]=_[_0xcfb8('0x35')](moment()[_0xcfb8('0x36')]('x'));}this[_0xcfb8('0xd')][_0x1df354[_0xcfb8('0x30')]][_0xcfb8('0x23')]=_0x1df354['state'][_0xcfb8('0x33')]();logger['debug']('[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:',util[_0xcfb8('0x19')](this[_0xcfb8('0xd')][_0x1df354[_0xcfb8('0x30')]],{'showHidden':![],'depth':null}));this[_0xcfb8('0x20')](util[_0xcfb8('0x36')]('telephone:%s',this[_0xcfb8('0xd')][_0x1df354['device']][_0xcfb8('0x2c')]),_0xcfb8('0x37'),this[_0xcfb8('0xd')][_0x1df354[_0xcfb8('0x30')]]);}else if(this[_0xcfb8('0xb')][_0x1df354[_0xcfb8('0x30')]]){if(this[_0xcfb8('0xb')][_0x1df354[_0xcfb8('0x30')]][_0xcfb8('0x23')]!==_0x1df354['state'][_0xcfb8('0x33')]()){this['trunks'][_0x1df354['device']]['stateTime']=_[_0xcfb8('0x35')](moment()['format']('x'));}this['trunks'][_0x1df354['device']]['state']=_0x1df354[_0xcfb8('0x23')][_0xcfb8('0x33')]();logger[_0xcfb8('0x24')](_0xcfb8('0x38'),util[_0xcfb8('0x19')](this[_0xcfb8('0xb')][_0x1df354[_0xcfb8('0x30')]],{'showHidden':![],'depth':null}));this[_0xcfb8('0x20')](util['format'](_0xcfb8('0x2b'),this[_0xcfb8('0xb')][_0x1df354[_0xcfb8('0x30')]][_0xcfb8('0x2c')]),'trunk:save',this[_0xcfb8('0xb')][_0x1df354[_0xcfb8('0x30')]]);}else if(_[_0xcfb8('0x39')](_0x1df354[_0xcfb8('0x30')],_0xcfb8('0x3a'))){var _0x1a2963=_0x1df354[_0xcfb8('0x30')];var _0x6a8f39=_0x1a2963[_0xcfb8('0x3b')](_0x1a2963[_0xcfb8('0x3c')]('/')+0x1,_0x1a2963[_0xcfb8('0x3c')]('@'));var _0x2d9357=_[_0xcfb8('0x26')](this[_0xcfb8('0xc')],function(_0x29802b){return _0x29802b[_0xcfb8('0x3d')]==_0x6a8f39||_0x29802b[_0xcfb8('0x3e')]==_0x6a8f39||_0x29802b['accountcode']==_0x6a8f39;});if(_0x2d9357){if(_0x2d9357[_0xcfb8('0x23')]!==_0x1df354[_0xcfb8('0x23')]['toLowerCase']()){_0x2d9357[_0xcfb8('0x34')]=_[_0xcfb8('0x35')](moment()['format']('x'));}_0x2d9357[_0xcfb8('0x23')]=_0x1df354['state']['toLowerCase']();_0x2d9357[_0xcfb8('0x32')]=!![];_0x2d9357['updateStatusRealtime'](_0x1df354);}}}}catch(_0x5cd7b2){logger[_0xcfb8('0x18')](_0xcfb8('0x31'),util[_0xcfb8('0x19')](_0x5cd7b2,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0xcfb8('0x14')]=function(_0x35560d){try{if(this[_0xcfb8('0x1e')](_0x35560d)&&this[_0xcfb8('0x1e')](_0x35560d['peerstatus'])){logger[_0xcfb8('0x2e')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x35560d[_0xcfb8('0x3f')],_0x35560d[_0xcfb8('0x40')],_0x35560d['peerstatus']);logger[_0xcfb8('0x24')](_0xcfb8('0x41'),util[_0xcfb8('0x19')](_0x35560d,{'showHidden':![],'depth':null}));if(this['agents'][_0x35560d['peer']]){if(!this[_0xcfb8('0xc')][_0x35560d[_0xcfb8('0x3f')]][_0xcfb8('0x32')]||_0x35560d[_0xcfb8('0x13')][_0xcfb8('0x33')]()==_0xcfb8('0x42')){this[_0xcfb8('0xc')][_0x35560d[_0xcfb8('0x3f')]]['local']=![];this[_0xcfb8('0xc')][_0x35560d[_0xcfb8('0x3f')]]['status']=_0x35560d['peerstatus']['toLowerCase']();this[_0xcfb8('0xc')][_0x35560d[_0xcfb8('0x3f')]][_0xcfb8('0x40')]=_0x35560d[_0xcfb8('0x40')];this[_0xcfb8('0xc')][_0x35560d[_0xcfb8('0x3f')]][_0xcfb8('0x43')](_0x35560d);}}else if(this['telephones'][_0x35560d[_0xcfb8('0x3f')]]){this['telephones'][_0x35560d[_0xcfb8('0x3f')]][_0xcfb8('0x44')]=_0x35560d['peerstatus'][_0xcfb8('0x33')]();this[_0xcfb8('0xd')][_0x35560d[_0xcfb8('0x3f')]][_0xcfb8('0x40')]=_0x35560d[_0xcfb8('0x40')];logger[_0xcfb8('0x24')](_0xcfb8('0x45'),util['inspect'](this[_0xcfb8('0xd')][_0x35560d[_0xcfb8('0x3f')]],{'showHidden':![],'depth':null}));this[_0xcfb8('0x20')](util['format'](_0xcfb8('0x46'),this['telephones'][_0x35560d[_0xcfb8('0x3f')]]['name']),'telephone:save',this[_0xcfb8('0xd')][_0x35560d[_0xcfb8('0x3f')]]);}else if(this[_0xcfb8('0xb')][_0x35560d[_0xcfb8('0x3f')]]){this[_0xcfb8('0xb')][_0x35560d['peer']][_0xcfb8('0x44')]=_0x35560d[_0xcfb8('0x13')][_0xcfb8('0x33')]();this[_0xcfb8('0xb')][_0x35560d[_0xcfb8('0x3f')]][_0xcfb8('0x40')]=_0x35560d[_0xcfb8('0x40')];logger['debug'](_0xcfb8('0x47'),util['inspect'](this[_0xcfb8('0xb')][_0x35560d['peer']],{'showHidden':![],'depth':null}));this['emit'](util[_0xcfb8('0x36')]('trunk:%s',this[_0xcfb8('0xb')][_0x35560d[_0xcfb8('0x3f')]][_0xcfb8('0x2c')]),_0xcfb8('0x2d'),this[_0xcfb8('0xb')][_0x35560d[_0xcfb8('0x3f')]]);}}}catch(_0x1c5a4d){logger[_0xcfb8('0x18')](_0xcfb8('0x41'),util[_0xcfb8('0x19')](_0x1c5a4d,{'showHidden':![],'depth':null}));}};module[_0xcfb8('0x48')]=UserReport;