6b47dd250b764cf8196c7195ff9fcbb8e159b04c
[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 _0xd10a=['[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','actionid','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','inuse','toLowerCase','stateTime','toNumber','updateStatusRealtime','telephones','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','name','startsWith','Local','substring','indexOf','mobile','phone','accountcode','peer','address','[userReport][peerstatus]','registered','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','defaults','redis','localhost','socket.io-emitter','trunks','agents','registryentry','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','catch','[userReport][sipshowregistry]','inspect','actionDeviceStateList','error','[userReport][devicestatelist]','actionSipPeerStatus'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd10a,0x84));var _0xad10=function(_0x3cbbb7,_0x5aeaa2){_0x3cbbb7=_0x3cbbb7-0x0;var _0x541c56=_0xd10a[_0x3cbbb7];return _0x541c56;};'use strict';var _=require(_0xad10('0x0'));var moment=require(_0xad10('0x1'));var util=require(_0xad10('0x2'));var Redis=require(_0xad10('0x3'));var BPromise=require(_0xad10('0x4'));var config=require(_0xad10('0x5'));var logger=require('../../../config/logger')(_0xad10('0x6'));var ami=require(_0xad10('0x7'));config['redis']=_[_0xad10('0x8')](config[_0xad10('0x9')],{'host':_0xad10('0xa'),'port':0x18eb});var io=require(_0xad10('0xb'))(new Redis(config[_0xad10('0x9')]));function UserReport(_0x141a80){this[_0xad10('0xc')]=_0x141a80[_0xad10('0xc')];this[_0xad10('0xd')]=_0x141a80[_0xad10('0xd')];this['telephones']=_0x141a80['telephones'];ami['on'](_0xad10('0xe'),this[_0xad10('0xf')][_0xad10('0x10')](this));ami['on'](_0xad10('0x11'),this[_0xad10('0xf')][_0xad10('0x10')](this));ami['on'](_0xad10('0x12'),this[_0xad10('0x13')][_0xad10('0x10')](this));ami['on'](_0xad10('0x14'),this[_0xad10('0x15')][_0xad10('0x10')](this));return this[_0xad10('0x16')]();}function showSipRegistrations(){Promise[_0xad10('0x17')]()[_0xad10('0x18')](ami['actionSipShowRegistry']())[_0xad10('0x19')](function(_0x5ebb2d){logger['error'](_0xad10('0x1a'),util[_0xad10('0x1b')](_0x5ebb2d,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xad10('0x17')]()[_0xad10('0x18')](ami[_0xad10('0x1c')]())[_0xad10('0x19')](function(_0x17a938){logger[_0xad10('0x1d')](_0xad10('0x1e'),util[_0xad10('0x1b')](_0x17a938,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xad10('0x17')]()[_0xad10('0x18')](ami[_0xad10('0x1f')]())[_0xad10('0x19')](function(_0x18152a){logger[_0xad10('0x1d')](_0xad10('0x20'),util[_0xad10('0x1b')](_0x18152a,{'showHidden':![],'depth':null}));});}UserReport[_0xad10('0x21')][_0xad10('0x16')]=function(){setInterval(function(){BPromise['resolve']()[_0xad10('0x18')](showSipRegistrations())[_0xad10('0x18')](listDeviceStates())[_0xad10('0x18')](showPeersStatus());},0x32c8);};UserReport[_0xad10('0x21')][_0xad10('0x22')]=function(_0x18526a){return _0x18526a!==null&&!_[_0xad10('0x23')](_0x18526a);};UserReport[_0xad10('0x21')][_0xad10('0x24')]=function(_0x382f2a,_0x30f3a7,_0x228f83){io['to'](_0x382f2a)[_0xad10('0x24')](_0x30f3a7,_0x228f83);};UserReport[_0xad10('0x21')]['syncRegistry']=function(_0x404e42){try{if(this[_0xad10('0x22')](_0x404e42)){logger[_0xad10('0x25')](_0xad10('0x26'),_0x404e42[_0xad10('0x27')],_0x404e42[_0xad10('0x28')]);logger[_0xad10('0x29')](_0xad10('0x2a'),util[_0xad10('0x1b')](_0x404e42,{'showHidden':![],'depth':null}));var _0x73a2cf=_[_0xad10('0x2b')](this[_0xad10('0xc')],{'defaultuser':_0x404e42[_0xad10('0x27')]});if(_0x73a2cf){_0x404e42[_0xad10('0x2c')]=_0x404e42['state'];_[_0xad10('0x2d')](_0x73a2cf,_[_0xad10('0x2e')](_0x404e42,['event',_0xad10('0x2f'),_0xad10('0x27'),'state']));logger['debug'](_0xad10('0x30'),util[_0xad10('0x1b')](_0x73a2cf,{'showHidden':![],'depth':null}));this[_0xad10('0x24')](util[_0xad10('0x31')](_0xad10('0x32'),_0x73a2cf['name']),_0xad10('0x33'),_0x73a2cf);}}}catch(_0x193650){logger[_0xad10('0x1d')](_0xad10('0x2a'),util['inspect'](_0x193650,{'showHidden':![],'depth':null}));}};UserReport[_0xad10('0x21')][_0xad10('0x13')]=function(_0x307de3){try{if(this[_0xad10('0x22')](_0x307de3)){logger[_0xad10('0x25')](_0xad10('0x34'),_0x307de3[_0xad10('0x35')],_0x307de3['state']);logger[_0xad10('0x29')](_0xad10('0x36'),util[_0xad10('0x1b')](_0x307de3,{'showHidden':![],'depth':null}));if(this[_0xad10('0xd')][_0x307de3[_0xad10('0x35')]]){if(!this[_0xad10('0xd')][_0x307de3[_0xad10('0x35')]][_0xad10('0x37')]||_0x307de3[_0xad10('0x28')]['toLowerCase']()==_0xad10('0x38')){this[_0xad10('0xd')][_0x307de3['device']][_0xad10('0x37')]=![];if(this[_0xad10('0xd')][_0x307de3[_0xad10('0x35')]]['state']!==_0x307de3[_0xad10('0x28')][_0xad10('0x39')]()){this[_0xad10('0xd')][_0x307de3[_0xad10('0x35')]][_0xad10('0x3a')]=_[_0xad10('0x3b')](moment()[_0xad10('0x31')]('x'));}this[_0xad10('0xd')][_0x307de3[_0xad10('0x35')]]['state']=_0x307de3[_0xad10('0x28')][_0xad10('0x39')]();this['agents'][_0x307de3[_0xad10('0x35')]][_0xad10('0x3c')](_0x307de3);}}else if(this[_0xad10('0x3d')][_0x307de3[_0xad10('0x35')]]){if(this['telephones'][_0x307de3[_0xad10('0x35')]][_0xad10('0x28')]!==_0x307de3['state'][_0xad10('0x39')]()){this[_0xad10('0x3d')][_0x307de3[_0xad10('0x35')]]['stateTime']=_[_0xad10('0x3b')](moment()[_0xad10('0x31')]('x'));}this['telephones'][_0x307de3[_0xad10('0x35')]][_0xad10('0x28')]=_0x307de3[_0xad10('0x28')][_0xad10('0x39')]();logger[_0xad10('0x29')](_0xad10('0x3e'),util['inspect'](this['telephones'][_0x307de3[_0xad10('0x35')]],{'showHidden':![],'depth':null}));this[_0xad10('0x24')](util[_0xad10('0x31')]('telephone:%s',this[_0xad10('0x3d')][_0x307de3[_0xad10('0x35')]]['name']),_0xad10('0x3f'),this['telephones'][_0x307de3[_0xad10('0x35')]]);}else if(this[_0xad10('0xc')][_0x307de3[_0xad10('0x35')]]){if(this[_0xad10('0xc')][_0x307de3[_0xad10('0x35')]][_0xad10('0x28')]!==_0x307de3[_0xad10('0x28')][_0xad10('0x39')]()){this[_0xad10('0xc')][_0x307de3[_0xad10('0x35')]][_0xad10('0x3a')]=_[_0xad10('0x3b')](moment()['format']('x'));}this['trunks'][_0x307de3['device']]['state']=_0x307de3[_0xad10('0x28')][_0xad10('0x39')]();logger[_0xad10('0x29')](_0xad10('0x40'),util['inspect'](this[_0xad10('0xc')][_0x307de3[_0xad10('0x35')]],{'showHidden':![],'depth':null}));this[_0xad10('0x24')](util[_0xad10('0x31')](_0xad10('0x32'),this[_0xad10('0xc')][_0x307de3[_0xad10('0x35')]][_0xad10('0x41')]),'trunk:save',this[_0xad10('0xc')][_0x307de3['device']]);}else if(_[_0xad10('0x42')](_0x307de3[_0xad10('0x35')],_0xad10('0x43'))){var _0x405413=_0x307de3[_0xad10('0x35')];var _0x28ee66=_0x405413[_0xad10('0x44')](_0x405413[_0xad10('0x45')]('/')+0x1,_0x405413[_0xad10('0x45')]('@'));var _0x5c087b=_[_0xad10('0x2b')](this['agents'],function(_0x69bc94){return _0x69bc94[_0xad10('0x46')]==_0x28ee66||_0x69bc94[_0xad10('0x47')]==_0x28ee66||_0x69bc94[_0xad10('0x48')]==_0x28ee66;});if(_0x5c087b){if(_0x5c087b['state']!==_0x307de3[_0xad10('0x28')][_0xad10('0x39')]()){_0x5c087b[_0xad10('0x3a')]=_[_0xad10('0x3b')](moment()['format']('x'));}_0x5c087b[_0xad10('0x28')]=_0x307de3[_0xad10('0x28')][_0xad10('0x39')]();_0x5c087b[_0xad10('0x37')]=!![];_0x5c087b[_0xad10('0x3c')](_0x307de3);}}}}catch(_0x55192d){logger['error']('[userReport][devicestatechange]',util[_0xad10('0x1b')](_0x55192d,{'showHidden':![],'depth':null}));}};UserReport[_0xad10('0x21')]['syncPeerStatus']=function(_0x43997b){try{if(this['isNotNull'](_0x43997b)&&this['isNotNull'](_0x43997b[_0xad10('0x14')])){logger['info']('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x43997b[_0xad10('0x49')],_0x43997b[_0xad10('0x4a')],_0x43997b['peerstatus']);logger[_0xad10('0x29')](_0xad10('0x4b'),util['inspect'](_0x43997b,{'showHidden':![],'depth':null}));if(this[_0xad10('0xd')][_0x43997b[_0xad10('0x49')]]){if(!this[_0xad10('0xd')][_0x43997b[_0xad10('0x49')]][_0xad10('0x37')]||_0x43997b['peerstatus'][_0xad10('0x39')]()==_0xad10('0x4c')){this[_0xad10('0xd')][_0x43997b[_0xad10('0x49')]][_0xad10('0x37')]=![];this[_0xad10('0xd')][_0x43997b[_0xad10('0x49')]][_0xad10('0x4d')]=_0x43997b[_0xad10('0x14')][_0xad10('0x39')]();this[_0xad10('0xd')][_0x43997b[_0xad10('0x49')]][_0xad10('0x4a')]=_0x43997b[_0xad10('0x4a')];this[_0xad10('0xd')][_0x43997b['peer']][_0xad10('0x3c')](_0x43997b);}}else if(this['telephones'][_0x43997b[_0xad10('0x49')]]){this[_0xad10('0x3d')][_0x43997b[_0xad10('0x49')]][_0xad10('0x4d')]=_0x43997b[_0xad10('0x14')][_0xad10('0x39')]();this[_0xad10('0x3d')][_0x43997b[_0xad10('0x49')]][_0xad10('0x4a')]=_0x43997b['address'];logger['debug'](_0xad10('0x4e'),util[_0xad10('0x1b')](this[_0xad10('0x3d')][_0x43997b[_0xad10('0x49')]],{'showHidden':![],'depth':null}));this[_0xad10('0x24')](util[_0xad10('0x31')](_0xad10('0x4f'),this['telephones'][_0x43997b['peer']][_0xad10('0x41')]),_0xad10('0x3f'),this['telephones'][_0x43997b[_0xad10('0x49')]]);}else if(this[_0xad10('0xc')][_0x43997b['peer']]){this[_0xad10('0xc')][_0x43997b[_0xad10('0x49')]][_0xad10('0x4d')]=_0x43997b[_0xad10('0x14')]['toLowerCase']();this['trunks'][_0x43997b['peer']][_0xad10('0x4a')]=_0x43997b[_0xad10('0x4a')];logger[_0xad10('0x29')](_0xad10('0x50'),util['inspect'](this[_0xad10('0xc')][_0x43997b[_0xad10('0x49')]],{'showHidden':![],'depth':null}));this['emit'](util[_0xad10('0x31')](_0xad10('0x32'),this['trunks'][_0x43997b['peer']][_0xad10('0x41')]),_0xad10('0x33'),this[_0xad10('0xc')][_0x43997b[_0xad10('0x49')]]);}}}catch(_0x415ea1){logger[_0xad10('0x1d')](_0xad10('0x4b'),util[_0xad10('0x1b')](_0x415ea1,{'showHidden':![],'depth':null}));}};module[_0xad10('0x51')]=UserReport;