Built motion from commit da617fac.|2.6.6
[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 _0xcc06=['trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','Local','substring','indexOf','mobile','phone','accountcode','updateStatusRealtime','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','address','[userReport][peerstatus]','peer','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','lodash','moment','bluebird','../../../config/environment','../../../config/logger','ami','../ami','redis','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','[userReport][sipshowregistry]','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','error','[userReport][sippeerstatus]','inspect','prototype','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','debug','[userReport][registry]','stateRegistry','merge','omit','event','state','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name'];(function(_0x95ad05,_0x3cadb6){var _0x2d79f4=function(_0x9868f2){while(--_0x9868f2){_0x95ad05['push'](_0x95ad05['shift']());}};_0x2d79f4(++_0x3cadb6);}(_0xcc06,0x1ea));var _0x6cc0=function(_0x2a6809,_0x44edde){_0x2a6809=_0x2a6809-0x0;var _0x11c371=_0xcc06[_0x2a6809];return _0x11c371;};'use strict';var _=require(_0x6cc0('0x0'));var moment=require(_0x6cc0('0x1'));var util=require('util');var Redis=require('ioredis');var BPromise=require(_0x6cc0('0x2'));var config=require(_0x6cc0('0x3'));var logger=require(_0x6cc0('0x4'))(_0x6cc0('0x5'));var ami=require(_0x6cc0('0x6'));config[_0x6cc0('0x7')]=_['defaults'](config[_0x6cc0('0x7')],{'host':_0x6cc0('0x8'),'port':0x18eb});var io=require(_0x6cc0('0x9'))(new Redis(config['redis']));function UserReport(_0x5445df){this[_0x6cc0('0xa')]=_0x5445df['trunks'];this['agents']=_0x5445df[_0x6cc0('0xb')];this[_0x6cc0('0xc')]=_0x5445df[_0x6cc0('0xc')];ami['on'](_0x6cc0('0xd'),this[_0x6cc0('0xe')][_0x6cc0('0xf')](this));ami['on']('registry',this[_0x6cc0('0xe')][_0x6cc0('0xf')](this));ami['on'](_0x6cc0('0x10'),this[_0x6cc0('0x11')][_0x6cc0('0xf')](this));ami['on'](_0x6cc0('0x12'),this[_0x6cc0('0x13')][_0x6cc0('0xf')](this));return this[_0x6cc0('0x14')]();}function showSipRegistrations(){Promise[_0x6cc0('0x15')]()[_0x6cc0('0x16')](ami[_0x6cc0('0x17')]())[_0x6cc0('0x18')](function(_0x381312){logger['error'](_0x6cc0('0x19'),util['inspect'](_0x381312,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()['then'](ami[_0x6cc0('0x1a')]())[_0x6cc0('0x18')](function(_0x5c18af){logger['error'](_0x6cc0('0x1b'),util['inspect'](_0x5c18af,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()[_0x6cc0('0x16')](ami[_0x6cc0('0x1c')]())[_0x6cc0('0x18')](function(_0x5b1798){logger[_0x6cc0('0x1d')](_0x6cc0('0x1e'),util[_0x6cc0('0x1f')](_0x5b1798,{'showHidden':![],'depth':null}));});}UserReport[_0x6cc0('0x20')]['syncRealtimeShow']=function(){setInterval(function(){BPromise['resolve']()[_0x6cc0('0x16')](showSipRegistrations())['then'](listDeviceStates())[_0x6cc0('0x16')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0x6cc0('0x21')]=function(_0x37ec78){return _0x37ec78!==null&&!_[_0x6cc0('0x22')](_0x37ec78);};UserReport[_0x6cc0('0x20')][_0x6cc0('0x23')]=function(_0x447777,_0x5e062a,_0x48f8ce){io['to'](_0x447777)[_0x6cc0('0x23')](_0x5e062a,_0x48f8ce);};UserReport[_0x6cc0('0x20')]['syncRegistry']=function(_0x7009af){try{if(this[_0x6cc0('0x21')](_0x7009af)){logger[_0x6cc0('0x24')](_0x6cc0('0x25'),_0x7009af['username'],_0x7009af['state']);logger[_0x6cc0('0x26')](_0x6cc0('0x27'),util[_0x6cc0('0x1f')](_0x7009af,{'showHidden':![],'depth':null}));var _0x4a401a=_['find'](this[_0x6cc0('0xa')],{'defaultuser':_0x7009af['username']});if(_0x4a401a){_0x7009af[_0x6cc0('0x28')]=_0x7009af['state'];_[_0x6cc0('0x29')](_0x4a401a,_[_0x6cc0('0x2a')](_0x7009af,[_0x6cc0('0x2b'),'actionid','username',_0x6cc0('0x2c')]));logger['debug'](_0x6cc0('0x2d'),util['inspect'](_0x4a401a,{'showHidden':![],'depth':null}));this['emit'](util[_0x6cc0('0x2e')](_0x6cc0('0x2f'),_0x4a401a[_0x6cc0('0x30')]),_0x6cc0('0x31'),_0x4a401a);}}}catch(_0x1b4d85){logger[_0x6cc0('0x1d')](_0x6cc0('0x27'),util['inspect'](_0x1b4d85,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x6cc0('0x11')]=function(_0x576c8b){try{if(this['isNotNull'](_0x576c8b)){logger[_0x6cc0('0x24')](_0x6cc0('0x32'),_0x576c8b[_0x6cc0('0x33')],_0x576c8b[_0x6cc0('0x2c')]);logger[_0x6cc0('0x26')](_0x6cc0('0x34'),util[_0x6cc0('0x1f')](_0x576c8b,{'showHidden':![],'depth':null}));if(this[_0x6cc0('0xb')][_0x576c8b['device']]){if(!this[_0x6cc0('0xb')][_0x576c8b[_0x6cc0('0x33')]][_0x6cc0('0x35')]||_0x576c8b[_0x6cc0('0x2c')][_0x6cc0('0x36')]()==_0x6cc0('0x37')){this[_0x6cc0('0xb')][_0x576c8b['device']]['local']=![];if(this['agents'][_0x576c8b['device']][_0x6cc0('0x2c')]!==_0x576c8b[_0x6cc0('0x2c')][_0x6cc0('0x36')]()){this[_0x6cc0('0xb')][_0x576c8b[_0x6cc0('0x33')]][_0x6cc0('0x38')]=_[_0x6cc0('0x39')](moment()['format']('x'));}this['agents'][_0x576c8b['device']][_0x6cc0('0x2c')]=_0x576c8b['state'][_0x6cc0('0x36')]();this['agents'][_0x576c8b[_0x6cc0('0x33')]]['updateStatusRealtime'](_0x576c8b);}}else if(this[_0x6cc0('0xc')][_0x576c8b[_0x6cc0('0x33')]]){if(this[_0x6cc0('0xc')][_0x576c8b[_0x6cc0('0x33')]]['state']!==_0x576c8b[_0x6cc0('0x2c')][_0x6cc0('0x36')]()){this[_0x6cc0('0xc')][_0x576c8b['device']]['stateTime']=_[_0x6cc0('0x39')](moment()[_0x6cc0('0x2e')]('x'));}this['telephones'][_0x576c8b['device']]['state']=_0x576c8b[_0x6cc0('0x2c')][_0x6cc0('0x36')]();logger[_0x6cc0('0x26')]('[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:',util[_0x6cc0('0x1f')](this['telephones'][_0x576c8b[_0x6cc0('0x33')]],{'showHidden':![],'depth':null}));this[_0x6cc0('0x23')](util[_0x6cc0('0x2e')](_0x6cc0('0x3a'),this[_0x6cc0('0xc')][_0x576c8b[_0x6cc0('0x33')]][_0x6cc0('0x30')]),_0x6cc0('0x3b'),this[_0x6cc0('0xc')][_0x576c8b['device']]);}else if(this['trunks'][_0x576c8b[_0x6cc0('0x33')]]){if(this[_0x6cc0('0xa')][_0x576c8b[_0x6cc0('0x33')]][_0x6cc0('0x2c')]!==_0x576c8b[_0x6cc0('0x2c')][_0x6cc0('0x36')]()){this['trunks'][_0x576c8b['device']][_0x6cc0('0x38')]=_['toNumber'](moment()[_0x6cc0('0x2e')]('x'));}this['trunks'][_0x576c8b[_0x6cc0('0x33')]][_0x6cc0('0x2c')]=_0x576c8b[_0x6cc0('0x2c')]['toLowerCase']();logger['debug'](_0x6cc0('0x3c'),util[_0x6cc0('0x1f')](this[_0x6cc0('0xa')][_0x576c8b['device']],{'showHidden':![],'depth':null}));this['emit'](util[_0x6cc0('0x2e')](_0x6cc0('0x2f'),this[_0x6cc0('0xa')][_0x576c8b['device']][_0x6cc0('0x30')]),'trunk:save',this[_0x6cc0('0xa')][_0x576c8b[_0x6cc0('0x33')]]);}else if(_['startsWith'](_0x576c8b[_0x6cc0('0x33')],_0x6cc0('0x3d'))){var _0x43b564=_0x576c8b['device'];var _0x377966=_0x43b564[_0x6cc0('0x3e')](_0x43b564[_0x6cc0('0x3f')]('/')+0x1,_0x43b564[_0x6cc0('0x3f')]('@'));var _0x20ad0c=_['find'](this['agents'],function(_0x5075a0){return _0x5075a0[_0x6cc0('0x40')]==_0x377966||_0x5075a0[_0x6cc0('0x41')]==_0x377966||_0x5075a0[_0x6cc0('0x42')]==_0x377966;});if(_0x20ad0c){if(_0x20ad0c[_0x6cc0('0x2c')]!==_0x576c8b[_0x6cc0('0x2c')][_0x6cc0('0x36')]()){_0x20ad0c['stateTime']=_['toNumber'](moment()[_0x6cc0('0x2e')]('x'));}_0x20ad0c[_0x6cc0('0x2c')]=_0x576c8b['state'][_0x6cc0('0x36')]();_0x20ad0c[_0x6cc0('0x35')]=!![];_0x20ad0c[_0x6cc0('0x43')](_0x576c8b);}}}}catch(_0x18d063){logger['error']('[userReport][devicestatechange]',util[_0x6cc0('0x1f')](_0x18d063,{'showHidden':![],'depth':null}));}};UserReport[_0x6cc0('0x20')][_0x6cc0('0x13')]=function(_0x32b3cb){try{if(this[_0x6cc0('0x21')](_0x32b3cb)&&this['isNotNull'](_0x32b3cb[_0x6cc0('0x12')])){logger[_0x6cc0('0x24')](_0x6cc0('0x44'),_0x32b3cb['peer'],_0x32b3cb[_0x6cc0('0x45')],_0x32b3cb['peerstatus']);logger['debug'](_0x6cc0('0x46'),util['inspect'](_0x32b3cb,{'showHidden':![],'depth':null}));if(this[_0x6cc0('0xb')][_0x32b3cb['peer']]){if(!this[_0x6cc0('0xb')][_0x32b3cb[_0x6cc0('0x47')]][_0x6cc0('0x35')]||_0x32b3cb['peerstatus']['toLowerCase']()==_0x6cc0('0x48')){this[_0x6cc0('0xb')][_0x32b3cb[_0x6cc0('0x47')]][_0x6cc0('0x35')]=![];this['agents'][_0x32b3cb['peer']]['status']=_0x32b3cb[_0x6cc0('0x12')][_0x6cc0('0x36')]();this['agents'][_0x32b3cb['peer']][_0x6cc0('0x45')]=_0x32b3cb['address'];this[_0x6cc0('0xb')][_0x32b3cb['peer']][_0x6cc0('0x43')](_0x32b3cb);}}else if(this['telephones'][_0x32b3cb[_0x6cc0('0x47')]]){this[_0x6cc0('0xc')][_0x32b3cb[_0x6cc0('0x47')]][_0x6cc0('0x49')]=_0x32b3cb[_0x6cc0('0x12')][_0x6cc0('0x36')]();this[_0x6cc0('0xc')][_0x32b3cb[_0x6cc0('0x47')]][_0x6cc0('0x45')]=_0x32b3cb[_0x6cc0('0x45')];logger[_0x6cc0('0x26')](_0x6cc0('0x4a'),util[_0x6cc0('0x1f')](this['telephones'][_0x32b3cb['peer']],{'showHidden':![],'depth':null}));this[_0x6cc0('0x23')](util[_0x6cc0('0x2e')](_0x6cc0('0x3a'),this[_0x6cc0('0xc')][_0x32b3cb['peer']][_0x6cc0('0x30')]),'telephone:save',this[_0x6cc0('0xc')][_0x32b3cb[_0x6cc0('0x47')]]);}else if(this[_0x6cc0('0xa')][_0x32b3cb[_0x6cc0('0x47')]]){this[_0x6cc0('0xa')][_0x32b3cb[_0x6cc0('0x47')]]['status']=_0x32b3cb[_0x6cc0('0x12')][_0x6cc0('0x36')]();this['trunks'][_0x32b3cb[_0x6cc0('0x47')]][_0x6cc0('0x45')]=_0x32b3cb['address'];logger[_0x6cc0('0x26')](_0x6cc0('0x4b'),util['inspect'](this['trunks'][_0x32b3cb[_0x6cc0('0x47')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x6cc0('0x2e')](_0x6cc0('0x2f'),this[_0x6cc0('0xa')][_0x32b3cb['peer']][_0x6cc0('0x30')]),_0x6cc0('0x31'),this[_0x6cc0('0xa')][_0x32b3cb['peer']]);}}}catch(_0x52957e){logger['error'](_0x6cc0('0x46'),util[_0x6cc0('0x1f')](_0x52957e,{'showHidden':![],'depth':null}));}};module[_0x6cc0('0x4c')]=UserReport;