7dfe86153b28150b4b2c7627835c5ea0c775be1e
[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 _0xd16f=['inspect','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','event','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','isNotNull','device','[userReport][devicestatechange]','toLowerCase','local','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','mobile','phone','accountcode','syncPeerStatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','registered','status','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','[userReport][peerstatus]','exports','lodash','util','ioredis','../../../config/environment','../ami','redis','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','bind','syncRegistry','devicestatechange','syncDeviceState','peerstatus','resolve','actionSipShowRegistry','catch','[userReport][sipshowregistry]','then','actionDeviceStateList','error'];(function(_0x190385,_0x238c8e){var _0x58275c=function(_0x316fd9){while(--_0x316fd9){_0x190385['push'](_0x190385['shift']());}};_0x58275c(++_0x238c8e);}(_0xd16f,0x19e));var _0xfd16=function(_0x465409,_0x2ae7e7){_0x465409=_0x465409-0x0;var _0x5739af=_0xd16f[_0x465409];return _0x5739af;};'use strict';var _=require(_0xfd16('0x0'));var moment=require('moment');var util=require(_0xfd16('0x1'));var Redis=require(_0xfd16('0x2'));var BPromise=require('bluebird');var config=require(_0xfd16('0x3'));var logger=require('../../../config/logger')('ami');var ami=require(_0xfd16('0x4'));config[_0xfd16('0x5')]=_[_0xfd16('0x6')](config[_0xfd16('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0xfd16('0x7'))(new Redis(config[_0xfd16('0x5')]));function UserReport(_0xdf58ce){this['trunks']=_0xdf58ce[_0xfd16('0x8')];this[_0xfd16('0x9')]=_0xdf58ce[_0xfd16('0x9')];this[_0xfd16('0xa')]=_0xdf58ce[_0xfd16('0xa')];ami['on'](_0xfd16('0xb'),this['syncRegistry'][_0xfd16('0xc')](this));ami['on']('registry',this[_0xfd16('0xd')][_0xfd16('0xc')](this));ami['on'](_0xfd16('0xe'),this[_0xfd16('0xf')]['bind'](this));ami['on'](_0xfd16('0x10'),this['syncPeerStatus'][_0xfd16('0xc')](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise[_0xfd16('0x11')]()['then'](ami[_0xfd16('0x12')]())[_0xfd16('0x13')](function(_0x597960){logger['error'](_0xfd16('0x14'),util['inspect'](_0x597960,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()[_0xfd16('0x15')](ami[_0xfd16('0x16')]())['catch'](function(_0x588a9f){logger[_0xfd16('0x17')]('[userReport][devicestatelist]',util[_0xfd16('0x18')](_0x588a9f,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()['then'](ami[_0xfd16('0x19')]())[_0xfd16('0x13')](function(_0x456b90){logger[_0xfd16('0x17')](_0xfd16('0x1a'),util[_0xfd16('0x18')](_0x456b90,{'showHidden':![],'depth':null}));});}UserReport['prototype']['syncRealtimeShow']=function(){setInterval(function(){BPromise[_0xfd16('0x11')]()['then'](showSipRegistrations())[_0xfd16('0x15')](listDeviceStates())[_0xfd16('0x15')](showPeersStatus());},0x32c8);};UserReport[_0xfd16('0x1b')]['isNotNull']=function(_0x30402c){return _0x30402c!==null&&!_[_0xfd16('0x1c')](_0x30402c);};UserReport[_0xfd16('0x1b')]['emit']=function(_0x48b61d,_0x473b11,_0x53d1ad){io['to'](_0x48b61d)[_0xfd16('0x1d')](_0x473b11,_0x53d1ad);};UserReport[_0xfd16('0x1b')]['syncRegistry']=function(_0x3b5f64){try{if(this['isNotNull'](_0x3b5f64)){logger[_0xfd16('0x1e')](_0xfd16('0x1f'),_0x3b5f64[_0xfd16('0x20')],_0x3b5f64[_0xfd16('0x21')]);logger[_0xfd16('0x22')](_0xfd16('0x23'),util[_0xfd16('0x18')](_0x3b5f64,{'showHidden':![],'depth':null}));var _0x14fe22=_[_0xfd16('0x24')](this[_0xfd16('0x8')],{'defaultuser':_0x3b5f64[_0xfd16('0x20')]});if(_0x14fe22){_0x3b5f64[_0xfd16('0x25')]=_0x3b5f64[_0xfd16('0x21')];_[_0xfd16('0x26')](_0x14fe22,_[_0xfd16('0x27')](_0x3b5f64,[_0xfd16('0x28'),'actionid',_0xfd16('0x20'),'state']));logger[_0xfd16('0x22')](_0xfd16('0x29'),util[_0xfd16('0x18')](_0x14fe22,{'showHidden':![],'depth':null}));this['emit'](util[_0xfd16('0x2a')](_0xfd16('0x2b'),_0x14fe22[_0xfd16('0x2c')]),_0xfd16('0x2d'),_0x14fe22);}}}catch(_0x228eb4){logger[_0xfd16('0x17')]('[userReport][registry]',util['inspect'](_0x228eb4,{'showHidden':![],'depth':null}));}};UserReport[_0xfd16('0x1b')]['syncDeviceState']=function(_0x182a3a){try{if(this[_0xfd16('0x2e')](_0x182a3a)){logger['info']('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0x182a3a[_0xfd16('0x2f')],_0x182a3a['state']);logger[_0xfd16('0x22')](_0xfd16('0x30'),util[_0xfd16('0x18')](_0x182a3a,{'showHidden':![],'depth':null}));if(this['agents'][_0x182a3a[_0xfd16('0x2f')]]){if(!this[_0xfd16('0x9')][_0x182a3a[_0xfd16('0x2f')]]['local']||_0x182a3a[_0xfd16('0x21')][_0xfd16('0x31')]()=='inuse'){this['agents'][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x32')]=![];if(this[_0xfd16('0x9')][_0x182a3a[_0xfd16('0x2f')]]['state']!==_0x182a3a[_0xfd16('0x21')][_0xfd16('0x31')]()){this[_0xfd16('0x9')][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x33')]=_[_0xfd16('0x34')](moment()[_0xfd16('0x2a')]('x'));}this[_0xfd16('0x9')][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x21')]=_0x182a3a[_0xfd16('0x21')][_0xfd16('0x31')]();this[_0xfd16('0x9')][_0x182a3a['device']][_0xfd16('0x35')](_0x182a3a);}}else if(this[_0xfd16('0xa')][_0x182a3a[_0xfd16('0x2f')]]){if(this[_0xfd16('0xa')][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x21')]!==_0x182a3a['state'][_0xfd16('0x31')]()){this['telephones'][_0x182a3a[_0xfd16('0x2f')]]['stateTime']=_[_0xfd16('0x34')](moment()[_0xfd16('0x2a')]('x'));}this[_0xfd16('0xa')][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x21')]=_0x182a3a[_0xfd16('0x21')][_0xfd16('0x31')]();logger[_0xfd16('0x22')](_0xfd16('0x36'),util[_0xfd16('0x18')](this[_0xfd16('0xa')][_0x182a3a[_0xfd16('0x2f')]],{'showHidden':![],'depth':null}));this[_0xfd16('0x1d')](util['format'](_0xfd16('0x37'),this['telephones'][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x2c')]),_0xfd16('0x38'),this[_0xfd16('0xa')][_0x182a3a[_0xfd16('0x2f')]]);}else if(this[_0xfd16('0x8')][_0x182a3a['device']]){if(this['trunks'][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x21')]!==_0x182a3a[_0xfd16('0x21')][_0xfd16('0x31')]()){this['trunks'][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x33')]=_[_0xfd16('0x34')](moment()[_0xfd16('0x2a')]('x'));}this['trunks'][_0x182a3a[_0xfd16('0x2f')]]['state']=_0x182a3a['state'][_0xfd16('0x31')]();logger[_0xfd16('0x22')](_0xfd16('0x39'),util[_0xfd16('0x18')](this[_0xfd16('0x8')][_0x182a3a[_0xfd16('0x2f')]],{'showHidden':![],'depth':null}));this[_0xfd16('0x1d')](util[_0xfd16('0x2a')](_0xfd16('0x2b'),this[_0xfd16('0x8')][_0x182a3a[_0xfd16('0x2f')]][_0xfd16('0x2c')]),'trunk:save',this[_0xfd16('0x8')][_0x182a3a[_0xfd16('0x2f')]]);}else if(_[_0xfd16('0x3a')](_0x182a3a[_0xfd16('0x2f')],_0xfd16('0x3b'))){var _0x37b79a=_0x182a3a[_0xfd16('0x2f')];var _0x258c63=_0x37b79a['substring'](_0x37b79a['indexOf']('/')+0x1,_0x37b79a[_0xfd16('0x3c')]('@'));var _0x3355e6=_[_0xfd16('0x24')](this['agents'],function(_0x2082a3){return _0x2082a3[_0xfd16('0x3d')]==_0x258c63||_0x2082a3[_0xfd16('0x3e')]==_0x258c63||_0x2082a3[_0xfd16('0x3f')]==_0x258c63;});if(_0x3355e6){if(_0x3355e6[_0xfd16('0x21')]!==_0x182a3a[_0xfd16('0x21')][_0xfd16('0x31')]()){_0x3355e6[_0xfd16('0x33')]=_['toNumber'](moment()[_0xfd16('0x2a')]('x'));}_0x3355e6[_0xfd16('0x21')]=_0x182a3a[_0xfd16('0x21')][_0xfd16('0x31')]();_0x3355e6[_0xfd16('0x32')]=!![];_0x3355e6[_0xfd16('0x35')](_0x182a3a);}}}}catch(_0x528a26){logger['error'](_0xfd16('0x30'),util[_0xfd16('0x18')](_0x528a26,{'showHidden':![],'depth':null}));}};UserReport[_0xfd16('0x1b')][_0xfd16('0x40')]=function(_0x1b7a18){try{if(this[_0xfd16('0x2e')](_0x1b7a18)&&this[_0xfd16('0x2e')](_0x1b7a18['peerstatus'])){logger[_0xfd16('0x1e')](_0xfd16('0x41'),_0x1b7a18[_0xfd16('0x42')],_0x1b7a18[_0xfd16('0x43')],_0x1b7a18[_0xfd16('0x10')]);logger['debug']('[userReport][peerstatus]',util[_0xfd16('0x18')](_0x1b7a18,{'showHidden':![],'depth':null}));if(this[_0xfd16('0x9')][_0x1b7a18[_0xfd16('0x42')]]){if(!this[_0xfd16('0x9')][_0x1b7a18['peer']][_0xfd16('0x32')]||_0x1b7a18[_0xfd16('0x10')]['toLowerCase']()==_0xfd16('0x44')){this['agents'][_0x1b7a18['peer']][_0xfd16('0x32')]=![];this[_0xfd16('0x9')][_0x1b7a18[_0xfd16('0x42')]][_0xfd16('0x45')]=_0x1b7a18[_0xfd16('0x10')][_0xfd16('0x31')]();this[_0xfd16('0x9')][_0x1b7a18[_0xfd16('0x42')]]['address']=_0x1b7a18[_0xfd16('0x43')];this[_0xfd16('0x9')][_0x1b7a18[_0xfd16('0x42')]][_0xfd16('0x35')](_0x1b7a18);}}else if(this[_0xfd16('0xa')][_0x1b7a18[_0xfd16('0x42')]]){this[_0xfd16('0xa')][_0x1b7a18[_0xfd16('0x42')]]['status']=_0x1b7a18[_0xfd16('0x10')][_0xfd16('0x31')]();this[_0xfd16('0xa')][_0x1b7a18[_0xfd16('0x42')]][_0xfd16('0x43')]=_0x1b7a18[_0xfd16('0x43')];logger[_0xfd16('0x22')]('[userReport][peerstatus]\x20sending\x20telephone:save\x20event:',util['inspect'](this['telephones'][_0x1b7a18[_0xfd16('0x42')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xfd16('0x2a')](_0xfd16('0x37'),this[_0xfd16('0xa')][_0x1b7a18['peer']][_0xfd16('0x2c')]),_0xfd16('0x38'),this[_0xfd16('0xa')][_0x1b7a18[_0xfd16('0x42')]]);}else if(this[_0xfd16('0x8')][_0x1b7a18[_0xfd16('0x42')]]){this[_0xfd16('0x8')][_0x1b7a18[_0xfd16('0x42')]][_0xfd16('0x45')]=_0x1b7a18[_0xfd16('0x10')][_0xfd16('0x31')]();this[_0xfd16('0x8')][_0x1b7a18[_0xfd16('0x42')]][_0xfd16('0x43')]=_0x1b7a18[_0xfd16('0x43')];logger[_0xfd16('0x22')](_0xfd16('0x46'),util['inspect'](this[_0xfd16('0x8')][_0x1b7a18[_0xfd16('0x42')]],{'showHidden':![],'depth':null}));this[_0xfd16('0x1d')](util[_0xfd16('0x2a')]('trunk:%s',this[_0xfd16('0x8')][_0x1b7a18[_0xfd16('0x42')]][_0xfd16('0x2c')]),_0xfd16('0x2d'),this[_0xfd16('0x8')][_0x1b7a18['peer']]);}}}catch(_0x156d9b){logger[_0xfd16('0x17')](_0xfd16('0x47'),util['inspect'](_0x156d9b,{'showHidden':![],'depth':null}));}};module[_0xfd16('0x48')]=UserReport;