c79f0982b6ca7e58a6da2e9d2dbfcafd6ff51b9b
[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 _0x35b9=['localhost','socket.io-emitter','trunks','agents','telephones','registryentry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','loopSyncRealTimeShow','resolve','then','actionSipShowRegistry','actionSipPeerStatus','catch','[loopSyncRealTimeShow]','inspect','prototype','actionDeviceStateList','isNotNull','isUndefined','emit','syncRegistry','find','username','stateRegistry','state','merge','omit','event','actionid','trunk:%s','name','trunk:save','device','local','toLowerCase','stateTime','toNumber','format','updateStatusRealtime','telephone:%s','telephone:save','startsWith','Queue','indexOf','mobile','phone','accountcode','[syncDeviceState][UserReport]','peer','registered','status','address','error','lodash','bluebird','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis'];(function(_0x183c00,_0x5327b8){var _0x4a8361=function(_0x126739){while(--_0x126739){_0x183c00['push'](_0x183c00['shift']());}};_0x4a8361(++_0x5327b8);}(_0x35b9,0x146));var _0x935b=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x35b9[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x935b('0x0'));var moment=require('moment');var BPromise=require(_0x935b('0x1'));var util=require(_0x935b('0x2'));var Redis=require(_0x935b('0x3'));var config=require(_0x935b('0x4'));var logger=require(_0x935b('0x5'))(_0x935b('0x6'));var ami=require(_0x935b('0x7'));config[_0x935b('0x8')]=_['defaults'](config[_0x935b('0x8')],{'host':_0x935b('0x9'),'port':0x18eb});var io=require(_0x935b('0xa'))(new Redis(config[_0x935b('0x8')]));function UserReport(_0x4acb0b){this['trunks']=_0x4acb0b[_0x935b('0xb')];this['agents']=_0x4acb0b[_0x935b('0xc')];this[_0x935b('0xd')]=_0x4acb0b[_0x935b('0xd')];ami['on'](_0x935b('0xe'),this['syncRegistry'][_0x935b('0xf')](this));ami['on'](_0x935b('0x10'),this['syncRegistry'][_0x935b('0xf')](this));ami['on'](_0x935b('0x11'),this[_0x935b('0x12')][_0x935b('0xf')](this));ami['on'](_0x935b('0x13'),this[_0x935b('0x14')]['bind'](this));this[_0x935b('0x15')]();return BPromise[_0x935b('0x16')]()[_0x935b('0x17')](ami[_0x935b('0x18')]())['then'](ami['actionDeviceStateList']())[_0x935b('0x17')](ami[_0x935b('0x19')]())[_0x935b('0x1a')](loggerCatch(_0x935b('0x1b')));}function loggerCatch(_0x571a55){return function(_0xd7c5ee){logger['error'](_0x571a55,util[_0x935b('0x1c')](_0xd7c5ee,{'showHidden':![],'depth':null}));};}UserReport[_0x935b('0x1d')][_0x935b('0x15')]=function(){setInterval(function(){BPromise[_0x935b('0x16')]()[_0x935b('0x17')](ami[_0x935b('0x18')]())[_0x935b('0x17')](ami[_0x935b('0x1e')]())[_0x935b('0x17')](ami[_0x935b('0x19')]())[_0x935b('0x1a')](loggerCatch(_0x935b('0x1b')));},0x32c8);};UserReport[_0x935b('0x1d')][_0x935b('0x1f')]=function(_0x29fa08){return _0x29fa08!==null&&!_[_0x935b('0x20')](_0x29fa08);};UserReport[_0x935b('0x1d')][_0x935b('0x21')]=function(_0x39684d,_0x1ad6cd,_0x1a5e24){io['to'](_0x39684d)[_0x935b('0x21')](_0x1ad6cd,_0x1a5e24);};UserReport[_0x935b('0x1d')][_0x935b('0x22')]=function(_0x18afc5){try{if(this['isNotNull'](_0x18afc5)){var _0x2289ac=_[_0x935b('0x23')](this[_0x935b('0xb')],{'registry':_0x18afc5[_0x935b('0x24')]});if(_0x2289ac){_0x18afc5[_0x935b('0x25')]=_0x18afc5[_0x935b('0x26')];_[_0x935b('0x27')](_0x2289ac,_[_0x935b('0x28')](_0x18afc5,[_0x935b('0x29'),_0x935b('0x2a'),_0x935b('0x24'),'state']));this[_0x935b('0x21')](util['format'](_0x935b('0x2b'),_0x2289ac[_0x935b('0x2c')]),_0x935b('0x2d'),_0x2289ac);}}}catch(_0x3d6719){logger['error']('[syncRegistry][UserReport]',util[_0x935b('0x1c')](_0x3d6719,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x935b('0x12')]=function(_0x404bbd){try{if(this[_0x935b('0x1f')](_0x404bbd)){if(this[_0x935b('0xc')][_0x404bbd[_0x935b('0x2e')]]){if(!this[_0x935b('0xc')][_0x404bbd['device']][_0x935b('0x2f')]||_0x404bbd[_0x935b('0x26')][_0x935b('0x30')]()=='inuse'){this[_0x935b('0xc')][_0x404bbd[_0x935b('0x2e')]]['local']=![];if(this[_0x935b('0xc')][_0x404bbd[_0x935b('0x2e')]][_0x935b('0x26')]!==_0x404bbd[_0x935b('0x26')][_0x935b('0x30')]()){this[_0x935b('0xc')][_0x404bbd[_0x935b('0x2e')]][_0x935b('0x31')]=_[_0x935b('0x32')](moment()[_0x935b('0x33')]('x'));}this[_0x935b('0xc')][_0x404bbd[_0x935b('0x2e')]][_0x935b('0x26')]=_0x404bbd['state'][_0x935b('0x30')]();this[_0x935b('0xc')][_0x404bbd['device']][_0x935b('0x34')](_0x404bbd);}}else if(this['telephones'][_0x404bbd['device']]){if(this['telephones'][_0x404bbd[_0x935b('0x2e')]]['state']!==_0x404bbd[_0x935b('0x26')][_0x935b('0x30')]()){this['telephones'][_0x404bbd[_0x935b('0x2e')]]['stateTime']=_[_0x935b('0x32')](moment()[_0x935b('0x33')]('x'));}this[_0x935b('0xd')][_0x404bbd[_0x935b('0x2e')]][_0x935b('0x26')]=_0x404bbd[_0x935b('0x26')][_0x935b('0x30')]();this[_0x935b('0x21')](util['format'](_0x935b('0x35'),this[_0x935b('0xd')][_0x404bbd['device']][_0x935b('0x2c')]),_0x935b('0x36'),this[_0x935b('0xd')][_0x404bbd[_0x935b('0x2e')]]);}else if(this[_0x935b('0xb')][_0x404bbd['device']]){if(this[_0x935b('0xb')][_0x404bbd[_0x935b('0x2e')]][_0x935b('0x26')]!==_0x404bbd['state'][_0x935b('0x30')]()){this['trunks'][_0x404bbd[_0x935b('0x2e')]][_0x935b('0x31')]=_[_0x935b('0x32')](moment()[_0x935b('0x33')]('x'));}this['trunks'][_0x404bbd['device']][_0x935b('0x26')]=_0x404bbd[_0x935b('0x26')]['toLowerCase']();this['emit'](util[_0x935b('0x33')](_0x935b('0x2b'),this[_0x935b('0xb')][_0x404bbd[_0x935b('0x2e')]][_0x935b('0x2c')]),'trunk:save',this['trunks'][_0x404bbd['device']]);}else if(_[_0x935b('0x37')](_0x404bbd['device'],_0x935b('0x38'))){}else if(_[_0x935b('0x37')](_0x404bbd[_0x935b('0x2e')],'Local')){var _0x4c8abb=_0x404bbd[_0x935b('0x2e')];var _0x5ac0dd=_0x4c8abb['substring'](_0x4c8abb[_0x935b('0x39')]('/')+0x1,_0x4c8abb[_0x935b('0x39')]('@'));var _0x474fbf=_[_0x935b('0x23')](this['agents'],function(_0x42dfeb){return _0x42dfeb[_0x935b('0x3a')]==_0x5ac0dd||_0x42dfeb[_0x935b('0x3b')]==_0x5ac0dd||_0x42dfeb[_0x935b('0x3c')]==_0x5ac0dd;});if(_0x474fbf){if(_0x474fbf[_0x935b('0x26')]!==_0x404bbd[_0x935b('0x26')][_0x935b('0x30')]()){_0x474fbf[_0x935b('0x31')]=_[_0x935b('0x32')](moment()[_0x935b('0x33')]('x'));}_0x474fbf[_0x935b('0x26')]=_0x404bbd[_0x935b('0x26')][_0x935b('0x30')]();_0x474fbf['local']=!![];_0x474fbf[_0x935b('0x34')](_0x404bbd);}}else{}}}catch(_0x7bd63d){logger['error'](_0x935b('0x3d'),util[_0x935b('0x1c')](_0x7bd63d,{'showHidden':![],'depth':null}));}};UserReport[_0x935b('0x1d')][_0x935b('0x14')]=function(_0x42f3e2){try{if(this[_0x935b('0x1f')](_0x42f3e2)&&this[_0x935b('0x1f')](_0x42f3e2['peerstatus'])){if(this[_0x935b('0xc')][_0x42f3e2[_0x935b('0x3e')]]){if(!this['agents'][_0x42f3e2['peer']][_0x935b('0x2f')]||_0x42f3e2[_0x935b('0x13')]['toLowerCase']()==_0x935b('0x3f')){this[_0x935b('0xc')][_0x42f3e2[_0x935b('0x3e')]]['local']=![];this[_0x935b('0xc')][_0x42f3e2['peer']][_0x935b('0x40')]=_0x42f3e2[_0x935b('0x13')][_0x935b('0x30')]();this[_0x935b('0xc')][_0x42f3e2[_0x935b('0x3e')]]['address']=_0x42f3e2['address'];this[_0x935b('0xc')][_0x42f3e2[_0x935b('0x3e')]][_0x935b('0x34')](_0x42f3e2);}}else if(this[_0x935b('0xd')][_0x42f3e2['peer']]){this[_0x935b('0xd')][_0x42f3e2[_0x935b('0x3e')]][_0x935b('0x40')]=_0x42f3e2[_0x935b('0x13')][_0x935b('0x30')]();this[_0x935b('0xd')][_0x42f3e2[_0x935b('0x3e')]]['address']=_0x42f3e2[_0x935b('0x41')];this[_0x935b('0x21')](util[_0x935b('0x33')](_0x935b('0x35'),this[_0x935b('0xd')][_0x42f3e2[_0x935b('0x3e')]]['name']),_0x935b('0x36'),this[_0x935b('0xd')][_0x42f3e2[_0x935b('0x3e')]]);}else if(this['trunks'][_0x42f3e2[_0x935b('0x3e')]]){this[_0x935b('0xb')][_0x42f3e2['peer']]['status']=_0x42f3e2[_0x935b('0x13')][_0x935b('0x30')]();this[_0x935b('0xb')][_0x42f3e2[_0x935b('0x3e')]][_0x935b('0x41')]=_0x42f3e2[_0x935b('0x41')];this[_0x935b('0x21')](util[_0x935b('0x33')](_0x935b('0x2b'),this[_0x935b('0xb')][_0x42f3e2[_0x935b('0x3e')]]['name']),'trunk:save',this['trunks'][_0x42f3e2[_0x935b('0x3e')]]);}else{}}}catch(_0x334f20){logger[_0x935b('0x42')]('[syncPeerStatus][UserReport]',util['inspect'](_0x334f20,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;