7a8b905b866e1ed1ab390cf96a496f86469ff0b3
[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 _0x9bde=['diff','queuecallercomplete','initVoiceCallReports','duration','billableseconds','initCampaigns','campaigns','SquareProject','initVoiceExtensions','initCampaignHopperHistory','initFaxAccounts','util','moment','../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','trunks','voiceQueues','triggers','templates','outbound','voiceExtensions','channels','outboundChannels','settings','zendeskAccounts','salesforceAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','hasOwnProperty','mapKeys','format','SIP/%s','name','isNil','interface','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','agents','length','isUndefined','telephones','initTrunks','initVoiceQueues','initTriggers','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','freshdeskAccounts','initZohoAccounts','initDeskAccounts','initSugarcrmAccounts','sugarcrmAccounts','initVtigerAccounts','initVoiceQueueHopperHistory','merge','initVoiceQueueReports','groupBy','queue','queuecallerexit','queuecallerabandon','abandoned','queuecallerleaveAt','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerabandonAt'];(function(_0x5a4658,_0x512bf1){var _0x2091b8=function(_0x46ba67){while(--_0x46ba67){_0x5a4658['push'](_0x5a4658['shift']());}};_0x2091b8(++_0x512bf1);}(_0x9bde,0xe1));var _0xe9bd=function(_0x695f4,_0x142a84){_0x695f4=_0x695f4-0x0;var _0x3c2028=_0x9bde[_0x695f4];return _0x3c2028;};'use strict';var BPromise=require('bluebird');var util=require(_0xe9bd('0x0'));var _=require('lodash');var moment=require(_0xe9bd('0x1'));var Agent=require('../model/agent');var Telephone=require(_0xe9bd('0x2'));var Trunk=require(_0xe9bd('0x3'));var VoiceQueue=require(_0xe9bd('0x4'));var Trigger=require(_0xe9bd('0x5'));var Template=require(_0xe9bd('0x6'));var Campaign=require(_0xe9bd('0x7'));var VoiceExtension=require(_0xe9bd('0x8'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require(_0xe9bd('0x9'));var FreshdeskAccount=require(_0xe9bd('0xa'));var SugarcrmAccount=require(_0xe9bd('0xb'));var ZohoAccount=require(_0xe9bd('0xc'));var DeskAccount=require(_0xe9bd('0xd'));var VtigerAccount=require(_0xe9bd('0xe'));var ServicenowAccount=require(_0xe9bd('0xf'));var Dynamics365Account=require(_0xe9bd('0x10'));var FreshsalesAccount=require(_0xe9bd('0x11'));var FaxAccount=require(_0xe9bd('0x12'));var Realtime=function(){this['agents']={};this['telephones']={};this[_0xe9bd('0x13')]={};this[_0xe9bd('0x14')]={};this[_0xe9bd('0x15')]={};this['campaigns']={};this[_0xe9bd('0x16')]={};this[_0xe9bd('0x17')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xe9bd('0x18')]={};this[_0xe9bd('0x19')]={};this['queueChannels']={};this[_0xe9bd('0x1a')]={};this['timers']={};this[_0xe9bd('0x1b')]={};this[_0xe9bd('0x1c')]={};this[_0xe9bd('0x1d')]={};this['sugarcrmAccounts']={};this['freshdeskAccounts']={};this[_0xe9bd('0x1e')]={};this[_0xe9bd('0x1f')]={};this[_0xe9bd('0x20')]={};this[_0xe9bd('0x21')]={};this[_0xe9bd('0x22')]={};this[_0xe9bd('0x23')]={};this[_0xe9bd('0x24')]={};};function freeIsNotKey(_0x573350,_0x1d11a0,_0x464a1b){var _0x160281=_['mapKeys'](_0x573350,function(_0x36f03d,_0x3bae08){return _0x36f03d[_0x464a1b];});for(var _0x34ba2b in _0x1d11a0){if(_0x1d11a0[_0xe9bd('0x25')](_0x34ba2b)){if(!_0x160281[_0x34ba2b]){delete _0x1d11a0[_0x34ba2b];}}}}function freeIsNotKeySip(_0x5cf674,_0x20ec32){var _0x50a5e8=_[_0xe9bd('0x26')](_0x5cf674,function(_0x55b869,_0x26aa4a){return util[_0xe9bd('0x27')](_0xe9bd('0x28'),_0x55b869[_0xe9bd('0x29')]);});for(var _0x1acb82 in _0x20ec32){if(_0x20ec32[_0xe9bd('0x25')](_0x1acb82)){if(!_0x50a5e8[_0x1acb82]){delete _0x20ec32[_0x1acb82];}}}}function freeIsNotKeyAgent(_0x6593ce,_0x49165b){var _0x133318=_[_0xe9bd('0x26')](_0x6593ce,function(_0x4ecaf5,_0x37aec1){var _0x505c23=_[_0xe9bd('0x2a')](_0x4ecaf5[_0xe9bd('0x2b')])?util[_0xe9bd('0x27')](_0xe9bd('0x28'),_0x4ecaf5['name']):_0x4ecaf5[_0xe9bd('0x2b')];return _0x505c23;});for(var _0x1e3cbb in _0x49165b){if(_0x49165b[_0xe9bd('0x25')](_0x1e3cbb)){if(!_0x133318[_0x1e3cbb]){delete _0x49165b[_0x1e3cbb];}}}}function clearVoiceCallReports(_0x39b206){_0x39b206[_0xe9bd('0x2c')]=0x0;_0x39b206[_0xe9bd('0x2d')]=0x0;_0x39b206[_0xe9bd('0x2e')]=0x0;_0x39b206[_0xe9bd('0x2f')]=0x0;_0x39b206[_0xe9bd('0x30')]=0x0;}function clearCampaigns(_0x5987af){if(!_[_0xe9bd('0x31')](_0x5987af)){for(var _0x38fdfa in _0x5987af){if(_0x5987af['hasOwnProperty'](_0x38fdfa)){_0x5987af[_0x38fdfa][_0xe9bd('0x32')]=0x0;_0x5987af[_0x38fdfa][_0xe9bd('0x33')]=0x0;}}}}function clearVoiceQueues(_0x119672){if(!_[_0xe9bd('0x31')](_0x119672)){for(var _0x141b95 in _0x119672){if(_0x119672[_0xe9bd('0x25')](_0x141b95)){_0x119672[_0x141b95]['total']=0x0;_0x119672[_0x141b95]['answered']=0x0;_0x119672[_0x141b95][_0xe9bd('0x34')]=0x0;_0x119672[_0x141b95]['abandoned']=0x0;_0x119672[_0x141b95][_0xe9bd('0x2e')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x2f')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x30')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x35')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x36')]=0x0;_0x119672[_0x141b95]['outboundBusyCallsDay']=0x0;_0x119672[_0x141b95]['outboundCongestionCallsDay']=0x0;_0x119672[_0x141b95][_0xe9bd('0x37')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x38')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x39')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x3a')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x3b')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x3c')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x3d')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x3e')]=0x0;_0x119672[_0x141b95][_0xe9bd('0x35')]=0x0;_0x119672[_0x141b95]['outboundAnswerCallsDay']=0x0;_0x119672[_0x141b95][_0xe9bd('0x3f')]=!![];}}}}Realtime[_0xe9bd('0x40')][_0xe9bd('0x41')]=function(_0x5117bc,_0x524e08){for(var _0x25eeab in _0x524e08){if(_0x5117bc[_0xe9bd('0x25')](_0x25eeab)){_0x5117bc[_0x25eeab]=_0x524e08[_0x25eeab];}}};Realtime[_0xe9bd('0x40')][_0xe9bd('0x42')]=function(){var _0x1dda43=this;return function(_0x2950e8){if(_0x2950e8){freeIsNotKeyAgent(_0x2950e8,_0x1dda43[_0xe9bd('0x43')]);for(var _0x1c6173=0x0,_0x1a1a29={},_0x32b3e3={};_0x1c6173<_0x2950e8[_0xe9bd('0x44')];_0x1c6173+=0x1){_0x1a1a29=_0x2950e8[_0x1c6173];var _0x549dd1=_[_0xe9bd('0x2a')](_0x1a1a29[_0xe9bd('0x2b')])?util[_0xe9bd('0x27')](_0xe9bd('0x28'),_0x1a1a29[_0xe9bd('0x29')]):_0x1a1a29[_0xe9bd('0x2b')];if(_['isUndefined'](_0x1dda43[_0xe9bd('0x43')][_0x549dd1])){_0x1dda43[_0xe9bd('0x43')][_0x549dd1]=new Agent(_0x1a1a29);}else{_0x1dda43['mergeFromDatabase'](_0x1dda43[_0xe9bd('0x43')][_0x549dd1],_0x1a1a29);}}}return _0x1dda43[_0xe9bd('0x43')];};};Realtime['prototype']['initTelephones']=function(){var _0x2785e6=this;return function(_0xdf43b9){if(_0xdf43b9){freeIsNotKeySip(_0xdf43b9,_0x2785e6['telephones']);for(var _0x2d1289=0x0,_0x3ea705={},_0x14927c={};_0x2d1289<_0xdf43b9['length'];_0x2d1289+=0x1){_0x3ea705=_0xdf43b9[_0x2d1289];if(_[_0xe9bd('0x45')](_0x2785e6['telephones'][util[_0xe9bd('0x27')](_0xe9bd('0x28'),_0x3ea705[_0xe9bd('0x29')])])){_0x2785e6[_0xe9bd('0x46')][util['format'](_0xe9bd('0x28'),_0x3ea705[_0xe9bd('0x29')])]=new Telephone(_0x3ea705);}else{_0x2785e6[_0xe9bd('0x41')](_0x2785e6[_0xe9bd('0x46')][util[_0xe9bd('0x27')](_0xe9bd('0x28'),_0x3ea705[_0xe9bd('0x29')])],_0x3ea705);}}}return _0x2785e6[_0xe9bd('0x46')];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x47')]=function(){var _0x4e8565=this;return function(_0x5e3604){if(_0x5e3604){freeIsNotKeySip(_0x5e3604,_0x4e8565[_0xe9bd('0x13')]);for(var _0x499e13=0x0,_0x4608a0={},_0x340819={};_0x499e13<_0x5e3604[_0xe9bd('0x44')];_0x499e13+=0x1){_0x4608a0=_0x5e3604[_0x499e13];if(_['isUndefined'](_0x4e8565[_0xe9bd('0x13')][util[_0xe9bd('0x27')](_0xe9bd('0x28'),_0x4608a0['name'])])){_0x4e8565[_0xe9bd('0x13')][util[_0xe9bd('0x27')](_0xe9bd('0x28'),_0x4608a0[_0xe9bd('0x29')])]=new Trunk(_0x4608a0);}else{_0x4e8565[_0xe9bd('0x41')](_0x4e8565[_0xe9bd('0x13')][util[_0xe9bd('0x27')](_0xe9bd('0x28'),_0x4608a0[_0xe9bd('0x29')])],_0x4608a0);}}}return _0x4e8565[_0xe9bd('0x13')];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x48')]=function(){var _0x2d4e62=this;return function(_0x2a9e09){if(_0x2a9e09){freeIsNotKey(_0x2a9e09,_0x2d4e62[_0xe9bd('0x14')],'name');for(var _0x5a86fd=0x0,_0x283e67={},_0x2ced7c={};_0x5a86fd<_0x2a9e09[_0xe9bd('0x44')];_0x5a86fd+=0x1){_0x283e67=_0x2a9e09[_0x5a86fd];if(_['isUndefined'](_0x2d4e62['voiceQueues'][_0x283e67[_0xe9bd('0x29')]])){_0x2d4e62[_0xe9bd('0x14')][_0x283e67[_0xe9bd('0x29')]]=new VoiceQueue(_0x283e67);}else{_0x2d4e62[_0xe9bd('0x41')](_0x2d4e62[_0xe9bd('0x14')][_0x283e67[_0xe9bd('0x29')]],_0x283e67);}}}return _0x2d4e62[_0xe9bd('0x14')];};};Realtime['prototype'][_0xe9bd('0x49')]=function(){var _0x4cc146=this;return function(_0x36726e){if(_0x36726e){freeIsNotKey(_0x36726e,_0x4cc146[_0xe9bd('0x15')],'id');for(var _0x33ba69=0x0,_0x17dbcd={},_0x74ea23={};_0x33ba69<_0x36726e['length'];_0x33ba69+=0x1){_0x17dbcd=_0x36726e[_0x33ba69];if(_[_0xe9bd('0x45')](_0x4cc146[_0xe9bd('0x15')][_0x17dbcd['id']])){_0x4cc146[_0xe9bd('0x15')][_0x17dbcd['id']]=new Trigger(_0x17dbcd);}else{_0x4cc146['mergeFromDatabase'](_0x4cc146[_0xe9bd('0x15')][_0x17dbcd['id']],_0x17dbcd);}}}return _0x4cc146[_0xe9bd('0x15')];};};Realtime[_0xe9bd('0x40')]['initTemplates']=function(){var _0x28d2ea=this;return function(_0x27e7b0){if(_0x27e7b0){freeIsNotKey(_0x27e7b0,_0x28d2ea[_0xe9bd('0x16')],'id');for(var _0x10ec29=0x0,_0x1ee09c={},_0x579d26={};_0x10ec29<_0x27e7b0[_0xe9bd('0x44')];_0x10ec29+=0x1){_0x1ee09c=_0x27e7b0[_0x10ec29];if(_['isUndefined'](_0x28d2ea[_0xe9bd('0x16')][_0x1ee09c['id']])){_0x28d2ea[_0xe9bd('0x16')][_0x1ee09c['id']]=new Template(_0x1ee09c);}else{_0x28d2ea[_0xe9bd('0x41')](_0x28d2ea[_0xe9bd('0x16')][_0x1ee09c['id']],_0x1ee09c);}}}return _0x28d2ea[_0xe9bd('0x16')];};};Realtime['prototype'][_0xe9bd('0x4a')]=function(){var _0x485e95=this;return function(_0x14eed2){if(_0x14eed2){freeIsNotKey(_0x14eed2,_0x485e95[_0xe9bd('0x1c')],'id');for(var _0x5e08ae=0x0,_0x59d5cb={},_0x1ce539={};_0x5e08ae<_0x14eed2['length'];_0x5e08ae+=0x1){_0x59d5cb=_0x14eed2[_0x5e08ae];if(_[_0xe9bd('0x45')](_0x485e95['zendeskAccounts'][_0x59d5cb['id']])){_0x485e95[_0xe9bd('0x1c')][_0x59d5cb['id']]=new ZendeskAccount(_0x59d5cb);}else{_0x485e95[_0xe9bd('0x41')](_0x485e95['zendeskAccounts'][_0x59d5cb['id']],_0x59d5cb);}}}return _0x485e95[_0xe9bd('0x1c')];};};Realtime['prototype'][_0xe9bd('0x4b')]=function(){var _0x2d9a94=this;return function(_0x321050){if(_0x321050){freeIsNotKey(_0x321050,_0x2d9a94['salesforceAccounts'],'id');for(var _0xa2ef49=0x0,_0x1d703f={},_0x45b69e={};_0xa2ef49<_0x321050[_0xe9bd('0x44')];_0xa2ef49+=0x1){_0x1d703f=_0x321050[_0xa2ef49];if(_['isUndefined'](_0x2d9a94['salesforceAccounts'][_0x1d703f['id']])){_0x2d9a94[_0xe9bd('0x1d')][_0x1d703f['id']]=new SalesforceAccount(_0x1d703f);}else{_0x2d9a94['mergeFromDatabase'](_0x2d9a94[_0xe9bd('0x1d')][_0x1d703f['id']],_0x1d703f);}}}return _0x2d9a94[_0xe9bd('0x1d')];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x4c')]=function(){var _0x159f68=this;return function(_0x145ea3){if(_0x145ea3){freeIsNotKey(_0x145ea3,_0x159f68[_0xe9bd('0x4d')],'id');for(var _0x3381ee=0x0,_0x46a099={},_0x3be526={};_0x3381ee<_0x145ea3[_0xe9bd('0x44')];_0x3381ee+=0x1){_0x46a099=_0x145ea3[_0x3381ee];if(_[_0xe9bd('0x45')](_0x159f68['freshdeskAccounts'][_0x46a099['id']])){_0x159f68['freshdeskAccounts'][_0x46a099['id']]=new FreshdeskAccount(_0x46a099);}else{_0x159f68['mergeFromDatabase'](_0x159f68[_0xe9bd('0x4d')][_0x46a099['id']],_0x46a099);}}}return _0x159f68['freshdeskAccounts'];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x4e')]=function(){var _0x90db01=this;return function(_0x6232e5){if(_0x6232e5){freeIsNotKey(_0x6232e5,_0x90db01[_0xe9bd('0x1e')],'id');for(var _0xaf6ffd=0x0,_0x3bb2ba={},_0x46797c={};_0xaf6ffd<_0x6232e5[_0xe9bd('0x44')];_0xaf6ffd+=0x1){_0x3bb2ba=_0x6232e5[_0xaf6ffd];if(_['isUndefined'](_0x90db01[_0xe9bd('0x1e')][_0x3bb2ba['id']])){_0x90db01[_0xe9bd('0x1e')][_0x3bb2ba['id']]=new ZohoAccount(_0x3bb2ba);}else{_0x90db01[_0xe9bd('0x41')](_0x90db01[_0xe9bd('0x1e')][_0x3bb2ba['id']],_0x3bb2ba);}}}return _0x90db01['zohoAccounts'];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x4f')]=function(){var _0x34bd38=this;return function(_0x4e05f0){if(_0x4e05f0){freeIsNotKey(_0x4e05f0,_0x34bd38[_0xe9bd('0x1f')],'id');for(var _0x204ea9=0x0,_0x2d724f={},_0xfe82f7={};_0x204ea9<_0x4e05f0['length'];_0x204ea9+=0x1){_0x2d724f=_0x4e05f0[_0x204ea9];if(_['isUndefined'](_0x34bd38[_0xe9bd('0x1f')][_0x2d724f['id']])){_0x34bd38[_0xe9bd('0x1f')][_0x2d724f['id']]=new DeskAccount(_0x2d724f);}else{_0x34bd38[_0xe9bd('0x41')](_0x34bd38[_0xe9bd('0x1f')][_0x2d724f['id']],_0x2d724f);}}}return _0x34bd38['deskAccounts'];};};Realtime['prototype'][_0xe9bd('0x50')]=function(){var _0x20855b=this;return function(_0x3ea0cc){if(_0x3ea0cc){freeIsNotKey(_0x3ea0cc,_0x20855b[_0xe9bd('0x51')],'id');for(var _0x1fd2b5=0x0,_0x23f476={},_0x4870f8={};_0x1fd2b5<_0x3ea0cc[_0xe9bd('0x44')];_0x1fd2b5+=0x1){_0x23f476=_0x3ea0cc[_0x1fd2b5];if(_['isUndefined'](_0x20855b[_0xe9bd('0x51')][_0x23f476['id']])){_0x20855b[_0xe9bd('0x51')][_0x23f476['id']]=new SugarcrmAccount(_0x23f476);}else{_0x20855b[_0xe9bd('0x41')](_0x20855b[_0xe9bd('0x51')][_0x23f476['id']],_0x23f476);}}}return _0x20855b['sugarcrmAccounts'];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x52')]=function(){var _0x3b0190=this;return function(_0x4f35c4){if(_0x4f35c4){freeIsNotKey(_0x4f35c4,_0x3b0190[_0xe9bd('0x20')],'id');for(var _0x1a9d0c=0x0,_0x396154={},_0x3e3e05={};_0x1a9d0c<_0x4f35c4[_0xe9bd('0x44')];_0x1a9d0c+=0x1){_0x396154=_0x4f35c4[_0x1a9d0c];if(_[_0xe9bd('0x45')](_0x3b0190[_0xe9bd('0x20')][_0x396154['id']])){_0x3b0190[_0xe9bd('0x20')][_0x396154['id']]=new VtigerAccount(_0x396154);}else{_0x3b0190[_0xe9bd('0x41')](_0x3b0190[_0xe9bd('0x20')][_0x396154['id']],_0x396154);}}}return _0x3b0190[_0xe9bd('0x20')];};};Realtime[_0xe9bd('0x40')]['initServicenowAccounts']=function(){var _0x3a12e9=this;return function(_0x9d0603){if(_0x9d0603){freeIsNotKey(_0x9d0603,_0x3a12e9['servicenowAccounts'],'id');for(var _0x2c2d78=0x0,_0xe82570={},_0x59b8be={};_0x2c2d78<_0x9d0603['length'];_0x2c2d78+=0x1){_0xe82570=_0x9d0603[_0x2c2d78];if(_[_0xe9bd('0x45')](_0x3a12e9[_0xe9bd('0x21')][_0xe82570['id']])){_0x3a12e9['servicenowAccounts'][_0xe82570['id']]=new ServicenowAccount(_0xe82570);}else{_0x3a12e9['mergeFromDatabase'](_0x3a12e9['servicenowAccounts'][_0xe82570['id']],_0xe82570);}}}return _0x3a12e9[_0xe9bd('0x21')];};};Realtime['prototype']['initDynamics365Accounts']=function(){var _0x4b5bfb=this;return function(_0x4bcf2b){if(_0x4bcf2b){freeIsNotKey(_0x4bcf2b,_0x4b5bfb[_0xe9bd('0x22')],'id');for(var _0x46da33=0x0,_0x2ed5f2={},_0x4947b0={};_0x46da33<_0x4bcf2b[_0xe9bd('0x44')];_0x46da33+=0x1){_0x2ed5f2=_0x4bcf2b[_0x46da33];if(_[_0xe9bd('0x45')](_0x4b5bfb[_0xe9bd('0x22')][_0x2ed5f2['id']])){_0x4b5bfb[_0xe9bd('0x22')][_0x2ed5f2['id']]=new Dynamics365Account(_0x2ed5f2);}else{_0x4b5bfb['mergeFromDatabase'](_0x4b5bfb[_0xe9bd('0x22')][_0x2ed5f2['id']],_0x2ed5f2);}}}return _0x4b5bfb[_0xe9bd('0x22')];};};Realtime[_0xe9bd('0x40')]['initFreshsalesAccounts']=function(){var _0x5248fd=this;return function(_0x3e68fb){if(_0x3e68fb){freeIsNotKey(_0x3e68fb,_0x5248fd[_0xe9bd('0x23')],'id');for(var _0x1f41fc=0x0,_0x40d9e0={},_0x5bea46={};_0x1f41fc<_0x3e68fb[_0xe9bd('0x44')];_0x1f41fc+=0x1){_0x40d9e0=_0x3e68fb[_0x1f41fc];if(_[_0xe9bd('0x45')](_0x5248fd[_0xe9bd('0x23')][_0x40d9e0['id']])){_0x5248fd['freshsalesAccounts'][_0x40d9e0['id']]=new FreshsalesAccount(_0x40d9e0);}else{_0x5248fd[_0xe9bd('0x41')](_0x5248fd[_0xe9bd('0x23')][_0x40d9e0['id']],_0x40d9e0);}}}return _0x5248fd[_0xe9bd('0x23')];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x53')]=function(){var _0x5d7257=this;return function(_0xa13d16){for(var _0x52930c=0x0;_0x52930c<_0xa13d16['length'];_0x52930c+=0x1){_[_0xe9bd('0x54')](_0x5d7257[_0xe9bd('0x14')][_0xa13d16[_0x52930c]['name']],_0xa13d16[_0x52930c]);}return _0x5d7257[_0xe9bd('0x14')];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x55')]=function(){var _0x292faf=this;return function(_0x582cf3){clearVoiceQueues(_0x292faf[_0xe9bd('0x14')]);if(_0x582cf3){_0x582cf3=_[_0xe9bd('0x56')](_0x582cf3,'uniqueid');for(var _0x2a014e in _0x582cf3){if(_0x582cf3[_0xe9bd('0x25')](_0x2a014e)){var _0x3ec3e0={};for(var _0x22fd20=0x0;_0x22fd20<_0x582cf3[_0x2a014e][_0xe9bd('0x44')];_0x22fd20+=0x1){var _0x1a36aa=_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x57')];if(_0x292faf['voiceQueues'][_0x1a36aa]){if(_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x58')]){_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x34')]+=0x1;}if(_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x59')]){_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x5a')]+=0x1;}_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x2e')]+=moment(_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x5b')])['diff'](moment(_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x5c')]),_0xe9bd('0x5d'))||0x0;if(_0x22fd20===_0x582cf3[_0x2a014e][_0xe9bd('0x44')]-0x1){_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x2f')]+=moment(_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x5e')]||_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x5f')]||_0x582cf3[_0x2a014e][_0x22fd20]['queuecallerexitAt'])[_0xe9bd('0x60')](moment(_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x5c')]),'seconds')||0x0;_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x2c')]+=0x1;if(_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x61')]){_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x2d')]+=0x1;_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x30')]+=moment(_0x582cf3[_0x2a014e][_0x22fd20]['queuecallercompleteAt'])['diff'](moment(_0x582cf3[_0x2a014e][_0x22fd20][_0xe9bd('0x5b')]),_0xe9bd('0x5d'))||0x0;}}else{_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x2f')]+=_0x292faf[_0xe9bd('0x14')][_0x1a36aa][_0xe9bd('0x2e')]||0x0;}}}}}}return _0x292faf[_0xe9bd('0x14')];};};Realtime['prototype'][_0xe9bd('0x62')]=function(){var _0x44f47e=this;return function(_0x29833b){clearVoiceCallReports(_0x44f47e[_0xe9bd('0x17')]);if(_0x29833b){for(var _0x14cdd5=0x0;_0x14cdd5<_0x29833b[_0xe9bd('0x44')];_0x14cdd5+=0x1){_0x44f47e[_0xe9bd('0x17')]['total']+=0x1;_0x44f47e['outbound']['sumDuration']+=_0x29833b[_0x14cdd5][_0xe9bd('0x63')];if(_0x29833b[_0x14cdd5]['disposition']==='ANSWERED'){_0x44f47e['outbound'][_0xe9bd('0x2d')]+=0x1;_0x44f47e[_0xe9bd('0x17')][_0xe9bd('0x2e')]+=_0x29833b[_0x14cdd5][_0xe9bd('0x63')]-_0x29833b[_0x14cdd5][_0xe9bd('0x64')]||0x0;_0x44f47e[_0xe9bd('0x17')][_0xe9bd('0x30')]+=_0x29833b[_0x14cdd5][_0xe9bd('0x64')];}}}return _0x44f47e[_0xe9bd('0x17')];};};Realtime['prototype'][_0xe9bd('0x65')]=function(){var _0x4b79f1=this;return function(_0x22cc79){if(_0x22cc79){freeIsNotKey(_0x22cc79,_0x4b79f1[_0xe9bd('0x66')],_0xe9bd('0x29'));for(var _0x6fff03=0x0,_0x416938={};_0x6fff03<_0x22cc79['length'];_0x6fff03+=0x1){_0x416938=_0x22cc79[_0x6fff03];if(_['isUndefined'](_0x4b79f1['campaigns'][_0x416938[_0xe9bd('0x29')]])){_0x4b79f1[_0xe9bd('0x66')][_0x416938['name']]=new Campaign(_0x416938);}else{_0x4b79f1[_0xe9bd('0x41')](_0x4b79f1[_0xe9bd('0x66')][_0x416938[_0xe9bd('0x29')]],_0x416938);_0x4b79f1[_0xe9bd('0x66')][_0x416938[_0xe9bd('0x29')]]['dialQueueProject']=_0x416938[_0xe9bd('0x67')]?_0x416938[_0xe9bd('0x67')][_0xe9bd('0x29')]:undefined;}}}return _0x4b79f1[_0xe9bd('0x66')];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x68')]=function(){var _0x4659f3=this;return function(_0x1ad344){if(_0x1ad344){freeIsNotKey(_0x1ad344,_0x4659f3[_0xe9bd('0x18')],'id');for(var _0x440b2d=0x0,_0x5f24c8={};_0x440b2d<_0x1ad344['length'];_0x440b2d+=0x1){_0x5f24c8=_0x1ad344[_0x440b2d];if(_['isUndefined'](_0x4659f3['voiceExtensions'][_0x5f24c8['id']])){_0x4659f3[_0xe9bd('0x18')][_0x5f24c8['id']]=new VoiceExtension(_0x5f24c8);}else{_0x4659f3[_0xe9bd('0x41')](_0x4659f3[_0xe9bd('0x18')][_0x5f24c8['id']],_0x5f24c8);}}}return _0x4659f3['voiceExtensions'];};};Realtime[_0xe9bd('0x40')][_0xe9bd('0x69')]=function(){var _0x5040a7=this;return function(_0x55b5a5){clearCampaigns(_0x5040a7[_0xe9bd('0x66')]);for(var _0x1250e4=0x0;_0x1250e4<_0x55b5a5[_0xe9bd('0x44')];_0x1250e4+=0x1){_[_0xe9bd('0x54')](_0x5040a7[_0xe9bd('0x66')][_0x55b5a5[_0x1250e4]['name']],_0x55b5a5[_0x1250e4]);}return _0x5040a7['campaigns'];};};Realtime['prototype'][_0xe9bd('0x6a')]=function(){var _0x2c7a14=this;return function(_0x448f82){if(_0x448f82){freeIsNotKey(_0x448f82,_0x2c7a14[_0xe9bd('0x24')],'id');for(var _0x1880e7=0x0,_0x351226={},_0x475cb9={};_0x1880e7<_0x448f82[_0xe9bd('0x44')];_0x1880e7+=0x1){_0x351226=_0x448f82[_0x1880e7];if(_[_0xe9bd('0x45')](_0x2c7a14[_0xe9bd('0x24')][_0x351226['id']])){_0x2c7a14['faxAccounts'][_0x351226['id']]=new FaxAccount(_0x351226);}else{_0x2c7a14[_0xe9bd('0x41')](_0x2c7a14['faxAccounts'][_0x351226['id']],_0x351226);}}}return _0x2c7a14[_0xe9bd('0x24')];};};module['exports']=Realtime;