Built motion from commit (unavailable).|2.5.31
[motion2.git] / server / services / ami / realtime / index.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 _0x008c=['servicenowAccounts','hasOwnProperty','SIP/%s','mapKeys','isNil','format','interface','sumDuration','sumBillable','isEmpty','answered','unmanaged','abandoned','sumHoldTime','outboundAnswerAgiCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','initAgents','agents','name','initTelephones','isUndefined','telephones','mergeFromDatabase','initTrunks','length','trunks','initTemplates','zendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','initSugarcrmAccounts','sugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','initDynamics365Accounts','dynamics365Accounts','initFreshsalesAccounts','freshsalesAccounts','initVoiceQueueHopperHistory','merge','uniqueid','queue','queuecallerabandon','queuecallerleaveAt','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','initVoiceCallReports','total','duration','billableseconds','initCampaigns','campaigns','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','initFaxAccounts','faxAccounts','bluebird','util','lodash','moment','../model/agent','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/zohoAccount','../model/vtigerAccount','../model/freshsalesAccount','../model/faxAccount','voiceQueues','triggers','templates','outbound','voiceExtensions','channels','queueChannels','outboundChannels','timers','salesforceAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts'];(function(_0x5256ab,_0x2ac650){var _0x5a3c2a=function(_0x53506f){while(--_0x53506f){_0x5256ab['push'](_0x5256ab['shift']());}};_0x5a3c2a(++_0x2ac650);}(_0x008c,0x188));var _0xc008=function(_0x2c53bc,_0x5edba0){_0x2c53bc=_0x2c53bc-0x0;var _0x37886c=_0x008c[_0x2c53bc];return _0x37886c;};'use strict';var BPromise=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var _=require(_0xc008('0x2'));var moment=require(_0xc008('0x3'));var Agent=require(_0xc008('0x4'));var Telephone=require('../model/telephone');var Trunk=require(_0xc008('0x5'));var VoiceQueue=require(_0xc008('0x6'));var Trigger=require(_0xc008('0x7'));var Template=require(_0xc008('0x8'));var Campaign=require(_0xc008('0x9'));var VoiceExtension=require(_0xc008('0xa'));var ZendeskAccount=require(_0xc008('0xb'));var SalesforceAccount=require(_0xc008('0xc'));var FreshdeskAccount=require(_0xc008('0xd'));var SugarcrmAccount=require('../model/sugarcrmAccount');var ZohoAccount=require(_0xc008('0xe'));var DeskAccount=require('../model/deskAccount');var VtigerAccount=require(_0xc008('0xf'));var ServicenowAccount=require('../model/servicenowAccount');var Dynamics365Account=require('../model/dynamics365Account');var FreshsalesAccount=require(_0xc008('0x10'));var FaxAccount=require(_0xc008('0x11'));var Realtime=function(){this['agents']={};this['telephones']={};this['trunks']={};this[_0xc008('0x12')]={};this[_0xc008('0x13')]={};this['campaigns']={};this[_0xc008('0x14')]={};this[_0xc008('0x15')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xc008('0x16')]={};this[_0xc008('0x17')]={};this[_0xc008('0x18')]={};this[_0xc008('0x19')]={};this[_0xc008('0x1a')]={};this['settings']={};this['zendeskAccounts']={};this[_0xc008('0x1b')]={};this['sugarcrmAccounts']={};this[_0xc008('0x1c')]={};this[_0xc008('0x1d')]={};this[_0xc008('0x1e')]={};this[_0xc008('0x1f')]={};this[_0xc008('0x20')]={};this['dynamics365Accounts']={};this['freshsalesAccounts']={};this['faxAccounts']={};};function freeIsNotKey(_0x11ef38,_0x15a6ad,_0x3cafe3){var _0x3eb12a=_['mapKeys'](_0x11ef38,function(_0x53b06e,_0x540e45){return _0x53b06e[_0x3cafe3];});for(var _0x5c2668 in _0x15a6ad){if(_0x15a6ad[_0xc008('0x21')](_0x5c2668)){if(!_0x3eb12a[_0x5c2668]){delete _0x15a6ad[_0x5c2668];}}}}function freeIsNotKeySip(_0x462af5,_0x501137){var _0x813397=_['mapKeys'](_0x462af5,function(_0x4bd611,_0x543e5d){return util['format'](_0xc008('0x22'),_0x4bd611['name']);});for(var _0x5560b1 in _0x501137){if(_0x501137['hasOwnProperty'](_0x5560b1)){if(!_0x813397[_0x5560b1]){delete _0x501137[_0x5560b1];}}}}function freeIsNotKeyAgent(_0x4a582d,_0x5a58bd){var _0x13a263=_[_0xc008('0x23')](_0x4a582d,function(_0x251db2,_0x415af3){var _0x11cc75=_[_0xc008('0x24')](_0x251db2['interface'])?util[_0xc008('0x25')]('SIP/%s',_0x251db2['name']):_0x251db2[_0xc008('0x26')];return _0x11cc75;});for(var _0x36f358 in _0x5a58bd){if(_0x5a58bd[_0xc008('0x21')](_0x36f358)){if(!_0x13a263[_0x36f358]){delete _0x5a58bd[_0x36f358];}}}}function clearVoiceCallReports(_0x3cb28c){_0x3cb28c['total']=0x0;_0x3cb28c['answered']=0x0;_0x3cb28c['sumHoldTime']=0x0;_0x3cb28c[_0xc008('0x27')]=0x0;_0x3cb28c[_0xc008('0x28')]=0x0;}function clearCampaigns(_0x92c582){if(!_[_0xc008('0x29')](_0x92c582)){for(var _0x5bebd9 in _0x92c582){if(_0x92c582['hasOwnProperty'](_0x5bebd9)){_0x92c582[_0x5bebd9]['ivrTotalCallsDays']=0x0;_0x92c582[_0x5bebd9]['ivrAnswerCallsDay']=0x0;}}}}function clearVoiceQueues(_0x4caaf4){if(!_[_0xc008('0x29')](_0x4caaf4)){for(var _0x29ba43 in _0x4caaf4){if(_0x4caaf4[_0xc008('0x21')](_0x29ba43)){_0x4caaf4[_0x29ba43]['total']=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x2a')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x2b')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x2c')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x2d')]=0x0;_0x4caaf4[_0x29ba43]['sumDuration']=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x28')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x2e')]=0x0;_0x4caaf4[_0x29ba43]['outboundNoAnswerCallsDay']=0x0;_0x4caaf4[_0x29ba43]['outboundBusyCallsDay']=0x0;_0x4caaf4[_0x29ba43]['outboundCongestionCallsDay']=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x2f')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x30')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x31')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x32')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x33')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x34')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x35')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x36')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x2e')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x37')]=0x0;_0x4caaf4[_0x29ba43][_0xc008('0x38')]=!![];}}}}Realtime[_0xc008('0x39')]['mergeFromDatabase']=function(_0x334a09,_0x4b7fd4){for(var _0x499754 in _0x4b7fd4){if(_0x334a09[_0xc008('0x21')](_0x499754)){_0x334a09[_0x499754]=_0x4b7fd4[_0x499754];}}};Realtime[_0xc008('0x39')][_0xc008('0x3a')]=function(){var _0xca0520=this;return function(_0xd0e05a){if(_0xd0e05a){freeIsNotKeyAgent(_0xd0e05a,_0xca0520[_0xc008('0x3b')]);for(var _0x7cfbc5=0x0,_0x470e79={},_0x29d4b3={};_0x7cfbc5<_0xd0e05a['length'];_0x7cfbc5+=0x1){_0x470e79=_0xd0e05a[_0x7cfbc5];var _0x415b87=_[_0xc008('0x24')](_0x470e79[_0xc008('0x26')])?util[_0xc008('0x25')](_0xc008('0x22'),_0x470e79[_0xc008('0x3c')]):_0x470e79[_0xc008('0x26')];if(_['isUndefined'](_0xca0520[_0xc008('0x3b')][_0x415b87])){_0xca0520[_0xc008('0x3b')][_0x415b87]=new Agent(_0x470e79);}else{_0xca0520['mergeFromDatabase'](_0xca0520[_0xc008('0x3b')][_0x415b87],_0x470e79);}}}return _0xca0520[_0xc008('0x3b')];};};Realtime['prototype'][_0xc008('0x3d')]=function(){var _0x2e4ae1=this;return function(_0x280e9b){if(_0x280e9b){freeIsNotKeySip(_0x280e9b,_0x2e4ae1['telephones']);for(var _0x53b353=0x0,_0x478810={},_0x234f2a={};_0x53b353<_0x280e9b['length'];_0x53b353+=0x1){_0x478810=_0x280e9b[_0x53b353];if(_[_0xc008('0x3e')](_0x2e4ae1[_0xc008('0x3f')][util[_0xc008('0x25')](_0xc008('0x22'),_0x478810[_0xc008('0x3c')])])){_0x2e4ae1[_0xc008('0x3f')][util[_0xc008('0x25')](_0xc008('0x22'),_0x478810[_0xc008('0x3c')])]=new Telephone(_0x478810);}else{_0x2e4ae1[_0xc008('0x40')](_0x2e4ae1[_0xc008('0x3f')][util[_0xc008('0x25')](_0xc008('0x22'),_0x478810[_0xc008('0x3c')])],_0x478810);}}}return _0x2e4ae1['telephones'];};};Realtime[_0xc008('0x39')][_0xc008('0x41')]=function(){var _0x30b7df=this;return function(_0x2e98e5){if(_0x2e98e5){freeIsNotKeySip(_0x2e98e5,_0x30b7df['trunks']);for(var _0x2c4964=0x0,_0x15396b={},_0xc8cb91={};_0x2c4964<_0x2e98e5[_0xc008('0x42')];_0x2c4964+=0x1){_0x15396b=_0x2e98e5[_0x2c4964];if(_[_0xc008('0x3e')](_0x30b7df['trunks'][util[_0xc008('0x25')](_0xc008('0x22'),_0x15396b[_0xc008('0x3c')])])){_0x30b7df[_0xc008('0x43')][util[_0xc008('0x25')]('SIP/%s',_0x15396b[_0xc008('0x3c')])]=new Trunk(_0x15396b);}else{_0x30b7df[_0xc008('0x40')](_0x30b7df[_0xc008('0x43')][util[_0xc008('0x25')]('SIP/%s',_0x15396b[_0xc008('0x3c')])],_0x15396b);}}}return _0x30b7df[_0xc008('0x43')];};};Realtime[_0xc008('0x39')]['initVoiceQueues']=function(){var _0x1f9af7=this;return function(_0x49a176){if(_0x49a176){freeIsNotKey(_0x49a176,_0x1f9af7[_0xc008('0x12')],'name');for(var _0x46fa8f=0x0,_0x213014={},_0x5a5d85={};_0x46fa8f<_0x49a176[_0xc008('0x42')];_0x46fa8f+=0x1){_0x213014=_0x49a176[_0x46fa8f];if(_[_0xc008('0x3e')](_0x1f9af7[_0xc008('0x12')][_0x213014['name']])){_0x1f9af7[_0xc008('0x12')][_0x213014[_0xc008('0x3c')]]=new VoiceQueue(_0x213014);}else{_0x1f9af7[_0xc008('0x40')](_0x1f9af7[_0xc008('0x12')][_0x213014[_0xc008('0x3c')]],_0x213014);}}}return _0x1f9af7[_0xc008('0x12')];};};Realtime['prototype']['initTriggers']=function(){var _0x5283a8=this;return function(_0x4552ed){if(_0x4552ed){freeIsNotKey(_0x4552ed,_0x5283a8[_0xc008('0x13')],'id');for(var _0x103a83=0x0,_0x4702a6={},_0x25289f={};_0x103a83<_0x4552ed[_0xc008('0x42')];_0x103a83+=0x1){_0x4702a6=_0x4552ed[_0x103a83];if(_[_0xc008('0x3e')](_0x5283a8[_0xc008('0x13')][_0x4702a6['id']])){_0x5283a8['triggers'][_0x4702a6['id']]=new Trigger(_0x4702a6);}else{_0x5283a8['mergeFromDatabase'](_0x5283a8['triggers'][_0x4702a6['id']],_0x4702a6);}}}return _0x5283a8[_0xc008('0x13')];};};Realtime[_0xc008('0x39')][_0xc008('0x44')]=function(){var _0x511383=this;return function(_0x28bc33){if(_0x28bc33){freeIsNotKey(_0x28bc33,_0x511383[_0xc008('0x14')],'id');for(var _0x17ab1a=0x0,_0x1c2c50={},_0x4981b4={};_0x17ab1a<_0x28bc33[_0xc008('0x42')];_0x17ab1a+=0x1){_0x1c2c50=_0x28bc33[_0x17ab1a];if(_[_0xc008('0x3e')](_0x511383[_0xc008('0x14')][_0x1c2c50['id']])){_0x511383[_0xc008('0x14')][_0x1c2c50['id']]=new Template(_0x1c2c50);}else{_0x511383[_0xc008('0x40')](_0x511383['templates'][_0x1c2c50['id']],_0x1c2c50);}}}return _0x511383['templates'];};};Realtime[_0xc008('0x39')]['initZendeskAccounts']=function(){var _0x437fef=this;return function(_0x36e6f8){if(_0x36e6f8){freeIsNotKey(_0x36e6f8,_0x437fef[_0xc008('0x45')],'id');for(var _0x5598fa=0x0,_0x144ab2={},_0x32b435={};_0x5598fa<_0x36e6f8[_0xc008('0x42')];_0x5598fa+=0x1){_0x144ab2=_0x36e6f8[_0x5598fa];if(_[_0xc008('0x3e')](_0x437fef[_0xc008('0x45')][_0x144ab2['id']])){_0x437fef['zendeskAccounts'][_0x144ab2['id']]=new ZendeskAccount(_0x144ab2);}else{_0x437fef[_0xc008('0x40')](_0x437fef[_0xc008('0x45')][_0x144ab2['id']],_0x144ab2);}}}return _0x437fef['zendeskAccounts'];};};Realtime[_0xc008('0x39')][_0xc008('0x46')]=function(){var _0x5b5fbf=this;return function(_0x51d3dc){if(_0x51d3dc){freeIsNotKey(_0x51d3dc,_0x5b5fbf[_0xc008('0x1b')],'id');for(var _0xd47b74=0x0,_0x20947b={},_0x30d0aa={};_0xd47b74<_0x51d3dc[_0xc008('0x42')];_0xd47b74+=0x1){_0x20947b=_0x51d3dc[_0xd47b74];if(_['isUndefined'](_0x5b5fbf['salesforceAccounts'][_0x20947b['id']])){_0x5b5fbf[_0xc008('0x1b')][_0x20947b['id']]=new SalesforceAccount(_0x20947b);}else{_0x5b5fbf['mergeFromDatabase'](_0x5b5fbf[_0xc008('0x1b')][_0x20947b['id']],_0x20947b);}}}return _0x5b5fbf[_0xc008('0x1b')];};};Realtime[_0xc008('0x39')][_0xc008('0x47')]=function(){var _0x44f42d=this;return function(_0x27a167){if(_0x27a167){freeIsNotKey(_0x27a167,_0x44f42d['freshdeskAccounts'],'id');for(var _0x2ea742=0x0,_0xbd7422={},_0x9a7abc={};_0x2ea742<_0x27a167[_0xc008('0x42')];_0x2ea742+=0x1){_0xbd7422=_0x27a167[_0x2ea742];if(_[_0xc008('0x3e')](_0x44f42d['freshdeskAccounts'][_0xbd7422['id']])){_0x44f42d[_0xc008('0x1c')][_0xbd7422['id']]=new FreshdeskAccount(_0xbd7422);}else{_0x44f42d['mergeFromDatabase'](_0x44f42d['freshdeskAccounts'][_0xbd7422['id']],_0xbd7422);}}}return _0x44f42d['freshdeskAccounts'];};};Realtime[_0xc008('0x39')][_0xc008('0x48')]=function(){var _0x5dfb69=this;return function(_0x5f58d7){if(_0x5f58d7){freeIsNotKey(_0x5f58d7,_0x5dfb69[_0xc008('0x1d')],'id');for(var _0x2d8361=0x0,_0x3dda82={},_0x47a58b={};_0x2d8361<_0x5f58d7[_0xc008('0x42')];_0x2d8361+=0x1){_0x3dda82=_0x5f58d7[_0x2d8361];if(_[_0xc008('0x3e')](_0x5dfb69[_0xc008('0x1d')][_0x3dda82['id']])){_0x5dfb69[_0xc008('0x1d')][_0x3dda82['id']]=new ZohoAccount(_0x3dda82);}else{_0x5dfb69['mergeFromDatabase'](_0x5dfb69[_0xc008('0x1d')][_0x3dda82['id']],_0x3dda82);}}}return _0x5dfb69['zohoAccounts'];};};Realtime[_0xc008('0x39')][_0xc008('0x49')]=function(){var _0x2ae14e=this;return function(_0x943c91){if(_0x943c91){freeIsNotKey(_0x943c91,_0x2ae14e[_0xc008('0x1e')],'id');for(var _0x4752f6=0x0,_0x4818c7={},_0x375e71={};_0x4752f6<_0x943c91['length'];_0x4752f6+=0x1){_0x4818c7=_0x943c91[_0x4752f6];if(_['isUndefined'](_0x2ae14e[_0xc008('0x1e')][_0x4818c7['id']])){_0x2ae14e[_0xc008('0x1e')][_0x4818c7['id']]=new DeskAccount(_0x4818c7);}else{_0x2ae14e['mergeFromDatabase'](_0x2ae14e[_0xc008('0x1e')][_0x4818c7['id']],_0x4818c7);}}}return _0x2ae14e[_0xc008('0x1e')];};};Realtime[_0xc008('0x39')][_0xc008('0x4a')]=function(){var _0x21ee6d=this;return function(_0x31a339){if(_0x31a339){freeIsNotKey(_0x31a339,_0x21ee6d[_0xc008('0x4b')],'id');for(var _0x57ce9a=0x0,_0x16e052={},_0x462e1e={};_0x57ce9a<_0x31a339[_0xc008('0x42')];_0x57ce9a+=0x1){_0x16e052=_0x31a339[_0x57ce9a];if(_[_0xc008('0x3e')](_0x21ee6d[_0xc008('0x4b')][_0x16e052['id']])){_0x21ee6d[_0xc008('0x4b')][_0x16e052['id']]=new SugarcrmAccount(_0x16e052);}else{_0x21ee6d[_0xc008('0x40')](_0x21ee6d[_0xc008('0x4b')][_0x16e052['id']],_0x16e052);}}}return _0x21ee6d[_0xc008('0x4b')];};};Realtime[_0xc008('0x39')][_0xc008('0x4c')]=function(){var _0x2b5eb6=this;return function(_0x131b81){if(_0x131b81){freeIsNotKey(_0x131b81,_0x2b5eb6[_0xc008('0x1f')],'id');for(var _0x4e0251=0x0,_0x36a08e={},_0x2e5467={};_0x4e0251<_0x131b81[_0xc008('0x42')];_0x4e0251+=0x1){_0x36a08e=_0x131b81[_0x4e0251];if(_['isUndefined'](_0x2b5eb6[_0xc008('0x1f')][_0x36a08e['id']])){_0x2b5eb6[_0xc008('0x1f')][_0x36a08e['id']]=new VtigerAccount(_0x36a08e);}else{_0x2b5eb6['mergeFromDatabase'](_0x2b5eb6['vtigerAccounts'][_0x36a08e['id']],_0x36a08e);}}}return _0x2b5eb6[_0xc008('0x1f')];};};Realtime[_0xc008('0x39')][_0xc008('0x4d')]=function(){var _0x39083c=this;return function(_0x1a2ce7){if(_0x1a2ce7){freeIsNotKey(_0x1a2ce7,_0x39083c[_0xc008('0x20')],'id');for(var _0x238852=0x0,_0x38191e={},_0x39e219={};_0x238852<_0x1a2ce7[_0xc008('0x42')];_0x238852+=0x1){_0x38191e=_0x1a2ce7[_0x238852];if(_[_0xc008('0x3e')](_0x39083c['servicenowAccounts'][_0x38191e['id']])){_0x39083c[_0xc008('0x20')][_0x38191e['id']]=new ServicenowAccount(_0x38191e);}else{_0x39083c[_0xc008('0x40')](_0x39083c[_0xc008('0x20')][_0x38191e['id']],_0x38191e);}}}return _0x39083c[_0xc008('0x20')];};};Realtime['prototype'][_0xc008('0x4e')]=function(){var _0x5975de=this;return function(_0x3a1de5){if(_0x3a1de5){freeIsNotKey(_0x3a1de5,_0x5975de[_0xc008('0x4f')],'id');for(var _0x419257=0x0,_0x4ccffe={},_0x1c31f5={};_0x419257<_0x3a1de5[_0xc008('0x42')];_0x419257+=0x1){_0x4ccffe=_0x3a1de5[_0x419257];if(_[_0xc008('0x3e')](_0x5975de['dynamics365Accounts'][_0x4ccffe['id']])){_0x5975de[_0xc008('0x4f')][_0x4ccffe['id']]=new Dynamics365Account(_0x4ccffe);}else{_0x5975de['mergeFromDatabase'](_0x5975de[_0xc008('0x4f')][_0x4ccffe['id']],_0x4ccffe);}}}return _0x5975de[_0xc008('0x4f')];};};Realtime[_0xc008('0x39')][_0xc008('0x50')]=function(){var _0x295ec7=this;return function(_0x4ca4a6){if(_0x4ca4a6){freeIsNotKey(_0x4ca4a6,_0x295ec7[_0xc008('0x51')],'id');for(var _0x3f2342=0x0,_0x49493b={},_0x3efb77={};_0x3f2342<_0x4ca4a6['length'];_0x3f2342+=0x1){_0x49493b=_0x4ca4a6[_0x3f2342];if(_[_0xc008('0x3e')](_0x295ec7['freshsalesAccounts'][_0x49493b['id']])){_0x295ec7[_0xc008('0x51')][_0x49493b['id']]=new FreshsalesAccount(_0x49493b);}else{_0x295ec7['mergeFromDatabase'](_0x295ec7[_0xc008('0x51')][_0x49493b['id']],_0x49493b);}}}return _0x295ec7[_0xc008('0x51')];};};Realtime[_0xc008('0x39')][_0xc008('0x52')]=function(){var _0x5a94ff=this;return function(_0x57752c){for(var _0x415c66=0x0;_0x415c66<_0x57752c[_0xc008('0x42')];_0x415c66+=0x1){_[_0xc008('0x53')](_0x5a94ff[_0xc008('0x12')][_0x57752c[_0x415c66][_0xc008('0x3c')]],_0x57752c[_0x415c66]);}return _0x5a94ff[_0xc008('0x12')];};};Realtime[_0xc008('0x39')]['initVoiceQueueReports']=function(){var _0x3e535b=this;return function(_0x530c2f){clearVoiceQueues(_0x3e535b['voiceQueues']);if(_0x530c2f){_0x530c2f=_['groupBy'](_0x530c2f,_0xc008('0x54'));for(var _0x401356 in _0x530c2f){if(_0x530c2f[_0xc008('0x21')](_0x401356)){var _0x233a85={};for(var _0xc2f684=0x0;_0xc2f684<_0x530c2f[_0x401356][_0xc008('0x42')];_0xc2f684+=0x1){var _0x23ef42=_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x55')];if(_0x3e535b[_0xc008('0x12')][_0x23ef42]){if(_0x530c2f[_0x401356][_0xc2f684]['queuecallerexit']){_0x3e535b[_0xc008('0x12')][_0x23ef42][_0xc008('0x2b')]+=0x1;}if(_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x56')]){_0x3e535b[_0xc008('0x12')][_0x23ef42][_0xc008('0x2c')]+=0x1;}_0x3e535b[_0xc008('0x12')][_0x23ef42][_0xc008('0x2d')]+=moment(_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x57')])[_0xc008('0x58')](moment(_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x59')]),_0xc008('0x5a'))||0x0;if(_0xc2f684===_0x530c2f[_0x401356][_0xc008('0x42')]-0x1){_0x3e535b['voiceQueues'][_0x23ef42]['sumDuration']+=moment(_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x5b')]||_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x5c')]||_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x5d')])['diff'](moment(_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x59')]),_0xc008('0x5a'))||0x0;_0x3e535b['voiceQueues'][_0x23ef42]['total']+=0x1;if(_0x530c2f[_0x401356][_0xc2f684]['queuecallercomplete']){_0x3e535b[_0xc008('0x12')][_0x23ef42][_0xc008('0x2a')]+=0x1;_0x3e535b[_0xc008('0x12')][_0x23ef42][_0xc008('0x28')]+=moment(_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x5b')])[_0xc008('0x58')](moment(_0x530c2f[_0x401356][_0xc2f684][_0xc008('0x57')]),_0xc008('0x5a'))||0x0;}}else{_0x3e535b[_0xc008('0x12')][_0x23ef42][_0xc008('0x27')]+=_0x3e535b['voiceQueues'][_0x23ef42]['sumHoldTime']||0x0;}}}}}}return _0x3e535b[_0xc008('0x12')];};};Realtime[_0xc008('0x39')][_0xc008('0x5e')]=function(){var _0x3f1e41=this;return function(_0x2b94b2){clearVoiceCallReports(_0x3f1e41[_0xc008('0x15')]);if(_0x2b94b2){for(var _0x4b434f=0x0;_0x4b434f<_0x2b94b2['length'];_0x4b434f+=0x1){_0x3f1e41[_0xc008('0x15')][_0xc008('0x5f')]+=0x1;_0x3f1e41[_0xc008('0x15')]['sumDuration']+=_0x2b94b2[_0x4b434f]['duration'];if(_0x2b94b2[_0x4b434f]['disposition']==='ANSWERED'){_0x3f1e41['outbound']['answered']+=0x1;_0x3f1e41[_0xc008('0x15')]['sumHoldTime']+=_0x2b94b2[_0x4b434f][_0xc008('0x60')]-_0x2b94b2[_0x4b434f]['billableseconds']||0x0;_0x3f1e41[_0xc008('0x15')][_0xc008('0x28')]+=_0x2b94b2[_0x4b434f][_0xc008('0x61')];}}}return _0x3f1e41['outbound'];};};Realtime['prototype'][_0xc008('0x62')]=function(){var _0x51a194=this;return function(_0x29d8e0){if(_0x29d8e0){freeIsNotKey(_0x29d8e0,_0x51a194[_0xc008('0x63')],'name');for(var _0x7b7246=0x0,_0x4db90b={};_0x7b7246<_0x29d8e0['length'];_0x7b7246+=0x1){_0x4db90b=_0x29d8e0[_0x7b7246];if(_[_0xc008('0x3e')](_0x51a194[_0xc008('0x63')][_0x4db90b['name']])){_0x51a194[_0xc008('0x63')][_0x4db90b[_0xc008('0x3c')]]=new Campaign(_0x4db90b);}else{_0x51a194[_0xc008('0x40')](_0x51a194['campaigns'][_0x4db90b[_0xc008('0x3c')]],_0x4db90b);_0x51a194[_0xc008('0x63')][_0x4db90b[_0xc008('0x3c')]][_0xc008('0x64')]=_0x4db90b[_0xc008('0x65')]?_0x4db90b[_0xc008('0x65')]['name']:undefined;}}}return _0x51a194[_0xc008('0x63')];};};Realtime[_0xc008('0x39')][_0xc008('0x66')]=function(){var _0x4946d3=this;return function(_0x477b14){if(_0x477b14){freeIsNotKey(_0x477b14,_0x4946d3[_0xc008('0x16')],'id');for(var _0x4452a8=0x0,_0x4914ed={};_0x4452a8<_0x477b14['length'];_0x4452a8+=0x1){_0x4914ed=_0x477b14[_0x4452a8];if(_['isUndefined'](_0x4946d3[_0xc008('0x16')][_0x4914ed['id']])){_0x4946d3[_0xc008('0x16')][_0x4914ed['id']]=new VoiceExtension(_0x4914ed);}else{_0x4946d3[_0xc008('0x40')](_0x4946d3[_0xc008('0x16')][_0x4914ed['id']],_0x4914ed);}}}return _0x4946d3[_0xc008('0x16')];};};Realtime[_0xc008('0x39')][_0xc008('0x67')]=function(){var _0x226fa0=this;return function(_0x539ccb){clearCampaigns(_0x226fa0[_0xc008('0x63')]);for(var _0x454597=0x0;_0x454597<_0x539ccb['length'];_0x454597+=0x1){_['merge'](_0x226fa0[_0xc008('0x63')][_0x539ccb[_0x454597][_0xc008('0x3c')]],_0x539ccb[_0x454597]);}return _0x226fa0[_0xc008('0x63')];};};Realtime[_0xc008('0x39')][_0xc008('0x68')]=function(){var _0x49e822=this;return function(_0xe988da){if(_0xe988da){freeIsNotKey(_0xe988da,_0x49e822[_0xc008('0x69')],'id');for(var _0x56be9d=0x0,_0xb02bd={},_0x1cc68f={};_0x56be9d<_0xe988da[_0xc008('0x42')];_0x56be9d+=0x1){_0xb02bd=_0xe988da[_0x56be9d];if(_[_0xc008('0x3e')](_0x49e822['faxAccounts'][_0xb02bd['id']])){_0x49e822[_0xc008('0x69')][_0xb02bd['id']]=new FaxAccount(_0xb02bd);}else{_0x49e822[_0xc008('0x40')](_0x49e822[_0xc008('0x69')][_0xb02bd['id']],_0xb02bd);}}}return _0x49e822[_0xc008('0x69')];};};module['exports']=Realtime;