Built motion from commit 092f8824.|2.5.49
[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 _0xcf64=['length','SIP/%s','isUndefined','initTelephones','initTrunks','voiceQueues','initTriggers','initTemplates','templates','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','zohoAccounts','initSugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','initVoiceQueueHopperHistory','merge','initVoiceQueueReports','uniqueid','queue','queuecallerexit','queuecallerabandon','queuecallerleaveAt','diff','queuecallerjoinAt','queuecallerabandonAt','queuecallerexitAt','seconds','queuecallercomplete','queuecallercompleteAt','duration','ANSWERED','billableseconds','sumBillable','initCampaigns','campaigns','dialQueueProject','SquareProject','initVoiceExtensions','initFaxAccounts','bluebird','util','lodash','../model/agent','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','telephones','trunks','triggers','outbound','voiceExtensions','queueChannels','timers','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','format','name','isNil','interface','total','answered','sumHoldTime','sumDuration','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','prototype','mergeFromDatabase','initAgents','agents'];(function(_0x302abc,_0x1907f9){var _0x28693a=function(_0x58aa8a){while(--_0x58aa8a){_0x302abc['push'](_0x302abc['shift']());}};_0x28693a(++_0x1907f9);}(_0xcf64,0x95));var _0x4cf6=function(_0x35718d,_0x134914){_0x35718d=_0x35718d-0x0;var _0x3cb87c=_0xcf64[_0x35718d];return _0x3cb87c;};'use strict';var BPromise=require(_0x4cf6('0x0'));var util=require(_0x4cf6('0x1'));var _=require(_0x4cf6('0x2'));var moment=require('moment');var Agent=require(_0x4cf6('0x3'));var Telephone=require('../model/telephone');var Trunk=require(_0x4cf6('0x4'));var VoiceQueue=require(_0x4cf6('0x5'));var Trigger=require(_0x4cf6('0x6'));var Template=require(_0x4cf6('0x7'));var Campaign=require(_0x4cf6('0x8'));var VoiceExtension=require(_0x4cf6('0x9'));var ZendeskAccount=require(_0x4cf6('0xa'));var SalesforceAccount=require(_0x4cf6('0xb'));var FreshdeskAccount=require(_0x4cf6('0xc'));var SugarcrmAccount=require(_0x4cf6('0xd'));var ZohoAccount=require('../model/zohoAccount');var DeskAccount=require(_0x4cf6('0xe'));var VtigerAccount=require(_0x4cf6('0xf'));var ServicenowAccount=require(_0x4cf6('0x10'));var Dynamics365Account=require(_0x4cf6('0x11'));var FreshsalesAccount=require(_0x4cf6('0x12'));var FaxAccount=require('../model/faxAccount');var Realtime=function(){this['agents']={};this[_0x4cf6('0x13')]={};this[_0x4cf6('0x14')]={};this['voiceQueues']={};this[_0x4cf6('0x15')]={};this['campaigns']={};this['templates']={};this[_0x4cf6('0x16')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x4cf6('0x17')]={};this['channels']={};this[_0x4cf6('0x18')]={};this['outboundChannels']={};this[_0x4cf6('0x19')]={};this['settings']={};this[_0x4cf6('0x1a')]={};this[_0x4cf6('0x1b')]={};this[_0x4cf6('0x1c')]={};this[_0x4cf6('0x1d')]={};this['zohoAccounts']={};this[_0x4cf6('0x1e')]={};this[_0x4cf6('0x1f')]={};this[_0x4cf6('0x20')]={};this[_0x4cf6('0x21')]={};this[_0x4cf6('0x22')]={};this[_0x4cf6('0x23')]={};};function freeIsNotKey(_0x433bad,_0x4b3d0e,_0x1efb41){var _0x568930=_[_0x4cf6('0x24')](_0x433bad,function(_0x1428a,_0x1d0653){return _0x1428a[_0x1efb41];});for(var _0x13c72f in _0x4b3d0e){if(_0x4b3d0e[_0x4cf6('0x25')](_0x13c72f)){if(!_0x568930[_0x13c72f]){delete _0x4b3d0e[_0x13c72f];}}}}function freeIsNotKeySip(_0x457d9f,_0x498725){var _0x8cb886=_[_0x4cf6('0x24')](_0x457d9f,function(_0x531f07,_0x4b60f3){return util[_0x4cf6('0x26')]('SIP/%s',_0x531f07[_0x4cf6('0x27')]);});for(var _0x15f7ab in _0x498725){if(_0x498725['hasOwnProperty'](_0x15f7ab)){if(!_0x8cb886[_0x15f7ab]){delete _0x498725[_0x15f7ab];}}}}function freeIsNotKeyAgent(_0x3b257d,_0x10fdc2){var _0x4853e3=_[_0x4cf6('0x24')](_0x3b257d,function(_0x1857a3,_0x3e0774){var _0x4743ce=_[_0x4cf6('0x28')](_0x1857a3['interface'])?util[_0x4cf6('0x26')]('SIP/%s',_0x1857a3[_0x4cf6('0x27')]):_0x1857a3[_0x4cf6('0x29')];return _0x4743ce;});for(var _0x334224 in _0x10fdc2){if(_0x10fdc2[_0x4cf6('0x25')](_0x334224)){if(!_0x4853e3[_0x334224]){delete _0x10fdc2[_0x334224];}}}}function clearVoiceCallReports(_0x303243){_0x303243[_0x4cf6('0x2a')]=0x0;_0x303243[_0x4cf6('0x2b')]=0x0;_0x303243[_0x4cf6('0x2c')]=0x0;_0x303243[_0x4cf6('0x2d')]=0x0;_0x303243['sumBillable']=0x0;}function clearCampaigns(_0xbedd73){if(!_[_0x4cf6('0x2e')](_0xbedd73)){for(var _0x2264e7 in _0xbedd73){if(_0xbedd73['hasOwnProperty'](_0x2264e7)){_0xbedd73[_0x2264e7][_0x4cf6('0x2f')]=0x0;_0xbedd73[_0x2264e7][_0x4cf6('0x30')]=0x0;}}}}function clearVoiceQueues(_0x3d81f1){if(!_[_0x4cf6('0x2e')](_0x3d81f1)){for(var _0x51a73a in _0x3d81f1){if(_0x3d81f1[_0x4cf6('0x25')](_0x51a73a)){_0x3d81f1[_0x51a73a][_0x4cf6('0x2a')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x2b')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x31')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x32')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x2c')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x2d')]=0x0;_0x3d81f1[_0x51a73a]['sumBillable']=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x33')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x34')]=0x0;_0x3d81f1[_0x51a73a]['outboundBusyCallsDay']=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x35')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x36')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x37')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x38')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x39')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x3a')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x3b')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x3c')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x3d')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x33')]=0x0;_0x3d81f1[_0x51a73a][_0x4cf6('0x3e')]=0x0;_0x3d81f1[_0x51a73a]['queueStatusComplete']=!![];}}}}Realtime[_0x4cf6('0x3f')][_0x4cf6('0x40')]=function(_0x2f4bba,_0x4a324c){for(var _0x2fb2aa in _0x4a324c){if(_0x2f4bba['hasOwnProperty'](_0x2fb2aa)){_0x2f4bba[_0x2fb2aa]=_0x4a324c[_0x2fb2aa];}}};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x41')]=function(){var _0x25e6a0=this;return function(_0x5d57e4){if(_0x5d57e4){freeIsNotKeyAgent(_0x5d57e4,_0x25e6a0[_0x4cf6('0x42')]);for(var _0x5bee6a=0x0,_0x1fc21b={},_0x5c4580={};_0x5bee6a<_0x5d57e4[_0x4cf6('0x43')];_0x5bee6a+=0x1){_0x1fc21b=_0x5d57e4[_0x5bee6a];var _0x11a4a8=_[_0x4cf6('0x28')](_0x1fc21b[_0x4cf6('0x29')])?util[_0x4cf6('0x26')](_0x4cf6('0x44'),_0x1fc21b[_0x4cf6('0x27')]):_0x1fc21b['interface'];if(_[_0x4cf6('0x45')](_0x25e6a0[_0x4cf6('0x42')][_0x11a4a8])){_0x25e6a0[_0x4cf6('0x42')][_0x11a4a8]=new Agent(_0x1fc21b);}else{_0x25e6a0[_0x4cf6('0x40')](_0x25e6a0[_0x4cf6('0x42')][_0x11a4a8],_0x1fc21b);}}}return _0x25e6a0[_0x4cf6('0x42')];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x46')]=function(){var _0x777287=this;return function(_0x1148ef){if(_0x1148ef){freeIsNotKeySip(_0x1148ef,_0x777287[_0x4cf6('0x13')]);for(var _0x5ce04f=0x0,_0x1d685b={},_0x3a72b6={};_0x5ce04f<_0x1148ef[_0x4cf6('0x43')];_0x5ce04f+=0x1){_0x1d685b=_0x1148ef[_0x5ce04f];if(_[_0x4cf6('0x45')](_0x777287[_0x4cf6('0x13')][util['format'](_0x4cf6('0x44'),_0x1d685b[_0x4cf6('0x27')])])){_0x777287[_0x4cf6('0x13')][util[_0x4cf6('0x26')](_0x4cf6('0x44'),_0x1d685b[_0x4cf6('0x27')])]=new Telephone(_0x1d685b);}else{_0x777287[_0x4cf6('0x40')](_0x777287['telephones'][util[_0x4cf6('0x26')](_0x4cf6('0x44'),_0x1d685b[_0x4cf6('0x27')])],_0x1d685b);}}}return _0x777287['telephones'];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x47')]=function(){var _0x51aaf5=this;return function(_0x17e50a){if(_0x17e50a){freeIsNotKeySip(_0x17e50a,_0x51aaf5[_0x4cf6('0x14')]);for(var _0xd9c385=0x0,_0x3adb85={},_0x2bc5f5={};_0xd9c385<_0x17e50a['length'];_0xd9c385+=0x1){_0x3adb85=_0x17e50a[_0xd9c385];if(_[_0x4cf6('0x45')](_0x51aaf5[_0x4cf6('0x14')][util[_0x4cf6('0x26')]('SIP/%s',_0x3adb85[_0x4cf6('0x27')])])){_0x51aaf5[_0x4cf6('0x14')][util[_0x4cf6('0x26')]('SIP/%s',_0x3adb85[_0x4cf6('0x27')])]=new Trunk(_0x3adb85);}else{_0x51aaf5[_0x4cf6('0x40')](_0x51aaf5[_0x4cf6('0x14')][util[_0x4cf6('0x26')](_0x4cf6('0x44'),_0x3adb85[_0x4cf6('0x27')])],_0x3adb85);}}}return _0x51aaf5[_0x4cf6('0x14')];};};Realtime[_0x4cf6('0x3f')]['initVoiceQueues']=function(){var _0x2f7d3d=this;return function(_0x7b7595){if(_0x7b7595){freeIsNotKey(_0x7b7595,_0x2f7d3d[_0x4cf6('0x48')],_0x4cf6('0x27'));for(var _0x2ea2cb=0x0,_0x5dd9e7={},_0x20ce49={};_0x2ea2cb<_0x7b7595[_0x4cf6('0x43')];_0x2ea2cb+=0x1){_0x5dd9e7=_0x7b7595[_0x2ea2cb];if(_['isUndefined'](_0x2f7d3d[_0x4cf6('0x48')][_0x5dd9e7[_0x4cf6('0x27')]])){_0x2f7d3d[_0x4cf6('0x48')][_0x5dd9e7['name']]=new VoiceQueue(_0x5dd9e7);}else{_0x2f7d3d['mergeFromDatabase'](_0x2f7d3d[_0x4cf6('0x48')][_0x5dd9e7[_0x4cf6('0x27')]],_0x5dd9e7);}}}return _0x2f7d3d[_0x4cf6('0x48')];};};Realtime['prototype'][_0x4cf6('0x49')]=function(){var _0x56ae37=this;return function(_0x436577){if(_0x436577){freeIsNotKey(_0x436577,_0x56ae37['triggers'],'id');for(var _0x1fc8cc=0x0,_0x19f0e0={},_0x461272={};_0x1fc8cc<_0x436577[_0x4cf6('0x43')];_0x1fc8cc+=0x1){_0x19f0e0=_0x436577[_0x1fc8cc];if(_['isUndefined'](_0x56ae37[_0x4cf6('0x15')][_0x19f0e0['id']])){_0x56ae37[_0x4cf6('0x15')][_0x19f0e0['id']]=new Trigger(_0x19f0e0);}else{_0x56ae37[_0x4cf6('0x40')](_0x56ae37[_0x4cf6('0x15')][_0x19f0e0['id']],_0x19f0e0);}}}return _0x56ae37['triggers'];};};Realtime['prototype'][_0x4cf6('0x4a')]=function(){var _0x3d86e5=this;return function(_0x3d1b97){if(_0x3d1b97){freeIsNotKey(_0x3d1b97,_0x3d86e5[_0x4cf6('0x4b')],'id');for(var _0x3e8bfb=0x0,_0x5b064f={},_0x6e7e4f={};_0x3e8bfb<_0x3d1b97['length'];_0x3e8bfb+=0x1){_0x5b064f=_0x3d1b97[_0x3e8bfb];if(_[_0x4cf6('0x45')](_0x3d86e5['templates'][_0x5b064f['id']])){_0x3d86e5[_0x4cf6('0x4b')][_0x5b064f['id']]=new Template(_0x5b064f);}else{_0x3d86e5[_0x4cf6('0x40')](_0x3d86e5[_0x4cf6('0x4b')][_0x5b064f['id']],_0x5b064f);}}}return _0x3d86e5[_0x4cf6('0x4b')];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x4c')]=function(){var _0xd3aae8=this;return function(_0x406099){if(_0x406099){freeIsNotKey(_0x406099,_0xd3aae8['zendeskAccounts'],'id');for(var _0x16f4ad=0x0,_0x57bbd5={},_0x2458a3={};_0x16f4ad<_0x406099[_0x4cf6('0x43')];_0x16f4ad+=0x1){_0x57bbd5=_0x406099[_0x16f4ad];if(_[_0x4cf6('0x45')](_0xd3aae8[_0x4cf6('0x1a')][_0x57bbd5['id']])){_0xd3aae8[_0x4cf6('0x1a')][_0x57bbd5['id']]=new ZendeskAccount(_0x57bbd5);}else{_0xd3aae8[_0x4cf6('0x40')](_0xd3aae8[_0x4cf6('0x1a')][_0x57bbd5['id']],_0x57bbd5);}}}return _0xd3aae8[_0x4cf6('0x1a')];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x4d')]=function(){var _0x295751=this;return function(_0x3acea0){if(_0x3acea0){freeIsNotKey(_0x3acea0,_0x295751[_0x4cf6('0x1b')],'id');for(var _0x4ee230=0x0,_0x183edf={},_0x20cf96={};_0x4ee230<_0x3acea0[_0x4cf6('0x43')];_0x4ee230+=0x1){_0x183edf=_0x3acea0[_0x4ee230];if(_[_0x4cf6('0x45')](_0x295751[_0x4cf6('0x1b')][_0x183edf['id']])){_0x295751['salesforceAccounts'][_0x183edf['id']]=new SalesforceAccount(_0x183edf);}else{_0x295751[_0x4cf6('0x40')](_0x295751[_0x4cf6('0x1b')][_0x183edf['id']],_0x183edf);}}}return _0x295751['salesforceAccounts'];};};Realtime['prototype'][_0x4cf6('0x4e')]=function(){var _0x2f16f8=this;return function(_0x22cc3a){if(_0x22cc3a){freeIsNotKey(_0x22cc3a,_0x2f16f8[_0x4cf6('0x1d')],'id');for(var _0x1156f2=0x0,_0x4cfadb={},_0x345662={};_0x1156f2<_0x22cc3a[_0x4cf6('0x43')];_0x1156f2+=0x1){_0x4cfadb=_0x22cc3a[_0x1156f2];if(_['isUndefined'](_0x2f16f8[_0x4cf6('0x1d')][_0x4cfadb['id']])){_0x2f16f8[_0x4cf6('0x1d')][_0x4cfadb['id']]=new FreshdeskAccount(_0x4cfadb);}else{_0x2f16f8[_0x4cf6('0x40')](_0x2f16f8[_0x4cf6('0x1d')][_0x4cfadb['id']],_0x4cfadb);}}}return _0x2f16f8[_0x4cf6('0x1d')];};};Realtime[_0x4cf6('0x3f')]['initZohoAccounts']=function(){var _0x37a4d2=this;return function(_0x17843a){if(_0x17843a){freeIsNotKey(_0x17843a,_0x37a4d2[_0x4cf6('0x4f')],'id');for(var _0x491c28=0x0,_0x4192ca={},_0x5ada4d={};_0x491c28<_0x17843a['length'];_0x491c28+=0x1){_0x4192ca=_0x17843a[_0x491c28];if(_['isUndefined'](_0x37a4d2[_0x4cf6('0x4f')][_0x4192ca['id']])){_0x37a4d2[_0x4cf6('0x4f')][_0x4192ca['id']]=new ZohoAccount(_0x4192ca);}else{_0x37a4d2[_0x4cf6('0x40')](_0x37a4d2[_0x4cf6('0x4f')][_0x4192ca['id']],_0x4192ca);}}}return _0x37a4d2[_0x4cf6('0x4f')];};};Realtime[_0x4cf6('0x3f')]['initDeskAccounts']=function(){var _0x35509b=this;return function(_0x30f6ec){if(_0x30f6ec){freeIsNotKey(_0x30f6ec,_0x35509b[_0x4cf6('0x1e')],'id');for(var _0x4a1899=0x0,_0x284d86={},_0x3552b6={};_0x4a1899<_0x30f6ec[_0x4cf6('0x43')];_0x4a1899+=0x1){_0x284d86=_0x30f6ec[_0x4a1899];if(_[_0x4cf6('0x45')](_0x35509b['deskAccounts'][_0x284d86['id']])){_0x35509b['deskAccounts'][_0x284d86['id']]=new DeskAccount(_0x284d86);}else{_0x35509b['mergeFromDatabase'](_0x35509b[_0x4cf6('0x1e')][_0x284d86['id']],_0x284d86);}}}return _0x35509b[_0x4cf6('0x1e')];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x50')]=function(){var _0x3885ca=this;return function(_0x4abf57){if(_0x4abf57){freeIsNotKey(_0x4abf57,_0x3885ca[_0x4cf6('0x1c')],'id');for(var _0x423b48=0x0,_0xe657c2={},_0x382ffe={};_0x423b48<_0x4abf57['length'];_0x423b48+=0x1){_0xe657c2=_0x4abf57[_0x423b48];if(_[_0x4cf6('0x45')](_0x3885ca[_0x4cf6('0x1c')][_0xe657c2['id']])){_0x3885ca['sugarcrmAccounts'][_0xe657c2['id']]=new SugarcrmAccount(_0xe657c2);}else{_0x3885ca[_0x4cf6('0x40')](_0x3885ca[_0x4cf6('0x1c')][_0xe657c2['id']],_0xe657c2);}}}return _0x3885ca[_0x4cf6('0x1c')];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x51')]=function(){var _0x477b05=this;return function(_0x58c8a5){if(_0x58c8a5){freeIsNotKey(_0x58c8a5,_0x477b05[_0x4cf6('0x1f')],'id');for(var _0x1f126c=0x0,_0x37d2c5={},_0x47f004={};_0x1f126c<_0x58c8a5[_0x4cf6('0x43')];_0x1f126c+=0x1){_0x37d2c5=_0x58c8a5[_0x1f126c];if(_[_0x4cf6('0x45')](_0x477b05['vtigerAccounts'][_0x37d2c5['id']])){_0x477b05['vtigerAccounts'][_0x37d2c5['id']]=new VtigerAccount(_0x37d2c5);}else{_0x477b05[_0x4cf6('0x40')](_0x477b05[_0x4cf6('0x1f')][_0x37d2c5['id']],_0x37d2c5);}}}return _0x477b05[_0x4cf6('0x1f')];};};Realtime['prototype'][_0x4cf6('0x52')]=function(){var _0x240e15=this;return function(_0x436894){if(_0x436894){freeIsNotKey(_0x436894,_0x240e15[_0x4cf6('0x20')],'id');for(var _0x2c8c1c=0x0,_0x2644e1={},_0x44355d={};_0x2c8c1c<_0x436894[_0x4cf6('0x43')];_0x2c8c1c+=0x1){_0x2644e1=_0x436894[_0x2c8c1c];if(_[_0x4cf6('0x45')](_0x240e15[_0x4cf6('0x20')][_0x2644e1['id']])){_0x240e15['servicenowAccounts'][_0x2644e1['id']]=new ServicenowAccount(_0x2644e1);}else{_0x240e15[_0x4cf6('0x40')](_0x240e15[_0x4cf6('0x20')][_0x2644e1['id']],_0x2644e1);}}}return _0x240e15[_0x4cf6('0x20')];};};Realtime[_0x4cf6('0x3f')]['initDynamics365Accounts']=function(){var _0x502cce=this;return function(_0xabf5b6){if(_0xabf5b6){freeIsNotKey(_0xabf5b6,_0x502cce['dynamics365Accounts'],'id');for(var _0x3f2246=0x0,_0x3b9722={},_0x2b6681={};_0x3f2246<_0xabf5b6[_0x4cf6('0x43')];_0x3f2246+=0x1){_0x3b9722=_0xabf5b6[_0x3f2246];if(_['isUndefined'](_0x502cce['dynamics365Accounts'][_0x3b9722['id']])){_0x502cce[_0x4cf6('0x21')][_0x3b9722['id']]=new Dynamics365Account(_0x3b9722);}else{_0x502cce['mergeFromDatabase'](_0x502cce[_0x4cf6('0x21')][_0x3b9722['id']],_0x3b9722);}}}return _0x502cce['dynamics365Accounts'];};};Realtime[_0x4cf6('0x3f')]['initFreshsalesAccounts']=function(){var _0x2c451f=this;return function(_0x45e1a3){if(_0x45e1a3){freeIsNotKey(_0x45e1a3,_0x2c451f[_0x4cf6('0x22')],'id');for(var _0xf0a9dc=0x0,_0x5a70d6={},_0x46809f={};_0xf0a9dc<_0x45e1a3[_0x4cf6('0x43')];_0xf0a9dc+=0x1){_0x5a70d6=_0x45e1a3[_0xf0a9dc];if(_[_0x4cf6('0x45')](_0x2c451f[_0x4cf6('0x22')][_0x5a70d6['id']])){_0x2c451f[_0x4cf6('0x22')][_0x5a70d6['id']]=new FreshsalesAccount(_0x5a70d6);}else{_0x2c451f[_0x4cf6('0x40')](_0x2c451f[_0x4cf6('0x22')][_0x5a70d6['id']],_0x5a70d6);}}}return _0x2c451f[_0x4cf6('0x22')];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x53')]=function(){var _0x58684c=this;return function(_0x2c11a9){for(var _0x440e8d=0x0;_0x440e8d<_0x2c11a9[_0x4cf6('0x43')];_0x440e8d+=0x1){_[_0x4cf6('0x54')](_0x58684c[_0x4cf6('0x48')][_0x2c11a9[_0x440e8d][_0x4cf6('0x27')]],_0x2c11a9[_0x440e8d]);}return _0x58684c[_0x4cf6('0x48')];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x55')]=function(){var _0x12bf95=this;return function(_0x5e6103){clearVoiceQueues(_0x12bf95[_0x4cf6('0x48')]);if(_0x5e6103){_0x5e6103=_['groupBy'](_0x5e6103,_0x4cf6('0x56'));for(var _0x526db5 in _0x5e6103){if(_0x5e6103[_0x4cf6('0x25')](_0x526db5)){var _0x4379c2={};for(var _0x171ea5=0x0;_0x171ea5<_0x5e6103[_0x526db5][_0x4cf6('0x43')];_0x171ea5+=0x1){var _0x494575=_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x57')];if(_0x12bf95[_0x4cf6('0x48')][_0x494575]){if(_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x58')]){_0x12bf95[_0x4cf6('0x48')][_0x494575][_0x4cf6('0x31')]+=0x1;}if(_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x59')]){_0x12bf95[_0x4cf6('0x48')][_0x494575][_0x4cf6('0x32')]+=0x1;}_0x12bf95[_0x4cf6('0x48')][_0x494575][_0x4cf6('0x2c')]+=moment(_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x5a')])[_0x4cf6('0x5b')](moment(_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x5c')]),'seconds')||0x0;if(_0x171ea5===_0x5e6103[_0x526db5]['length']-0x1){_0x12bf95[_0x4cf6('0x48')][_0x494575][_0x4cf6('0x2d')]+=moment(_0x5e6103[_0x526db5][_0x171ea5]['queuecallercompleteAt']||_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x5d')]||_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x5e')])['diff'](moment(_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x5c')]),_0x4cf6('0x5f'))||0x0;_0x12bf95[_0x4cf6('0x48')][_0x494575][_0x4cf6('0x2a')]+=0x1;if(_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x60')]){_0x12bf95[_0x4cf6('0x48')][_0x494575]['answered']+=0x1;_0x12bf95[_0x4cf6('0x48')][_0x494575]['sumBillable']+=moment(_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x61')])[_0x4cf6('0x5b')](moment(_0x5e6103[_0x526db5][_0x171ea5][_0x4cf6('0x5a')]),'seconds')||0x0;}}else{_0x12bf95['voiceQueues'][_0x494575]['sumDuration']+=_0x12bf95[_0x4cf6('0x48')][_0x494575][_0x4cf6('0x2c')]||0x0;}}}}}}return _0x12bf95[_0x4cf6('0x48')];};};Realtime[_0x4cf6('0x3f')]['initVoiceCallReports']=function(){var _0x1c1fc9=this;return function(_0x4092e3){clearVoiceCallReports(_0x1c1fc9[_0x4cf6('0x16')]);if(_0x4092e3){for(var _0x24faa9=0x0;_0x24faa9<_0x4092e3['length'];_0x24faa9+=0x1){_0x1c1fc9['outbound']['total']+=0x1;_0x1c1fc9[_0x4cf6('0x16')]['sumDuration']+=_0x4092e3[_0x24faa9][_0x4cf6('0x62')];if(_0x4092e3[_0x24faa9]['disposition']===_0x4cf6('0x63')){_0x1c1fc9[_0x4cf6('0x16')][_0x4cf6('0x2b')]+=0x1;_0x1c1fc9['outbound'][_0x4cf6('0x2c')]+=_0x4092e3[_0x24faa9][_0x4cf6('0x62')]-_0x4092e3[_0x24faa9][_0x4cf6('0x64')]||0x0;_0x1c1fc9[_0x4cf6('0x16')][_0x4cf6('0x65')]+=_0x4092e3[_0x24faa9][_0x4cf6('0x64')];}}}return _0x1c1fc9['outbound'];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x66')]=function(){var _0x5f0c07=this;return function(_0x2b34a5){if(_0x2b34a5){freeIsNotKey(_0x2b34a5,_0x5f0c07[_0x4cf6('0x67')],_0x4cf6('0x27'));for(var _0x41687e=0x0,_0x4225f8={};_0x41687e<_0x2b34a5[_0x4cf6('0x43')];_0x41687e+=0x1){_0x4225f8=_0x2b34a5[_0x41687e];if(_['isUndefined'](_0x5f0c07[_0x4cf6('0x67')][_0x4225f8[_0x4cf6('0x27')]])){_0x5f0c07['campaigns'][_0x4225f8[_0x4cf6('0x27')]]=new Campaign(_0x4225f8);}else{_0x5f0c07[_0x4cf6('0x40')](_0x5f0c07[_0x4cf6('0x67')][_0x4225f8[_0x4cf6('0x27')]],_0x4225f8);_0x5f0c07[_0x4cf6('0x67')][_0x4225f8[_0x4cf6('0x27')]][_0x4cf6('0x68')]=_0x4225f8[_0x4cf6('0x69')]?_0x4225f8['SquareProject'][_0x4cf6('0x27')]:undefined;}}}return _0x5f0c07['campaigns'];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x6a')]=function(){var _0x24820b=this;return function(_0x18695d){if(_0x18695d){freeIsNotKey(_0x18695d,_0x24820b[_0x4cf6('0x17')],'id');for(var _0x2656a2=0x0,_0x2e003e={};_0x2656a2<_0x18695d[_0x4cf6('0x43')];_0x2656a2+=0x1){_0x2e003e=_0x18695d[_0x2656a2];if(_[_0x4cf6('0x45')](_0x24820b[_0x4cf6('0x17')][_0x2e003e['id']])){_0x24820b[_0x4cf6('0x17')][_0x2e003e['id']]=new VoiceExtension(_0x2e003e);}else{_0x24820b[_0x4cf6('0x40')](_0x24820b['voiceExtensions'][_0x2e003e['id']],_0x2e003e);}}}return _0x24820b[_0x4cf6('0x17')];};};Realtime['prototype']['initCampaignHopperHistory']=function(){var _0x338cd9=this;return function(_0x2a74ab){clearCampaigns(_0x338cd9[_0x4cf6('0x67')]);for(var _0x398bd1=0x0;_0x398bd1<_0x2a74ab[_0x4cf6('0x43')];_0x398bd1+=0x1){_[_0x4cf6('0x54')](_0x338cd9[_0x4cf6('0x67')][_0x2a74ab[_0x398bd1]['name']],_0x2a74ab[_0x398bd1]);}return _0x338cd9[_0x4cf6('0x67')];};};Realtime[_0x4cf6('0x3f')][_0x4cf6('0x6b')]=function(){var _0x2caeb6=this;return function(_0x2ea265){if(_0x2ea265){freeIsNotKey(_0x2ea265,_0x2caeb6['faxAccounts'],'id');for(var _0x51b0c7=0x0,_0x416c48={},_0x567bdc={};_0x51b0c7<_0x2ea265['length'];_0x51b0c7+=0x1){_0x416c48=_0x2ea265[_0x51b0c7];if(_['isUndefined'](_0x2caeb6[_0x4cf6('0x23')][_0x416c48['id']])){_0x2caeb6[_0x4cf6('0x23')][_0x416c48['id']]=new FaxAccount(_0x416c48);}else{_0x2caeb6[_0x4cf6('0x40')](_0x2caeb6[_0x4cf6('0x23')][_0x416c48['id']],_0x416c48);}}}return _0x2caeb6[_0x4cf6('0x23')];};};module['exports']=Realtime;