Built motion from commit (unavailable).|2.5.4
[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 _0xafa3=['mobile','accountcode','[syncDeviceState][UserReport]','syncPeerStatus','peer','registered','status','address','[syncPeerStatus][UserReport]','moment','bluebird','util','../../../config/logger','ami','../ami','redis','defaults','socket.io-emitter','trunks','agents','telephones','bind','syncRegistry','devicestatechange','syncDeviceState','peerstatus','loopSyncRealTimeShow','then','actionSipShowRegistry','catch','error','inspect','prototype','actionDeviceStateList','actionSipPeerStatus','[loopSyncRealTimeShow]','isUndefined','emit','isNotNull','find','stateRegistry','state','merge','omit','actionid','username','format','trunk:%s','name','trunk:save','[syncRegistry][UserReport]','device','local','toLowerCase','inuse','toNumber','updateStatusRealtime','stateTime','telephone:%s','telephone:save','startsWith','Queue','Local','indexOf'];(function(_0x34781a,_0x314b8d){var _0xbc4fa8=function(_0x1a0740){while(--_0x1a0740){_0x34781a['push'](_0x34781a['shift']());}};_0xbc4fa8(++_0x314b8d);}(_0xafa3,0x89));var _0x3afa=function(_0x166310,_0x49c9f4){_0x166310=_0x166310-0x0;var _0xd24eb8=_0xafa3[_0x166310];return _0xd24eb8;};'use strict';var _=require('lodash');var moment=require(_0x3afa('0x0'));var BPromise=require(_0x3afa('0x1'));var util=require(_0x3afa('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x3afa('0x3'))(_0x3afa('0x4'));var ami=require(_0x3afa('0x5'));config[_0x3afa('0x6')]=_[_0x3afa('0x7')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x3afa('0x8'))(new Redis(config[_0x3afa('0x6')]));function UserReport(_0x3d3ff6){this[_0x3afa('0x9')]=_0x3d3ff6[_0x3afa('0x9')];this['agents']=_0x3d3ff6[_0x3afa('0xa')];this[_0x3afa('0xb')]=_0x3d3ff6[_0x3afa('0xb')];ami['on']('registryentry',this['syncRegistry'][_0x3afa('0xc')](this));ami['on']('registry',this[_0x3afa('0xd')][_0x3afa('0xc')](this));ami['on'](_0x3afa('0xe'),this[_0x3afa('0xf')][_0x3afa('0xc')](this));ami['on'](_0x3afa('0x10'),this['syncPeerStatus'][_0x3afa('0xc')](this));this[_0x3afa('0x11')]();return BPromise['resolve']()[_0x3afa('0x12')](ami[_0x3afa('0x13')]())['then'](ami['actionDeviceStateList']())['then'](ami['actionSipPeerStatus']())[_0x3afa('0x14')](loggerCatch('[loopSyncRealTimeShow]'));}function loggerCatch(_0x56154e){return function(_0x5d6141){logger[_0x3afa('0x15')](_0x56154e,util[_0x3afa('0x16')](_0x5d6141,{'showHidden':![],'depth':null}));};}UserReport[_0x3afa('0x17')][_0x3afa('0x11')]=function(){setInterval(function(){BPromise['resolve']()[_0x3afa('0x12')](ami[_0x3afa('0x13')]())[_0x3afa('0x12')](ami[_0x3afa('0x18')]())[_0x3afa('0x12')](ami[_0x3afa('0x19')]())[_0x3afa('0x14')](loggerCatch(_0x3afa('0x1a')));},0x32c8);};UserReport[_0x3afa('0x17')]['isNotNull']=function(_0x12ca85){return _0x12ca85!==null&&!_[_0x3afa('0x1b')](_0x12ca85);};UserReport['prototype'][_0x3afa('0x1c')]=function(_0x4623e3,_0x29b67b,_0x82a892){io['to'](_0x4623e3)[_0x3afa('0x1c')](_0x29b67b,_0x82a892);};UserReport[_0x3afa('0x17')][_0x3afa('0xd')]=function(_0x5f1854){try{if(this[_0x3afa('0x1d')](_0x5f1854)){var _0x56c93b=_[_0x3afa('0x1e')](this[_0x3afa('0x9')],{'registry':_0x5f1854['username']});if(_0x56c93b){_0x5f1854[_0x3afa('0x1f')]=_0x5f1854[_0x3afa('0x20')];_[_0x3afa('0x21')](_0x56c93b,_[_0x3afa('0x22')](_0x5f1854,['event',_0x3afa('0x23'),_0x3afa('0x24'),_0x3afa('0x20')]));this['emit'](util[_0x3afa('0x25')](_0x3afa('0x26'),_0x56c93b[_0x3afa('0x27')]),_0x3afa('0x28'),_0x56c93b);}}}catch(_0x1d9c4){logger[_0x3afa('0x15')](_0x3afa('0x29'),util[_0x3afa('0x16')](_0x1d9c4,{'showHidden':![],'depth':null}));}};UserReport[_0x3afa('0x17')][_0x3afa('0xf')]=function(_0x5b0415){try{if(this[_0x3afa('0x1d')](_0x5b0415)){if(this[_0x3afa('0xa')][_0x5b0415[_0x3afa('0x2a')]]){if(!this[_0x3afa('0xa')][_0x5b0415['device']][_0x3afa('0x2b')]||_0x5b0415['state'][_0x3afa('0x2c')]()==_0x3afa('0x2d')){this[_0x3afa('0xa')][_0x5b0415[_0x3afa('0x2a')]]['local']=![];if(this[_0x3afa('0xa')][_0x5b0415[_0x3afa('0x2a')]][_0x3afa('0x20')]!==_0x5b0415[_0x3afa('0x20')]['toLowerCase']()){this[_0x3afa('0xa')][_0x5b0415[_0x3afa('0x2a')]]['stateTime']=_[_0x3afa('0x2e')](moment()['format']('x'));}this[_0x3afa('0xa')][_0x5b0415[_0x3afa('0x2a')]]['state']=_0x5b0415[_0x3afa('0x20')][_0x3afa('0x2c')]();this[_0x3afa('0xa')][_0x5b0415['device']][_0x3afa('0x2f')](_0x5b0415);}}else if(this['telephones'][_0x5b0415[_0x3afa('0x2a')]]){if(this[_0x3afa('0xb')][_0x5b0415[_0x3afa('0x2a')]][_0x3afa('0x20')]!==_0x5b0415[_0x3afa('0x20')][_0x3afa('0x2c')]()){this['telephones'][_0x5b0415['device']][_0x3afa('0x30')]=_['toNumber'](moment()[_0x3afa('0x25')]('x'));}this[_0x3afa('0xb')][_0x5b0415[_0x3afa('0x2a')]][_0x3afa('0x20')]=_0x5b0415[_0x3afa('0x20')][_0x3afa('0x2c')]();this[_0x3afa('0x1c')](util[_0x3afa('0x25')](_0x3afa('0x31'),this[_0x3afa('0xb')][_0x5b0415[_0x3afa('0x2a')]]['name']),_0x3afa('0x32'),this[_0x3afa('0xb')][_0x5b0415[_0x3afa('0x2a')]]);}else if(this[_0x3afa('0x9')][_0x5b0415['device']]){if(this[_0x3afa('0x9')][_0x5b0415['device']][_0x3afa('0x20')]!==_0x5b0415[_0x3afa('0x20')]['toLowerCase']()){this[_0x3afa('0x9')][_0x5b0415[_0x3afa('0x2a')]][_0x3afa('0x30')]=_[_0x3afa('0x2e')](moment()[_0x3afa('0x25')]('x'));}this[_0x3afa('0x9')][_0x5b0415[_0x3afa('0x2a')]][_0x3afa('0x20')]=_0x5b0415['state']['toLowerCase']();this[_0x3afa('0x1c')](util[_0x3afa('0x25')](_0x3afa('0x26'),this['trunks'][_0x5b0415['device']]['name']),'trunk:save',this[_0x3afa('0x9')][_0x5b0415['device']]);}else if(_[_0x3afa('0x33')](_0x5b0415[_0x3afa('0x2a')],_0x3afa('0x34'))){}else if(_[_0x3afa('0x33')](_0x5b0415[_0x3afa('0x2a')],_0x3afa('0x35'))){var _0x252dbd=_0x5b0415['device'];var _0x8df5dd=_0x252dbd['substring'](_0x252dbd[_0x3afa('0x36')]('/')+0x1,_0x252dbd[_0x3afa('0x36')]('@'));var _0x144e06=_[_0x3afa('0x1e')](this[_0x3afa('0xa')],function(_0x10d123){return _0x10d123[_0x3afa('0x37')]==_0x8df5dd||_0x10d123['phone']==_0x8df5dd||_0x10d123[_0x3afa('0x38')]==_0x8df5dd;});if(_0x144e06){if(_0x144e06[_0x3afa('0x20')]!==_0x5b0415['state'][_0x3afa('0x2c')]()){_0x144e06[_0x3afa('0x30')]=_['toNumber'](moment()['format']('x'));}_0x144e06[_0x3afa('0x20')]=_0x5b0415[_0x3afa('0x20')]['toLowerCase']();_0x144e06[_0x3afa('0x2b')]=!![];_0x144e06['updateStatusRealtime'](_0x5b0415);}}else{}}}catch(_0x196307){logger[_0x3afa('0x15')](_0x3afa('0x39'),util[_0x3afa('0x16')](_0x196307,{'showHidden':![],'depth':null}));}};UserReport[_0x3afa('0x17')][_0x3afa('0x3a')]=function(_0x1af0c9){try{if(this[_0x3afa('0x1d')](_0x1af0c9)&&this[_0x3afa('0x1d')](_0x1af0c9[_0x3afa('0x10')])){if(this[_0x3afa('0xa')][_0x1af0c9['peer']]){if(!this[_0x3afa('0xa')][_0x1af0c9[_0x3afa('0x3b')]][_0x3afa('0x2b')]||_0x1af0c9['peerstatus'][_0x3afa('0x2c')]()==_0x3afa('0x3c')){this[_0x3afa('0xa')][_0x1af0c9[_0x3afa('0x3b')]]['local']=![];this[_0x3afa('0xa')][_0x1af0c9[_0x3afa('0x3b')]][_0x3afa('0x3d')]=_0x1af0c9[_0x3afa('0x10')]['toLowerCase']();this[_0x3afa('0xa')][_0x1af0c9[_0x3afa('0x3b')]][_0x3afa('0x3e')]=_0x1af0c9['address'];this[_0x3afa('0xa')][_0x1af0c9[_0x3afa('0x3b')]][_0x3afa('0x2f')](_0x1af0c9);}}else if(this[_0x3afa('0xb')][_0x1af0c9[_0x3afa('0x3b')]]){this[_0x3afa('0xb')][_0x1af0c9[_0x3afa('0x3b')]]['status']=_0x1af0c9['peerstatus']['toLowerCase']();this[_0x3afa('0xb')][_0x1af0c9['peer']][_0x3afa('0x3e')]=_0x1af0c9['address'];this[_0x3afa('0x1c')](util['format']('telephone:%s',this[_0x3afa('0xb')][_0x1af0c9[_0x3afa('0x3b')]][_0x3afa('0x27')]),_0x3afa('0x32'),this[_0x3afa('0xb')][_0x1af0c9[_0x3afa('0x3b')]]);}else if(this[_0x3afa('0x9')][_0x1af0c9['peer']]){this[_0x3afa('0x9')][_0x1af0c9[_0x3afa('0x3b')]][_0x3afa('0x3d')]=_0x1af0c9['peerstatus'][_0x3afa('0x2c')]();this[_0x3afa('0x9')][_0x1af0c9['peer']]['address']=_0x1af0c9[_0x3afa('0x3e')];this['emit'](util['format']('trunk:%s',this[_0x3afa('0x9')][_0x1af0c9[_0x3afa('0x3b')]][_0x3afa('0x27')]),'trunk:save',this[_0x3afa('0x9')][_0x1af0c9[_0x3afa('0x3b')]]);}else{}}}catch(_0x9f6b48){logger['error'](_0x3afa('0x3f'),util['inspect'](_0x9f6b48,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;