cbd8115b0524a2fa0e8d33fa440566813ff05692
[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 _0x252b=['syncDeviceState','syncPeerStatus','syncRealtimeShow','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','resolve','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','username','[userReport][registry]','state','merge','omit','event','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','name','info','[userReport][devicestatechange]\x20device:%s\x20state:%s','[userReport][devicestatechange]','device','toLowerCase','inuse','toNumber','updateStatusRealtime','stateTime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:%s','startsWith','Local','substring','indexOf','mobile','local','peerstatus','peer','address','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','trunk:save','lodash','moment','util','bluebird','../../../config/environment','ami','../ami','redis','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','registry'];(function(_0x493a51,_0x45128c){var _0xc85756=function(_0x2c39a8){while(--_0x2c39a8){_0x493a51['push'](_0x493a51['shift']());}};_0xc85756(++_0x45128c);}(_0x252b,0x117));var _0xb252=function(_0x14f418,_0xe8c131){_0x14f418=_0x14f418-0x0;var _0x5e5cdb=_0x252b[_0x14f418];return _0x5e5cdb;};'use strict';var _=require(_0xb252('0x0'));var moment=require(_0xb252('0x1'));var util=require(_0xb252('0x2'));var Redis=require('ioredis');var BPromise=require(_0xb252('0x3'));var config=require(_0xb252('0x4'));var logger=require('../../../config/logger')(_0xb252('0x5'));var ami=require(_0xb252('0x6'));config[_0xb252('0x7')]=_[_0xb252('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xb252('0x9'))(new Redis(config[_0xb252('0x7')]));function UserReport(_0x242219){this[_0xb252('0xa')]=_0x242219[_0xb252('0xa')];this[_0xb252('0xb')]=_0x242219[_0xb252('0xb')];this[_0xb252('0xc')]=_0x242219[_0xb252('0xc')];ami['on'](_0xb252('0xd'),this[_0xb252('0xe')][_0xb252('0xf')](this));ami['on'](_0xb252('0x10'),this[_0xb252('0xe')][_0xb252('0xf')](this));ami['on']('devicestatechange',this[_0xb252('0x11')][_0xb252('0xf')](this));ami['on']('peerstatus',this[_0xb252('0x12')]['bind'](this));return this[_0xb252('0x13')]();}function showSipRegistrations(){Promise['resolve']()[_0xb252('0x14')](ami[_0xb252('0x15')]())[_0xb252('0x16')](function(_0x3c5be1){logger[_0xb252('0x17')](_0xb252('0x18'),util[_0xb252('0x19')](_0x3c5be1,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xb252('0x1a')]()[_0xb252('0x14')](ami[_0xb252('0x1b')]())[_0xb252('0x16')](function(_0x1ea9d6){logger[_0xb252('0x17')](_0xb252('0x1c'),util['inspect'](_0x1ea9d6,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xb252('0x1a')]()[_0xb252('0x14')](ami[_0xb252('0x1d')]())[_0xb252('0x16')](function(_0x3ce75e){logger['error'](_0xb252('0x1e'),util['inspect'](_0x3ce75e,{'showHidden':![],'depth':null}));});}UserReport['prototype']['syncRealtimeShow']=function(){setInterval(function(){BPromise['resolve']()[_0xb252('0x14')](showSipRegistrations())[_0xb252('0x14')](listDeviceStates())[_0xb252('0x14')](showPeersStatus());},0x32c8);};UserReport[_0xb252('0x1f')][_0xb252('0x20')]=function(_0x53f410){return _0x53f410!==null&&!_[_0xb252('0x21')](_0x53f410);};UserReport[_0xb252('0x1f')][_0xb252('0x22')]=function(_0x53c0a1,_0x126034,_0x1c65b6){io['to'](_0x53c0a1)[_0xb252('0x22')](_0x126034,_0x1c65b6);};UserReport[_0xb252('0x1f')][_0xb252('0xe')]=function(_0xf87fd2){try{if(this[_0xb252('0x20')](_0xf87fd2)){logger['info']('[userReport][registry]\x20registry:%s\x20state:%s',_0xf87fd2[_0xb252('0x23')],_0xf87fd2['state']);logger['debug'](_0xb252('0x24'),util[_0xb252('0x19')](_0xf87fd2,{'showHidden':![],'depth':null}));var _0x1ab213=_['find'](this[_0xb252('0xa')],{'defaultuser':_0xf87fd2[_0xb252('0x23')]});if(_0x1ab213){_0xf87fd2['stateRegistry']=_0xf87fd2[_0xb252('0x25')];_[_0xb252('0x26')](_0x1ab213,_[_0xb252('0x27')](_0xf87fd2,[_0xb252('0x28'),'actionid',_0xb252('0x23'),'state']));logger[_0xb252('0x29')](_0xb252('0x2a'),util[_0xb252('0x19')](_0x1ab213,{'showHidden':![],'depth':null}));this[_0xb252('0x22')](util[_0xb252('0x2b')]('trunk:%s',_0x1ab213[_0xb252('0x2c')]),'trunk:save',_0x1ab213);}}}catch(_0x14f565){logger[_0xb252('0x17')]('[userReport][registry]',util['inspect'](_0x14f565,{'showHidden':![],'depth':null}));}};UserReport[_0xb252('0x1f')][_0xb252('0x11')]=function(_0x564c6d){try{if(this[_0xb252('0x20')](_0x564c6d)){logger[_0xb252('0x2d')](_0xb252('0x2e'),_0x564c6d['device'],_0x564c6d[_0xb252('0x25')]);logger[_0xb252('0x29')](_0xb252('0x2f'),util[_0xb252('0x19')](_0x564c6d,{'showHidden':![],'depth':null}));if(this[_0xb252('0xb')][_0x564c6d[_0xb252('0x30')]]){if(!this[_0xb252('0xb')][_0x564c6d[_0xb252('0x30')]]['local']||_0x564c6d[_0xb252('0x25')][_0xb252('0x31')]()==_0xb252('0x32')){this[_0xb252('0xb')][_0x564c6d['device']]['local']=![];if(this[_0xb252('0xb')][_0x564c6d[_0xb252('0x30')]]['state']!==_0x564c6d[_0xb252('0x25')][_0xb252('0x31')]()){this[_0xb252('0xb')][_0x564c6d[_0xb252('0x30')]]['stateTime']=_[_0xb252('0x33')](moment()['format']('x'));}this[_0xb252('0xb')][_0x564c6d[_0xb252('0x30')]][_0xb252('0x25')]=_0x564c6d[_0xb252('0x25')]['toLowerCase']();this['agents'][_0x564c6d[_0xb252('0x30')]][_0xb252('0x34')](_0x564c6d);}}else if(this[_0xb252('0xc')][_0x564c6d[_0xb252('0x30')]]){if(this[_0xb252('0xc')][_0x564c6d[_0xb252('0x30')]]['state']!==_0x564c6d['state']['toLowerCase']()){this[_0xb252('0xc')][_0x564c6d['device']][_0xb252('0x35')]=_[_0xb252('0x33')](moment()[_0xb252('0x2b')]('x'));}this[_0xb252('0xc')][_0x564c6d[_0xb252('0x30')]]['state']=_0x564c6d[_0xb252('0x25')][_0xb252('0x31')]();logger[_0xb252('0x29')](_0xb252('0x36'),util[_0xb252('0x19')](this[_0xb252('0xc')][_0x564c6d['device']],{'showHidden':![],'depth':null}));this['emit'](util[_0xb252('0x2b')](_0xb252('0x37'),this['telephones'][_0x564c6d[_0xb252('0x30')]][_0xb252('0x2c')]),_0xb252('0x38'),this[_0xb252('0xc')][_0x564c6d[_0xb252('0x30')]]);}else if(this[_0xb252('0xa')][_0x564c6d[_0xb252('0x30')]]){if(this[_0xb252('0xa')][_0x564c6d[_0xb252('0x30')]]['state']!==_0x564c6d['state'][_0xb252('0x31')]()){this['trunks'][_0x564c6d[_0xb252('0x30')]][_0xb252('0x35')]=_[_0xb252('0x33')](moment()[_0xb252('0x2b')]('x'));}this[_0xb252('0xa')][_0x564c6d[_0xb252('0x30')]]['state']=_0x564c6d[_0xb252('0x25')][_0xb252('0x31')]();logger['debug'](_0xb252('0x39'),util[_0xb252('0x19')](this[_0xb252('0xa')][_0x564c6d[_0xb252('0x30')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xb252('0x2b')](_0xb252('0x3a'),this[_0xb252('0xa')][_0x564c6d['device']][_0xb252('0x2c')]),'trunk:save',this[_0xb252('0xa')][_0x564c6d[_0xb252('0x30')]]);}else if(_[_0xb252('0x3b')](_0x564c6d[_0xb252('0x30')],_0xb252('0x3c'))){var _0x1c5f53=_0x564c6d[_0xb252('0x30')];var _0x3c32d3=_0x1c5f53[_0xb252('0x3d')](_0x1c5f53[_0xb252('0x3e')]('/')+0x1,_0x1c5f53[_0xb252('0x3e')]('@'));var _0x189b4e=_['find'](this[_0xb252('0xb')],function(_0x4dfc95){return _0x4dfc95[_0xb252('0x3f')]==_0x3c32d3||_0x4dfc95['phone']==_0x3c32d3||_0x4dfc95['accountcode']==_0x3c32d3;});if(_0x189b4e){if(_0x189b4e[_0xb252('0x25')]!==_0x564c6d[_0xb252('0x25')]['toLowerCase']()){_0x189b4e[_0xb252('0x35')]=_['toNumber'](moment()[_0xb252('0x2b')]('x'));}_0x189b4e[_0xb252('0x25')]=_0x564c6d[_0xb252('0x25')]['toLowerCase']();_0x189b4e[_0xb252('0x40')]=!![];_0x189b4e[_0xb252('0x34')](_0x564c6d);}}}}catch(_0x2a1f1c){logger['error'](_0xb252('0x2f'),util[_0xb252('0x19')](_0x2a1f1c,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncPeerStatus']=function(_0x28117a){try{if(this[_0xb252('0x20')](_0x28117a)&&this[_0xb252('0x20')](_0x28117a[_0xb252('0x41')])){logger[_0xb252('0x2d')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x28117a[_0xb252('0x42')],_0x28117a[_0xb252('0x43')],_0x28117a[_0xb252('0x41')]);logger[_0xb252('0x29')](_0xb252('0x44'),util[_0xb252('0x19')](_0x28117a,{'showHidden':![],'depth':null}));if(this[_0xb252('0xb')][_0x28117a[_0xb252('0x42')]]){if(!this[_0xb252('0xb')][_0x28117a[_0xb252('0x42')]][_0xb252('0x40')]||_0x28117a['peerstatus'][_0xb252('0x31')]()==_0xb252('0x45')){this[_0xb252('0xb')][_0x28117a[_0xb252('0x42')]][_0xb252('0x40')]=![];this[_0xb252('0xb')][_0x28117a['peer']]['status']=_0x28117a['peerstatus'][_0xb252('0x31')]();this[_0xb252('0xb')][_0x28117a[_0xb252('0x42')]]['address']=_0x28117a[_0xb252('0x43')];this[_0xb252('0xb')][_0x28117a[_0xb252('0x42')]][_0xb252('0x34')](_0x28117a);}}else if(this[_0xb252('0xc')][_0x28117a[_0xb252('0x42')]]){this[_0xb252('0xc')][_0x28117a[_0xb252('0x42')]][_0xb252('0x46')]=_0x28117a['peerstatus'][_0xb252('0x31')]();this['telephones'][_0x28117a[_0xb252('0x42')]][_0xb252('0x43')]=_0x28117a[_0xb252('0x43')];logger[_0xb252('0x29')](_0xb252('0x47'),util[_0xb252('0x19')](this[_0xb252('0xc')][_0x28117a[_0xb252('0x42')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xb252('0x2b')](_0xb252('0x37'),this[_0xb252('0xc')][_0x28117a[_0xb252('0x42')]][_0xb252('0x2c')]),_0xb252('0x38'),this['telephones'][_0x28117a[_0xb252('0x42')]]);}else if(this[_0xb252('0xa')][_0x28117a[_0xb252('0x42')]]){this[_0xb252('0xa')][_0x28117a[_0xb252('0x42')]][_0xb252('0x46')]=_0x28117a[_0xb252('0x41')][_0xb252('0x31')]();this[_0xb252('0xa')][_0x28117a[_0xb252('0x42')]][_0xb252('0x43')]=_0x28117a[_0xb252('0x43')];logger[_0xb252('0x29')](_0xb252('0x48'),util[_0xb252('0x19')](this['trunks'][_0x28117a[_0xb252('0x42')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xb252('0x2b')](_0xb252('0x3a'),this['trunks'][_0x28117a[_0xb252('0x42')]][_0xb252('0x2c')]),_0xb252('0x49'),this[_0xb252('0xa')][_0x28117a[_0xb252('0x42')]]);}}}catch(_0x4446d7){logger[_0xb252('0x17')](_0xb252('0x44'),util['inspect'](_0x4446d7,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;