Built motion from commit 538092ac.|2.6.10
[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 _0x1d54=['abandoned','sumDuration','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundBlacklistCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','length','telephones','isUndefined','initTriggers','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','freshdeskAccounts','initDeskAccounts','deskAccounts','initVtigerAccounts','initServicenowAccounts','initDynamics365Accounts','initVoiceQueueReports','uniqueid','queuecallerexit','unmanaged','queuecallerleaveAt','diff','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','seconds','queuecallercomplete','initVoiceCallReports','disposition','duration','billableseconds','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','initFaxAccounts','exports','util','moment','../model/agent','../model/telephone','../model/trunk','../model/trigger','../model/template','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','trunks','voiceQueues','triggers','campaigns','templates','outbound','voiceExtensions','channels','outboundChannels','timers','settings','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','format','name','isNil','interface','SIP/%s','total','sumHoldTime','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','answered'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x1d54,0x100));var _0x41d5=function(_0x4cd21c,_0x35fa45){_0x4cd21c=_0x4cd21c-0x0;var _0x5d8e5e=_0x1d54[_0x4cd21c];return _0x5d8e5e;};'use strict';var util=require(_0x41d5('0x0'));var _=require('lodash');var moment=require(_0x41d5('0x1'));var Agent=require(_0x41d5('0x2'));var Telephone=require(_0x41d5('0x3'));var Trunk=require(_0x41d5('0x4'));var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0x41d5('0x5'));var Template=require(_0x41d5('0x6'));var Campaign=require('../model/campaign');var VoiceExtension=require(_0x41d5('0x7'));var ZendeskAccount=require(_0x41d5('0x8'));var SalesforceAccount=require(_0x41d5('0x9'));var FreshdeskAccount=require(_0x41d5('0xa'));var SugarcrmAccount=require('../model/sugarcrmAccount');var ZohoAccount=require(_0x41d5('0xb'));var DeskAccount=require(_0x41d5('0xc'));var VtigerAccount=require(_0x41d5('0xd'));var ServicenowAccount=require(_0x41d5('0xe'));var Dynamics365Account=require(_0x41d5('0xf'));var FreshsalesAccount=require(_0x41d5('0x10'));var FaxAccount=require(_0x41d5('0x11'));var Realtime=function(){this[_0x41d5('0x12')]={};this['telephones']={};this[_0x41d5('0x13')]={};this[_0x41d5('0x14')]={};this[_0x41d5('0x15')]={};this[_0x41d5('0x16')]={};this[_0x41d5('0x17')]={};this[_0x41d5('0x18')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x41d5('0x19')]={};this[_0x41d5('0x1a')]={};this['queueChannels']={};this[_0x41d5('0x1b')]={};this[_0x41d5('0x1c')]={};this[_0x41d5('0x1d')]={};this[_0x41d5('0x1e')]={};this[_0x41d5('0x1f')]={};this[_0x41d5('0x20')]={};this['freshdeskAccounts']={};this[_0x41d5('0x21')]={};this['deskAccounts']={};this[_0x41d5('0x22')]={};this[_0x41d5('0x23')]={};this[_0x41d5('0x24')]={};this[_0x41d5('0x25')]={};this[_0x41d5('0x26')]={};};function freeIsNotKey(_0x19c456,_0x5e29db,_0x153940){var _0x1a309e=_[_0x41d5('0x27')](_0x19c456,function(_0x4578ea,_0x1a3f97){return _0x4578ea[_0x153940];});for(var _0x815e8 in _0x5e29db){if(_0x5e29db[_0x41d5('0x28')](_0x815e8)){if(!_0x1a309e[_0x815e8]){delete _0x5e29db[_0x815e8];}}}}function freeIsNotKeySip(_0x3ce11a,_0x48247f){var _0x14300c=_[_0x41d5('0x27')](_0x3ce11a,function(_0x1e5a5b,_0x1c989c){return util[_0x41d5('0x29')]('SIP/%s',_0x1e5a5b[_0x41d5('0x2a')]);});for(var _0x2b0adf in _0x48247f){if(_0x48247f[_0x41d5('0x28')](_0x2b0adf)){if(!_0x14300c[_0x2b0adf]){delete _0x48247f[_0x2b0adf];}}}}function freeIsNotKeyAgent(_0xa3daa3,_0x59ae4b){var _0x22c440=_['mapKeys'](_0xa3daa3,function(_0x47582a,_0x58e7db){var _0x66874=_[_0x41d5('0x2b')](_0x47582a[_0x41d5('0x2c')])?util[_0x41d5('0x29')](_0x41d5('0x2d'),_0x47582a[_0x41d5('0x2a')]):_0x47582a['interface'];return _0x66874;});for(var _0x593bac in _0x59ae4b){if(_0x59ae4b[_0x41d5('0x28')](_0x593bac)){if(!_0x22c440[_0x593bac]){delete _0x59ae4b[_0x593bac];}}}}function clearVoiceCallReports(_0x874583){_0x874583[_0x41d5('0x2e')]=0x0;_0x874583['answered']=0x0;_0x874583[_0x41d5('0x2f')]=0x0;_0x874583['sumDuration']=0x0;_0x874583[_0x41d5('0x30')]=0x0;}function clearCampaigns(_0x12e422){if(!_[_0x41d5('0x31')](_0x12e422)){for(var _0x53582f in _0x12e422){if(_0x12e422[_0x41d5('0x28')](_0x53582f)){_0x12e422[_0x53582f][_0x41d5('0x32')]=0x0;_0x12e422[_0x53582f][_0x41d5('0x33')]=0x0;}}}}function clearVoiceQueues(_0x4c44dc){if(!_[_0x41d5('0x31')](_0x4c44dc)){for(var _0x28210b in _0x4c44dc){if(_0x4c44dc['hasOwnProperty'](_0x28210b)){_0x4c44dc[_0x28210b][_0x41d5('0x2e')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x34')]=0x0;_0x4c44dc[_0x28210b]['unmanaged']=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x35')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x2f')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x36')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x30')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x37')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x38')]=0x0;_0x4c44dc[_0x28210b]['outboundBusyCallsDay']=0x0;_0x4c44dc[_0x28210b]['outboundCongestionCallsDay']=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x39')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x3a')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x3b')]=0x0;_0x4c44dc[_0x28210b]['outboundDropCallsDayCallersExit']=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x3c')]=0x0;_0x4c44dc[_0x28210b]['outboundOriginateFailureCallsDay']=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x3d')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x3e')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x37')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x3f')]=0x0;_0x4c44dc[_0x28210b][_0x41d5('0x40')]=!![];}}}}Realtime[_0x41d5('0x41')][_0x41d5('0x42')]=function(_0x481aab,_0x1059ce){for(var _0xdfc40b in _0x1059ce){if(_0x481aab['hasOwnProperty'](_0xdfc40b)){_0x481aab[_0xdfc40b]=_0x1059ce[_0xdfc40b];}}};Realtime[_0x41d5('0x41')][_0x41d5('0x43')]=function(){var _0x5ec6ca=this;return function(_0x3b2c38){if(_0x3b2c38){freeIsNotKeyAgent(_0x3b2c38,_0x5ec6ca['agents']);for(var _0x5a35a8=0x0,_0x26e1ee={},_0xb5bf04={};_0x5a35a8<_0x3b2c38[_0x41d5('0x44')];_0x5a35a8+=0x1){_0x26e1ee=_0x3b2c38[_0x5a35a8];var _0x2f08e7=_['isNil'](_0x26e1ee[_0x41d5('0x2c')])?util[_0x41d5('0x29')](_0x41d5('0x2d'),_0x26e1ee[_0x41d5('0x2a')]):_0x26e1ee[_0x41d5('0x2c')];if(_['isUndefined'](_0x5ec6ca[_0x41d5('0x12')][_0x2f08e7])){_0x5ec6ca[_0x41d5('0x12')][_0x2f08e7]=new Agent(_0x26e1ee);}else{_0x5ec6ca[_0x41d5('0x42')](_0x5ec6ca['agents'][_0x2f08e7],_0x26e1ee);}}}return _0x5ec6ca['agents'];};};Realtime[_0x41d5('0x41')]['initTelephones']=function(){var _0x28d2f1=this;return function(_0x4d611f){if(_0x4d611f){freeIsNotKeySip(_0x4d611f,_0x28d2f1[_0x41d5('0x45')]);for(var _0x4a63fb=0x0,_0x20283a={},_0x268f47={};_0x4a63fb<_0x4d611f[_0x41d5('0x44')];_0x4a63fb+=0x1){_0x20283a=_0x4d611f[_0x4a63fb];if(_[_0x41d5('0x46')](_0x28d2f1[_0x41d5('0x45')][util['format'](_0x41d5('0x2d'),_0x20283a[_0x41d5('0x2a')])])){_0x28d2f1[_0x41d5('0x45')][util['format']('SIP/%s',_0x20283a[_0x41d5('0x2a')])]=new Telephone(_0x20283a);}else{_0x28d2f1[_0x41d5('0x42')](_0x28d2f1[_0x41d5('0x45')][util[_0x41d5('0x29')]('SIP/%s',_0x20283a[_0x41d5('0x2a')])],_0x20283a);}}}return _0x28d2f1[_0x41d5('0x45')];};};Realtime[_0x41d5('0x41')]['initTrunks']=function(){var _0x256789=this;return function(_0x63a3f8){if(_0x63a3f8){freeIsNotKeySip(_0x63a3f8,_0x256789[_0x41d5('0x13')]);for(var _0x3ffbc2=0x0,_0x66e81e={},_0x4bf5d4={};_0x3ffbc2<_0x63a3f8[_0x41d5('0x44')];_0x3ffbc2+=0x1){_0x66e81e=_0x63a3f8[_0x3ffbc2];if(_[_0x41d5('0x46')](_0x256789[_0x41d5('0x13')][util[_0x41d5('0x29')]('SIP/%s',_0x66e81e[_0x41d5('0x2a')])])){_0x256789[_0x41d5('0x13')][util[_0x41d5('0x29')](_0x41d5('0x2d'),_0x66e81e['name'])]=new Trunk(_0x66e81e);}else{_0x256789['mergeFromDatabase'](_0x256789[_0x41d5('0x13')][util[_0x41d5('0x29')](_0x41d5('0x2d'),_0x66e81e['name'])],_0x66e81e);}}}return _0x256789['trunks'];};};Realtime[_0x41d5('0x41')]['initVoiceQueues']=function(){var _0x4218a2=this;return function(_0x5f5a2c){if(_0x5f5a2c){freeIsNotKey(_0x5f5a2c,_0x4218a2[_0x41d5('0x14')],'name');for(var _0x583f35=0x0,_0x359f3e={},_0x2cbf42={};_0x583f35<_0x5f5a2c[_0x41d5('0x44')];_0x583f35+=0x1){_0x359f3e=_0x5f5a2c[_0x583f35];if(_[_0x41d5('0x46')](_0x4218a2[_0x41d5('0x14')][_0x359f3e[_0x41d5('0x2a')]])){_0x4218a2['voiceQueues'][_0x359f3e[_0x41d5('0x2a')]]=new VoiceQueue(_0x359f3e);}else{_0x4218a2[_0x41d5('0x42')](_0x4218a2[_0x41d5('0x14')][_0x359f3e[_0x41d5('0x2a')]],_0x359f3e);}}}return _0x4218a2[_0x41d5('0x14')];};};Realtime[_0x41d5('0x41')][_0x41d5('0x47')]=function(){var _0x2e659d=this;return function(_0x2c5cba){if(_0x2c5cba){freeIsNotKey(_0x2c5cba,_0x2e659d[_0x41d5('0x15')],'id');for(var _0x39f4c8=0x0,_0x5856e4={},_0xe1a1bc={};_0x39f4c8<_0x2c5cba[_0x41d5('0x44')];_0x39f4c8+=0x1){_0x5856e4=_0x2c5cba[_0x39f4c8];if(_[_0x41d5('0x46')](_0x2e659d[_0x41d5('0x15')][_0x5856e4['id']])){_0x2e659d[_0x41d5('0x15')][_0x5856e4['id']]=new Trigger(_0x5856e4);}else{_0x2e659d[_0x41d5('0x42')](_0x2e659d[_0x41d5('0x15')][_0x5856e4['id']],_0x5856e4);}}}return _0x2e659d[_0x41d5('0x15')];};};Realtime[_0x41d5('0x41')]['initTemplates']=function(){var _0x24fdfe=this;return function(_0x2e2540){if(_0x2e2540){freeIsNotKey(_0x2e2540,_0x24fdfe[_0x41d5('0x17')],'id');for(var _0x50f52f=0x0,_0x234ec6={},_0x37cc06={};_0x50f52f<_0x2e2540[_0x41d5('0x44')];_0x50f52f+=0x1){_0x234ec6=_0x2e2540[_0x50f52f];if(_['isUndefined'](_0x24fdfe[_0x41d5('0x17')][_0x234ec6['id']])){_0x24fdfe[_0x41d5('0x17')][_0x234ec6['id']]=new Template(_0x234ec6);}else{_0x24fdfe[_0x41d5('0x42')](_0x24fdfe[_0x41d5('0x17')][_0x234ec6['id']],_0x234ec6);}}}return _0x24fdfe[_0x41d5('0x17')];};};Realtime['prototype'][_0x41d5('0x48')]=function(){var _0x4a3ae1=this;return function(_0x19f1b3){if(_0x19f1b3){freeIsNotKey(_0x19f1b3,_0x4a3ae1[_0x41d5('0x1e')],'id');for(var _0x5716b6=0x0,_0xcea45c={},_0x156980={};_0x5716b6<_0x19f1b3[_0x41d5('0x44')];_0x5716b6+=0x1){_0xcea45c=_0x19f1b3[_0x5716b6];if(_[_0x41d5('0x46')](_0x4a3ae1[_0x41d5('0x1e')][_0xcea45c['id']])){_0x4a3ae1[_0x41d5('0x1e')][_0xcea45c['id']]=new ZendeskAccount(_0xcea45c);}else{_0x4a3ae1[_0x41d5('0x42')](_0x4a3ae1[_0x41d5('0x1e')][_0xcea45c['id']],_0xcea45c);}}}return _0x4a3ae1['zendeskAccounts'];};};Realtime['prototype'][_0x41d5('0x49')]=function(){var _0x284e99=this;return function(_0x196950){if(_0x196950){freeIsNotKey(_0x196950,_0x284e99['salesforceAccounts'],'id');for(var _0x376f6e=0x0,_0x8a45c7={},_0x4f8717={};_0x376f6e<_0x196950[_0x41d5('0x44')];_0x376f6e+=0x1){_0x8a45c7=_0x196950[_0x376f6e];if(_[_0x41d5('0x46')](_0x284e99[_0x41d5('0x1f')][_0x8a45c7['id']])){_0x284e99[_0x41d5('0x1f')][_0x8a45c7['id']]=new SalesforceAccount(_0x8a45c7);}else{_0x284e99[_0x41d5('0x42')](_0x284e99['salesforceAccounts'][_0x8a45c7['id']],_0x8a45c7);}}}return _0x284e99[_0x41d5('0x1f')];};};Realtime['prototype'][_0x41d5('0x4a')]=function(){var _0x437bbb=this;return function(_0x3dad56){if(_0x3dad56){freeIsNotKey(_0x3dad56,_0x437bbb[_0x41d5('0x4b')],'id');for(var _0x40199a=0x0,_0x266484={},_0x5f3626={};_0x40199a<_0x3dad56[_0x41d5('0x44')];_0x40199a+=0x1){_0x266484=_0x3dad56[_0x40199a];if(_[_0x41d5('0x46')](_0x437bbb[_0x41d5('0x4b')][_0x266484['id']])){_0x437bbb['freshdeskAccounts'][_0x266484['id']]=new FreshdeskAccount(_0x266484);}else{_0x437bbb['mergeFromDatabase'](_0x437bbb[_0x41d5('0x4b')][_0x266484['id']],_0x266484);}}}return _0x437bbb[_0x41d5('0x4b')];};};Realtime['prototype']['initZohoAccounts']=function(){var _0x1ad39b=this;return function(_0x1b298c){if(_0x1b298c){freeIsNotKey(_0x1b298c,_0x1ad39b[_0x41d5('0x21')],'id');for(var _0x3d518f=0x0,_0x22dbd3={},_0x54ca7d={};_0x3d518f<_0x1b298c['length'];_0x3d518f+=0x1){_0x22dbd3=_0x1b298c[_0x3d518f];if(_[_0x41d5('0x46')](_0x1ad39b[_0x41d5('0x21')][_0x22dbd3['id']])){_0x1ad39b[_0x41d5('0x21')][_0x22dbd3['id']]=new ZohoAccount(_0x22dbd3);}else{_0x1ad39b['mergeFromDatabase'](_0x1ad39b[_0x41d5('0x21')][_0x22dbd3['id']],_0x22dbd3);}}}return _0x1ad39b['zohoAccounts'];};};Realtime[_0x41d5('0x41')][_0x41d5('0x4c')]=function(){var _0x4f65da=this;return function(_0x328faf){if(_0x328faf){freeIsNotKey(_0x328faf,_0x4f65da[_0x41d5('0x4d')],'id');for(var _0x27996b=0x0,_0xfc5d0d={},_0x3b8021={};_0x27996b<_0x328faf[_0x41d5('0x44')];_0x27996b+=0x1){_0xfc5d0d=_0x328faf[_0x27996b];if(_[_0x41d5('0x46')](_0x4f65da[_0x41d5('0x4d')][_0xfc5d0d['id']])){_0x4f65da['deskAccounts'][_0xfc5d0d['id']]=new DeskAccount(_0xfc5d0d);}else{_0x4f65da['mergeFromDatabase'](_0x4f65da[_0x41d5('0x4d')][_0xfc5d0d['id']],_0xfc5d0d);}}}return _0x4f65da[_0x41d5('0x4d')];};};Realtime[_0x41d5('0x41')]['initSugarcrmAccounts']=function(){var _0x17aa0f=this;return function(_0x20deed){if(_0x20deed){freeIsNotKey(_0x20deed,_0x17aa0f['sugarcrmAccounts'],'id');for(var _0x397d6a=0x0,_0x512117={},_0x5e383c={};_0x397d6a<_0x20deed['length'];_0x397d6a+=0x1){_0x512117=_0x20deed[_0x397d6a];if(_[_0x41d5('0x46')](_0x17aa0f[_0x41d5('0x20')][_0x512117['id']])){_0x17aa0f[_0x41d5('0x20')][_0x512117['id']]=new SugarcrmAccount(_0x512117);}else{_0x17aa0f[_0x41d5('0x42')](_0x17aa0f['sugarcrmAccounts'][_0x512117['id']],_0x512117);}}}return _0x17aa0f[_0x41d5('0x20')];};};Realtime[_0x41d5('0x41')][_0x41d5('0x4e')]=function(){var _0x11f2ab=this;return function(_0x397c32){if(_0x397c32){freeIsNotKey(_0x397c32,_0x11f2ab[_0x41d5('0x22')],'id');for(var _0x11bbb9=0x0,_0x4526d8={},_0x233041={};_0x11bbb9<_0x397c32[_0x41d5('0x44')];_0x11bbb9+=0x1){_0x4526d8=_0x397c32[_0x11bbb9];if(_[_0x41d5('0x46')](_0x11f2ab[_0x41d5('0x22')][_0x4526d8['id']])){_0x11f2ab[_0x41d5('0x22')][_0x4526d8['id']]=new VtigerAccount(_0x4526d8);}else{_0x11f2ab[_0x41d5('0x42')](_0x11f2ab[_0x41d5('0x22')][_0x4526d8['id']],_0x4526d8);}}}return _0x11f2ab[_0x41d5('0x22')];};};Realtime[_0x41d5('0x41')][_0x41d5('0x4f')]=function(){var _0x6d7c23=this;return function(_0x292e4d){if(_0x292e4d){freeIsNotKey(_0x292e4d,_0x6d7c23['servicenowAccounts'],'id');for(var _0x467162=0x0,_0x27b310={},_0x1cde63={};_0x467162<_0x292e4d[_0x41d5('0x44')];_0x467162+=0x1){_0x27b310=_0x292e4d[_0x467162];if(_[_0x41d5('0x46')](_0x6d7c23[_0x41d5('0x23')][_0x27b310['id']])){_0x6d7c23[_0x41d5('0x23')][_0x27b310['id']]=new ServicenowAccount(_0x27b310);}else{_0x6d7c23['mergeFromDatabase'](_0x6d7c23[_0x41d5('0x23')][_0x27b310['id']],_0x27b310);}}}return _0x6d7c23['servicenowAccounts'];};};Realtime['prototype'][_0x41d5('0x50')]=function(){var _0x439660=this;return function(_0x4dcdd7){if(_0x4dcdd7){freeIsNotKey(_0x4dcdd7,_0x439660['dynamics365Accounts'],'id');for(var _0x25622c=0x0,_0x63140a={},_0x5c4387={};_0x25622c<_0x4dcdd7[_0x41d5('0x44')];_0x25622c+=0x1){_0x63140a=_0x4dcdd7[_0x25622c];if(_['isUndefined'](_0x439660[_0x41d5('0x24')][_0x63140a['id']])){_0x439660['dynamics365Accounts'][_0x63140a['id']]=new Dynamics365Account(_0x63140a);}else{_0x439660[_0x41d5('0x42')](_0x439660[_0x41d5('0x24')][_0x63140a['id']],_0x63140a);}}}return _0x439660[_0x41d5('0x24')];};};Realtime[_0x41d5('0x41')]['initFreshsalesAccounts']=function(){var _0x119300=this;return function(_0x36522f){if(_0x36522f){freeIsNotKey(_0x36522f,_0x119300[_0x41d5('0x25')],'id');for(var _0x35fdb0=0x0,_0x476809={},_0x44f1ce={};_0x35fdb0<_0x36522f[_0x41d5('0x44')];_0x35fdb0+=0x1){_0x476809=_0x36522f[_0x35fdb0];if(_[_0x41d5('0x46')](_0x119300['freshsalesAccounts'][_0x476809['id']])){_0x119300[_0x41d5('0x25')][_0x476809['id']]=new FreshsalesAccount(_0x476809);}else{_0x119300['mergeFromDatabase'](_0x119300[_0x41d5('0x25')][_0x476809['id']],_0x476809);}}}return _0x119300['freshsalesAccounts'];};};Realtime[_0x41d5('0x41')]['initVoiceQueueHopperHistory']=function(){var _0x5b6ee7=this;return function(_0x1dbf34){for(var _0x4aab56=0x0;_0x4aab56<_0x1dbf34[_0x41d5('0x44')];_0x4aab56+=0x1){_['merge'](_0x5b6ee7[_0x41d5('0x14')][_0x1dbf34[_0x4aab56][_0x41d5('0x2a')]],_0x1dbf34[_0x4aab56]);}return _0x5b6ee7['voiceQueues'];};};Realtime[_0x41d5('0x41')][_0x41d5('0x51')]=function(){var _0x3aeb29=this;return function(_0x8c3dec){clearVoiceQueues(_0x3aeb29[_0x41d5('0x14')]);if(_0x8c3dec){_0x8c3dec=_['groupBy'](_0x8c3dec,_0x41d5('0x52'));for(var _0x43e175 in _0x8c3dec){if(_0x8c3dec[_0x41d5('0x28')](_0x43e175)){var _0x5b8eb2={};for(var _0x1df0bb=0x0;_0x1df0bb<_0x8c3dec[_0x43e175][_0x41d5('0x44')];_0x1df0bb+=0x1){var _0x2490d4=_0x8c3dec[_0x43e175][_0x1df0bb]['queue'];if(_0x3aeb29[_0x41d5('0x14')][_0x2490d4]){if(_0x8c3dec[_0x43e175][_0x1df0bb][_0x41d5('0x53')]){_0x3aeb29[_0x41d5('0x14')][_0x2490d4][_0x41d5('0x54')]+=0x1;}if(_0x8c3dec[_0x43e175][_0x1df0bb]['queuecallerabandon']){_0x3aeb29[_0x41d5('0x14')][_0x2490d4][_0x41d5('0x35')]+=0x1;}_0x3aeb29['voiceQueues'][_0x2490d4]['sumHoldTime']+=moment(_0x8c3dec[_0x43e175][_0x1df0bb][_0x41d5('0x55')])[_0x41d5('0x56')](moment(_0x8c3dec[_0x43e175][_0x1df0bb]['queuecallerjoinAt']),'seconds')||0x0;if(_0x1df0bb===_0x8c3dec[_0x43e175][_0x41d5('0x44')]-0x1){_0x3aeb29[_0x41d5('0x14')][_0x2490d4][_0x41d5('0x36')]+=moment(_0x8c3dec[_0x43e175][_0x1df0bb][_0x41d5('0x57')]||_0x8c3dec[_0x43e175][_0x1df0bb][_0x41d5('0x58')]||_0x8c3dec[_0x43e175][_0x1df0bb][_0x41d5('0x59')])[_0x41d5('0x56')](moment(_0x8c3dec[_0x43e175][_0x1df0bb]['queuecallerjoinAt']),_0x41d5('0x5a'))||0x0;_0x3aeb29['voiceQueues'][_0x2490d4][_0x41d5('0x2e')]+=0x1;if(_0x8c3dec[_0x43e175][_0x1df0bb][_0x41d5('0x5b')]){_0x3aeb29[_0x41d5('0x14')][_0x2490d4][_0x41d5('0x34')]+=0x1;_0x3aeb29[_0x41d5('0x14')][_0x2490d4][_0x41d5('0x30')]+=moment(_0x8c3dec[_0x43e175][_0x1df0bb][_0x41d5('0x57')])[_0x41d5('0x56')](moment(_0x8c3dec[_0x43e175][_0x1df0bb][_0x41d5('0x55')]),_0x41d5('0x5a'))||0x0;}}else{_0x3aeb29[_0x41d5('0x14')][_0x2490d4][_0x41d5('0x36')]+=_0x3aeb29[_0x41d5('0x14')][_0x2490d4][_0x41d5('0x2f')]||0x0;}}}}}}return _0x3aeb29[_0x41d5('0x14')];};};Realtime[_0x41d5('0x41')][_0x41d5('0x5c')]=function(){var _0x4d8e5c=this;return function(_0x3cee6c){clearVoiceCallReports(_0x4d8e5c[_0x41d5('0x18')]);if(_0x3cee6c){for(var _0x3e4742=0x0;_0x3e4742<_0x3cee6c[_0x41d5('0x44')];_0x3e4742+=0x1){_0x4d8e5c[_0x41d5('0x18')][_0x41d5('0x2e')]+=0x1;_0x4d8e5c[_0x41d5('0x18')]['sumDuration']+=_0x3cee6c[_0x3e4742]['duration'];if(_0x3cee6c[_0x3e4742][_0x41d5('0x5d')]==='ANSWERED'){_0x4d8e5c[_0x41d5('0x18')][_0x41d5('0x34')]+=0x1;_0x4d8e5c[_0x41d5('0x18')][_0x41d5('0x2f')]+=_0x3cee6c[_0x3e4742][_0x41d5('0x5e')]-_0x3cee6c[_0x3e4742]['billableseconds']||0x0;_0x4d8e5c['outbound'][_0x41d5('0x30')]+=_0x3cee6c[_0x3e4742][_0x41d5('0x5f')];}}}return _0x4d8e5c[_0x41d5('0x18')];};};Realtime[_0x41d5('0x41')][_0x41d5('0x60')]=function(){var _0x3e8315=this;return function(_0x296e36){if(_0x296e36){freeIsNotKey(_0x296e36,_0x3e8315['campaigns'],'name');for(var _0x1bf848=0x0,_0x465bea={};_0x1bf848<_0x296e36['length'];_0x1bf848+=0x1){_0x465bea=_0x296e36[_0x1bf848];if(_['isUndefined'](_0x3e8315[_0x41d5('0x16')][_0x465bea[_0x41d5('0x2a')]])){_0x3e8315['campaigns'][_0x465bea[_0x41d5('0x2a')]]=new Campaign(_0x465bea);}else{_0x3e8315[_0x41d5('0x42')](_0x3e8315[_0x41d5('0x16')][_0x465bea[_0x41d5('0x2a')]],_0x465bea);_0x3e8315[_0x41d5('0x16')][_0x465bea[_0x41d5('0x2a')]][_0x41d5('0x61')]=_0x465bea[_0x41d5('0x62')]?_0x465bea['SquareProject'][_0x41d5('0x2a')]:undefined;}}}return _0x3e8315['campaigns'];};};Realtime[_0x41d5('0x41')][_0x41d5('0x63')]=function(){var _0x37cc1a=this;return function(_0x11bc3b){if(_0x11bc3b){freeIsNotKey(_0x11bc3b,_0x37cc1a['voiceExtensions'],'id');for(var _0x7d34b0=0x0,_0x32b52c={};_0x7d34b0<_0x11bc3b[_0x41d5('0x44')];_0x7d34b0+=0x1){_0x32b52c=_0x11bc3b[_0x7d34b0];if(_[_0x41d5('0x46')](_0x37cc1a[_0x41d5('0x19')][_0x32b52c['id']])){_0x37cc1a['voiceExtensions'][_0x32b52c['id']]=new VoiceExtension(_0x32b52c);}else{_0x37cc1a['mergeFromDatabase'](_0x37cc1a['voiceExtensions'][_0x32b52c['id']],_0x32b52c);}}}return _0x37cc1a[_0x41d5('0x19')];};};Realtime[_0x41d5('0x41')][_0x41d5('0x64')]=function(){var _0x40ef5b=this;return function(_0x60ce2e){clearCampaigns(_0x40ef5b[_0x41d5('0x16')]);for(var _0x4da16d=0x0;_0x4da16d<_0x60ce2e[_0x41d5('0x44')];_0x4da16d+=0x1){_['merge'](_0x40ef5b[_0x41d5('0x16')][_0x60ce2e[_0x4da16d][_0x41d5('0x2a')]],_0x60ce2e[_0x4da16d]);}return _0x40ef5b[_0x41d5('0x16')];};};Realtime['prototype'][_0x41d5('0x65')]=function(){var _0x161891=this;return function(_0x303caa){if(_0x303caa){freeIsNotKey(_0x303caa,_0x161891[_0x41d5('0x26')],'id');for(var _0x63f6b8=0x0,_0xe8ef56={},_0x10d2b3={};_0x63f6b8<_0x303caa[_0x41d5('0x44')];_0x63f6b8+=0x1){_0xe8ef56=_0x303caa[_0x63f6b8];if(_[_0x41d5('0x46')](_0x161891[_0x41d5('0x26')][_0xe8ef56['id']])){_0x161891[_0x41d5('0x26')][_0xe8ef56['id']]=new FaxAccount(_0xe8ef56);}else{_0x161891[_0x41d5('0x42')](_0x161891['faxAccounts'][_0xe8ef56['id']],_0xe8ef56);}}}return _0x161891[_0x41d5('0x26')];};};module[_0x41d5('0x66')]=Realtime;