daad35b017351abb7542b84b66e4e99345a5c06f
[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 _0xb212=['length','isNil','isUndefined','mergeFromDatabase','initTrunks','voiceQueues','initTriggers','initTemplates','initZendeskAccounts','initSalesforceAccounts','salesforceAccounts','initZohoAccounts','zohoAccounts','initSugarcrmAccounts','initVtigerAccounts','vtigerAccounts','initServicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','initVoiceQueueReports','groupBy','uniqueid','queuecallerabandon','queuecallerleaveAt','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerexitAt','queuecallercomplete','initVoiceCallReports','disposition','duration','billableseconds','campaigns','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','merge','bluebird','util','lodash','moment','../model/agent','../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','telephones','trunks','triggers','templates','outbound','voiceExtensions','channels','queueChannels','outboundChannels','timers','settings','zendeskAccounts','sugarcrmAccounts','freshdeskAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','hasOwnProperty','format','SIP/%s','name','mapKeys','interface','total','answered','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','sumHoldTime','outboundAnswerAgiCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','initAgents'];(function(_0x12af68,_0x6e215f){var _0x34d314=function(_0x57002a){while(--_0x57002a){_0x12af68['push'](_0x12af68['shift']());}};_0x34d314(++_0x6e215f);}(_0xb212,0x1f1));var _0x2b21=function(_0x28cd09,_0x1ab794){_0x28cd09=_0x28cd09-0x0;var _0x18cad2=_0xb212[_0x28cd09];return _0x18cad2;};'use strict';var BPromise=require(_0x2b21('0x0'));var util=require(_0x2b21('0x1'));var _=require(_0x2b21('0x2'));var moment=require(_0x2b21('0x3'));var Agent=require(_0x2b21('0x4'));var Telephone=require(_0x2b21('0x5'));var Trunk=require(_0x2b21('0x6'));var VoiceQueue=require(_0x2b21('0x7'));var Trigger=require(_0x2b21('0x8'));var Template=require(_0x2b21('0x9'));var Campaign=require(_0x2b21('0xa'));var VoiceExtension=require(_0x2b21('0xb'));var ZendeskAccount=require(_0x2b21('0xc'));var SalesforceAccount=require(_0x2b21('0xd'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require(_0x2b21('0xe'));var ZohoAccount=require(_0x2b21('0xf'));var DeskAccount=require(_0x2b21('0x10'));var VtigerAccount=require(_0x2b21('0x11'));var ServicenowAccount=require(_0x2b21('0x12'));var Dynamics365Account=require(_0x2b21('0x13'));var FreshsalesAccount=require(_0x2b21('0x14'));var FaxAccount=require(_0x2b21('0x15'));var Realtime=function(){this[_0x2b21('0x16')]={};this[_0x2b21('0x17')]={};this[_0x2b21('0x18')]={};this['voiceQueues']={};this[_0x2b21('0x19')]={};this['campaigns']={};this[_0x2b21('0x1a')]={};this[_0x2b21('0x1b')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x2b21('0x1c')]={};this[_0x2b21('0x1d')]={};this[_0x2b21('0x1e')]={};this[_0x2b21('0x1f')]={};this[_0x2b21('0x20')]={};this[_0x2b21('0x21')]={};this[_0x2b21('0x22')]={};this['salesforceAccounts']={};this[_0x2b21('0x23')]={};this[_0x2b21('0x24')]={};this['zohoAccounts']={};this[_0x2b21('0x25')]={};this['vtigerAccounts']={};this[_0x2b21('0x26')]={};this[_0x2b21('0x27')]={};this[_0x2b21('0x28')]={};this[_0x2b21('0x29')]={};};function freeIsNotKey(_0x387e1c,_0x390098,_0x1283a9){var _0x58f791=_['mapKeys'](_0x387e1c,function(_0x1524c9,_0xa96df2){return _0x1524c9[_0x1283a9];});for(var _0x268a75 in _0x390098){if(_0x390098[_0x2b21('0x2a')](_0x268a75)){if(!_0x58f791[_0x268a75]){delete _0x390098[_0x268a75];}}}}function freeIsNotKeySip(_0x143228,_0x1394ff){var _0x32580b=_['mapKeys'](_0x143228,function(_0x38cb0f,_0x21e6f6){return util[_0x2b21('0x2b')](_0x2b21('0x2c'),_0x38cb0f[_0x2b21('0x2d')]);});for(var _0xd6cfe2 in _0x1394ff){if(_0x1394ff[_0x2b21('0x2a')](_0xd6cfe2)){if(!_0x32580b[_0xd6cfe2]){delete _0x1394ff[_0xd6cfe2];}}}}function freeIsNotKeyAgent(_0x26b892,_0x5a80ea){var _0x1264aa=_[_0x2b21('0x2e')](_0x26b892,function(_0x50c977,_0x11b117){var _0x52e97a=_['isNil'](_0x50c977[_0x2b21('0x2f')])?util[_0x2b21('0x2b')](_0x2b21('0x2c'),_0x50c977[_0x2b21('0x2d')]):_0x50c977[_0x2b21('0x2f')];return _0x52e97a;});for(var _0x5bb1ab in _0x5a80ea){if(_0x5a80ea['hasOwnProperty'](_0x5bb1ab)){if(!_0x1264aa[_0x5bb1ab]){delete _0x5a80ea[_0x5bb1ab];}}}}function clearVoiceCallReports(_0x45128a){_0x45128a[_0x2b21('0x30')]=0x0;_0x45128a[_0x2b21('0x31')]=0x0;_0x45128a['sumHoldTime']=0x0;_0x45128a[_0x2b21('0x32')]=0x0;_0x45128a[_0x2b21('0x33')]=0x0;}function clearCampaigns(_0xe53f0e){if(!_[_0x2b21('0x34')](_0xe53f0e)){for(var _0x1253de in _0xe53f0e){if(_0xe53f0e[_0x2b21('0x2a')](_0x1253de)){_0xe53f0e[_0x1253de][_0x2b21('0x35')]=0x0;_0xe53f0e[_0x1253de][_0x2b21('0x36')]=0x0;}}}}function clearVoiceQueues(_0x14f078){if(!_[_0x2b21('0x34')](_0x14f078)){for(var _0x340fbf in _0x14f078){if(_0x14f078['hasOwnProperty'](_0x340fbf)){_0x14f078[_0x340fbf][_0x2b21('0x30')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x31')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x37')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x38')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x39')]=0x0;_0x14f078[_0x340fbf]['sumDuration']=0x0;_0x14f078[_0x340fbf][_0x2b21('0x33')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x3a')]=0x0;_0x14f078[_0x340fbf]['outboundNoAnswerCallsDay']=0x0;_0x14f078[_0x340fbf][_0x2b21('0x3b')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x3c')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x3d')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x3e')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x3f')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x40')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x41')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x42')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x43')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x44')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x3a')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x45')]=0x0;_0x14f078[_0x340fbf][_0x2b21('0x46')]=!![];}}}}Realtime[_0x2b21('0x47')]['mergeFromDatabase']=function(_0xffedbd,_0x221b31){for(var _0x541ae7 in _0x221b31){if(_0xffedbd[_0x2b21('0x2a')](_0x541ae7)){_0xffedbd[_0x541ae7]=_0x221b31[_0x541ae7];}}};Realtime[_0x2b21('0x47')][_0x2b21('0x48')]=function(){var _0x264783=this;return function(_0x57150f){if(_0x57150f){freeIsNotKeyAgent(_0x57150f,_0x264783[_0x2b21('0x16')]);for(var _0x40b4f4=0x0,_0xe53f72={},_0x5a769d={};_0x40b4f4<_0x57150f[_0x2b21('0x49')];_0x40b4f4+=0x1){_0xe53f72=_0x57150f[_0x40b4f4];var _0x34d362=_[_0x2b21('0x4a')](_0xe53f72[_0x2b21('0x2f')])?util[_0x2b21('0x2b')]('SIP/%s',_0xe53f72[_0x2b21('0x2d')]):_0xe53f72[_0x2b21('0x2f')];if(_[_0x2b21('0x4b')](_0x264783['agents'][_0x34d362])){_0x264783[_0x2b21('0x16')][_0x34d362]=new Agent(_0xe53f72);}else{_0x264783[_0x2b21('0x4c')](_0x264783[_0x2b21('0x16')][_0x34d362],_0xe53f72);}}}return _0x264783['agents'];};};Realtime['prototype']['initTelephones']=function(){var _0x2d1c67=this;return function(_0x18646d){if(_0x18646d){freeIsNotKeySip(_0x18646d,_0x2d1c67['telephones']);for(var _0x444b76=0x0,_0x2b4061={},_0x40d0db={};_0x444b76<_0x18646d[_0x2b21('0x49')];_0x444b76+=0x1){_0x2b4061=_0x18646d[_0x444b76];if(_[_0x2b21('0x4b')](_0x2d1c67[_0x2b21('0x17')][util[_0x2b21('0x2b')](_0x2b21('0x2c'),_0x2b4061['name'])])){_0x2d1c67[_0x2b21('0x17')][util[_0x2b21('0x2b')](_0x2b21('0x2c'),_0x2b4061[_0x2b21('0x2d')])]=new Telephone(_0x2b4061);}else{_0x2d1c67[_0x2b21('0x4c')](_0x2d1c67[_0x2b21('0x17')][util['format'](_0x2b21('0x2c'),_0x2b4061[_0x2b21('0x2d')])],_0x2b4061);}}}return _0x2d1c67[_0x2b21('0x17')];};};Realtime[_0x2b21('0x47')][_0x2b21('0x4d')]=function(){var _0x192113=this;return function(_0x4fa460){if(_0x4fa460){freeIsNotKeySip(_0x4fa460,_0x192113['trunks']);for(var _0x2d44b6=0x0,_0x1666d7={},_0x3b4fd3={};_0x2d44b6<_0x4fa460[_0x2b21('0x49')];_0x2d44b6+=0x1){_0x1666d7=_0x4fa460[_0x2d44b6];if(_[_0x2b21('0x4b')](_0x192113[_0x2b21('0x18')][util[_0x2b21('0x2b')]('SIP/%s',_0x1666d7[_0x2b21('0x2d')])])){_0x192113[_0x2b21('0x18')][util[_0x2b21('0x2b')](_0x2b21('0x2c'),_0x1666d7[_0x2b21('0x2d')])]=new Trunk(_0x1666d7);}else{_0x192113[_0x2b21('0x4c')](_0x192113[_0x2b21('0x18')][util[_0x2b21('0x2b')]('SIP/%s',_0x1666d7[_0x2b21('0x2d')])],_0x1666d7);}}}return _0x192113['trunks'];};};Realtime[_0x2b21('0x47')]['initVoiceQueues']=function(){var _0x312d38=this;return function(_0x5d09fd){if(_0x5d09fd){freeIsNotKey(_0x5d09fd,_0x312d38['voiceQueues'],_0x2b21('0x2d'));for(var _0x112c53=0x0,_0x5ae835={},_0x294b5d={};_0x112c53<_0x5d09fd[_0x2b21('0x49')];_0x112c53+=0x1){_0x5ae835=_0x5d09fd[_0x112c53];if(_['isUndefined'](_0x312d38[_0x2b21('0x4e')][_0x5ae835['name']])){_0x312d38[_0x2b21('0x4e')][_0x5ae835['name']]=new VoiceQueue(_0x5ae835);}else{_0x312d38[_0x2b21('0x4c')](_0x312d38['voiceQueues'][_0x5ae835[_0x2b21('0x2d')]],_0x5ae835);}}}return _0x312d38['voiceQueues'];};};Realtime[_0x2b21('0x47')][_0x2b21('0x4f')]=function(){var _0x541c5e=this;return function(_0x8140f){if(_0x8140f){freeIsNotKey(_0x8140f,_0x541c5e[_0x2b21('0x19')],'id');for(var _0x338e52=0x0,_0x1a5312={},_0x33e6d8={};_0x338e52<_0x8140f[_0x2b21('0x49')];_0x338e52+=0x1){_0x1a5312=_0x8140f[_0x338e52];if(_[_0x2b21('0x4b')](_0x541c5e['triggers'][_0x1a5312['id']])){_0x541c5e[_0x2b21('0x19')][_0x1a5312['id']]=new Trigger(_0x1a5312);}else{_0x541c5e[_0x2b21('0x4c')](_0x541c5e[_0x2b21('0x19')][_0x1a5312['id']],_0x1a5312);}}}return _0x541c5e[_0x2b21('0x19')];};};Realtime[_0x2b21('0x47')][_0x2b21('0x50')]=function(){var _0x305ad5=this;return function(_0x551deb){if(_0x551deb){freeIsNotKey(_0x551deb,_0x305ad5['templates'],'id');for(var _0x2a440b=0x0,_0x17170a={},_0x3672da={};_0x2a440b<_0x551deb[_0x2b21('0x49')];_0x2a440b+=0x1){_0x17170a=_0x551deb[_0x2a440b];if(_['isUndefined'](_0x305ad5['templates'][_0x17170a['id']])){_0x305ad5[_0x2b21('0x1a')][_0x17170a['id']]=new Template(_0x17170a);}else{_0x305ad5[_0x2b21('0x4c')](_0x305ad5[_0x2b21('0x1a')][_0x17170a['id']],_0x17170a);}}}return _0x305ad5[_0x2b21('0x1a')];};};Realtime[_0x2b21('0x47')][_0x2b21('0x51')]=function(){var _0x4b6407=this;return function(_0x481d8e){if(_0x481d8e){freeIsNotKey(_0x481d8e,_0x4b6407[_0x2b21('0x22')],'id');for(var _0x3b666f=0x0,_0x5d3670={},_0x3aba59={};_0x3b666f<_0x481d8e[_0x2b21('0x49')];_0x3b666f+=0x1){_0x5d3670=_0x481d8e[_0x3b666f];if(_[_0x2b21('0x4b')](_0x4b6407[_0x2b21('0x22')][_0x5d3670['id']])){_0x4b6407[_0x2b21('0x22')][_0x5d3670['id']]=new ZendeskAccount(_0x5d3670);}else{_0x4b6407[_0x2b21('0x4c')](_0x4b6407[_0x2b21('0x22')][_0x5d3670['id']],_0x5d3670);}}}return _0x4b6407['zendeskAccounts'];};};Realtime['prototype'][_0x2b21('0x52')]=function(){var _0x5bf3de=this;return function(_0x19d787){if(_0x19d787){freeIsNotKey(_0x19d787,_0x5bf3de['salesforceAccounts'],'id');for(var _0x1b4603=0x0,_0x3255ef={},_0x7eac70={};_0x1b4603<_0x19d787[_0x2b21('0x49')];_0x1b4603+=0x1){_0x3255ef=_0x19d787[_0x1b4603];if(_[_0x2b21('0x4b')](_0x5bf3de['salesforceAccounts'][_0x3255ef['id']])){_0x5bf3de['salesforceAccounts'][_0x3255ef['id']]=new SalesforceAccount(_0x3255ef);}else{_0x5bf3de[_0x2b21('0x4c')](_0x5bf3de[_0x2b21('0x53')][_0x3255ef['id']],_0x3255ef);}}}return _0x5bf3de['salesforceAccounts'];};};Realtime['prototype']['initFreshdeskAccounts']=function(){var _0x559691=this;return function(_0x5cea71){if(_0x5cea71){freeIsNotKey(_0x5cea71,_0x559691[_0x2b21('0x24')],'id');for(var _0x3a6fc1=0x0,_0x46cd6a={},_0x4535f1={};_0x3a6fc1<_0x5cea71[_0x2b21('0x49')];_0x3a6fc1+=0x1){_0x46cd6a=_0x5cea71[_0x3a6fc1];if(_[_0x2b21('0x4b')](_0x559691['freshdeskAccounts'][_0x46cd6a['id']])){_0x559691[_0x2b21('0x24')][_0x46cd6a['id']]=new FreshdeskAccount(_0x46cd6a);}else{_0x559691[_0x2b21('0x4c')](_0x559691[_0x2b21('0x24')][_0x46cd6a['id']],_0x46cd6a);}}}return _0x559691[_0x2b21('0x24')];};};Realtime[_0x2b21('0x47')][_0x2b21('0x54')]=function(){var _0x33b40b=this;return function(_0x519497){if(_0x519497){freeIsNotKey(_0x519497,_0x33b40b['zohoAccounts'],'id');for(var _0x4cfe8f=0x0,_0x84a75c={},_0x5bdfa1={};_0x4cfe8f<_0x519497[_0x2b21('0x49')];_0x4cfe8f+=0x1){_0x84a75c=_0x519497[_0x4cfe8f];if(_[_0x2b21('0x4b')](_0x33b40b[_0x2b21('0x55')][_0x84a75c['id']])){_0x33b40b[_0x2b21('0x55')][_0x84a75c['id']]=new ZohoAccount(_0x84a75c);}else{_0x33b40b[_0x2b21('0x4c')](_0x33b40b[_0x2b21('0x55')][_0x84a75c['id']],_0x84a75c);}}}return _0x33b40b['zohoAccounts'];};};Realtime[_0x2b21('0x47')]['initDeskAccounts']=function(){var _0x5589fb=this;return function(_0x5081ec){if(_0x5081ec){freeIsNotKey(_0x5081ec,_0x5589fb['deskAccounts'],'id');for(var _0xf8303d=0x0,_0xcc69e7={},_0x138cc8={};_0xf8303d<_0x5081ec[_0x2b21('0x49')];_0xf8303d+=0x1){_0xcc69e7=_0x5081ec[_0xf8303d];if(_['isUndefined'](_0x5589fb[_0x2b21('0x25')][_0xcc69e7['id']])){_0x5589fb['deskAccounts'][_0xcc69e7['id']]=new DeskAccount(_0xcc69e7);}else{_0x5589fb[_0x2b21('0x4c')](_0x5589fb[_0x2b21('0x25')][_0xcc69e7['id']],_0xcc69e7);}}}return _0x5589fb[_0x2b21('0x25')];};};Realtime['prototype'][_0x2b21('0x56')]=function(){var _0x5ef825=this;return function(_0x151f4a){if(_0x151f4a){freeIsNotKey(_0x151f4a,_0x5ef825[_0x2b21('0x23')],'id');for(var _0x443279=0x0,_0x504872={},_0x1cc7e5={};_0x443279<_0x151f4a['length'];_0x443279+=0x1){_0x504872=_0x151f4a[_0x443279];if(_[_0x2b21('0x4b')](_0x5ef825[_0x2b21('0x23')][_0x504872['id']])){_0x5ef825[_0x2b21('0x23')][_0x504872['id']]=new SugarcrmAccount(_0x504872);}else{_0x5ef825[_0x2b21('0x4c')](_0x5ef825[_0x2b21('0x23')][_0x504872['id']],_0x504872);}}}return _0x5ef825[_0x2b21('0x23')];};};Realtime[_0x2b21('0x47')][_0x2b21('0x57')]=function(){var _0x9729a7=this;return function(_0x148583){if(_0x148583){freeIsNotKey(_0x148583,_0x9729a7[_0x2b21('0x58')],'id');for(var _0x20c758=0x0,_0x26ff12={},_0x1fb11a={};_0x20c758<_0x148583[_0x2b21('0x49')];_0x20c758+=0x1){_0x26ff12=_0x148583[_0x20c758];if(_[_0x2b21('0x4b')](_0x9729a7['vtigerAccounts'][_0x26ff12['id']])){_0x9729a7[_0x2b21('0x58')][_0x26ff12['id']]=new VtigerAccount(_0x26ff12);}else{_0x9729a7['mergeFromDatabase'](_0x9729a7[_0x2b21('0x58')][_0x26ff12['id']],_0x26ff12);}}}return _0x9729a7[_0x2b21('0x58')];};};Realtime[_0x2b21('0x47')][_0x2b21('0x59')]=function(){var _0x39db12=this;return function(_0x1d61c8){if(_0x1d61c8){freeIsNotKey(_0x1d61c8,_0x39db12[_0x2b21('0x26')],'id');for(var _0x202b06=0x0,_0x2a1df5={},_0x2038f0={};_0x202b06<_0x1d61c8[_0x2b21('0x49')];_0x202b06+=0x1){_0x2a1df5=_0x1d61c8[_0x202b06];if(_['isUndefined'](_0x39db12['servicenowAccounts'][_0x2a1df5['id']])){_0x39db12[_0x2b21('0x26')][_0x2a1df5['id']]=new ServicenowAccount(_0x2a1df5);}else{_0x39db12['mergeFromDatabase'](_0x39db12[_0x2b21('0x26')][_0x2a1df5['id']],_0x2a1df5);}}}return _0x39db12['servicenowAccounts'];};};Realtime[_0x2b21('0x47')][_0x2b21('0x5a')]=function(){var _0x5e2db7=this;return function(_0x5c9dd0){if(_0x5c9dd0){freeIsNotKey(_0x5c9dd0,_0x5e2db7[_0x2b21('0x27')],'id');for(var _0x43698a=0x0,_0x51eef5={},_0x2bf603={};_0x43698a<_0x5c9dd0['length'];_0x43698a+=0x1){_0x51eef5=_0x5c9dd0[_0x43698a];if(_[_0x2b21('0x4b')](_0x5e2db7[_0x2b21('0x27')][_0x51eef5['id']])){_0x5e2db7[_0x2b21('0x27')][_0x51eef5['id']]=new Dynamics365Account(_0x51eef5);}else{_0x5e2db7['mergeFromDatabase'](_0x5e2db7[_0x2b21('0x27')][_0x51eef5['id']],_0x51eef5);}}}return _0x5e2db7['dynamics365Accounts'];};};Realtime[_0x2b21('0x47')][_0x2b21('0x5b')]=function(){var _0x5e577d=this;return function(_0x17688c){if(_0x17688c){freeIsNotKey(_0x17688c,_0x5e577d['freshsalesAccounts'],'id');for(var _0x5cb9bf=0x0,_0x645d30={},_0x43ff01={};_0x5cb9bf<_0x17688c[_0x2b21('0x49')];_0x5cb9bf+=0x1){_0x645d30=_0x17688c[_0x5cb9bf];if(_[_0x2b21('0x4b')](_0x5e577d[_0x2b21('0x28')][_0x645d30['id']])){_0x5e577d['freshsalesAccounts'][_0x645d30['id']]=new FreshsalesAccount(_0x645d30);}else{_0x5e577d[_0x2b21('0x4c')](_0x5e577d[_0x2b21('0x28')][_0x645d30['id']],_0x645d30);}}}return _0x5e577d['freshsalesAccounts'];};};Realtime['prototype'][_0x2b21('0x5c')]=function(){var _0x57872c=this;return function(_0x2f4e40){for(var _0xb00012=0x0;_0xb00012<_0x2f4e40[_0x2b21('0x49')];_0xb00012+=0x1){_['merge'](_0x57872c['voiceQueues'][_0x2f4e40[_0xb00012]['name']],_0x2f4e40[_0xb00012]);}return _0x57872c['voiceQueues'];};};Realtime['prototype'][_0x2b21('0x5d')]=function(){var _0x5e08a5=this;return function(_0x5bcea1){clearVoiceQueues(_0x5e08a5['voiceQueues']);if(_0x5bcea1){_0x5bcea1=_[_0x2b21('0x5e')](_0x5bcea1,_0x2b21('0x5f'));for(var _0x33478d in _0x5bcea1){if(_0x5bcea1['hasOwnProperty'](_0x33478d)){var _0x3b6d52={};for(var _0x597110=0x0;_0x597110<_0x5bcea1[_0x33478d][_0x2b21('0x49')];_0x597110+=0x1){var _0x2b4303=_0x5bcea1[_0x33478d][_0x597110]['queue'];if(_0x5e08a5['voiceQueues'][_0x2b4303]){if(_0x5bcea1[_0x33478d][_0x597110]['queuecallerexit']){_0x5e08a5[_0x2b21('0x4e')][_0x2b4303][_0x2b21('0x37')]+=0x1;}if(_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x60')]){_0x5e08a5[_0x2b21('0x4e')][_0x2b4303][_0x2b21('0x38')]+=0x1;}_0x5e08a5[_0x2b21('0x4e')][_0x2b4303][_0x2b21('0x39')]+=moment(_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x61')])[_0x2b21('0x62')](moment(_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x63')]),_0x2b21('0x64'))||0x0;if(_0x597110===_0x5bcea1[_0x33478d]['length']-0x1){_0x5e08a5[_0x2b21('0x4e')][_0x2b4303][_0x2b21('0x32')]+=moment(_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x65')]||_0x5bcea1[_0x33478d][_0x597110]['queuecallerabandonAt']||_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x66')])[_0x2b21('0x62')](moment(_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x63')]),_0x2b21('0x64'))||0x0;_0x5e08a5[_0x2b21('0x4e')][_0x2b4303][_0x2b21('0x30')]+=0x1;if(_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x67')]){_0x5e08a5[_0x2b21('0x4e')][_0x2b4303][_0x2b21('0x31')]+=0x1;_0x5e08a5[_0x2b21('0x4e')][_0x2b4303][_0x2b21('0x33')]+=moment(_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x65')])[_0x2b21('0x62')](moment(_0x5bcea1[_0x33478d][_0x597110][_0x2b21('0x61')]),_0x2b21('0x64'))||0x0;}}else{_0x5e08a5[_0x2b21('0x4e')][_0x2b4303][_0x2b21('0x32')]+=_0x5e08a5['voiceQueues'][_0x2b4303][_0x2b21('0x39')]||0x0;}}}}}}return _0x5e08a5[_0x2b21('0x4e')];};};Realtime[_0x2b21('0x47')][_0x2b21('0x68')]=function(){var _0x16be00=this;return function(_0x5505aa){clearVoiceCallReports(_0x16be00[_0x2b21('0x1b')]);if(_0x5505aa){for(var _0x137e10=0x0;_0x137e10<_0x5505aa['length'];_0x137e10+=0x1){_0x16be00[_0x2b21('0x1b')][_0x2b21('0x30')]+=0x1;_0x16be00[_0x2b21('0x1b')][_0x2b21('0x32')]+=_0x5505aa[_0x137e10]['duration'];if(_0x5505aa[_0x137e10][_0x2b21('0x69')]==='ANSWERED'){_0x16be00[_0x2b21('0x1b')][_0x2b21('0x31')]+=0x1;_0x16be00[_0x2b21('0x1b')][_0x2b21('0x39')]+=_0x5505aa[_0x137e10][_0x2b21('0x6a')]-_0x5505aa[_0x137e10][_0x2b21('0x6b')]||0x0;_0x16be00['outbound'][_0x2b21('0x33')]+=_0x5505aa[_0x137e10][_0x2b21('0x6b')];}}}return _0x16be00['outbound'];};};Realtime[_0x2b21('0x47')]['initCampaigns']=function(){var _0x49c069=this;return function(_0x59e2d6){if(_0x59e2d6){freeIsNotKey(_0x59e2d6,_0x49c069[_0x2b21('0x6c')],_0x2b21('0x2d'));for(var _0x2f888e=0x0,_0x3403d3={};_0x2f888e<_0x59e2d6['length'];_0x2f888e+=0x1){_0x3403d3=_0x59e2d6[_0x2f888e];if(_['isUndefined'](_0x49c069[_0x2b21('0x6c')][_0x3403d3[_0x2b21('0x2d')]])){_0x49c069['campaigns'][_0x3403d3['name']]=new Campaign(_0x3403d3);}else{_0x49c069[_0x2b21('0x4c')](_0x49c069['campaigns'][_0x3403d3[_0x2b21('0x2d')]],_0x3403d3);_0x49c069['campaigns'][_0x3403d3['name']][_0x2b21('0x6d')]=_0x3403d3[_0x2b21('0x6e')]?_0x3403d3['SquareProject'][_0x2b21('0x2d')]:undefined;}}}return _0x49c069['campaigns'];};};Realtime[_0x2b21('0x47')][_0x2b21('0x6f')]=function(){var _0x36190c=this;return function(_0x1a9842){if(_0x1a9842){freeIsNotKey(_0x1a9842,_0x36190c[_0x2b21('0x1c')],'id');for(var _0x50e31e=0x0,_0x1ab20d={};_0x50e31e<_0x1a9842['length'];_0x50e31e+=0x1){_0x1ab20d=_0x1a9842[_0x50e31e];if(_[_0x2b21('0x4b')](_0x36190c['voiceExtensions'][_0x1ab20d['id']])){_0x36190c[_0x2b21('0x1c')][_0x1ab20d['id']]=new VoiceExtension(_0x1ab20d);}else{_0x36190c[_0x2b21('0x4c')](_0x36190c[_0x2b21('0x1c')][_0x1ab20d['id']],_0x1ab20d);}}}return _0x36190c[_0x2b21('0x1c')];};};Realtime[_0x2b21('0x47')][_0x2b21('0x70')]=function(){var _0x3db862=this;return function(_0x2292fc){clearCampaigns(_0x3db862[_0x2b21('0x6c')]);for(var _0xaf6e49=0x0;_0xaf6e49<_0x2292fc[_0x2b21('0x49')];_0xaf6e49+=0x1){_[_0x2b21('0x71')](_0x3db862[_0x2b21('0x6c')][_0x2292fc[_0xaf6e49]['name']],_0x2292fc[_0xaf6e49]);}return _0x3db862[_0x2b21('0x6c')];};};Realtime['prototype']['initFaxAccounts']=function(){var _0x306994=this;return function(_0x2df212){if(_0x2df212){freeIsNotKey(_0x2df212,_0x306994['faxAccounts'],'id');for(var _0x37f2e1=0x0,_0x3c5c81={},_0x38e232={};_0x37f2e1<_0x2df212[_0x2b21('0x49')];_0x37f2e1+=0x1){_0x3c5c81=_0x2df212[_0x37f2e1];if(_['isUndefined'](_0x306994['faxAccounts'][_0x3c5c81['id']])){_0x306994[_0x2b21('0x29')][_0x3c5c81['id']]=new FaxAccount(_0x3c5c81);}else{_0x306994[_0x2b21('0x4c')](_0x306994[_0x2b21('0x29')][_0x3c5c81['id']],_0x3c5c81);}}}return _0x306994['faxAccounts'];};};module['exports']=Realtime;