Built motion from commit e0fa946e.|2.6.5
[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 _0x71ed=['telephones','initVoiceQueues','initTriggers','initZendeskAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','initSugarcrmAccounts','sugarcrmAccounts','initServicenowAccounts','servicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','freshsalesAccounts','initVoiceQueueHopperHistory','merge','initVoiceQueueReports','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','queuecallerleaveAt','seconds','queuecallercompleteAt','queuecallerabandonAt','diff','queuecallercomplete','initVoiceCallReports','duration','disposition','ANSWERED','billableseconds','dialQueueProject','SquareProject','initVoiceExtensions','voiceExtensions','initCampaignHopperHistory','exports','bluebird','util','moment','../model/agent','../model/telephone','../model/voiceQueue','../model/trigger','../model/campaign','../model/voiceExtension','../model/freshdeskAccount','../model/sugarcrmAccount','../model/deskAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','trunks','voiceQueues','triggers','campaigns','templates','outbound','channels','timers','settings','zendeskAccounts','salesforceAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts','dynamics365Accounts','faxAccounts','mapKeys','hasOwnProperty','format','SIP/%s','name','isNil','interface','total','answered','sumHoldTime','sumDuration','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','sumBillable','outboundAnswerAgiCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','mergeFromDatabase','agents','length','isUndefined','prototype','initTelephones'];(function(_0x19fc2f,_0x2509a1){var _0x24a68f=function(_0x544062){while(--_0x544062){_0x19fc2f['push'](_0x19fc2f['shift']());}};_0x24a68f(++_0x2509a1);}(_0x71ed,0xfd));var _0xd71e=function(_0x3a5615,_0x53fe10){_0x3a5615=_0x3a5615-0x0;var _0x544d57=_0x71ed[_0x3a5615];return _0x544d57;};'use strict';var BPromise=require(_0xd71e('0x0'));var util=require(_0xd71e('0x1'));var _=require('lodash');var moment=require(_0xd71e('0x2'));var Agent=require(_0xd71e('0x3'));var Telephone=require(_0xd71e('0x4'));var Trunk=require('../model/trunk');var VoiceQueue=require(_0xd71e('0x5'));var Trigger=require(_0xd71e('0x6'));var Template=require('../model/template');var Campaign=require(_0xd71e('0x7'));var VoiceExtension=require(_0xd71e('0x8'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require('../model/salesforceAccount');var FreshdeskAccount=require(_0xd71e('0x9'));var SugarcrmAccount=require(_0xd71e('0xa'));var ZohoAccount=require('../model/zohoAccount');var DeskAccount=require(_0xd71e('0xb'));var VtigerAccount=require('../model/vtigerAccount');var ServicenowAccount=require(_0xd71e('0xc'));var Dynamics365Account=require(_0xd71e('0xd'));var FreshsalesAccount=require(_0xd71e('0xe'));var FaxAccount=require(_0xd71e('0xf'));var Realtime=function(){this['agents']={};this['telephones']={};this[_0xd71e('0x10')]={};this[_0xd71e('0x11')]={};this[_0xd71e('0x12')]={};this[_0xd71e('0x13')]={};this[_0xd71e('0x14')]={};this[_0xd71e('0x15')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this[_0xd71e('0x16')]={};this['queueChannels']={};this['outboundChannels']={};this[_0xd71e('0x17')]={};this[_0xd71e('0x18')]={};this[_0xd71e('0x19')]={};this[_0xd71e('0x1a')]={};this['sugarcrmAccounts']={};this[_0xd71e('0x1b')]={};this[_0xd71e('0x1c')]={};this[_0xd71e('0x1d')]={};this[_0xd71e('0x1e')]={};this['servicenowAccounts']={};this[_0xd71e('0x1f')]={};this['freshsalesAccounts']={};this[_0xd71e('0x20')]={};};function freeIsNotKey(_0x13bf84,_0x935894,_0x4bfc6f){var _0x214336=_[_0xd71e('0x21')](_0x13bf84,function(_0x2f2685,_0x37c1e4){return _0x2f2685[_0x4bfc6f];});for(var _0x2e4eab in _0x935894){if(_0x935894[_0xd71e('0x22')](_0x2e4eab)){if(!_0x214336[_0x2e4eab]){delete _0x935894[_0x2e4eab];}}}}function freeIsNotKeySip(_0x33531a,_0x253c7b){var _0x2f25e0=_[_0xd71e('0x21')](_0x33531a,function(_0x36e318,_0x483607){return util[_0xd71e('0x23')](_0xd71e('0x24'),_0x36e318[_0xd71e('0x25')]);});for(var _0xffe318 in _0x253c7b){if(_0x253c7b['hasOwnProperty'](_0xffe318)){if(!_0x2f25e0[_0xffe318]){delete _0x253c7b[_0xffe318];}}}}function freeIsNotKeyAgent(_0x14053d,_0x52bf47){var _0x4f8c94=_[_0xd71e('0x21')](_0x14053d,function(_0x3c992f,_0x270c32){var _0x46e58a=_[_0xd71e('0x26')](_0x3c992f[_0xd71e('0x27')])?util[_0xd71e('0x23')](_0xd71e('0x24'),_0x3c992f['name']):_0x3c992f[_0xd71e('0x27')];return _0x46e58a;});for(var _0x5e67ee in _0x52bf47){if(_0x52bf47[_0xd71e('0x22')](_0x5e67ee)){if(!_0x4f8c94[_0x5e67ee]){delete _0x52bf47[_0x5e67ee];}}}}function clearVoiceCallReports(_0x2dd6bd){_0x2dd6bd[_0xd71e('0x28')]=0x0;_0x2dd6bd[_0xd71e('0x29')]=0x0;_0x2dd6bd[_0xd71e('0x2a')]=0x0;_0x2dd6bd[_0xd71e('0x2b')]=0x0;_0x2dd6bd['sumBillable']=0x0;}function clearCampaigns(_0xede595){if(!_[_0xd71e('0x2c')](_0xede595)){for(var _0x3a6ccc in _0xede595){if(_0xede595['hasOwnProperty'](_0x3a6ccc)){_0xede595[_0x3a6ccc][_0xd71e('0x2d')]=0x0;_0xede595[_0x3a6ccc][_0xd71e('0x2e')]=0x0;}}}}function clearVoiceQueues(_0x450c5a){if(!_[_0xd71e('0x2c')](_0x450c5a)){for(var _0x2b67b3 in _0x450c5a){if(_0x450c5a[_0xd71e('0x22')](_0x2b67b3)){_0x450c5a[_0x2b67b3]['total']=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x29')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x2f')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x30')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x2a')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x2b')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x31')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x32')]=0x0;_0x450c5a[_0x2b67b3]['outboundNoAnswerCallsDay']=0x0;_0x450c5a[_0x2b67b3]['outboundBusyCallsDay']=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x33')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x34')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x35')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x36')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x37')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x38')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x39')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x3a')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x3b')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x32')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x3c')]=0x0;_0x450c5a[_0x2b67b3][_0xd71e('0x3d')]=!![];}}}}Realtime['prototype'][_0xd71e('0x3e')]=function(_0x25a7b2,_0x48b616){for(var _0x3ad00c in _0x48b616){if(_0x25a7b2[_0xd71e('0x22')](_0x3ad00c)){_0x25a7b2[_0x3ad00c]=_0x48b616[_0x3ad00c];}}};Realtime['prototype']['initAgents']=function(){var _0x33ba89=this;return function(_0x3aa2d9){if(_0x3aa2d9){freeIsNotKeyAgent(_0x3aa2d9,_0x33ba89[_0xd71e('0x3f')]);for(var _0x57f67a=0x0,_0x5f2b68={},_0x27745e={};_0x57f67a<_0x3aa2d9[_0xd71e('0x40')];_0x57f67a+=0x1){_0x5f2b68=_0x3aa2d9[_0x57f67a];var _0x35e4cd=_[_0xd71e('0x26')](_0x5f2b68[_0xd71e('0x27')])?util[_0xd71e('0x23')](_0xd71e('0x24'),_0x5f2b68[_0xd71e('0x25')]):_0x5f2b68[_0xd71e('0x27')];if(_[_0xd71e('0x41')](_0x33ba89[_0xd71e('0x3f')][_0x35e4cd])){_0x33ba89[_0xd71e('0x3f')][_0x35e4cd]=new Agent(_0x5f2b68);}else{_0x33ba89[_0xd71e('0x3e')](_0x33ba89['agents'][_0x35e4cd],_0x5f2b68);}}}return _0x33ba89[_0xd71e('0x3f')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x43')]=function(){var _0x233cf4=this;return function(_0x386404){if(_0x386404){freeIsNotKeySip(_0x386404,_0x233cf4[_0xd71e('0x44')]);for(var _0x22d209=0x0,_0x427188={},_0x26e028={};_0x22d209<_0x386404[_0xd71e('0x40')];_0x22d209+=0x1){_0x427188=_0x386404[_0x22d209];if(_[_0xd71e('0x41')](_0x233cf4['telephones'][util[_0xd71e('0x23')](_0xd71e('0x24'),_0x427188[_0xd71e('0x25')])])){_0x233cf4[_0xd71e('0x44')][util['format'](_0xd71e('0x24'),_0x427188['name'])]=new Telephone(_0x427188);}else{_0x233cf4[_0xd71e('0x3e')](_0x233cf4[_0xd71e('0x44')][util[_0xd71e('0x23')]('SIP/%s',_0x427188[_0xd71e('0x25')])],_0x427188);}}}return _0x233cf4[_0xd71e('0x44')];};};Realtime[_0xd71e('0x42')]['initTrunks']=function(){var _0x3490c5=this;return function(_0x1dffdd){if(_0x1dffdd){freeIsNotKeySip(_0x1dffdd,_0x3490c5[_0xd71e('0x10')]);for(var _0x232769=0x0,_0x41e5d1={},_0x3fb1a2={};_0x232769<_0x1dffdd[_0xd71e('0x40')];_0x232769+=0x1){_0x41e5d1=_0x1dffdd[_0x232769];if(_['isUndefined'](_0x3490c5['trunks'][util['format'](_0xd71e('0x24'),_0x41e5d1[_0xd71e('0x25')])])){_0x3490c5['trunks'][util['format'](_0xd71e('0x24'),_0x41e5d1[_0xd71e('0x25')])]=new Trunk(_0x41e5d1);}else{_0x3490c5[_0xd71e('0x3e')](_0x3490c5[_0xd71e('0x10')][util[_0xd71e('0x23')]('SIP/%s',_0x41e5d1[_0xd71e('0x25')])],_0x41e5d1);}}}return _0x3490c5[_0xd71e('0x10')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x45')]=function(){var _0x52beb8=this;return function(_0x501a0f){if(_0x501a0f){freeIsNotKey(_0x501a0f,_0x52beb8['voiceQueues'],_0xd71e('0x25'));for(var _0x5a43d7=0x0,_0x568417={},_0x1f7030={};_0x5a43d7<_0x501a0f[_0xd71e('0x40')];_0x5a43d7+=0x1){_0x568417=_0x501a0f[_0x5a43d7];if(_[_0xd71e('0x41')](_0x52beb8[_0xd71e('0x11')][_0x568417[_0xd71e('0x25')]])){_0x52beb8['voiceQueues'][_0x568417[_0xd71e('0x25')]]=new VoiceQueue(_0x568417);}else{_0x52beb8[_0xd71e('0x3e')](_0x52beb8[_0xd71e('0x11')][_0x568417[_0xd71e('0x25')]],_0x568417);}}}return _0x52beb8[_0xd71e('0x11')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x46')]=function(){var _0x5be5cb=this;return function(_0x40ad21){if(_0x40ad21){freeIsNotKey(_0x40ad21,_0x5be5cb[_0xd71e('0x12')],'id');for(var _0x1c4188=0x0,_0x139fbe={},_0x4420e9={};_0x1c4188<_0x40ad21['length'];_0x1c4188+=0x1){_0x139fbe=_0x40ad21[_0x1c4188];if(_[_0xd71e('0x41')](_0x5be5cb['triggers'][_0x139fbe['id']])){_0x5be5cb[_0xd71e('0x12')][_0x139fbe['id']]=new Trigger(_0x139fbe);}else{_0x5be5cb[_0xd71e('0x3e')](_0x5be5cb[_0xd71e('0x12')][_0x139fbe['id']],_0x139fbe);}}}return _0x5be5cb[_0xd71e('0x12')];};};Realtime[_0xd71e('0x42')]['initTemplates']=function(){var _0x5f0f8d=this;return function(_0xa6a15a){if(_0xa6a15a){freeIsNotKey(_0xa6a15a,_0x5f0f8d[_0xd71e('0x14')],'id');for(var _0xced29b=0x0,_0x10853d={},_0x2f4f91={};_0xced29b<_0xa6a15a[_0xd71e('0x40')];_0xced29b+=0x1){_0x10853d=_0xa6a15a[_0xced29b];if(_[_0xd71e('0x41')](_0x5f0f8d['templates'][_0x10853d['id']])){_0x5f0f8d[_0xd71e('0x14')][_0x10853d['id']]=new Template(_0x10853d);}else{_0x5f0f8d[_0xd71e('0x3e')](_0x5f0f8d[_0xd71e('0x14')][_0x10853d['id']],_0x10853d);}}}return _0x5f0f8d[_0xd71e('0x14')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x47')]=function(){var _0x2ecfb5=this;return function(_0x3e7526){if(_0x3e7526){freeIsNotKey(_0x3e7526,_0x2ecfb5['zendeskAccounts'],'id');for(var _0x160480=0x0,_0x5f1536={},_0x2027fc={};_0x160480<_0x3e7526[_0xd71e('0x40')];_0x160480+=0x1){_0x5f1536=_0x3e7526[_0x160480];if(_['isUndefined'](_0x2ecfb5[_0xd71e('0x19')][_0x5f1536['id']])){_0x2ecfb5[_0xd71e('0x19')][_0x5f1536['id']]=new ZendeskAccount(_0x5f1536);}else{_0x2ecfb5[_0xd71e('0x3e')](_0x2ecfb5[_0xd71e('0x19')][_0x5f1536['id']],_0x5f1536);}}}return _0x2ecfb5['zendeskAccounts'];};};Realtime[_0xd71e('0x42')]['initSalesforceAccounts']=function(){var _0x1f075a=this;return function(_0x529231){if(_0x529231){freeIsNotKey(_0x529231,_0x1f075a['salesforceAccounts'],'id');for(var _0x1709ec=0x0,_0x43bae0={},_0x4f3c23={};_0x1709ec<_0x529231[_0xd71e('0x40')];_0x1709ec+=0x1){_0x43bae0=_0x529231[_0x1709ec];if(_[_0xd71e('0x41')](_0x1f075a[_0xd71e('0x1a')][_0x43bae0['id']])){_0x1f075a[_0xd71e('0x1a')][_0x43bae0['id']]=new SalesforceAccount(_0x43bae0);}else{_0x1f075a[_0xd71e('0x3e')](_0x1f075a[_0xd71e('0x1a')][_0x43bae0['id']],_0x43bae0);}}}return _0x1f075a[_0xd71e('0x1a')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x48')]=function(){var _0xc78051=this;return function(_0x25c419){if(_0x25c419){freeIsNotKey(_0x25c419,_0xc78051['freshdeskAccounts'],'id');for(var _0x22b8d5=0x0,_0x58234c={},_0x411bac={};_0x22b8d5<_0x25c419['length'];_0x22b8d5+=0x1){_0x58234c=_0x25c419[_0x22b8d5];if(_[_0xd71e('0x41')](_0xc78051[_0xd71e('0x1b')][_0x58234c['id']])){_0xc78051[_0xd71e('0x1b')][_0x58234c['id']]=new FreshdeskAccount(_0x58234c);}else{_0xc78051[_0xd71e('0x3e')](_0xc78051[_0xd71e('0x1b')][_0x58234c['id']],_0x58234c);}}}return _0xc78051[_0xd71e('0x1b')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x49')]=function(){var _0x40bc45=this;return function(_0x423dde){if(_0x423dde){freeIsNotKey(_0x423dde,_0x40bc45[_0xd71e('0x1c')],'id');for(var _0x7ce860=0x0,_0x11a445={},_0x343afd={};_0x7ce860<_0x423dde['length'];_0x7ce860+=0x1){_0x11a445=_0x423dde[_0x7ce860];if(_['isUndefined'](_0x40bc45[_0xd71e('0x1c')][_0x11a445['id']])){_0x40bc45[_0xd71e('0x1c')][_0x11a445['id']]=new ZohoAccount(_0x11a445);}else{_0x40bc45['mergeFromDatabase'](_0x40bc45[_0xd71e('0x1c')][_0x11a445['id']],_0x11a445);}}}return _0x40bc45['zohoAccounts'];};};Realtime[_0xd71e('0x42')][_0xd71e('0x4a')]=function(){var _0x8e73e3=this;return function(_0x50035b){if(_0x50035b){freeIsNotKey(_0x50035b,_0x8e73e3[_0xd71e('0x1d')],'id');for(var _0x3aaac4=0x0,_0x1b77d3={},_0x595070={};_0x3aaac4<_0x50035b['length'];_0x3aaac4+=0x1){_0x1b77d3=_0x50035b[_0x3aaac4];if(_['isUndefined'](_0x8e73e3[_0xd71e('0x1d')][_0x1b77d3['id']])){_0x8e73e3[_0xd71e('0x1d')][_0x1b77d3['id']]=new DeskAccount(_0x1b77d3);}else{_0x8e73e3[_0xd71e('0x3e')](_0x8e73e3[_0xd71e('0x1d')][_0x1b77d3['id']],_0x1b77d3);}}}return _0x8e73e3[_0xd71e('0x1d')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x4b')]=function(){var _0x236976=this;return function(_0x58a897){if(_0x58a897){freeIsNotKey(_0x58a897,_0x236976[_0xd71e('0x4c')],'id');for(var _0x4df1d5=0x0,_0x1d4d76={},_0x294519={};_0x4df1d5<_0x58a897[_0xd71e('0x40')];_0x4df1d5+=0x1){_0x1d4d76=_0x58a897[_0x4df1d5];if(_['isUndefined'](_0x236976[_0xd71e('0x4c')][_0x1d4d76['id']])){_0x236976[_0xd71e('0x4c')][_0x1d4d76['id']]=new SugarcrmAccount(_0x1d4d76);}else{_0x236976[_0xd71e('0x3e')](_0x236976[_0xd71e('0x4c')][_0x1d4d76['id']],_0x1d4d76);}}}return _0x236976[_0xd71e('0x4c')];};};Realtime['prototype']['initVtigerAccounts']=function(){var _0xc41dae=this;return function(_0x16520a){if(_0x16520a){freeIsNotKey(_0x16520a,_0xc41dae[_0xd71e('0x1e')],'id');for(var _0x5ea1be=0x0,_0x1b67af={},_0x2113a4={};_0x5ea1be<_0x16520a['length'];_0x5ea1be+=0x1){_0x1b67af=_0x16520a[_0x5ea1be];if(_[_0xd71e('0x41')](_0xc41dae[_0xd71e('0x1e')][_0x1b67af['id']])){_0xc41dae[_0xd71e('0x1e')][_0x1b67af['id']]=new VtigerAccount(_0x1b67af);}else{_0xc41dae['mergeFromDatabase'](_0xc41dae[_0xd71e('0x1e')][_0x1b67af['id']],_0x1b67af);}}}return _0xc41dae[_0xd71e('0x1e')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x4d')]=function(){var _0x516e26=this;return function(_0x78406d){if(_0x78406d){freeIsNotKey(_0x78406d,_0x516e26[_0xd71e('0x4e')],'id');for(var _0x480293=0x0,_0x5d6869={},_0x39986b={};_0x480293<_0x78406d[_0xd71e('0x40')];_0x480293+=0x1){_0x5d6869=_0x78406d[_0x480293];if(_['isUndefined'](_0x516e26['servicenowAccounts'][_0x5d6869['id']])){_0x516e26[_0xd71e('0x4e')][_0x5d6869['id']]=new ServicenowAccount(_0x5d6869);}else{_0x516e26[_0xd71e('0x3e')](_0x516e26[_0xd71e('0x4e')][_0x5d6869['id']],_0x5d6869);}}}return _0x516e26[_0xd71e('0x4e')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x4f')]=function(){var _0x264a11=this;return function(_0x26896b){if(_0x26896b){freeIsNotKey(_0x26896b,_0x264a11[_0xd71e('0x1f')],'id');for(var _0x5eb469=0x0,_0x398673={},_0x524094={};_0x5eb469<_0x26896b[_0xd71e('0x40')];_0x5eb469+=0x1){_0x398673=_0x26896b[_0x5eb469];if(_[_0xd71e('0x41')](_0x264a11[_0xd71e('0x1f')][_0x398673['id']])){_0x264a11[_0xd71e('0x1f')][_0x398673['id']]=new Dynamics365Account(_0x398673);}else{_0x264a11['mergeFromDatabase'](_0x264a11[_0xd71e('0x1f')][_0x398673['id']],_0x398673);}}}return _0x264a11[_0xd71e('0x1f')];};};Realtime[_0xd71e('0x42')][_0xd71e('0x50')]=function(){var _0xa57ab0=this;return function(_0x2d9f43){if(_0x2d9f43){freeIsNotKey(_0x2d9f43,_0xa57ab0['freshsalesAccounts'],'id');for(var _0x291241=0x0,_0x2b7e94={},_0x544790={};_0x291241<_0x2d9f43[_0xd71e('0x40')];_0x291241+=0x1){_0x2b7e94=_0x2d9f43[_0x291241];if(_['isUndefined'](_0xa57ab0[_0xd71e('0x51')][_0x2b7e94['id']])){_0xa57ab0[_0xd71e('0x51')][_0x2b7e94['id']]=new FreshsalesAccount(_0x2b7e94);}else{_0xa57ab0['mergeFromDatabase'](_0xa57ab0['freshsalesAccounts'][_0x2b7e94['id']],_0x2b7e94);}}}return _0xa57ab0['freshsalesAccounts'];};};Realtime['prototype'][_0xd71e('0x52')]=function(){var _0x1f57a6=this;return function(_0x5a51c0){for(var _0x5b793b=0x0;_0x5b793b<_0x5a51c0[_0xd71e('0x40')];_0x5b793b+=0x1){_[_0xd71e('0x53')](_0x1f57a6[_0xd71e('0x11')][_0x5a51c0[_0x5b793b][_0xd71e('0x25')]],_0x5a51c0[_0x5b793b]);}return _0x1f57a6[_0xd71e('0x11')];};};Realtime['prototype'][_0xd71e('0x54')]=function(){var _0x2cbca1=this;return function(_0x1982fc){clearVoiceQueues(_0x2cbca1[_0xd71e('0x11')]);if(_0x1982fc){_0x1982fc=_[_0xd71e('0x55')](_0x1982fc,_0xd71e('0x56'));for(var _0x42d74c in _0x1982fc){if(_0x1982fc[_0xd71e('0x22')](_0x42d74c)){var _0x4c0934={};for(var _0x3d0a98=0x0;_0x3d0a98<_0x1982fc[_0x42d74c][_0xd71e('0x40')];_0x3d0a98+=0x1){var _0x1b2877=_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x57')];if(_0x2cbca1[_0xd71e('0x11')][_0x1b2877]){if(_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x58')]){_0x2cbca1['voiceQueues'][_0x1b2877]['unmanaged']+=0x1;}if(_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x59')]){_0x2cbca1[_0xd71e('0x11')][_0x1b2877][_0xd71e('0x30')]+=0x1;}_0x2cbca1['voiceQueues'][_0x1b2877][_0xd71e('0x2a')]+=moment(_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x5a')])['diff'](moment(_0x1982fc[_0x42d74c][_0x3d0a98]['queuecallerjoinAt']),_0xd71e('0x5b'))||0x0;if(_0x3d0a98===_0x1982fc[_0x42d74c]['length']-0x1){_0x2cbca1[_0xd71e('0x11')][_0x1b2877][_0xd71e('0x2b')]+=moment(_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x5c')]||_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x5d')]||_0x1982fc[_0x42d74c][_0x3d0a98]['queuecallerexitAt'])[_0xd71e('0x5e')](moment(_0x1982fc[_0x42d74c][_0x3d0a98]['queuecallerjoinAt']),_0xd71e('0x5b'))||0x0;_0x2cbca1[_0xd71e('0x11')][_0x1b2877][_0xd71e('0x28')]+=0x1;if(_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x5f')]){_0x2cbca1[_0xd71e('0x11')][_0x1b2877]['answered']+=0x1;_0x2cbca1['voiceQueues'][_0x1b2877][_0xd71e('0x31')]+=moment(_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x5c')])[_0xd71e('0x5e')](moment(_0x1982fc[_0x42d74c][_0x3d0a98][_0xd71e('0x5a')]),'seconds')||0x0;}}else{_0x2cbca1['voiceQueues'][_0x1b2877][_0xd71e('0x2b')]+=_0x2cbca1[_0xd71e('0x11')][_0x1b2877][_0xd71e('0x2a')]||0x0;}}}}}}return _0x2cbca1[_0xd71e('0x11')];};};Realtime['prototype'][_0xd71e('0x60')]=function(){var _0x4b6dd7=this;return function(_0x23eb75){clearVoiceCallReports(_0x4b6dd7[_0xd71e('0x15')]);if(_0x23eb75){for(var _0x93be63=0x0;_0x93be63<_0x23eb75[_0xd71e('0x40')];_0x93be63+=0x1){_0x4b6dd7[_0xd71e('0x15')]['total']+=0x1;_0x4b6dd7[_0xd71e('0x15')][_0xd71e('0x2b')]+=_0x23eb75[_0x93be63][_0xd71e('0x61')];if(_0x23eb75[_0x93be63][_0xd71e('0x62')]===_0xd71e('0x63')){_0x4b6dd7[_0xd71e('0x15')][_0xd71e('0x29')]+=0x1;_0x4b6dd7[_0xd71e('0x15')][_0xd71e('0x2a')]+=_0x23eb75[_0x93be63]['duration']-_0x23eb75[_0x93be63][_0xd71e('0x64')]||0x0;_0x4b6dd7['outbound']['sumBillable']+=_0x23eb75[_0x93be63]['billableseconds'];}}}return _0x4b6dd7[_0xd71e('0x15')];};};Realtime['prototype']['initCampaigns']=function(){var _0x13c622=this;return function(_0x484ddf){if(_0x484ddf){freeIsNotKey(_0x484ddf,_0x13c622['campaigns'],_0xd71e('0x25'));for(var _0x46eb27=0x0,_0xa7d264={};_0x46eb27<_0x484ddf[_0xd71e('0x40')];_0x46eb27+=0x1){_0xa7d264=_0x484ddf[_0x46eb27];if(_[_0xd71e('0x41')](_0x13c622[_0xd71e('0x13')][_0xa7d264[_0xd71e('0x25')]])){_0x13c622['campaigns'][_0xa7d264[_0xd71e('0x25')]]=new Campaign(_0xa7d264);}else{_0x13c622[_0xd71e('0x3e')](_0x13c622['campaigns'][_0xa7d264[_0xd71e('0x25')]],_0xa7d264);_0x13c622[_0xd71e('0x13')][_0xa7d264[_0xd71e('0x25')]][_0xd71e('0x65')]=_0xa7d264[_0xd71e('0x66')]?_0xa7d264['SquareProject'][_0xd71e('0x25')]:undefined;}}}return _0x13c622[_0xd71e('0x13')];};};Realtime['prototype'][_0xd71e('0x67')]=function(){var _0x522b0e=this;return function(_0x48f5a4){if(_0x48f5a4){freeIsNotKey(_0x48f5a4,_0x522b0e[_0xd71e('0x68')],'id');for(var _0xf00944=0x0,_0x29e2be={};_0xf00944<_0x48f5a4[_0xd71e('0x40')];_0xf00944+=0x1){_0x29e2be=_0x48f5a4[_0xf00944];if(_[_0xd71e('0x41')](_0x522b0e[_0xd71e('0x68')][_0x29e2be['id']])){_0x522b0e[_0xd71e('0x68')][_0x29e2be['id']]=new VoiceExtension(_0x29e2be);}else{_0x522b0e['mergeFromDatabase'](_0x522b0e[_0xd71e('0x68')][_0x29e2be['id']],_0x29e2be);}}}return _0x522b0e['voiceExtensions'];};};Realtime['prototype'][_0xd71e('0x69')]=function(){var _0x37acb0=this;return function(_0xd97847){clearCampaigns(_0x37acb0[_0xd71e('0x13')]);for(var _0x4e7896=0x0;_0x4e7896<_0xd97847[_0xd71e('0x40')];_0x4e7896+=0x1){_[_0xd71e('0x53')](_0x37acb0[_0xd71e('0x13')][_0xd97847[_0x4e7896]['name']],_0xd97847[_0x4e7896]);}return _0x37acb0['campaigns'];};};Realtime[_0xd71e('0x42')]['initFaxAccounts']=function(){var _0xc4ef17=this;return function(_0x2209c2){if(_0x2209c2){freeIsNotKey(_0x2209c2,_0xc4ef17[_0xd71e('0x20')],'id');for(var _0x13f6a3=0x0,_0xa3fa38={},_0x1c4ab1={};_0x13f6a3<_0x2209c2[_0xd71e('0x40')];_0x13f6a3+=0x1){_0xa3fa38=_0x2209c2[_0x13f6a3];if(_['isUndefined'](_0xc4ef17[_0xd71e('0x20')][_0xa3fa38['id']])){_0xc4ef17[_0xd71e('0x20')][_0xa3fa38['id']]=new FaxAccount(_0xa3fa38);}else{_0xc4ef17[_0xd71e('0x3e')](_0xc4ef17[_0xd71e('0x20')][_0xa3fa38['id']],_0xa3fa38);}}}return _0xc4ef17[_0xd71e('0x20')];};};module[_0xd71e('0x6a')]=Realtime;