ad71148283371692cf5345a42e0c8c15da7f55db
[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 _0x3152=['redis','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','registry','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','loopSyncRealTimeShow','resolve','then','actionSipShowRegistry','actionSipPeerStatus','[loopSyncRealTimeShow]','error','inspect','actionDeviceStateList','catch','prototype','isNotNull','isUndefined','emit','username','state','event','name','trunk:save','[syncRegistry][UserReport]','device','local','toLowerCase','stateTime','toNumber','format','updateStatusRealtime','telephone:save','trunk:%s','startsWith','Queue','Local','substring','indexOf','find','accountcode','[syncDeviceState][UserReport]','peer','registered','status','address','telephone:%s','[syncPeerStatus][UserReport]','exports','moment','bluebird','util','ioredis','../../../config/logger','ami','../ami'];(function(_0x2bc2f8,_0x5d446f){var _0x4a839d=function(_0x114a89){while(--_0x114a89){_0x2bc2f8['push'](_0x2bc2f8['shift']());}};_0x4a839d(++_0x5d446f);}(_0x3152,0xb9));var _0x2315=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0x3152[_0x46698a];return _0x356db0;};'use strict';var _=require('lodash');var moment=require(_0x2315('0x0'));var BPromise=require(_0x2315('0x1'));var util=require(_0x2315('0x2'));var Redis=require(_0x2315('0x3'));var config=require('../../../config/environment');var logger=require(_0x2315('0x4'))(_0x2315('0x5'));var ami=require(_0x2315('0x6'));config[_0x2315('0x7')]=_[_0x2315('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x2315('0x9'))(new Redis(config[_0x2315('0x7')]));function UserReport(_0x2bde0b){this[_0x2315('0xa')]=_0x2bde0b['trunks'];this[_0x2315('0xb')]=_0x2bde0b[_0x2315('0xb')];this[_0x2315('0xc')]=_0x2bde0b[_0x2315('0xc')];ami['on'](_0x2315('0xd'),this[_0x2315('0xe')]['bind'](this));ami['on'](_0x2315('0xf'),this[_0x2315('0xe')]['bind'](this));ami['on'](_0x2315('0x10'),this[_0x2315('0x11')]['bind'](this));ami['on'](_0x2315('0x12'),this[_0x2315('0x13')]['bind'](this));this[_0x2315('0x14')]();return BPromise[_0x2315('0x15')]()[_0x2315('0x16')](ami[_0x2315('0x17')]())['then'](ami['actionDeviceStateList']())[_0x2315('0x16')](ami[_0x2315('0x18')]())['catch'](loggerCatch(_0x2315('0x19')));}function loggerCatch(_0x31dc7c){return function(_0x4441ce){logger[_0x2315('0x1a')](_0x31dc7c,util[_0x2315('0x1b')](_0x4441ce,{'showHidden':![],'depth':null}));};}UserReport['prototype']['loopSyncRealTimeShow']=function(){setInterval(function(){BPromise[_0x2315('0x15')]()[_0x2315('0x16')](ami[_0x2315('0x17')]())[_0x2315('0x16')](ami[_0x2315('0x1c')]())[_0x2315('0x16')](ami[_0x2315('0x18')]())[_0x2315('0x1d')](loggerCatch('[loopSyncRealTimeShow]'));},0x32c8);};UserReport[_0x2315('0x1e')][_0x2315('0x1f')]=function(_0x13b365){return _0x13b365!==null&&!_[_0x2315('0x20')](_0x13b365);};UserReport[_0x2315('0x1e')][_0x2315('0x21')]=function(_0x4f9b32,_0x9ed065,_0xf66614){io['to'](_0x4f9b32)[_0x2315('0x21')](_0x9ed065,_0xf66614);};UserReport['prototype'][_0x2315('0xe')]=function(_0x41ff3a){try{if(this['isNotNull'](_0x41ff3a)){var _0x3ca418=_['find'](this['trunks'],{'registry':_0x41ff3a[_0x2315('0x22')]});if(_0x3ca418){_0x41ff3a['stateRegistry']=_0x41ff3a[_0x2315('0x23')];_['merge'](_0x3ca418,_['omit'](_0x41ff3a,[_0x2315('0x24'),'actionid',_0x2315('0x22'),'state']));this[_0x2315('0x21')](util['format']('trunk:%s',_0x3ca418[_0x2315('0x25')]),_0x2315('0x26'),_0x3ca418);}}}catch(_0x39d31c){logger[_0x2315('0x1a')](_0x2315('0x27'),util[_0x2315('0x1b')](_0x39d31c,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x2315('0x11')]=function(_0x13cec7){try{if(this[_0x2315('0x1f')](_0x13cec7)){if(this[_0x2315('0xb')][_0x13cec7[_0x2315('0x28')]]){if(!this[_0x2315('0xb')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x29')]||_0x13cec7[_0x2315('0x23')][_0x2315('0x2a')]()=='inuse'){this[_0x2315('0xb')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x29')]=![];if(this[_0x2315('0xb')][_0x13cec7[_0x2315('0x28')]]['state']!==_0x13cec7['state'][_0x2315('0x2a')]()){this[_0x2315('0xb')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x2b')]=_[_0x2315('0x2c')](moment()[_0x2315('0x2d')]('x'));}this[_0x2315('0xb')][_0x13cec7['device']][_0x2315('0x23')]=_0x13cec7['state'][_0x2315('0x2a')]();this[_0x2315('0xb')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x2e')](_0x13cec7);}}else if(this['telephones'][_0x13cec7['device']]){if(this[_0x2315('0xc')][_0x13cec7['device']][_0x2315('0x23')]!==_0x13cec7['state']['toLowerCase']()){this[_0x2315('0xc')][_0x13cec7[_0x2315('0x28')]]['stateTime']=_[_0x2315('0x2c')](moment()['format']('x'));}this[_0x2315('0xc')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x23')]=_0x13cec7[_0x2315('0x23')]['toLowerCase']();this[_0x2315('0x21')](util[_0x2315('0x2d')]('telephone:%s',this[_0x2315('0xc')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x25')]),_0x2315('0x2f'),this['telephones'][_0x13cec7['device']]);}else if(this[_0x2315('0xa')][_0x13cec7[_0x2315('0x28')]]){if(this[_0x2315('0xa')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x23')]!==_0x13cec7[_0x2315('0x23')][_0x2315('0x2a')]()){this[_0x2315('0xa')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x2b')]=_[_0x2315('0x2c')](moment()[_0x2315('0x2d')]('x'));}this[_0x2315('0xa')][_0x13cec7['device']][_0x2315('0x23')]=_0x13cec7['state'][_0x2315('0x2a')]();this[_0x2315('0x21')](util[_0x2315('0x2d')](_0x2315('0x30'),this[_0x2315('0xa')][_0x13cec7[_0x2315('0x28')]][_0x2315('0x25')]),_0x2315('0x26'),this[_0x2315('0xa')][_0x13cec7[_0x2315('0x28')]]);}else if(_[_0x2315('0x31')](_0x13cec7[_0x2315('0x28')],_0x2315('0x32'))){}else if(_[_0x2315('0x31')](_0x13cec7[_0x2315('0x28')],_0x2315('0x33'))){var _0x5b9b24=_0x13cec7['device'];var _0x355927=_0x5b9b24[_0x2315('0x34')](_0x5b9b24[_0x2315('0x35')]('/')+0x1,_0x5b9b24[_0x2315('0x35')]('@'));var _0x4a831f=_[_0x2315('0x36')](this[_0x2315('0xb')],function(_0x109ffd){return _0x109ffd['mobile']==_0x355927||_0x109ffd['phone']==_0x355927||_0x109ffd[_0x2315('0x37')]==_0x355927;});if(_0x4a831f){if(_0x4a831f[_0x2315('0x23')]!==_0x13cec7['state'][_0x2315('0x2a')]()){_0x4a831f['stateTime']=_[_0x2315('0x2c')](moment()[_0x2315('0x2d')]('x'));}_0x4a831f[_0x2315('0x23')]=_0x13cec7[_0x2315('0x23')]['toLowerCase']();_0x4a831f[_0x2315('0x29')]=!![];_0x4a831f['updateStatusRealtime'](_0x13cec7);}}else{}}}catch(_0x29da66){logger[_0x2315('0x1a')](_0x2315('0x38'),util[_0x2315('0x1b')](_0x29da66,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x2315('0x13')]=function(_0x28324a){try{if(this[_0x2315('0x1f')](_0x28324a)&&this[_0x2315('0x1f')](_0x28324a[_0x2315('0x12')])){if(this[_0x2315('0xb')][_0x28324a[_0x2315('0x39')]]){if(!this['agents'][_0x28324a['peer']][_0x2315('0x29')]||_0x28324a[_0x2315('0x12')]['toLowerCase']()==_0x2315('0x3a')){this['agents'][_0x28324a[_0x2315('0x39')]]['local']=![];this[_0x2315('0xb')][_0x28324a['peer']][_0x2315('0x3b')]=_0x28324a['peerstatus'][_0x2315('0x2a')]();this[_0x2315('0xb')][_0x28324a['peer']][_0x2315('0x3c')]=_0x28324a[_0x2315('0x3c')];this[_0x2315('0xb')][_0x28324a[_0x2315('0x39')]][_0x2315('0x2e')](_0x28324a);}}else if(this['telephones'][_0x28324a[_0x2315('0x39')]]){this['telephones'][_0x28324a[_0x2315('0x39')]][_0x2315('0x3b')]=_0x28324a[_0x2315('0x12')][_0x2315('0x2a')]();this[_0x2315('0xc')][_0x28324a[_0x2315('0x39')]][_0x2315('0x3c')]=_0x28324a['address'];this[_0x2315('0x21')](util['format'](_0x2315('0x3d'),this[_0x2315('0xc')][_0x28324a['peer']][_0x2315('0x25')]),'telephone:save',this['telephones'][_0x28324a[_0x2315('0x39')]]);}else if(this[_0x2315('0xa')][_0x28324a[_0x2315('0x39')]]){this['trunks'][_0x28324a[_0x2315('0x39')]][_0x2315('0x3b')]=_0x28324a[_0x2315('0x12')][_0x2315('0x2a')]();this[_0x2315('0xa')][_0x28324a[_0x2315('0x39')]][_0x2315('0x3c')]=_0x28324a[_0x2315('0x3c')];this[_0x2315('0x21')](util[_0x2315('0x2d')]('trunk:%s',this[_0x2315('0xa')][_0x28324a[_0x2315('0x39')]][_0x2315('0x25')]),_0x2315('0x26'),this[_0x2315('0xa')][_0x28324a[_0x2315('0x39')]]);}else{}}}catch(_0x1bd740){logger[_0x2315('0x1a')](_0x2315('0x3e'),util[_0x2315('0x1b')](_0x1bd740,{'showHidden':![],'depth':null}));}};module[_0x2315('0x3f')]=UserReport;