Built motion from commit (unavailable).|2.5.31
[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 _0x9ad2=['name','trunk:save','[userReport][registry]','info','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','toLowerCase','inuse','local','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','indexOf','find','mobile','phone','accountcode','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','[userReport][peerstatus]','peer','registered','status','address','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','exports','moment','util','ioredis','../../../config/logger','ami','../ami','redis','trunks','agents','telephones','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','then','actionSipShowRegistry','error','[userReport][sipshowregistry]','inspect','resolve','actionDeviceStateList','catch','[userReport][devicestatelist]','actionSipPeerStatus','prototype','isUndefined','emit','isNotNull','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','stateRegistry','merge','omit','event','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s'];(function(_0x20fd4d,_0x4537ac){var _0xe7a610=function(_0x3b617c){while(--_0x3b617c){_0x20fd4d['push'](_0x20fd4d['shift']());}};_0xe7a610(++_0x4537ac);}(_0x9ad2,0x69));var _0x29ad=function(_0x25a439,_0x11405f){_0x25a439=_0x25a439-0x0;var _0x3e3b10=_0x9ad2[_0x25a439];return _0x3e3b10;};'use strict';var _=require('lodash');var moment=require(_0x29ad('0x0'));var util=require(_0x29ad('0x1'));var Redis=require(_0x29ad('0x2'));var BPromise=require('bluebird');var config=require('../../../config/environment');var logger=require(_0x29ad('0x3'))(_0x29ad('0x4'));var ami=require(_0x29ad('0x5'));config[_0x29ad('0x6')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x29ad('0x6')]));function UserReport(_0x37132d){this[_0x29ad('0x7')]=_0x37132d[_0x29ad('0x7')];this[_0x29ad('0x8')]=_0x37132d[_0x29ad('0x8')];this[_0x29ad('0x9')]=_0x37132d[_0x29ad('0x9')];ami['on'](_0x29ad('0xa'),this[_0x29ad('0xb')][_0x29ad('0xc')](this));ami['on'](_0x29ad('0xd'),this[_0x29ad('0xb')]['bind'](this));ami['on'](_0x29ad('0xe'),this[_0x29ad('0xf')][_0x29ad('0xc')](this));ami['on'](_0x29ad('0x10'),this[_0x29ad('0x11')][_0x29ad('0xc')](this));return this[_0x29ad('0x12')]();}function showSipRegistrations(){Promise['resolve']()[_0x29ad('0x13')](ami[_0x29ad('0x14')]())['catch'](function(_0x3187a9){logger[_0x29ad('0x15')](_0x29ad('0x16'),util[_0x29ad('0x17')](_0x3187a9,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x29ad('0x18')]()[_0x29ad('0x13')](ami[_0x29ad('0x19')]())[_0x29ad('0x1a')](function(_0x66919b){logger[_0x29ad('0x15')](_0x29ad('0x1b'),util['inspect'](_0x66919b,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x29ad('0x18')]()['then'](ami[_0x29ad('0x1c')]())[_0x29ad('0x1a')](function(_0x50239b){logger[_0x29ad('0x15')]('[userReport][sippeerstatus]',util[_0x29ad('0x17')](_0x50239b,{'showHidden':![],'depth':null}));});}UserReport[_0x29ad('0x1d')][_0x29ad('0x12')]=function(){setInterval(function(){BPromise[_0x29ad('0x18')]()[_0x29ad('0x13')](showSipRegistrations())[_0x29ad('0x13')](listDeviceStates())[_0x29ad('0x13')](showPeersStatus());},0x32c8);};UserReport['prototype']['isNotNull']=function(_0x19ac20){return _0x19ac20!==null&&!_[_0x29ad('0x1e')](_0x19ac20);};UserReport[_0x29ad('0x1d')][_0x29ad('0x1f')]=function(_0xbe7a07,_0x3e1654,_0x331c3d){io['to'](_0xbe7a07)[_0x29ad('0x1f')](_0x3e1654,_0x331c3d);};UserReport[_0x29ad('0x1d')][_0x29ad('0xb')]=function(_0x228f74){try{if(this[_0x29ad('0x20')](_0x228f74)){logger['info'](_0x29ad('0x21'),_0x228f74[_0x29ad('0x22')],_0x228f74[_0x29ad('0x23')]);logger[_0x29ad('0x24')]('[userReport][registry]',util[_0x29ad('0x17')](_0x228f74,{'showHidden':![],'depth':null}));var _0x29d987=_['find'](this[_0x29ad('0x7')],{'defaultuser':_0x228f74[_0x29ad('0x22')]});if(_0x29d987){_0x228f74[_0x29ad('0x25')]=_0x228f74[_0x29ad('0x23')];_[_0x29ad('0x26')](_0x29d987,_[_0x29ad('0x27')](_0x228f74,[_0x29ad('0x28'),_0x29ad('0x29'),'username','state']));logger[_0x29ad('0x24')](_0x29ad('0x2a'),util[_0x29ad('0x17')](_0x29d987,{'showHidden':![],'depth':null}));this[_0x29ad('0x1f')](util[_0x29ad('0x2b')](_0x29ad('0x2c'),_0x29d987[_0x29ad('0x2d')]),_0x29ad('0x2e'),_0x29d987);}}}catch(_0x342d23){logger[_0x29ad('0x15')](_0x29ad('0x2f'),util['inspect'](_0x342d23,{'showHidden':![],'depth':null}));}};UserReport[_0x29ad('0x1d')][_0x29ad('0xf')]=function(_0x57eff2){try{if(this[_0x29ad('0x20')](_0x57eff2)){logger[_0x29ad('0x30')](_0x29ad('0x31'),_0x57eff2[_0x29ad('0x32')],_0x57eff2['state']);logger[_0x29ad('0x24')](_0x29ad('0x33'),util['inspect'](_0x57eff2,{'showHidden':![],'depth':null}));if(this[_0x29ad('0x8')][_0x57eff2[_0x29ad('0x32')]]){if(!this['agents'][_0x57eff2['device']]['local']||_0x57eff2[_0x29ad('0x23')][_0x29ad('0x34')]()==_0x29ad('0x35')){this['agents'][_0x57eff2['device']][_0x29ad('0x36')]=![];if(this[_0x29ad('0x8')][_0x57eff2[_0x29ad('0x32')]][_0x29ad('0x23')]!==_0x57eff2[_0x29ad('0x23')][_0x29ad('0x34')]()){this['agents'][_0x57eff2['device']][_0x29ad('0x37')]=_[_0x29ad('0x38')](moment()[_0x29ad('0x2b')]('x'));}this[_0x29ad('0x8')][_0x57eff2[_0x29ad('0x32')]][_0x29ad('0x23')]=_0x57eff2[_0x29ad('0x23')][_0x29ad('0x34')]();this[_0x29ad('0x8')][_0x57eff2['device']][_0x29ad('0x39')](_0x57eff2);}}else if(this[_0x29ad('0x9')][_0x57eff2[_0x29ad('0x32')]]){if(this[_0x29ad('0x9')][_0x57eff2[_0x29ad('0x32')]][_0x29ad('0x23')]!==_0x57eff2['state']['toLowerCase']()){this[_0x29ad('0x9')][_0x57eff2[_0x29ad('0x32')]]['stateTime']=_[_0x29ad('0x38')](moment()[_0x29ad('0x2b')]('x'));}this[_0x29ad('0x9')][_0x57eff2[_0x29ad('0x32')]][_0x29ad('0x23')]=_0x57eff2[_0x29ad('0x23')][_0x29ad('0x34')]();logger[_0x29ad('0x24')](_0x29ad('0x3a'),util[_0x29ad('0x17')](this[_0x29ad('0x9')][_0x57eff2[_0x29ad('0x32')]],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x29ad('0x3b'),this['telephones'][_0x57eff2['device']][_0x29ad('0x2d')]),_0x29ad('0x3c'),this[_0x29ad('0x9')][_0x57eff2['device']]);}else if(this[_0x29ad('0x7')][_0x57eff2[_0x29ad('0x32')]]){if(this['trunks'][_0x57eff2['device']]['state']!==_0x57eff2[_0x29ad('0x23')][_0x29ad('0x34')]()){this[_0x29ad('0x7')][_0x57eff2['device']][_0x29ad('0x37')]=_[_0x29ad('0x38')](moment()[_0x29ad('0x2b')]('x'));}this[_0x29ad('0x7')][_0x57eff2[_0x29ad('0x32')]][_0x29ad('0x23')]=_0x57eff2[_0x29ad('0x23')][_0x29ad('0x34')]();logger['debug'](_0x29ad('0x3d'),util[_0x29ad('0x17')](this[_0x29ad('0x7')][_0x57eff2['device']],{'showHidden':![],'depth':null}));this[_0x29ad('0x1f')](util[_0x29ad('0x2b')](_0x29ad('0x2c'),this['trunks'][_0x57eff2[_0x29ad('0x32')]][_0x29ad('0x2d')]),_0x29ad('0x2e'),this[_0x29ad('0x7')][_0x57eff2[_0x29ad('0x32')]]);}else if(_['startsWith'](_0x57eff2[_0x29ad('0x32')],'Local')){var _0x19c285=_0x57eff2['device'];var _0x1fbfad=_0x19c285['substring'](_0x19c285[_0x29ad('0x3e')]('/')+0x1,_0x19c285[_0x29ad('0x3e')]('@'));var _0x2f1795=_[_0x29ad('0x3f')](this[_0x29ad('0x8')],function(_0x105b4b){return _0x105b4b[_0x29ad('0x40')]==_0x1fbfad||_0x105b4b[_0x29ad('0x41')]==_0x1fbfad||_0x105b4b[_0x29ad('0x42')]==_0x1fbfad;});if(_0x2f1795){if(_0x2f1795[_0x29ad('0x23')]!==_0x57eff2[_0x29ad('0x23')][_0x29ad('0x34')]()){_0x2f1795[_0x29ad('0x37')]=_[_0x29ad('0x38')](moment()[_0x29ad('0x2b')]('x'));}_0x2f1795[_0x29ad('0x23')]=_0x57eff2[_0x29ad('0x23')]['toLowerCase']();_0x2f1795[_0x29ad('0x36')]=!![];_0x2f1795[_0x29ad('0x39')](_0x57eff2);}}}}catch(_0x4ec8c6){logger['error'](_0x29ad('0x33'),util[_0x29ad('0x17')](_0x4ec8c6,{'showHidden':![],'depth':null}));}};UserReport[_0x29ad('0x1d')][_0x29ad('0x11')]=function(_0x22b3a9){try{if(this[_0x29ad('0x20')](_0x22b3a9)&&this[_0x29ad('0x20')](_0x22b3a9['peerstatus'])){logger[_0x29ad('0x30')](_0x29ad('0x43'),_0x22b3a9['peer'],_0x22b3a9['address'],_0x22b3a9[_0x29ad('0x10')]);logger['debug'](_0x29ad('0x44'),util[_0x29ad('0x17')](_0x22b3a9,{'showHidden':![],'depth':null}));if(this[_0x29ad('0x8')][_0x22b3a9[_0x29ad('0x45')]]){if(!this[_0x29ad('0x8')][_0x22b3a9[_0x29ad('0x45')]]['local']||_0x22b3a9['peerstatus'][_0x29ad('0x34')]()==_0x29ad('0x46')){this['agents'][_0x22b3a9['peer']][_0x29ad('0x36')]=![];this[_0x29ad('0x8')][_0x22b3a9[_0x29ad('0x45')]][_0x29ad('0x47')]=_0x22b3a9[_0x29ad('0x10')][_0x29ad('0x34')]();this[_0x29ad('0x8')][_0x22b3a9[_0x29ad('0x45')]][_0x29ad('0x48')]=_0x22b3a9[_0x29ad('0x48')];this[_0x29ad('0x8')][_0x22b3a9[_0x29ad('0x45')]][_0x29ad('0x39')](_0x22b3a9);}}else if(this[_0x29ad('0x9')][_0x22b3a9[_0x29ad('0x45')]]){this[_0x29ad('0x9')][_0x22b3a9[_0x29ad('0x45')]][_0x29ad('0x47')]=_0x22b3a9[_0x29ad('0x10')]['toLowerCase']();this['telephones'][_0x22b3a9[_0x29ad('0x45')]][_0x29ad('0x48')]=_0x22b3a9[_0x29ad('0x48')];logger[_0x29ad('0x24')](_0x29ad('0x49'),util[_0x29ad('0x17')](this[_0x29ad('0x9')][_0x22b3a9[_0x29ad('0x45')]],{'showHidden':![],'depth':null}));this[_0x29ad('0x1f')](util[_0x29ad('0x2b')](_0x29ad('0x3b'),this[_0x29ad('0x9')][_0x22b3a9['peer']][_0x29ad('0x2d')]),_0x29ad('0x3c'),this[_0x29ad('0x9')][_0x22b3a9[_0x29ad('0x45')]]);}else if(this[_0x29ad('0x7')][_0x22b3a9['peer']]){this[_0x29ad('0x7')][_0x22b3a9[_0x29ad('0x45')]][_0x29ad('0x47')]=_0x22b3a9[_0x29ad('0x10')][_0x29ad('0x34')]();this[_0x29ad('0x7')][_0x22b3a9[_0x29ad('0x45')]][_0x29ad('0x48')]=_0x22b3a9['address'];logger[_0x29ad('0x24')]('[userReport][peerstatus]\x20sending\x20trunk:save\x20event:',util['inspect'](this[_0x29ad('0x7')][_0x22b3a9[_0x29ad('0x45')]],{'showHidden':![],'depth':null}));this[_0x29ad('0x1f')](util['format']('trunk:%s',this[_0x29ad('0x7')][_0x22b3a9[_0x29ad('0x45')]][_0x29ad('0x2d')]),'trunk:save',this[_0x29ad('0x7')][_0x22b3a9[_0x29ad('0x45')]]);}}}catch(_0x12fb40){logger['error']('[userReport][peerstatus]',util[_0x29ad('0x17')](_0x12fb40,{'showHidden':![],'depth':null}));}};module[_0x29ad('0x4a')]=UserReport;