Built motion from commit (unavailable).|2.5.22
[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 _0x9df6=['status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','moment','util','bluebird','../../../config/environment','../../../config/logger','ami','redis','defaults','localhost','socket.io-emitter','trunks','telephones','registry','syncRegistry','bind','devicestatechange','syncDeviceState','syncPeerStatus','actionSipShowRegistry','catch','error','inspect','resolve','actionDeviceStateList','then','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','syncRealtimeShow','isUndefined','emit','isNotNull','info','[userReport][registry]\x20registry:%s\x20state:%s','username','[userReport][registry]','find','merge','actionid','state','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','agents','local','toLowerCase','updateStatusRealtime','stateTime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','toNumber','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','mobile','phone','accountcode','address','peerstatus','[userReport][peerstatus]','peer','registered'];(function(_0x45fc6a,_0x166adb){var _0x14bcfd=function(_0x3ba718){while(--_0x3ba718){_0x45fc6a['push'](_0x45fc6a['shift']());}};_0x14bcfd(++_0x166adb);}(_0x9df6,0xe2));var _0x69df=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0x9df6[_0x297fd3];return _0x2af381;};'use strict';var _=require('lodash');var moment=require(_0x69df('0x0'));var util=require(_0x69df('0x1'));var Redis=require('ioredis');var BPromise=require(_0x69df('0x2'));var config=require(_0x69df('0x3'));var logger=require(_0x69df('0x4'))(_0x69df('0x5'));var ami=require('../ami');config[_0x69df('0x6')]=_[_0x69df('0x7')](config[_0x69df('0x6')],{'host':_0x69df('0x8'),'port':0x18eb});var io=require(_0x69df('0x9'))(new Redis(config['redis']));function UserReport(_0x462c34){this[_0x69df('0xa')]=_0x462c34['trunks'];this['agents']=_0x462c34['agents'];this[_0x69df('0xb')]=_0x462c34['telephones'];ami['on']('registryentry',this['syncRegistry']['bind'](this));ami['on'](_0x69df('0xc'),this[_0x69df('0xd')][_0x69df('0xe')](this));ami['on'](_0x69df('0xf'),this[_0x69df('0x10')][_0x69df('0xe')](this));ami['on']('peerstatus',this[_0x69df('0x11')]['bind'](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise['resolve']()['then'](ami[_0x69df('0x12')]())[_0x69df('0x13')](function(_0x5b8653){logger[_0x69df('0x14')]('[userReport][sipshowregistry]',util[_0x69df('0x15')](_0x5b8653,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x69df('0x16')]()['then'](ami[_0x69df('0x17')]())[_0x69df('0x13')](function(_0x547ba2){logger['error']('[userReport][devicestatelist]',util[_0x69df('0x15')](_0x547ba2,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()[_0x69df('0x18')](ami[_0x69df('0x19')]())['catch'](function(_0x19a6fb){logger[_0x69df('0x14')](_0x69df('0x1a'),util[_0x69df('0x15')](_0x19a6fb,{'showHidden':![],'depth':null}));});}UserReport[_0x69df('0x1b')][_0x69df('0x1c')]=function(){setInterval(function(){BPromise[_0x69df('0x16')]()['then'](showSipRegistrations())[_0x69df('0x18')](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0x69df('0x1b')]['isNotNull']=function(_0x19ad8d){return _0x19ad8d!==null&&!_[_0x69df('0x1d')](_0x19ad8d);};UserReport[_0x69df('0x1b')][_0x69df('0x1e')]=function(_0x2c08d5,_0x57d8f1,_0x5edb8a){io['to'](_0x2c08d5)[_0x69df('0x1e')](_0x57d8f1,_0x5edb8a);};UserReport[_0x69df('0x1b')][_0x69df('0xd')]=function(_0x3898f3){try{if(this[_0x69df('0x1f')](_0x3898f3)){logger[_0x69df('0x20')](_0x69df('0x21'),_0x3898f3[_0x69df('0x22')],_0x3898f3['state']);logger['debug'](_0x69df('0x23'),util[_0x69df('0x15')](_0x3898f3,{'showHidden':![],'depth':null}));var _0x2ce9b0=_[_0x69df('0x24')](this[_0x69df('0xa')],{'registry':_0x3898f3['username']});if(_0x2ce9b0){_0x3898f3['stateRegistry']=_0x3898f3['state'];_[_0x69df('0x25')](_0x2ce9b0,_['omit'](_0x3898f3,['event',_0x69df('0x26'),_0x69df('0x22'),_0x69df('0x27')]));logger[_0x69df('0x28')](_0x69df('0x29'),util[_0x69df('0x15')](_0x2ce9b0,{'showHidden':![],'depth':null}));this['emit'](util[_0x69df('0x2a')](_0x69df('0x2b'),_0x2ce9b0[_0x69df('0x2c')]),_0x69df('0x2d'),_0x2ce9b0);}}}catch(_0x1eccc5){logger[_0x69df('0x14')](_0x69df('0x23'),util[_0x69df('0x15')](_0x1eccc5,{'showHidden':![],'depth':null}));}};UserReport[_0x69df('0x1b')][_0x69df('0x10')]=function(_0x55964e){try{if(this[_0x69df('0x1f')](_0x55964e)){logger[_0x69df('0x20')](_0x69df('0x2e'),_0x55964e[_0x69df('0x2f')],_0x55964e[_0x69df('0x27')]);logger[_0x69df('0x28')](_0x69df('0x30'),util[_0x69df('0x15')](_0x55964e,{'showHidden':![],'depth':null}));if(this[_0x69df('0x31')][_0x55964e[_0x69df('0x2f')]]){if(!this[_0x69df('0x31')][_0x55964e[_0x69df('0x2f')]][_0x69df('0x32')]||_0x55964e['state']['toLowerCase']()=='inuse'){this['agents'][_0x55964e[_0x69df('0x2f')]]['local']=![];if(this[_0x69df('0x31')][_0x55964e[_0x69df('0x2f')]][_0x69df('0x27')]!==_0x55964e[_0x69df('0x27')]['toLowerCase']()){this[_0x69df('0x31')][_0x55964e[_0x69df('0x2f')]]['stateTime']=_['toNumber'](moment()[_0x69df('0x2a')]('x'));}this[_0x69df('0x31')][_0x55964e[_0x69df('0x2f')]][_0x69df('0x27')]=_0x55964e['state'][_0x69df('0x33')]();this[_0x69df('0x31')][_0x55964e['device']][_0x69df('0x34')](_0x55964e);}}else if(this['telephones'][_0x55964e[_0x69df('0x2f')]]){if(this[_0x69df('0xb')][_0x55964e[_0x69df('0x2f')]][_0x69df('0x27')]!==_0x55964e['state'][_0x69df('0x33')]()){this[_0x69df('0xb')][_0x55964e[_0x69df('0x2f')]][_0x69df('0x35')]=_['toNumber'](moment()[_0x69df('0x2a')]('x'));}this[_0x69df('0xb')][_0x55964e['device']][_0x69df('0x27')]=_0x55964e[_0x69df('0x27')][_0x69df('0x33')]();logger['debug'](_0x69df('0x36'),util[_0x69df('0x15')](this[_0x69df('0xb')][_0x55964e['device']],{'showHidden':![],'depth':null}));this[_0x69df('0x1e')](util[_0x69df('0x2a')](_0x69df('0x37'),this['telephones'][_0x55964e['device']][_0x69df('0x2c')]),_0x69df('0x38'),this[_0x69df('0xb')][_0x55964e[_0x69df('0x2f')]]);}else if(this['trunks'][_0x55964e[_0x69df('0x2f')]]){if(this['trunks'][_0x55964e[_0x69df('0x2f')]][_0x69df('0x27')]!==_0x55964e[_0x69df('0x27')][_0x69df('0x33')]()){this[_0x69df('0xa')][_0x55964e['device']]['stateTime']=_[_0x69df('0x39')](moment()['format']('x'));}this[_0x69df('0xa')][_0x55964e['device']][_0x69df('0x27')]=_0x55964e[_0x69df('0x27')]['toLowerCase']();logger[_0x69df('0x28')](_0x69df('0x3a'),util[_0x69df('0x15')](this[_0x69df('0xa')][_0x55964e[_0x69df('0x2f')]],{'showHidden':![],'depth':null}));this[_0x69df('0x1e')](util['format'](_0x69df('0x2b'),this[_0x69df('0xa')][_0x55964e['device']][_0x69df('0x2c')]),_0x69df('0x2d'),this[_0x69df('0xa')][_0x55964e[_0x69df('0x2f')]]);}else if(_[_0x69df('0x3b')](_0x55964e[_0x69df('0x2f')],_0x69df('0x3c'))){var _0x553394=_0x55964e[_0x69df('0x2f')];var _0x39bb96=_0x553394['substring'](_0x553394['indexOf']('/')+0x1,_0x553394[_0x69df('0x3d')]('@'));var _0x1db044=_[_0x69df('0x24')](this['agents'],function(_0x182f1b){return _0x182f1b[_0x69df('0x3e')]==_0x39bb96||_0x182f1b[_0x69df('0x3f')]==_0x39bb96||_0x182f1b[_0x69df('0x40')]==_0x39bb96;});if(_0x1db044){if(_0x1db044[_0x69df('0x27')]!==_0x55964e['state'][_0x69df('0x33')]()){_0x1db044[_0x69df('0x35')]=_[_0x69df('0x39')](moment()['format']('x'));}_0x1db044[_0x69df('0x27')]=_0x55964e[_0x69df('0x27')][_0x69df('0x33')]();_0x1db044[_0x69df('0x32')]=!![];_0x1db044[_0x69df('0x34')](_0x55964e);}}}}catch(_0x33d978){logger[_0x69df('0x14')]('[userReport][devicestatechange]',util[_0x69df('0x15')](_0x33d978,{'showHidden':![],'depth':null}));}};UserReport[_0x69df('0x1b')][_0x69df('0x11')]=function(_0x393498){try{if(this[_0x69df('0x1f')](_0x393498)&&this[_0x69df('0x1f')](_0x393498['peerstatus'])){logger[_0x69df('0x20')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x393498['peer'],_0x393498[_0x69df('0x41')],_0x393498[_0x69df('0x42')]);logger[_0x69df('0x28')](_0x69df('0x43'),util[_0x69df('0x15')](_0x393498,{'showHidden':![],'depth':null}));if(this['agents'][_0x393498[_0x69df('0x44')]]){if(!this[_0x69df('0x31')][_0x393498[_0x69df('0x44')]][_0x69df('0x32')]||_0x393498[_0x69df('0x42')][_0x69df('0x33')]()==_0x69df('0x45')){this['agents'][_0x393498[_0x69df('0x44')]][_0x69df('0x32')]=![];this['agents'][_0x393498[_0x69df('0x44')]][_0x69df('0x46')]=_0x393498['peerstatus'][_0x69df('0x33')]();this[_0x69df('0x31')][_0x393498[_0x69df('0x44')]]['address']=_0x393498[_0x69df('0x41')];this[_0x69df('0x31')][_0x393498[_0x69df('0x44')]][_0x69df('0x34')](_0x393498);}}else if(this[_0x69df('0xb')][_0x393498[_0x69df('0x44')]]){this[_0x69df('0xb')][_0x393498['peer']][_0x69df('0x46')]=_0x393498[_0x69df('0x42')][_0x69df('0x33')]();this[_0x69df('0xb')][_0x393498[_0x69df('0x44')]][_0x69df('0x41')]=_0x393498[_0x69df('0x41')];logger[_0x69df('0x28')](_0x69df('0x47'),util[_0x69df('0x15')](this[_0x69df('0xb')][_0x393498[_0x69df('0x44')]],{'showHidden':![],'depth':null}));this[_0x69df('0x1e')](util[_0x69df('0x2a')]('telephone:%s',this['telephones'][_0x393498[_0x69df('0x44')]]['name']),_0x69df('0x38'),this[_0x69df('0xb')][_0x393498['peer']]);}else if(this[_0x69df('0xa')][_0x393498[_0x69df('0x44')]]){this['trunks'][_0x393498['peer']]['status']=_0x393498['peerstatus']['toLowerCase']();this[_0x69df('0xa')][_0x393498[_0x69df('0x44')]][_0x69df('0x41')]=_0x393498[_0x69df('0x41')];logger[_0x69df('0x28')](_0x69df('0x48'),util[_0x69df('0x15')](this[_0x69df('0xa')][_0x393498[_0x69df('0x44')]],{'showHidden':![],'depth':null}));this[_0x69df('0x1e')](util[_0x69df('0x2a')](_0x69df('0x2b'),this['trunks'][_0x393498['peer']][_0x69df('0x2c')]),'trunk:save',this[_0x69df('0xa')][_0x393498[_0x69df('0x44')]]);}}}catch(_0x2ac966){logger[_0x69df('0x14')](_0x69df('0x43'),util[_0x69df('0x15')](_0x2ac966,{'showHidden':![],'depth':null}));}};module[_0x69df('0x49')]=UserReport;