Built motion from commit da617fac.|2.6.6
[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 _0xb2b0=['duration','ANSWERED','billableseconds','campaigns','SquareProject','initVoiceExtensions','initFaxAccounts','exports','util','lodash','moment','../model/agent','../model/voiceQueue','../model/trigger','../model/template','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','telephones','trunks','voiceQueues','outbound','voiceExtensions','channels','outboundChannels','timers','settings','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','faxAccounts','hasOwnProperty','mapKeys','format','name','interface','total','answered','sumHoldTime','sumBillable','isEmpty','ivrAnswerCallsDay','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundCongestionCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','initAgents','length','isNil','SIP/%s','isUndefined','mergeFromDatabase','initTelephones','initTriggers','triggers','initTemplates','templates','initZendeskAccounts','zendeskAccounts','initFreshdeskAccounts','freshdeskAccounts','initDeskAccounts','initSugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','freshsalesAccounts','initVoiceQueueHopperHistory','merge','initVoiceQueueReports','groupBy','uniqueid','queuecallerexit','unmanaged','queuecallerabandon','queuecallerleaveAt','diff','queuecallerjoinAt','seconds','sumDuration','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','queuecallercomplete'];(function(_0x754ab4,_0x56daa7){var _0x34079a=function(_0x295ec1){while(--_0x295ec1){_0x754ab4['push'](_0x754ab4['shift']());}};_0x34079a(++_0x56daa7);}(_0xb2b0,0x72));var _0x0b2b=function(_0x520265,_0x2ab208){_0x520265=_0x520265-0x0;var _0x44e175=_0xb2b0[_0x520265];return _0x44e175;};'use strict';var util=require(_0x0b2b('0x0'));var _=require(_0x0b2b('0x1'));var moment=require(_0x0b2b('0x2'));var Agent=require(_0x0b2b('0x3'));var Telephone=require('../model/telephone');var Trunk=require('../model/trunk');var VoiceQueue=require(_0x0b2b('0x4'));var Trigger=require(_0x0b2b('0x5'));var Template=require(_0x0b2b('0x6'));var Campaign=require('../model/campaign');var VoiceExtension=require(_0x0b2b('0x7'));var ZendeskAccount=require(_0x0b2b('0x8'));var SalesforceAccount=require(_0x0b2b('0x9'));var FreshdeskAccount=require(_0x0b2b('0xa'));var SugarcrmAccount=require(_0x0b2b('0xb'));var ZohoAccount=require(_0x0b2b('0xc'));var DeskAccount=require(_0x0b2b('0xd'));var VtigerAccount=require(_0x0b2b('0xe'));var ServicenowAccount=require(_0x0b2b('0xf'));var Dynamics365Account=require(_0x0b2b('0x10'));var FreshsalesAccount=require(_0x0b2b('0x11'));var FaxAccount=require(_0x0b2b('0x12'));var Realtime=function(){this[_0x0b2b('0x13')]={};this[_0x0b2b('0x14')]={};this[_0x0b2b('0x15')]={};this[_0x0b2b('0x16')]={};this['triggers']={};this['campaigns']={};this['templates']={};this[_0x0b2b('0x17')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x0b2b('0x18')]={};this[_0x0b2b('0x19')]={};this['queueChannels']={};this[_0x0b2b('0x1a')]={};this[_0x0b2b('0x1b')]={};this[_0x0b2b('0x1c')]={};this['zendeskAccounts']={};this[_0x0b2b('0x1d')]={};this[_0x0b2b('0x1e')]={};this['freshdeskAccounts']={};this[_0x0b2b('0x1f')]={};this[_0x0b2b('0x20')]={};this[_0x0b2b('0x21')]={};this[_0x0b2b('0x22')]={};this[_0x0b2b('0x23')]={};this['freshsalesAccounts']={};this[_0x0b2b('0x24')]={};};function freeIsNotKey(_0x178e91,_0x323876,_0x5ca11a){var _0x42a4f7=_['mapKeys'](_0x178e91,function(_0x417bb1,_0x3afe33){return _0x417bb1[_0x5ca11a];});for(var _0x45133e in _0x323876){if(_0x323876[_0x0b2b('0x25')](_0x45133e)){if(!_0x42a4f7[_0x45133e]){delete _0x323876[_0x45133e];}}}}function freeIsNotKeySip(_0x194365,_0x3ac250){var _0x423798=_[_0x0b2b('0x26')](_0x194365,function(_0x22e23e,_0x422d27){return util[_0x0b2b('0x27')]('SIP/%s',_0x22e23e[_0x0b2b('0x28')]);});for(var _0xb2b3cb in _0x3ac250){if(_0x3ac250[_0x0b2b('0x25')](_0xb2b3cb)){if(!_0x423798[_0xb2b3cb]){delete _0x3ac250[_0xb2b3cb];}}}}function freeIsNotKeyAgent(_0x22b576,_0x16ed58){var _0x2fbbd2=_[_0x0b2b('0x26')](_0x22b576,function(_0x2d31b8,_0x437252){var _0x3b96e6=_['isNil'](_0x2d31b8[_0x0b2b('0x29')])?util['format']('SIP/%s',_0x2d31b8[_0x0b2b('0x28')]):_0x2d31b8[_0x0b2b('0x29')];return _0x3b96e6;});for(var _0x3c5724 in _0x16ed58){if(_0x16ed58[_0x0b2b('0x25')](_0x3c5724)){if(!_0x2fbbd2[_0x3c5724]){delete _0x16ed58[_0x3c5724];}}}}function clearVoiceCallReports(_0x4e7ce0){_0x4e7ce0[_0x0b2b('0x2a')]=0x0;_0x4e7ce0[_0x0b2b('0x2b')]=0x0;_0x4e7ce0[_0x0b2b('0x2c')]=0x0;_0x4e7ce0['sumDuration']=0x0;_0x4e7ce0[_0x0b2b('0x2d')]=0x0;}function clearCampaigns(_0x3bfda9){if(!_[_0x0b2b('0x2e')](_0x3bfda9)){for(var _0x37d5ed in _0x3bfda9){if(_0x3bfda9['hasOwnProperty'](_0x37d5ed)){_0x3bfda9[_0x37d5ed]['ivrTotalCallsDays']=0x0;_0x3bfda9[_0x37d5ed][_0x0b2b('0x2f')]=0x0;}}}}function clearVoiceQueues(_0x1788ca){if(!_[_0x0b2b('0x2e')](_0x1788ca)){for(var _0xcf32b9 in _0x1788ca){if(_0x1788ca['hasOwnProperty'](_0xcf32b9)){_0x1788ca[_0xcf32b9][_0x0b2b('0x2a')]=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x2b')]=0x0;_0x1788ca[_0xcf32b9]['unmanaged']=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x30')]=0x0;_0x1788ca[_0xcf32b9]['sumHoldTime']=0x0;_0x1788ca[_0xcf32b9]['sumDuration']=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x2d')]=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x31')]=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x32')]=0x0;_0x1788ca[_0xcf32b9]['outboundBusyCallsDay']=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x33')]=0x0;_0x1788ca[_0xcf32b9]['outboundNoSuchCallsDay']=0x0;_0x1788ca[_0xcf32b9]['outboundUnknownCallsDay']=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x34')]=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x35')]=0x0;_0x1788ca[_0xcf32b9]['outboundBlacklistCallsDay']=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x36')]=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x37')]=0x0;_0x1788ca[_0xcf32b9]['outboundReCallsDay']=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x31')]=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x38')]=0x0;_0x1788ca[_0xcf32b9][_0x0b2b('0x39')]=!![];}}}}Realtime[_0x0b2b('0x3a')]['mergeFromDatabase']=function(_0x48c497,_0x45002e){for(var _0x2d7e37 in _0x45002e){if(_0x48c497[_0x0b2b('0x25')](_0x2d7e37)){_0x48c497[_0x2d7e37]=_0x45002e[_0x2d7e37];}}};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x3b')]=function(){var _0x4f5130=this;return function(_0x483143){if(_0x483143){freeIsNotKeyAgent(_0x483143,_0x4f5130['agents']);for(var _0x282f2d=0x0,_0x3d474f={},_0x2b92ed={};_0x282f2d<_0x483143[_0x0b2b('0x3c')];_0x282f2d+=0x1){_0x3d474f=_0x483143[_0x282f2d];var _0x4fab0d=_[_0x0b2b('0x3d')](_0x3d474f['interface'])?util[_0x0b2b('0x27')](_0x0b2b('0x3e'),_0x3d474f[_0x0b2b('0x28')]):_0x3d474f[_0x0b2b('0x29')];if(_[_0x0b2b('0x3f')](_0x4f5130['agents'][_0x4fab0d])){_0x4f5130[_0x0b2b('0x13')][_0x4fab0d]=new Agent(_0x3d474f);}else{_0x4f5130[_0x0b2b('0x40')](_0x4f5130[_0x0b2b('0x13')][_0x4fab0d],_0x3d474f);}}}return _0x4f5130[_0x0b2b('0x13')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x41')]=function(){var _0x2fcf67=this;return function(_0x421308){if(_0x421308){freeIsNotKeySip(_0x421308,_0x2fcf67[_0x0b2b('0x14')]);for(var _0x10abb0=0x0,_0x288424={},_0x1b6e4d={};_0x10abb0<_0x421308[_0x0b2b('0x3c')];_0x10abb0+=0x1){_0x288424=_0x421308[_0x10abb0];if(_[_0x0b2b('0x3f')](_0x2fcf67['telephones'][util[_0x0b2b('0x27')]('SIP/%s',_0x288424[_0x0b2b('0x28')])])){_0x2fcf67[_0x0b2b('0x14')][util[_0x0b2b('0x27')]('SIP/%s',_0x288424['name'])]=new Telephone(_0x288424);}else{_0x2fcf67[_0x0b2b('0x40')](_0x2fcf67[_0x0b2b('0x14')][util[_0x0b2b('0x27')](_0x0b2b('0x3e'),_0x288424[_0x0b2b('0x28')])],_0x288424);}}}return _0x2fcf67['telephones'];};};Realtime[_0x0b2b('0x3a')]['initTrunks']=function(){var _0x42f7d2=this;return function(_0x3f18b2){if(_0x3f18b2){freeIsNotKeySip(_0x3f18b2,_0x42f7d2[_0x0b2b('0x15')]);for(var _0x59c050=0x0,_0x579626={},_0x1c4308={};_0x59c050<_0x3f18b2[_0x0b2b('0x3c')];_0x59c050+=0x1){_0x579626=_0x3f18b2[_0x59c050];if(_[_0x0b2b('0x3f')](_0x42f7d2[_0x0b2b('0x15')][util[_0x0b2b('0x27')](_0x0b2b('0x3e'),_0x579626['name'])])){_0x42f7d2[_0x0b2b('0x15')][util[_0x0b2b('0x27')]('SIP/%s',_0x579626['name'])]=new Trunk(_0x579626);}else{_0x42f7d2[_0x0b2b('0x40')](_0x42f7d2['trunks'][util[_0x0b2b('0x27')](_0x0b2b('0x3e'),_0x579626[_0x0b2b('0x28')])],_0x579626);}}}return _0x42f7d2['trunks'];};};Realtime['prototype']['initVoiceQueues']=function(){var _0x4d9120=this;return function(_0x16a2bf){if(_0x16a2bf){freeIsNotKey(_0x16a2bf,_0x4d9120[_0x0b2b('0x16')],_0x0b2b('0x28'));for(var _0x5e6ba5=0x0,_0x2758e0={},_0x96f4e9={};_0x5e6ba5<_0x16a2bf['length'];_0x5e6ba5+=0x1){_0x2758e0=_0x16a2bf[_0x5e6ba5];if(_[_0x0b2b('0x3f')](_0x4d9120[_0x0b2b('0x16')][_0x2758e0[_0x0b2b('0x28')]])){_0x4d9120['voiceQueues'][_0x2758e0['name']]=new VoiceQueue(_0x2758e0);}else{_0x4d9120[_0x0b2b('0x40')](_0x4d9120[_0x0b2b('0x16')][_0x2758e0[_0x0b2b('0x28')]],_0x2758e0);}}}return _0x4d9120['voiceQueues'];};};Realtime['prototype'][_0x0b2b('0x42')]=function(){var _0x3e83a0=this;return function(_0x469d3b){if(_0x469d3b){freeIsNotKey(_0x469d3b,_0x3e83a0['triggers'],'id');for(var _0x4dea89=0x0,_0x325b16={},_0x53c512={};_0x4dea89<_0x469d3b[_0x0b2b('0x3c')];_0x4dea89+=0x1){_0x325b16=_0x469d3b[_0x4dea89];if(_['isUndefined'](_0x3e83a0[_0x0b2b('0x43')][_0x325b16['id']])){_0x3e83a0[_0x0b2b('0x43')][_0x325b16['id']]=new Trigger(_0x325b16);}else{_0x3e83a0[_0x0b2b('0x40')](_0x3e83a0[_0x0b2b('0x43')][_0x325b16['id']],_0x325b16);}}}return _0x3e83a0['triggers'];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x44')]=function(){var _0x32abdc=this;return function(_0x32a454){if(_0x32a454){freeIsNotKey(_0x32a454,_0x32abdc[_0x0b2b('0x45')],'id');for(var _0x1078a3=0x0,_0x265eb7={},_0x5c27ca={};_0x1078a3<_0x32a454['length'];_0x1078a3+=0x1){_0x265eb7=_0x32a454[_0x1078a3];if(_['isUndefined'](_0x32abdc[_0x0b2b('0x45')][_0x265eb7['id']])){_0x32abdc[_0x0b2b('0x45')][_0x265eb7['id']]=new Template(_0x265eb7);}else{_0x32abdc['mergeFromDatabase'](_0x32abdc[_0x0b2b('0x45')][_0x265eb7['id']],_0x265eb7);}}}return _0x32abdc[_0x0b2b('0x45')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x46')]=function(){var _0x5f0f33=this;return function(_0x212384){if(_0x212384){freeIsNotKey(_0x212384,_0x5f0f33[_0x0b2b('0x47')],'id');for(var _0x83ba7a=0x0,_0x13f91d={},_0x160cff={};_0x83ba7a<_0x212384[_0x0b2b('0x3c')];_0x83ba7a+=0x1){_0x13f91d=_0x212384[_0x83ba7a];if(_['isUndefined'](_0x5f0f33[_0x0b2b('0x47')][_0x13f91d['id']])){_0x5f0f33[_0x0b2b('0x47')][_0x13f91d['id']]=new ZendeskAccount(_0x13f91d);}else{_0x5f0f33[_0x0b2b('0x40')](_0x5f0f33[_0x0b2b('0x47')][_0x13f91d['id']],_0x13f91d);}}}return _0x5f0f33[_0x0b2b('0x47')];};};Realtime[_0x0b2b('0x3a')]['initSalesforceAccounts']=function(){var _0xb8b36c=this;return function(_0x1fd487){if(_0x1fd487){freeIsNotKey(_0x1fd487,_0xb8b36c['salesforceAccounts'],'id');for(var _0x4fb4c0=0x0,_0xb83f8c={},_0x22b609={};_0x4fb4c0<_0x1fd487[_0x0b2b('0x3c')];_0x4fb4c0+=0x1){_0xb83f8c=_0x1fd487[_0x4fb4c0];if(_[_0x0b2b('0x3f')](_0xb8b36c['salesforceAccounts'][_0xb83f8c['id']])){_0xb8b36c[_0x0b2b('0x1d')][_0xb83f8c['id']]=new SalesforceAccount(_0xb83f8c);}else{_0xb8b36c['mergeFromDatabase'](_0xb8b36c[_0x0b2b('0x1d')][_0xb83f8c['id']],_0xb83f8c);}}}return _0xb8b36c[_0x0b2b('0x1d')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x48')]=function(){var _0x459bd5=this;return function(_0x2faabc){if(_0x2faabc){freeIsNotKey(_0x2faabc,_0x459bd5[_0x0b2b('0x49')],'id');for(var _0xe8a3f3=0x0,_0x54fb93={},_0x3b03a3={};_0xe8a3f3<_0x2faabc[_0x0b2b('0x3c')];_0xe8a3f3+=0x1){_0x54fb93=_0x2faabc[_0xe8a3f3];if(_[_0x0b2b('0x3f')](_0x459bd5[_0x0b2b('0x49')][_0x54fb93['id']])){_0x459bd5['freshdeskAccounts'][_0x54fb93['id']]=new FreshdeskAccount(_0x54fb93);}else{_0x459bd5[_0x0b2b('0x40')](_0x459bd5['freshdeskAccounts'][_0x54fb93['id']],_0x54fb93);}}}return _0x459bd5[_0x0b2b('0x49')];};};Realtime[_0x0b2b('0x3a')]['initZohoAccounts']=function(){var _0x2196f5=this;return function(_0x4bc27e){if(_0x4bc27e){freeIsNotKey(_0x4bc27e,_0x2196f5[_0x0b2b('0x1f')],'id');for(var _0x3df8a3=0x0,_0xdb1749={},_0x519bf8={};_0x3df8a3<_0x4bc27e['length'];_0x3df8a3+=0x1){_0xdb1749=_0x4bc27e[_0x3df8a3];if(_['isUndefined'](_0x2196f5['zohoAccounts'][_0xdb1749['id']])){_0x2196f5[_0x0b2b('0x1f')][_0xdb1749['id']]=new ZohoAccount(_0xdb1749);}else{_0x2196f5[_0x0b2b('0x40')](_0x2196f5[_0x0b2b('0x1f')][_0xdb1749['id']],_0xdb1749);}}}return _0x2196f5[_0x0b2b('0x1f')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x4a')]=function(){var _0x3e1fb9=this;return function(_0x91648f){if(_0x91648f){freeIsNotKey(_0x91648f,_0x3e1fb9[_0x0b2b('0x20')],'id');for(var _0x565970=0x0,_0x258729={},_0x100587={};_0x565970<_0x91648f[_0x0b2b('0x3c')];_0x565970+=0x1){_0x258729=_0x91648f[_0x565970];if(_[_0x0b2b('0x3f')](_0x3e1fb9['deskAccounts'][_0x258729['id']])){_0x3e1fb9[_0x0b2b('0x20')][_0x258729['id']]=new DeskAccount(_0x258729);}else{_0x3e1fb9[_0x0b2b('0x40')](_0x3e1fb9['deskAccounts'][_0x258729['id']],_0x258729);}}}return _0x3e1fb9[_0x0b2b('0x20')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x4b')]=function(){var _0x109bf5=this;return function(_0x494c3){if(_0x494c3){freeIsNotKey(_0x494c3,_0x109bf5[_0x0b2b('0x1e')],'id');for(var _0x10e25d=0x0,_0x49ecef={},_0x5bf422={};_0x10e25d<_0x494c3[_0x0b2b('0x3c')];_0x10e25d+=0x1){_0x49ecef=_0x494c3[_0x10e25d];if(_[_0x0b2b('0x3f')](_0x109bf5[_0x0b2b('0x1e')][_0x49ecef['id']])){_0x109bf5[_0x0b2b('0x1e')][_0x49ecef['id']]=new SugarcrmAccount(_0x49ecef);}else{_0x109bf5[_0x0b2b('0x40')](_0x109bf5['sugarcrmAccounts'][_0x49ecef['id']],_0x49ecef);}}}return _0x109bf5[_0x0b2b('0x1e')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x4c')]=function(){var _0x11f860=this;return function(_0x3ce8f1){if(_0x3ce8f1){freeIsNotKey(_0x3ce8f1,_0x11f860[_0x0b2b('0x21')],'id');for(var _0x20242d=0x0,_0x235e4a={},_0x37389f={};_0x20242d<_0x3ce8f1[_0x0b2b('0x3c')];_0x20242d+=0x1){_0x235e4a=_0x3ce8f1[_0x20242d];if(_['isUndefined'](_0x11f860[_0x0b2b('0x21')][_0x235e4a['id']])){_0x11f860[_0x0b2b('0x21')][_0x235e4a['id']]=new VtigerAccount(_0x235e4a);}else{_0x11f860[_0x0b2b('0x40')](_0x11f860[_0x0b2b('0x21')][_0x235e4a['id']],_0x235e4a);}}}return _0x11f860[_0x0b2b('0x21')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x4d')]=function(){var _0x537520=this;return function(_0x3ff6fe){if(_0x3ff6fe){freeIsNotKey(_0x3ff6fe,_0x537520[_0x0b2b('0x22')],'id');for(var _0x107d68=0x0,_0x284136={},_0x23dd19={};_0x107d68<_0x3ff6fe[_0x0b2b('0x3c')];_0x107d68+=0x1){_0x284136=_0x3ff6fe[_0x107d68];if(_['isUndefined'](_0x537520['servicenowAccounts'][_0x284136['id']])){_0x537520[_0x0b2b('0x22')][_0x284136['id']]=new ServicenowAccount(_0x284136);}else{_0x537520[_0x0b2b('0x40')](_0x537520['servicenowAccounts'][_0x284136['id']],_0x284136);}}}return _0x537520[_0x0b2b('0x22')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x4e')]=function(){var _0x1cb423=this;return function(_0x4d8eae){if(_0x4d8eae){freeIsNotKey(_0x4d8eae,_0x1cb423[_0x0b2b('0x23')],'id');for(var _0x4dff75=0x0,_0x422fb2={},_0x1b0870={};_0x4dff75<_0x4d8eae[_0x0b2b('0x3c')];_0x4dff75+=0x1){_0x422fb2=_0x4d8eae[_0x4dff75];if(_[_0x0b2b('0x3f')](_0x1cb423[_0x0b2b('0x23')][_0x422fb2['id']])){_0x1cb423['dynamics365Accounts'][_0x422fb2['id']]=new Dynamics365Account(_0x422fb2);}else{_0x1cb423[_0x0b2b('0x40')](_0x1cb423[_0x0b2b('0x23')][_0x422fb2['id']],_0x422fb2);}}}return _0x1cb423[_0x0b2b('0x23')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x4f')]=function(){var _0x3513de=this;return function(_0x1f817c){if(_0x1f817c){freeIsNotKey(_0x1f817c,_0x3513de[_0x0b2b('0x50')],'id');for(var _0x194323=0x0,_0x12562a={},_0x370210={};_0x194323<_0x1f817c[_0x0b2b('0x3c')];_0x194323+=0x1){_0x12562a=_0x1f817c[_0x194323];if(_[_0x0b2b('0x3f')](_0x3513de[_0x0b2b('0x50')][_0x12562a['id']])){_0x3513de[_0x0b2b('0x50')][_0x12562a['id']]=new FreshsalesAccount(_0x12562a);}else{_0x3513de['mergeFromDatabase'](_0x3513de['freshsalesAccounts'][_0x12562a['id']],_0x12562a);}}}return _0x3513de[_0x0b2b('0x50')];};};Realtime['prototype'][_0x0b2b('0x51')]=function(){var _0x7d101c=this;return function(_0x29f5fb){for(var _0x26a717=0x0;_0x26a717<_0x29f5fb[_0x0b2b('0x3c')];_0x26a717+=0x1){_[_0x0b2b('0x52')](_0x7d101c['voiceQueues'][_0x29f5fb[_0x26a717][_0x0b2b('0x28')]],_0x29f5fb[_0x26a717]);}return _0x7d101c[_0x0b2b('0x16')];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x53')]=function(){var _0xe34df0=this;return function(_0x189cf1){clearVoiceQueues(_0xe34df0[_0x0b2b('0x16')]);if(_0x189cf1){_0x189cf1=_[_0x0b2b('0x54')](_0x189cf1,_0x0b2b('0x55'));for(var _0x46277f in _0x189cf1){if(_0x189cf1[_0x0b2b('0x25')](_0x46277f)){var _0x1c9b17={};for(var _0x2b288f=0x0;_0x2b288f<_0x189cf1[_0x46277f][_0x0b2b('0x3c')];_0x2b288f+=0x1){var _0x385144=_0x189cf1[_0x46277f][_0x2b288f]['queue'];if(_0xe34df0['voiceQueues'][_0x385144]){if(_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x56')]){_0xe34df0['voiceQueues'][_0x385144][_0x0b2b('0x57')]+=0x1;}if(_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x58')]){_0xe34df0[_0x0b2b('0x16')][_0x385144][_0x0b2b('0x30')]+=0x1;}_0xe34df0[_0x0b2b('0x16')][_0x385144][_0x0b2b('0x2c')]+=moment(_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x59')])[_0x0b2b('0x5a')](moment(_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x5b')]),_0x0b2b('0x5c'))||0x0;if(_0x2b288f===_0x189cf1[_0x46277f][_0x0b2b('0x3c')]-0x1){_0xe34df0[_0x0b2b('0x16')][_0x385144][_0x0b2b('0x5d')]+=moment(_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x5e')]||_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x5f')]||_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x60')])[_0x0b2b('0x5a')](moment(_0x189cf1[_0x46277f][_0x2b288f]['queuecallerjoinAt']),_0x0b2b('0x5c'))||0x0;_0xe34df0[_0x0b2b('0x16')][_0x385144][_0x0b2b('0x2a')]+=0x1;if(_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x61')]){_0xe34df0[_0x0b2b('0x16')][_0x385144][_0x0b2b('0x2b')]+=0x1;_0xe34df0[_0x0b2b('0x16')][_0x385144][_0x0b2b('0x2d')]+=moment(_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x5e')])['diff'](moment(_0x189cf1[_0x46277f][_0x2b288f][_0x0b2b('0x59')]),_0x0b2b('0x5c'))||0x0;}}else{_0xe34df0[_0x0b2b('0x16')][_0x385144][_0x0b2b('0x5d')]+=_0xe34df0['voiceQueues'][_0x385144][_0x0b2b('0x2c')]||0x0;}}}}}}return _0xe34df0['voiceQueues'];};};Realtime[_0x0b2b('0x3a')]['initVoiceCallReports']=function(){var _0x2812d2=this;return function(_0xc29ffc){clearVoiceCallReports(_0x2812d2[_0x0b2b('0x17')]);if(_0xc29ffc){for(var _0xcbd88e=0x0;_0xcbd88e<_0xc29ffc[_0x0b2b('0x3c')];_0xcbd88e+=0x1){_0x2812d2[_0x0b2b('0x17')][_0x0b2b('0x2a')]+=0x1;_0x2812d2[_0x0b2b('0x17')][_0x0b2b('0x5d')]+=_0xc29ffc[_0xcbd88e][_0x0b2b('0x62')];if(_0xc29ffc[_0xcbd88e]['disposition']===_0x0b2b('0x63')){_0x2812d2[_0x0b2b('0x17')]['answered']+=0x1;_0x2812d2[_0x0b2b('0x17')][_0x0b2b('0x2c')]+=_0xc29ffc[_0xcbd88e][_0x0b2b('0x62')]-_0xc29ffc[_0xcbd88e]['billableseconds']||0x0;_0x2812d2[_0x0b2b('0x17')][_0x0b2b('0x2d')]+=_0xc29ffc[_0xcbd88e][_0x0b2b('0x64')];}}}return _0x2812d2['outbound'];};};Realtime['prototype']['initCampaigns']=function(){var _0xb5f1ac=this;return function(_0x5cdd11){if(_0x5cdd11){freeIsNotKey(_0x5cdd11,_0xb5f1ac['campaigns'],'name');for(var _0x157bb5=0x0,_0x5813f3={};_0x157bb5<_0x5cdd11[_0x0b2b('0x3c')];_0x157bb5+=0x1){_0x5813f3=_0x5cdd11[_0x157bb5];if(_[_0x0b2b('0x3f')](_0xb5f1ac['campaigns'][_0x5813f3[_0x0b2b('0x28')]])){_0xb5f1ac['campaigns'][_0x5813f3[_0x0b2b('0x28')]]=new Campaign(_0x5813f3);}else{_0xb5f1ac[_0x0b2b('0x40')](_0xb5f1ac[_0x0b2b('0x65')][_0x5813f3['name']],_0x5813f3);_0xb5f1ac[_0x0b2b('0x65')][_0x5813f3[_0x0b2b('0x28')]]['dialQueueProject']=_0x5813f3[_0x0b2b('0x66')]?_0x5813f3[_0x0b2b('0x66')][_0x0b2b('0x28')]:undefined;}}}return _0xb5f1ac['campaigns'];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x67')]=function(){var _0x1ada19=this;return function(_0x33e4f2){if(_0x33e4f2){freeIsNotKey(_0x33e4f2,_0x1ada19['voiceExtensions'],'id');for(var _0x268be2=0x0,_0x501883={};_0x268be2<_0x33e4f2[_0x0b2b('0x3c')];_0x268be2+=0x1){_0x501883=_0x33e4f2[_0x268be2];if(_[_0x0b2b('0x3f')](_0x1ada19['voiceExtensions'][_0x501883['id']])){_0x1ada19['voiceExtensions'][_0x501883['id']]=new VoiceExtension(_0x501883);}else{_0x1ada19[_0x0b2b('0x40')](_0x1ada19[_0x0b2b('0x18')][_0x501883['id']],_0x501883);}}}return _0x1ada19['voiceExtensions'];};};Realtime[_0x0b2b('0x3a')]['initCampaignHopperHistory']=function(){var _0x278179=this;return function(_0x185800){clearCampaigns(_0x278179[_0x0b2b('0x65')]);for(var _0x356a22=0x0;_0x356a22<_0x185800[_0x0b2b('0x3c')];_0x356a22+=0x1){_['merge'](_0x278179[_0x0b2b('0x65')][_0x185800[_0x356a22][_0x0b2b('0x28')]],_0x185800[_0x356a22]);}return _0x278179['campaigns'];};};Realtime[_0x0b2b('0x3a')][_0x0b2b('0x68')]=function(){var _0x3b9ee2=this;return function(_0x487399){if(_0x487399){freeIsNotKey(_0x487399,_0x3b9ee2['faxAccounts'],'id');for(var _0x1ca803=0x0,_0xe53d5b={},_0x4218e4={};_0x1ca803<_0x487399[_0x0b2b('0x3c')];_0x1ca803+=0x1){_0xe53d5b=_0x487399[_0x1ca803];if(_[_0x0b2b('0x3f')](_0x3b9ee2[_0x0b2b('0x24')][_0xe53d5b['id']])){_0x3b9ee2[_0x0b2b('0x24')][_0xe53d5b['id']]=new FaxAccount(_0xe53d5b);}else{_0x3b9ee2['mergeFromDatabase'](_0x3b9ee2[_0x0b2b('0x24')][_0xe53d5b['id']],_0xe53d5b);}}}return _0x3b9ee2[_0x0b2b('0x24')];};};module[_0x0b2b('0x69')]=Realtime;