1edb441694b3b0d2479f9e26db258434538ab99d
[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 _0x2d8c=['../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/deskAccount','../model/servicenowAccount','../model/dynamics365Account','agents','telephones','trunks','triggers','voiceExtensions','channels','queueChannels','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','deskAccounts','servicenowAccounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','name','interface','format','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrAnswerCallsDay','abandoned','outboundAnswerAgiCallsDay','outboundBusyCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundRejectCallsDay','outboundReCallsDay','queueStatusComplete','mergeFromDatabase','initAgents','length','isNil','SIP/%s','isUndefined','prototype','initTrunks','initVoiceQueues','voiceQueues','initTemplates','templates','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','zohoAccounts','initDeskAccounts','initSugarcrmAccounts','vtigerAccounts','initServicenowAccounts','initDynamics365Accounts','dynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','merge','groupBy','uniqueid','queue','unmanaged','queuecallerabandon','queuecallerleaveAt','seconds','queuecallerabandonAt','queuecallerexitAt','diff','queuecallerjoinAt','queuecallercomplete','outbound','disposition','ANSWERED','duration','billableseconds','initCampaigns','campaigns','dialQueueProject','SquareProject','initVoiceExtensions','initFaxAccounts','exports','bluebird','util','lodash','../model/telephone','../model/trunk'];(function(_0x1dd3b3,_0x54db4c){var _0xab5e42=function(_0x1574fb){while(--_0x1574fb){_0x1dd3b3['push'](_0x1dd3b3['shift']());}};_0xab5e42(++_0x54db4c);}(_0x2d8c,0xc3));var _0xc2d8=function(_0x3ff085,_0x27c92e){_0x3ff085=_0x3ff085-0x0;var _0x2b68c3=_0x2d8c[_0x3ff085];return _0x2b68c3;};'use strict';var BPromise=require(_0xc2d8('0x0'));var util=require(_0xc2d8('0x1'));var _=require(_0xc2d8('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Telephone=require(_0xc2d8('0x3'));var Trunk=require(_0xc2d8('0x4'));var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0xc2d8('0x5'));var Template=require(_0xc2d8('0x6'));var Campaign=require(_0xc2d8('0x7'));var VoiceExtension=require(_0xc2d8('0x8'));var ZendeskAccount=require(_0xc2d8('0x9'));var SalesforceAccount=require(_0xc2d8('0xa'));var FreshdeskAccount=require(_0xc2d8('0xb'));var SugarcrmAccount=require('../model/sugarcrmAccount');var ZohoAccount=require('../model/zohoAccount');var DeskAccount=require(_0xc2d8('0xc'));var VtigerAccount=require('../model/vtigerAccount');var ServicenowAccount=require(_0xc2d8('0xd'));var Dynamics365Account=require(_0xc2d8('0xe'));var FreshsalesAccount=require('../model/freshsalesAccount');var FaxAccount=require('../model/faxAccount');var Realtime=function(){this[_0xc2d8('0xf')]={};this[_0xc2d8('0x10')]={};this[_0xc2d8('0x11')]={};this['voiceQueues']={};this[_0xc2d8('0x12')]={};this['campaigns']={};this['templates']={};this['outbound']={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xc2d8('0x13')]={};this[_0xc2d8('0x14')]={};this[_0xc2d8('0x15')]={};this['outboundChannels']={};this['timers']={};this[_0xc2d8('0x16')]={};this[_0xc2d8('0x17')]={};this[_0xc2d8('0x18')]={};this[_0xc2d8('0x19')]={};this['zohoAccounts']={};this[_0xc2d8('0x1a')]={};this['vtigerAccounts']={};this[_0xc2d8('0x1b')]={};this['dynamics365Accounts']={};this[_0xc2d8('0x1c')]={};this[_0xc2d8('0x1d')]={};};function freeIsNotKey(_0x91bcc6,_0x57953f,_0x20c809){var _0xb3e625=_[_0xc2d8('0x1e')](_0x91bcc6,function(_0x594afe,_0x4cb6f1){return _0x594afe[_0x20c809];});for(var _0x93e9d3 in _0x57953f){if(_0x57953f[_0xc2d8('0x1f')](_0x93e9d3)){if(!_0xb3e625[_0x93e9d3]){delete _0x57953f[_0x93e9d3];}}}}function freeIsNotKeySip(_0xc2fe96,_0x4c2607){var _0xf3ef4=_[_0xc2d8('0x1e')](_0xc2fe96,function(_0x4852f2,_0x5a3d20){return util['format']('SIP/%s',_0x4852f2[_0xc2d8('0x20')]);});for(var _0x4d0682 in _0x4c2607){if(_0x4c2607['hasOwnProperty'](_0x4d0682)){if(!_0xf3ef4[_0x4d0682]){delete _0x4c2607[_0x4d0682];}}}}function freeIsNotKeyAgent(_0x455450,_0x2b06b3){var _0x5a3014=_['mapKeys'](_0x455450,function(_0x4ee83e,_0x168d31){var _0x1577e8=_['isNil'](_0x4ee83e[_0xc2d8('0x21')])?util[_0xc2d8('0x22')]('SIP/%s',_0x4ee83e['name']):_0x4ee83e[_0xc2d8('0x21')];return _0x1577e8;});for(var _0x21f38c in _0x2b06b3){if(_0x2b06b3[_0xc2d8('0x1f')](_0x21f38c)){if(!_0x5a3014[_0x21f38c]){delete _0x2b06b3[_0x21f38c];}}}}function clearVoiceCallReports(_0x507925){_0x507925[_0xc2d8('0x23')]=0x0;_0x507925[_0xc2d8('0x24')]=0x0;_0x507925[_0xc2d8('0x25')]=0x0;_0x507925[_0xc2d8('0x26')]=0x0;_0x507925[_0xc2d8('0x27')]=0x0;}function clearCampaigns(_0x4db430){if(!_[_0xc2d8('0x28')](_0x4db430)){for(var _0x194a2e in _0x4db430){if(_0x4db430[_0xc2d8('0x1f')](_0x194a2e)){_0x4db430[_0x194a2e]['ivrTotalCallsDays']=0x0;_0x4db430[_0x194a2e][_0xc2d8('0x29')]=0x0;}}}}function clearVoiceQueues(_0x777a9a){if(!_['isEmpty'](_0x777a9a)){for(var _0x505c63 in _0x777a9a){if(_0x777a9a[_0xc2d8('0x1f')](_0x505c63)){_0x777a9a[_0x505c63][_0xc2d8('0x23')]=0x0;_0x777a9a[_0x505c63]['answered']=0x0;_0x777a9a[_0x505c63]['unmanaged']=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x2a')]=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x25')]=0x0;_0x777a9a[_0x505c63]['sumDuration']=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x27')]=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x2b')]=0x0;_0x777a9a[_0x505c63]['outboundNoAnswerCallsDay']=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x2c')]=0x0;_0x777a9a[_0x505c63]['outboundCongestionCallsDay']=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x2d')]=0x0;_0x777a9a[_0x505c63]['outboundUnknownCallsDay']=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x2e')]=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x2f')]=0x0;_0x777a9a[_0x505c63]['outboundBlacklistCallsDay']=0x0;_0x777a9a[_0x505c63]['outboundOriginateFailureCallsDay']=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x30')]=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x31')]=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x2b')]=0x0;_0x777a9a[_0x505c63]['outboundAnswerCallsDay']=0x0;_0x777a9a[_0x505c63][_0xc2d8('0x32')]=!![];}}}}Realtime['prototype'][_0xc2d8('0x33')]=function(_0xec5b73,_0x4a3e41){for(var _0x388132 in _0x4a3e41){if(_0xec5b73['hasOwnProperty'](_0x388132)){_0xec5b73[_0x388132]=_0x4a3e41[_0x388132];}}};Realtime['prototype'][_0xc2d8('0x34')]=function(){var _0x28e06e=this;return function(_0x9f9bba){if(_0x9f9bba){freeIsNotKeyAgent(_0x9f9bba,_0x28e06e[_0xc2d8('0xf')]);for(var _0x2255ca=0x0,_0x25bd43={},_0x164b20={};_0x2255ca<_0x9f9bba[_0xc2d8('0x35')];_0x2255ca+=0x1){_0x25bd43=_0x9f9bba[_0x2255ca];var _0x485029=_[_0xc2d8('0x36')](_0x25bd43[_0xc2d8('0x21')])?util[_0xc2d8('0x22')](_0xc2d8('0x37'),_0x25bd43['name']):_0x25bd43[_0xc2d8('0x21')];if(_[_0xc2d8('0x38')](_0x28e06e['agents'][_0x485029])){_0x28e06e['agents'][_0x485029]=new Agent(_0x25bd43);}else{_0x28e06e[_0xc2d8('0x33')](_0x28e06e[_0xc2d8('0xf')][_0x485029],_0x25bd43);}}}return _0x28e06e[_0xc2d8('0xf')];};};Realtime[_0xc2d8('0x39')]['initTelephones']=function(){var _0x35eedd=this;return function(_0x5c8a55){if(_0x5c8a55){freeIsNotKeySip(_0x5c8a55,_0x35eedd[_0xc2d8('0x10')]);for(var _0x5633bb=0x0,_0x6749aa={},_0x4d02d3={};_0x5633bb<_0x5c8a55['length'];_0x5633bb+=0x1){_0x6749aa=_0x5c8a55[_0x5633bb];if(_[_0xc2d8('0x38')](_0x35eedd['telephones'][util['format']('SIP/%s',_0x6749aa[_0xc2d8('0x20')])])){_0x35eedd[_0xc2d8('0x10')][util[_0xc2d8('0x22')]('SIP/%s',_0x6749aa[_0xc2d8('0x20')])]=new Telephone(_0x6749aa);}else{_0x35eedd[_0xc2d8('0x33')](_0x35eedd[_0xc2d8('0x10')][util[_0xc2d8('0x22')](_0xc2d8('0x37'),_0x6749aa[_0xc2d8('0x20')])],_0x6749aa);}}}return _0x35eedd[_0xc2d8('0x10')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x3a')]=function(){var _0x222f52=this;return function(_0x237a5e){if(_0x237a5e){freeIsNotKeySip(_0x237a5e,_0x222f52[_0xc2d8('0x11')]);for(var _0x4b34a7=0x0,_0x49aa6b={},_0x454064={};_0x4b34a7<_0x237a5e[_0xc2d8('0x35')];_0x4b34a7+=0x1){_0x49aa6b=_0x237a5e[_0x4b34a7];if(_[_0xc2d8('0x38')](_0x222f52[_0xc2d8('0x11')][util[_0xc2d8('0x22')](_0xc2d8('0x37'),_0x49aa6b['name'])])){_0x222f52[_0xc2d8('0x11')][util[_0xc2d8('0x22')](_0xc2d8('0x37'),_0x49aa6b[_0xc2d8('0x20')])]=new Trunk(_0x49aa6b);}else{_0x222f52[_0xc2d8('0x33')](_0x222f52[_0xc2d8('0x11')][util[_0xc2d8('0x22')](_0xc2d8('0x37'),_0x49aa6b['name'])],_0x49aa6b);}}}return _0x222f52[_0xc2d8('0x11')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x3b')]=function(){var _0x17674d=this;return function(_0x114a5f){if(_0x114a5f){freeIsNotKey(_0x114a5f,_0x17674d[_0xc2d8('0x3c')],_0xc2d8('0x20'));for(var _0x32604e=0x0,_0x32a362={},_0x311673={};_0x32604e<_0x114a5f[_0xc2d8('0x35')];_0x32604e+=0x1){_0x32a362=_0x114a5f[_0x32604e];if(_[_0xc2d8('0x38')](_0x17674d[_0xc2d8('0x3c')][_0x32a362['name']])){_0x17674d[_0xc2d8('0x3c')][_0x32a362['name']]=new VoiceQueue(_0x32a362);}else{_0x17674d[_0xc2d8('0x33')](_0x17674d[_0xc2d8('0x3c')][_0x32a362[_0xc2d8('0x20')]],_0x32a362);}}}return _0x17674d['voiceQueues'];};};Realtime['prototype']['initTriggers']=function(){var _0x4a9076=this;return function(_0x49e747){if(_0x49e747){freeIsNotKey(_0x49e747,_0x4a9076[_0xc2d8('0x12')],'id');for(var _0xded9f8=0x0,_0x3f0ead={},_0x4689f7={};_0xded9f8<_0x49e747[_0xc2d8('0x35')];_0xded9f8+=0x1){_0x3f0ead=_0x49e747[_0xded9f8];if(_[_0xc2d8('0x38')](_0x4a9076[_0xc2d8('0x12')][_0x3f0ead['id']])){_0x4a9076[_0xc2d8('0x12')][_0x3f0ead['id']]=new Trigger(_0x3f0ead);}else{_0x4a9076[_0xc2d8('0x33')](_0x4a9076[_0xc2d8('0x12')][_0x3f0ead['id']],_0x3f0ead);}}}return _0x4a9076['triggers'];};};Realtime['prototype'][_0xc2d8('0x3d')]=function(){var _0xeb4dac=this;return function(_0x2fa6e8){if(_0x2fa6e8){freeIsNotKey(_0x2fa6e8,_0xeb4dac[_0xc2d8('0x3e')],'id');for(var _0x135d78=0x0,_0x4dad52={},_0x46de31={};_0x135d78<_0x2fa6e8['length'];_0x135d78+=0x1){_0x4dad52=_0x2fa6e8[_0x135d78];if(_['isUndefined'](_0xeb4dac[_0xc2d8('0x3e')][_0x4dad52['id']])){_0xeb4dac[_0xc2d8('0x3e')][_0x4dad52['id']]=new Template(_0x4dad52);}else{_0xeb4dac[_0xc2d8('0x33')](_0xeb4dac[_0xc2d8('0x3e')][_0x4dad52['id']],_0x4dad52);}}}return _0xeb4dac[_0xc2d8('0x3e')];};};Realtime[_0xc2d8('0x39')]['initZendeskAccounts']=function(){var _0x10d269=this;return function(_0x300fdc){if(_0x300fdc){freeIsNotKey(_0x300fdc,_0x10d269[_0xc2d8('0x16')],'id');for(var _0x2e8ebf=0x0,_0x35dc72={},_0x3e19b7={};_0x2e8ebf<_0x300fdc['length'];_0x2e8ebf+=0x1){_0x35dc72=_0x300fdc[_0x2e8ebf];if(_[_0xc2d8('0x38')](_0x10d269[_0xc2d8('0x16')][_0x35dc72['id']])){_0x10d269['zendeskAccounts'][_0x35dc72['id']]=new ZendeskAccount(_0x35dc72);}else{_0x10d269[_0xc2d8('0x33')](_0x10d269[_0xc2d8('0x16')][_0x35dc72['id']],_0x35dc72);}}}return _0x10d269[_0xc2d8('0x16')];};};Realtime['prototype'][_0xc2d8('0x3f')]=function(){var _0x4927d7=this;return function(_0x7f6eb5){if(_0x7f6eb5){freeIsNotKey(_0x7f6eb5,_0x4927d7[_0xc2d8('0x17')],'id');for(var _0x5b5f31=0x0,_0x4e02bc={},_0x137342={};_0x5b5f31<_0x7f6eb5[_0xc2d8('0x35')];_0x5b5f31+=0x1){_0x4e02bc=_0x7f6eb5[_0x5b5f31];if(_[_0xc2d8('0x38')](_0x4927d7[_0xc2d8('0x17')][_0x4e02bc['id']])){_0x4927d7[_0xc2d8('0x17')][_0x4e02bc['id']]=new SalesforceAccount(_0x4e02bc);}else{_0x4927d7[_0xc2d8('0x33')](_0x4927d7['salesforceAccounts'][_0x4e02bc['id']],_0x4e02bc);}}}return _0x4927d7[_0xc2d8('0x17')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x40')]=function(){var _0x239cec=this;return function(_0x150ca5){if(_0x150ca5){freeIsNotKey(_0x150ca5,_0x239cec[_0xc2d8('0x19')],'id');for(var _0x2e2163=0x0,_0x276942={},_0x378e19={};_0x2e2163<_0x150ca5['length'];_0x2e2163+=0x1){_0x276942=_0x150ca5[_0x2e2163];if(_[_0xc2d8('0x38')](_0x239cec[_0xc2d8('0x19')][_0x276942['id']])){_0x239cec['freshdeskAccounts'][_0x276942['id']]=new FreshdeskAccount(_0x276942);}else{_0x239cec['mergeFromDatabase'](_0x239cec[_0xc2d8('0x19')][_0x276942['id']],_0x276942);}}}return _0x239cec['freshdeskAccounts'];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x41')]=function(){var _0x22062d=this;return function(_0x138039){if(_0x138039){freeIsNotKey(_0x138039,_0x22062d[_0xc2d8('0x42')],'id');for(var _0x4b42fb=0x0,_0x4f3341={},_0x5341f0={};_0x4b42fb<_0x138039['length'];_0x4b42fb+=0x1){_0x4f3341=_0x138039[_0x4b42fb];if(_['isUndefined'](_0x22062d[_0xc2d8('0x42')][_0x4f3341['id']])){_0x22062d[_0xc2d8('0x42')][_0x4f3341['id']]=new ZohoAccount(_0x4f3341);}else{_0x22062d[_0xc2d8('0x33')](_0x22062d[_0xc2d8('0x42')][_0x4f3341['id']],_0x4f3341);}}}return _0x22062d[_0xc2d8('0x42')];};};Realtime['prototype'][_0xc2d8('0x43')]=function(){var _0xe16d5=this;return function(_0x3791bc){if(_0x3791bc){freeIsNotKey(_0x3791bc,_0xe16d5[_0xc2d8('0x1a')],'id');for(var _0x10e7f9=0x0,_0x5c1398={},_0x358b9f={};_0x10e7f9<_0x3791bc[_0xc2d8('0x35')];_0x10e7f9+=0x1){_0x5c1398=_0x3791bc[_0x10e7f9];if(_[_0xc2d8('0x38')](_0xe16d5[_0xc2d8('0x1a')][_0x5c1398['id']])){_0xe16d5['deskAccounts'][_0x5c1398['id']]=new DeskAccount(_0x5c1398);}else{_0xe16d5[_0xc2d8('0x33')](_0xe16d5[_0xc2d8('0x1a')][_0x5c1398['id']],_0x5c1398);}}}return _0xe16d5[_0xc2d8('0x1a')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x44')]=function(){var _0x16a67b=this;return function(_0x2f7702){if(_0x2f7702){freeIsNotKey(_0x2f7702,_0x16a67b[_0xc2d8('0x18')],'id');for(var _0x1652bd=0x0,_0x5bef57={},_0x868898={};_0x1652bd<_0x2f7702['length'];_0x1652bd+=0x1){_0x5bef57=_0x2f7702[_0x1652bd];if(_[_0xc2d8('0x38')](_0x16a67b[_0xc2d8('0x18')][_0x5bef57['id']])){_0x16a67b['sugarcrmAccounts'][_0x5bef57['id']]=new SugarcrmAccount(_0x5bef57);}else{_0x16a67b['mergeFromDatabase'](_0x16a67b[_0xc2d8('0x18')][_0x5bef57['id']],_0x5bef57);}}}return _0x16a67b[_0xc2d8('0x18')];};};Realtime['prototype']['initVtigerAccounts']=function(){var _0x465c26=this;return function(_0x34b96b){if(_0x34b96b){freeIsNotKey(_0x34b96b,_0x465c26[_0xc2d8('0x45')],'id');for(var _0x377577=0x0,_0x30a08f={},_0xc8adc={};_0x377577<_0x34b96b['length'];_0x377577+=0x1){_0x30a08f=_0x34b96b[_0x377577];if(_[_0xc2d8('0x38')](_0x465c26[_0xc2d8('0x45')][_0x30a08f['id']])){_0x465c26['vtigerAccounts'][_0x30a08f['id']]=new VtigerAccount(_0x30a08f);}else{_0x465c26[_0xc2d8('0x33')](_0x465c26[_0xc2d8('0x45')][_0x30a08f['id']],_0x30a08f);}}}return _0x465c26[_0xc2d8('0x45')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x46')]=function(){var _0x1847d5=this;return function(_0x3dff46){if(_0x3dff46){freeIsNotKey(_0x3dff46,_0x1847d5[_0xc2d8('0x1b')],'id');for(var _0x37b361=0x0,_0x25eb5b={},_0x25e7a0={};_0x37b361<_0x3dff46[_0xc2d8('0x35')];_0x37b361+=0x1){_0x25eb5b=_0x3dff46[_0x37b361];if(_[_0xc2d8('0x38')](_0x1847d5[_0xc2d8('0x1b')][_0x25eb5b['id']])){_0x1847d5[_0xc2d8('0x1b')][_0x25eb5b['id']]=new ServicenowAccount(_0x25eb5b);}else{_0x1847d5[_0xc2d8('0x33')](_0x1847d5[_0xc2d8('0x1b')][_0x25eb5b['id']],_0x25eb5b);}}}return _0x1847d5[_0xc2d8('0x1b')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x47')]=function(){var _0x2ed6d3=this;return function(_0x239995){if(_0x239995){freeIsNotKey(_0x239995,_0x2ed6d3['dynamics365Accounts'],'id');for(var _0x26e1d9=0x0,_0x11d96d={},_0x5ae8d5={};_0x26e1d9<_0x239995['length'];_0x26e1d9+=0x1){_0x11d96d=_0x239995[_0x26e1d9];if(_['isUndefined'](_0x2ed6d3[_0xc2d8('0x48')][_0x11d96d['id']])){_0x2ed6d3[_0xc2d8('0x48')][_0x11d96d['id']]=new Dynamics365Account(_0x11d96d);}else{_0x2ed6d3[_0xc2d8('0x33')](_0x2ed6d3['dynamics365Accounts'][_0x11d96d['id']],_0x11d96d);}}}return _0x2ed6d3[_0xc2d8('0x48')];};};Realtime['prototype'][_0xc2d8('0x49')]=function(){var _0x4e95cc=this;return function(_0x2678e7){if(_0x2678e7){freeIsNotKey(_0x2678e7,_0x4e95cc[_0xc2d8('0x1c')],'id');for(var _0x52a51c=0x0,_0x5bc3db={},_0x253254={};_0x52a51c<_0x2678e7[_0xc2d8('0x35')];_0x52a51c+=0x1){_0x5bc3db=_0x2678e7[_0x52a51c];if(_['isUndefined'](_0x4e95cc[_0xc2d8('0x1c')][_0x5bc3db['id']])){_0x4e95cc[_0xc2d8('0x1c')][_0x5bc3db['id']]=new FreshsalesAccount(_0x5bc3db);}else{_0x4e95cc[_0xc2d8('0x33')](_0x4e95cc[_0xc2d8('0x1c')][_0x5bc3db['id']],_0x5bc3db);}}}return _0x4e95cc[_0xc2d8('0x1c')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x4a')]=function(){var _0x501fd6=this;return function(_0x4392c1){for(var _0x15503e=0x0;_0x15503e<_0x4392c1[_0xc2d8('0x35')];_0x15503e+=0x1){_[_0xc2d8('0x4b')](_0x501fd6['voiceQueues'][_0x4392c1[_0x15503e][_0xc2d8('0x20')]],_0x4392c1[_0x15503e]);}return _0x501fd6[_0xc2d8('0x3c')];};};Realtime['prototype']['initVoiceQueueReports']=function(){var _0x38e67b=this;return function(_0x135bc8){clearVoiceQueues(_0x38e67b[_0xc2d8('0x3c')]);if(_0x135bc8){_0x135bc8=_[_0xc2d8('0x4c')](_0x135bc8,_0xc2d8('0x4d'));for(var _0x31f710 in _0x135bc8){if(_0x135bc8[_0xc2d8('0x1f')](_0x31f710)){var _0x305326={};for(var _0x4911b3=0x0;_0x4911b3<_0x135bc8[_0x31f710]['length'];_0x4911b3+=0x1){var _0x38cfed=_0x135bc8[_0x31f710][_0x4911b3][_0xc2d8('0x4e')];if(_0x38e67b[_0xc2d8('0x3c')][_0x38cfed]){if(_0x135bc8[_0x31f710][_0x4911b3]['queuecallerexit']){_0x38e67b[_0xc2d8('0x3c')][_0x38cfed][_0xc2d8('0x4f')]+=0x1;}if(_0x135bc8[_0x31f710][_0x4911b3][_0xc2d8('0x50')]){_0x38e67b[_0xc2d8('0x3c')][_0x38cfed][_0xc2d8('0x2a')]+=0x1;}_0x38e67b[_0xc2d8('0x3c')][_0x38cfed][_0xc2d8('0x25')]+=moment(_0x135bc8[_0x31f710][_0x4911b3][_0xc2d8('0x51')])['diff'](moment(_0x135bc8[_0x31f710][_0x4911b3]['queuecallerjoinAt']),_0xc2d8('0x52'))||0x0;if(_0x4911b3===_0x135bc8[_0x31f710][_0xc2d8('0x35')]-0x1){_0x38e67b[_0xc2d8('0x3c')][_0x38cfed]['sumDuration']+=moment(_0x135bc8[_0x31f710][_0x4911b3]['queuecallercompleteAt']||_0x135bc8[_0x31f710][_0x4911b3][_0xc2d8('0x53')]||_0x135bc8[_0x31f710][_0x4911b3][_0xc2d8('0x54')])[_0xc2d8('0x55')](moment(_0x135bc8[_0x31f710][_0x4911b3][_0xc2d8('0x56')]),_0xc2d8('0x52'))||0x0;_0x38e67b['voiceQueues'][_0x38cfed][_0xc2d8('0x23')]+=0x1;if(_0x135bc8[_0x31f710][_0x4911b3][_0xc2d8('0x57')]){_0x38e67b['voiceQueues'][_0x38cfed]['answered']+=0x1;_0x38e67b[_0xc2d8('0x3c')][_0x38cfed]['sumBillable']+=moment(_0x135bc8[_0x31f710][_0x4911b3]['queuecallercompleteAt'])[_0xc2d8('0x55')](moment(_0x135bc8[_0x31f710][_0x4911b3][_0xc2d8('0x51')]),_0xc2d8('0x52'))||0x0;}}else{_0x38e67b[_0xc2d8('0x3c')][_0x38cfed][_0xc2d8('0x26')]+=_0x38e67b[_0xc2d8('0x3c')][_0x38cfed]['sumHoldTime']||0x0;}}}}}}return _0x38e67b['voiceQueues'];};};Realtime[_0xc2d8('0x39')]['initVoiceCallReports']=function(){var _0x2dcb09=this;return function(_0x4a5d18){clearVoiceCallReports(_0x2dcb09[_0xc2d8('0x58')]);if(_0x4a5d18){for(var _0x29119e=0x0;_0x29119e<_0x4a5d18[_0xc2d8('0x35')];_0x29119e+=0x1){_0x2dcb09[_0xc2d8('0x58')][_0xc2d8('0x23')]+=0x1;_0x2dcb09[_0xc2d8('0x58')][_0xc2d8('0x26')]+=_0x4a5d18[_0x29119e]['duration'];if(_0x4a5d18[_0x29119e][_0xc2d8('0x59')]===_0xc2d8('0x5a')){_0x2dcb09[_0xc2d8('0x58')][_0xc2d8('0x24')]+=0x1;_0x2dcb09[_0xc2d8('0x58')][_0xc2d8('0x25')]+=_0x4a5d18[_0x29119e][_0xc2d8('0x5b')]-_0x4a5d18[_0x29119e][_0xc2d8('0x5c')]||0x0;_0x2dcb09[_0xc2d8('0x58')]['sumBillable']+=_0x4a5d18[_0x29119e][_0xc2d8('0x5c')];}}}return _0x2dcb09[_0xc2d8('0x58')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x5d')]=function(){var _0x56ad65=this;return function(_0x18067d){if(_0x18067d){freeIsNotKey(_0x18067d,_0x56ad65[_0xc2d8('0x5e')],_0xc2d8('0x20'));for(var _0x29dd3c=0x0,_0x55c34c={};_0x29dd3c<_0x18067d[_0xc2d8('0x35')];_0x29dd3c+=0x1){_0x55c34c=_0x18067d[_0x29dd3c];if(_['isUndefined'](_0x56ad65[_0xc2d8('0x5e')][_0x55c34c[_0xc2d8('0x20')]])){_0x56ad65[_0xc2d8('0x5e')][_0x55c34c[_0xc2d8('0x20')]]=new Campaign(_0x55c34c);}else{_0x56ad65['mergeFromDatabase'](_0x56ad65['campaigns'][_0x55c34c[_0xc2d8('0x20')]],_0x55c34c);_0x56ad65[_0xc2d8('0x5e')][_0x55c34c['name']][_0xc2d8('0x5f')]=_0x55c34c[_0xc2d8('0x60')]?_0x55c34c[_0xc2d8('0x60')][_0xc2d8('0x20')]:undefined;}}}return _0x56ad65[_0xc2d8('0x5e')];};};Realtime['prototype'][_0xc2d8('0x61')]=function(){var _0x1665d1=this;return function(_0x4ad42c){if(_0x4ad42c){freeIsNotKey(_0x4ad42c,_0x1665d1['voiceExtensions'],'id');for(var _0x5e3da7=0x0,_0x41dc76={};_0x5e3da7<_0x4ad42c[_0xc2d8('0x35')];_0x5e3da7+=0x1){_0x41dc76=_0x4ad42c[_0x5e3da7];if(_[_0xc2d8('0x38')](_0x1665d1[_0xc2d8('0x13')][_0x41dc76['id']])){_0x1665d1[_0xc2d8('0x13')][_0x41dc76['id']]=new VoiceExtension(_0x41dc76);}else{_0x1665d1['mergeFromDatabase'](_0x1665d1[_0xc2d8('0x13')][_0x41dc76['id']],_0x41dc76);}}}return _0x1665d1[_0xc2d8('0x13')];};};Realtime[_0xc2d8('0x39')]['initCampaignHopperHistory']=function(){var _0x1a439c=this;return function(_0x1932f1){clearCampaigns(_0x1a439c[_0xc2d8('0x5e')]);for(var _0x148a17=0x0;_0x148a17<_0x1932f1['length'];_0x148a17+=0x1){_[_0xc2d8('0x4b')](_0x1a439c[_0xc2d8('0x5e')][_0x1932f1[_0x148a17][_0xc2d8('0x20')]],_0x1932f1[_0x148a17]);}return _0x1a439c[_0xc2d8('0x5e')];};};Realtime[_0xc2d8('0x39')][_0xc2d8('0x62')]=function(){var _0x24ebc1=this;return function(_0x5c2f24){if(_0x5c2f24){freeIsNotKey(_0x5c2f24,_0x24ebc1[_0xc2d8('0x1d')],'id');for(var _0x1f3275=0x0,_0x1532ac={},_0x230d6f={};_0x1f3275<_0x5c2f24[_0xc2d8('0x35')];_0x1f3275+=0x1){_0x1532ac=_0x5c2f24[_0x1f3275];if(_[_0xc2d8('0x38')](_0x24ebc1[_0xc2d8('0x1d')][_0x1532ac['id']])){_0x24ebc1['faxAccounts'][_0x1532ac['id']]=new FaxAccount(_0x1532ac);}else{_0x24ebc1['mergeFromDatabase'](_0x24ebc1[_0xc2d8('0x1d')][_0x1532ac['id']],_0x1532ac);}}}return _0x24ebc1[_0xc2d8('0x1d')];};};module[_0xc2d8('0x63')]=Realtime;