71f1e3de363d95f3d240f0515dd58a21586ce6fc
[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 _0xb72f=['vtigerAccounts','servicenowAccounts','dynamics365Accounts','faxAccounts','mapKeys','hasOwnProperty','format','SIP/%s','isNil','interface','total','sumHoldTime','sumBillable','ivrAnswerCallsDay','isEmpty','unmanaged','abandoned','sumDuration','outboundAnswerAgiCallsDay','outboundBusyCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','mergeFromDatabase','name','initTelephones','initTrunks','trunks','length','initVoiceQueues','initTriggers','isUndefined','initZendeskAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','initSugarcrmAccounts','initVtigerAccounts','initDynamics365Accounts','initFreshsalesAccounts','freshsalesAccounts','initVoiceQueueHopperHistory','initVoiceQueueReports','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','queuecallerleaveAt','diff','queuecallerjoinAt','queuecallercompleteAt','queuecallerabandonAt','seconds','queuecallercomplete','initVoiceCallReports','outbound','duration','disposition','ANSWERED','answered','billableseconds','SquareProject','voiceExtensions','initCampaignHopperHistory','merge','exports','bluebird','lodash','../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/vtigerAccount','../model/servicenowAccount','../model/faxAccount','agents','telephones','voiceQueues','triggers','campaigns','templates','channels','queueChannels','outboundChannels','timers','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','deskAccounts'];(function(_0x24b388,_0x15e440){var _0x1b9285=function(_0xc94395){while(--_0xc94395){_0x24b388['push'](_0x24b388['shift']());}};_0x1b9285(++_0x15e440);}(_0xb72f,0x188));var _0xfb72=function(_0x12d951,_0x249808){_0x12d951=_0x12d951-0x0;var _0x44de17=_0xb72f[_0x12d951];return _0x44de17;};'use strict';var BPromise=require(_0xfb72('0x0'));var util=require('util');var _=require(_0xfb72('0x1'));var moment=require('moment');var Agent=require('../model/agent');var Telephone=require(_0xfb72('0x2'));var Trunk=require(_0xfb72('0x3'));var VoiceQueue=require(_0xfb72('0x4'));var Trigger=require(_0xfb72('0x5'));var Template=require(_0xfb72('0x6'));var Campaign=require(_0xfb72('0x7'));var VoiceExtension=require(_0xfb72('0x8'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require(_0xfb72('0x9'));var FreshdeskAccount=require(_0xfb72('0xa'));var SugarcrmAccount=require(_0xfb72('0xb'));var ZohoAccount=require(_0xfb72('0xc'));var DeskAccount=require('../model/deskAccount');var VtigerAccount=require(_0xfb72('0xd'));var ServicenowAccount=require(_0xfb72('0xe'));var Dynamics365Account=require('../model/dynamics365Account');var FreshsalesAccount=require('../model/freshsalesAccount');var FaxAccount=require(_0xfb72('0xf'));var Realtime=function(){this[_0xfb72('0x10')]={};this[_0xfb72('0x11')]={};this['trunks']={};this[_0xfb72('0x12')]={};this[_0xfb72('0x13')]={};this[_0xfb72('0x14')]={};this[_0xfb72('0x15')]={};this['outbound']={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this[_0xfb72('0x16')]={};this[_0xfb72('0x17')]={};this[_0xfb72('0x18')]={};this[_0xfb72('0x19')]={};this[_0xfb72('0x1a')]={};this[_0xfb72('0x1b')]={};this[_0xfb72('0x1c')]={};this[_0xfb72('0x1d')]={};this[_0xfb72('0x1e')]={};this[_0xfb72('0x1f')]={};this[_0xfb72('0x20')]={};this[_0xfb72('0x21')]={};this[_0xfb72('0x22')]={};this['freshsalesAccounts']={};this[_0xfb72('0x23')]={};};function freeIsNotKey(_0x57f306,_0x54b5e1,_0x3b3809){var _0x3f3d1d=_[_0xfb72('0x24')](_0x57f306,function(_0x310c92,_0x4b2b28){return _0x310c92[_0x3b3809];});for(var _0x47f3e in _0x54b5e1){if(_0x54b5e1[_0xfb72('0x25')](_0x47f3e)){if(!_0x3f3d1d[_0x47f3e]){delete _0x54b5e1[_0x47f3e];}}}}function freeIsNotKeySip(_0xef0569,_0x503805){var _0xc364e7=_[_0xfb72('0x24')](_0xef0569,function(_0xcf1d39,_0x54ae81){return util[_0xfb72('0x26')](_0xfb72('0x27'),_0xcf1d39['name']);});for(var _0xd6d296 in _0x503805){if(_0x503805[_0xfb72('0x25')](_0xd6d296)){if(!_0xc364e7[_0xd6d296]){delete _0x503805[_0xd6d296];}}}}function freeIsNotKeyAgent(_0x44c191,_0x36e0e3){var _0x5d6cc5=_['mapKeys'](_0x44c191,function(_0x78da20,_0x25a0da){var _0x4eeb4c=_[_0xfb72('0x28')](_0x78da20[_0xfb72('0x29')])?util[_0xfb72('0x26')]('SIP/%s',_0x78da20['name']):_0x78da20[_0xfb72('0x29')];return _0x4eeb4c;});for(var _0x1b9a28 in _0x36e0e3){if(_0x36e0e3['hasOwnProperty'](_0x1b9a28)){if(!_0x5d6cc5[_0x1b9a28]){delete _0x36e0e3[_0x1b9a28];}}}}function clearVoiceCallReports(_0x3e1c28){_0x3e1c28[_0xfb72('0x2a')]=0x0;_0x3e1c28['answered']=0x0;_0x3e1c28[_0xfb72('0x2b')]=0x0;_0x3e1c28['sumDuration']=0x0;_0x3e1c28[_0xfb72('0x2c')]=0x0;}function clearCampaigns(_0x291c4c){if(!_['isEmpty'](_0x291c4c)){for(var _0x402793 in _0x291c4c){if(_0x291c4c[_0xfb72('0x25')](_0x402793)){_0x291c4c[_0x402793]['ivrTotalCallsDays']=0x0;_0x291c4c[_0x402793][_0xfb72('0x2d')]=0x0;}}}}function clearVoiceQueues(_0x1317b0){if(!_[_0xfb72('0x2e')](_0x1317b0)){for(var _0x413a93 in _0x1317b0){if(_0x1317b0[_0xfb72('0x25')](_0x413a93)){_0x1317b0[_0x413a93][_0xfb72('0x2a')]=0x0;_0x1317b0[_0x413a93]['answered']=0x0;_0x1317b0[_0x413a93][_0xfb72('0x2f')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x30')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x2b')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x31')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x2c')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x32')]=0x0;_0x1317b0[_0x413a93]['outboundNoAnswerCallsDay']=0x0;_0x1317b0[_0x413a93][_0xfb72('0x33')]=0x0;_0x1317b0[_0x413a93]['outboundCongestionCallsDay']=0x0;_0x1317b0[_0x413a93][_0xfb72('0x34')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x35')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x36')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x37')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x38')]=0x0;_0x1317b0[_0x413a93]['outboundOriginateFailureCallsDay']=0x0;_0x1317b0[_0x413a93][_0xfb72('0x39')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x3a')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x32')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x3b')]=0x0;_0x1317b0[_0x413a93][_0xfb72('0x3c')]=!![];}}}}Realtime[_0xfb72('0x3d')][_0xfb72('0x3e')]=function(_0x556c18,_0x24dcd9){for(var _0x11df6b in _0x24dcd9){if(_0x556c18[_0xfb72('0x25')](_0x11df6b)){_0x556c18[_0x11df6b]=_0x24dcd9[_0x11df6b];}}};Realtime[_0xfb72('0x3d')]['initAgents']=function(){var _0x2583d1=this;return function(_0x291535){if(_0x291535){freeIsNotKeyAgent(_0x291535,_0x2583d1['agents']);for(var _0xbabd08=0x0,_0x37d25f={},_0xc040d8={};_0xbabd08<_0x291535['length'];_0xbabd08+=0x1){_0x37d25f=_0x291535[_0xbabd08];var _0x28ac09=_[_0xfb72('0x28')](_0x37d25f['interface'])?util[_0xfb72('0x26')](_0xfb72('0x27'),_0x37d25f[_0xfb72('0x3f')]):_0x37d25f['interface'];if(_['isUndefined'](_0x2583d1[_0xfb72('0x10')][_0x28ac09])){_0x2583d1['agents'][_0x28ac09]=new Agent(_0x37d25f);}else{_0x2583d1[_0xfb72('0x3e')](_0x2583d1[_0xfb72('0x10')][_0x28ac09],_0x37d25f);}}}return _0x2583d1['agents'];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x40')]=function(){var _0x529876=this;return function(_0x6fd97c){if(_0x6fd97c){freeIsNotKeySip(_0x6fd97c,_0x529876['telephones']);for(var _0x37550c=0x0,_0x40fa27={},_0x3c2aa5={};_0x37550c<_0x6fd97c['length'];_0x37550c+=0x1){_0x40fa27=_0x6fd97c[_0x37550c];if(_['isUndefined'](_0x529876[_0xfb72('0x11')][util[_0xfb72('0x26')](_0xfb72('0x27'),_0x40fa27[_0xfb72('0x3f')])])){_0x529876[_0xfb72('0x11')][util[_0xfb72('0x26')]('SIP/%s',_0x40fa27[_0xfb72('0x3f')])]=new Telephone(_0x40fa27);}else{_0x529876['mergeFromDatabase'](_0x529876['telephones'][util[_0xfb72('0x26')]('SIP/%s',_0x40fa27[_0xfb72('0x3f')])],_0x40fa27);}}}return _0x529876[_0xfb72('0x11')];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x41')]=function(){var _0x4bbbf0=this;return function(_0x30d3df){if(_0x30d3df){freeIsNotKeySip(_0x30d3df,_0x4bbbf0[_0xfb72('0x42')]);for(var _0x5b257c=0x0,_0x4a018c={},_0x1f6e5d={};_0x5b257c<_0x30d3df[_0xfb72('0x43')];_0x5b257c+=0x1){_0x4a018c=_0x30d3df[_0x5b257c];if(_['isUndefined'](_0x4bbbf0[_0xfb72('0x42')][util['format'](_0xfb72('0x27'),_0x4a018c[_0xfb72('0x3f')])])){_0x4bbbf0[_0xfb72('0x42')][util[_0xfb72('0x26')](_0xfb72('0x27'),_0x4a018c[_0xfb72('0x3f')])]=new Trunk(_0x4a018c);}else{_0x4bbbf0[_0xfb72('0x3e')](_0x4bbbf0[_0xfb72('0x42')][util[_0xfb72('0x26')](_0xfb72('0x27'),_0x4a018c[_0xfb72('0x3f')])],_0x4a018c);}}}return _0x4bbbf0['trunks'];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x44')]=function(){var _0x27dad0=this;return function(_0x1ba850){if(_0x1ba850){freeIsNotKey(_0x1ba850,_0x27dad0[_0xfb72('0x12')],_0xfb72('0x3f'));for(var _0x5d4ebf=0x0,_0x57666a={},_0x599fef={};_0x5d4ebf<_0x1ba850[_0xfb72('0x43')];_0x5d4ebf+=0x1){_0x57666a=_0x1ba850[_0x5d4ebf];if(_['isUndefined'](_0x27dad0['voiceQueues'][_0x57666a[_0xfb72('0x3f')]])){_0x27dad0[_0xfb72('0x12')][_0x57666a[_0xfb72('0x3f')]]=new VoiceQueue(_0x57666a);}else{_0x27dad0[_0xfb72('0x3e')](_0x27dad0[_0xfb72('0x12')][_0x57666a[_0xfb72('0x3f')]],_0x57666a);}}}return _0x27dad0[_0xfb72('0x12')];};};Realtime['prototype'][_0xfb72('0x45')]=function(){var _0x19f15d=this;return function(_0xb1b296){if(_0xb1b296){freeIsNotKey(_0xb1b296,_0x19f15d[_0xfb72('0x13')],'id');for(var _0x2e2d5a=0x0,_0x5b5c7b={},_0x3fb0af={};_0x2e2d5a<_0xb1b296[_0xfb72('0x43')];_0x2e2d5a+=0x1){_0x5b5c7b=_0xb1b296[_0x2e2d5a];if(_[_0xfb72('0x46')](_0x19f15d[_0xfb72('0x13')][_0x5b5c7b['id']])){_0x19f15d[_0xfb72('0x13')][_0x5b5c7b['id']]=new Trigger(_0x5b5c7b);}else{_0x19f15d['mergeFromDatabase'](_0x19f15d[_0xfb72('0x13')][_0x5b5c7b['id']],_0x5b5c7b);}}}return _0x19f15d[_0xfb72('0x13')];};};Realtime[_0xfb72('0x3d')]['initTemplates']=function(){var _0x50960f=this;return function(_0x513895){if(_0x513895){freeIsNotKey(_0x513895,_0x50960f[_0xfb72('0x15')],'id');for(var _0x1902ef=0x0,_0x22172d={},_0x512734={};_0x1902ef<_0x513895[_0xfb72('0x43')];_0x1902ef+=0x1){_0x22172d=_0x513895[_0x1902ef];if(_[_0xfb72('0x46')](_0x50960f[_0xfb72('0x15')][_0x22172d['id']])){_0x50960f['templates'][_0x22172d['id']]=new Template(_0x22172d);}else{_0x50960f[_0xfb72('0x3e')](_0x50960f[_0xfb72('0x15')][_0x22172d['id']],_0x22172d);}}}return _0x50960f[_0xfb72('0x15')];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x47')]=function(){var _0x58d3e4=this;return function(_0x18eacc){if(_0x18eacc){freeIsNotKey(_0x18eacc,_0x58d3e4[_0xfb72('0x1a')],'id');for(var _0x69a65d=0x0,_0x2560be={},_0x269536={};_0x69a65d<_0x18eacc[_0xfb72('0x43')];_0x69a65d+=0x1){_0x2560be=_0x18eacc[_0x69a65d];if(_[_0xfb72('0x46')](_0x58d3e4[_0xfb72('0x1a')][_0x2560be['id']])){_0x58d3e4[_0xfb72('0x1a')][_0x2560be['id']]=new ZendeskAccount(_0x2560be);}else{_0x58d3e4[_0xfb72('0x3e')](_0x58d3e4[_0xfb72('0x1a')][_0x2560be['id']],_0x2560be);}}}return _0x58d3e4[_0xfb72('0x1a')];};};Realtime['prototype']['initSalesforceAccounts']=function(){var _0x5e8caf=this;return function(_0x473ff7){if(_0x473ff7){freeIsNotKey(_0x473ff7,_0x5e8caf[_0xfb72('0x1b')],'id');for(var _0x2f8c9d=0x0,_0x21a6be={},_0x125afc={};_0x2f8c9d<_0x473ff7[_0xfb72('0x43')];_0x2f8c9d+=0x1){_0x21a6be=_0x473ff7[_0x2f8c9d];if(_['isUndefined'](_0x5e8caf['salesforceAccounts'][_0x21a6be['id']])){_0x5e8caf[_0xfb72('0x1b')][_0x21a6be['id']]=new SalesforceAccount(_0x21a6be);}else{_0x5e8caf[_0xfb72('0x3e')](_0x5e8caf['salesforceAccounts'][_0x21a6be['id']],_0x21a6be);}}}return _0x5e8caf[_0xfb72('0x1b')];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x48')]=function(){var _0x152970=this;return function(_0x4894b3){if(_0x4894b3){freeIsNotKey(_0x4894b3,_0x152970[_0xfb72('0x1d')],'id');for(var _0x46c1e8=0x0,_0x56361b={},_0x287003={};_0x46c1e8<_0x4894b3[_0xfb72('0x43')];_0x46c1e8+=0x1){_0x56361b=_0x4894b3[_0x46c1e8];if(_[_0xfb72('0x46')](_0x152970['freshdeskAccounts'][_0x56361b['id']])){_0x152970[_0xfb72('0x1d')][_0x56361b['id']]=new FreshdeskAccount(_0x56361b);}else{_0x152970[_0xfb72('0x3e')](_0x152970[_0xfb72('0x1d')][_0x56361b['id']],_0x56361b);}}}return _0x152970[_0xfb72('0x1d')];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x49')]=function(){var _0x5b152d=this;return function(_0x241abf){if(_0x241abf){freeIsNotKey(_0x241abf,_0x5b152d['zohoAccounts'],'id');for(var _0x5b1395=0x0,_0x4948b2={},_0x3924df={};_0x5b1395<_0x241abf[_0xfb72('0x43')];_0x5b1395+=0x1){_0x4948b2=_0x241abf[_0x5b1395];if(_[_0xfb72('0x46')](_0x5b152d[_0xfb72('0x1e')][_0x4948b2['id']])){_0x5b152d['zohoAccounts'][_0x4948b2['id']]=new ZohoAccount(_0x4948b2);}else{_0x5b152d[_0xfb72('0x3e')](_0x5b152d[_0xfb72('0x1e')][_0x4948b2['id']],_0x4948b2);}}}return _0x5b152d['zohoAccounts'];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x4a')]=function(){var _0x448df2=this;return function(_0x58bf11){if(_0x58bf11){freeIsNotKey(_0x58bf11,_0x448df2[_0xfb72('0x1f')],'id');for(var _0x216604=0x0,_0xe0fed5={},_0x9253df={};_0x216604<_0x58bf11[_0xfb72('0x43')];_0x216604+=0x1){_0xe0fed5=_0x58bf11[_0x216604];if(_[_0xfb72('0x46')](_0x448df2[_0xfb72('0x1f')][_0xe0fed5['id']])){_0x448df2[_0xfb72('0x1f')][_0xe0fed5['id']]=new DeskAccount(_0xe0fed5);}else{_0x448df2[_0xfb72('0x3e')](_0x448df2[_0xfb72('0x1f')][_0xe0fed5['id']],_0xe0fed5);}}}return _0x448df2['deskAccounts'];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x4b')]=function(){var _0x3e1486=this;return function(_0x30d40c){if(_0x30d40c){freeIsNotKey(_0x30d40c,_0x3e1486['sugarcrmAccounts'],'id');for(var _0x2adb4a=0x0,_0x47cd09={},_0x97108d={};_0x2adb4a<_0x30d40c[_0xfb72('0x43')];_0x2adb4a+=0x1){_0x47cd09=_0x30d40c[_0x2adb4a];if(_[_0xfb72('0x46')](_0x3e1486[_0xfb72('0x1c')][_0x47cd09['id']])){_0x3e1486['sugarcrmAccounts'][_0x47cd09['id']]=new SugarcrmAccount(_0x47cd09);}else{_0x3e1486['mergeFromDatabase'](_0x3e1486['sugarcrmAccounts'][_0x47cd09['id']],_0x47cd09);}}}return _0x3e1486['sugarcrmAccounts'];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x4c')]=function(){var _0x2e225b=this;return function(_0x478ab1){if(_0x478ab1){freeIsNotKey(_0x478ab1,_0x2e225b[_0xfb72('0x20')],'id');for(var _0x407d33=0x0,_0x20eccb={},_0x5c6c7f={};_0x407d33<_0x478ab1['length'];_0x407d33+=0x1){_0x20eccb=_0x478ab1[_0x407d33];if(_[_0xfb72('0x46')](_0x2e225b[_0xfb72('0x20')][_0x20eccb['id']])){_0x2e225b['vtigerAccounts'][_0x20eccb['id']]=new VtigerAccount(_0x20eccb);}else{_0x2e225b['mergeFromDatabase'](_0x2e225b['vtigerAccounts'][_0x20eccb['id']],_0x20eccb);}}}return _0x2e225b[_0xfb72('0x20')];};};Realtime[_0xfb72('0x3d')]['initServicenowAccounts']=function(){var _0x24b561=this;return function(_0x58b0b0){if(_0x58b0b0){freeIsNotKey(_0x58b0b0,_0x24b561[_0xfb72('0x21')],'id');for(var _0x5aaffe=0x0,_0x76d45f={},_0x853a08={};_0x5aaffe<_0x58b0b0[_0xfb72('0x43')];_0x5aaffe+=0x1){_0x76d45f=_0x58b0b0[_0x5aaffe];if(_[_0xfb72('0x46')](_0x24b561[_0xfb72('0x21')][_0x76d45f['id']])){_0x24b561[_0xfb72('0x21')][_0x76d45f['id']]=new ServicenowAccount(_0x76d45f);}else{_0x24b561[_0xfb72('0x3e')](_0x24b561[_0xfb72('0x21')][_0x76d45f['id']],_0x76d45f);}}}return _0x24b561[_0xfb72('0x21')];};};Realtime['prototype'][_0xfb72('0x4d')]=function(){var _0x221131=this;return function(_0x197ec6){if(_0x197ec6){freeIsNotKey(_0x197ec6,_0x221131['dynamics365Accounts'],'id');for(var _0x5edfa9=0x0,_0x11b9f8={},_0x13f026={};_0x5edfa9<_0x197ec6[_0xfb72('0x43')];_0x5edfa9+=0x1){_0x11b9f8=_0x197ec6[_0x5edfa9];if(_[_0xfb72('0x46')](_0x221131[_0xfb72('0x22')][_0x11b9f8['id']])){_0x221131['dynamics365Accounts'][_0x11b9f8['id']]=new Dynamics365Account(_0x11b9f8);}else{_0x221131[_0xfb72('0x3e')](_0x221131[_0xfb72('0x22')][_0x11b9f8['id']],_0x11b9f8);}}}return _0x221131[_0xfb72('0x22')];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x4e')]=function(){var _0x22682c=this;return function(_0xc67d97){if(_0xc67d97){freeIsNotKey(_0xc67d97,_0x22682c['freshsalesAccounts'],'id');for(var _0x1359f1=0x0,_0x2868d2={},_0x5d0327={};_0x1359f1<_0xc67d97['length'];_0x1359f1+=0x1){_0x2868d2=_0xc67d97[_0x1359f1];if(_[_0xfb72('0x46')](_0x22682c[_0xfb72('0x4f')][_0x2868d2['id']])){_0x22682c[_0xfb72('0x4f')][_0x2868d2['id']]=new FreshsalesAccount(_0x2868d2);}else{_0x22682c[_0xfb72('0x3e')](_0x22682c[_0xfb72('0x4f')][_0x2868d2['id']],_0x2868d2);}}}return _0x22682c['freshsalesAccounts'];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x50')]=function(){var _0x4fdd2a=this;return function(_0x495304){for(var _0x28bfe3=0x0;_0x28bfe3<_0x495304[_0xfb72('0x43')];_0x28bfe3+=0x1){_['merge'](_0x4fdd2a[_0xfb72('0x12')][_0x495304[_0x28bfe3]['name']],_0x495304[_0x28bfe3]);}return _0x4fdd2a['voiceQueues'];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x51')]=function(){var _0x126c36=this;return function(_0x333a76){clearVoiceQueues(_0x126c36[_0xfb72('0x12')]);if(_0x333a76){_0x333a76=_[_0xfb72('0x52')](_0x333a76,_0xfb72('0x53'));for(var _0x179073 in _0x333a76){if(_0x333a76[_0xfb72('0x25')](_0x179073)){var _0x51cffc={};for(var _0x464d60=0x0;_0x464d60<_0x333a76[_0x179073][_0xfb72('0x43')];_0x464d60+=0x1){var _0x5b9fb3=_0x333a76[_0x179073][_0x464d60][_0xfb72('0x54')];if(_0x126c36[_0xfb72('0x12')][_0x5b9fb3]){if(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x55')]){_0x126c36[_0xfb72('0x12')][_0x5b9fb3][_0xfb72('0x2f')]+=0x1;}if(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x56')]){_0x126c36[_0xfb72('0x12')][_0x5b9fb3][_0xfb72('0x30')]+=0x1;}_0x126c36[_0xfb72('0x12')][_0x5b9fb3][_0xfb72('0x2b')]+=moment(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x57')])[_0xfb72('0x58')](moment(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x59')]),'seconds')||0x0;if(_0x464d60===_0x333a76[_0x179073][_0xfb72('0x43')]-0x1){_0x126c36[_0xfb72('0x12')][_0x5b9fb3][_0xfb72('0x31')]+=moment(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x5a')]||_0x333a76[_0x179073][_0x464d60][_0xfb72('0x5b')]||_0x333a76[_0x179073][_0x464d60]['queuecallerexitAt'])[_0xfb72('0x58')](moment(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x59')]),_0xfb72('0x5c'))||0x0;_0x126c36['voiceQueues'][_0x5b9fb3]['total']+=0x1;if(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x5d')]){_0x126c36[_0xfb72('0x12')][_0x5b9fb3]['answered']+=0x1;_0x126c36[_0xfb72('0x12')][_0x5b9fb3][_0xfb72('0x2c')]+=moment(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x5a')])[_0xfb72('0x58')](moment(_0x333a76[_0x179073][_0x464d60][_0xfb72('0x57')]),_0xfb72('0x5c'))||0x0;}}else{_0x126c36['voiceQueues'][_0x5b9fb3][_0xfb72('0x31')]+=_0x126c36['voiceQueues'][_0x5b9fb3]['sumHoldTime']||0x0;}}}}}}return _0x126c36[_0xfb72('0x12')];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x5e')]=function(){var _0x3c9270=this;return function(_0x1930eb){clearVoiceCallReports(_0x3c9270[_0xfb72('0x5f')]);if(_0x1930eb){for(var _0x2ac44f=0x0;_0x2ac44f<_0x1930eb['length'];_0x2ac44f+=0x1){_0x3c9270['outbound'][_0xfb72('0x2a')]+=0x1;_0x3c9270[_0xfb72('0x5f')][_0xfb72('0x31')]+=_0x1930eb[_0x2ac44f][_0xfb72('0x60')];if(_0x1930eb[_0x2ac44f][_0xfb72('0x61')]===_0xfb72('0x62')){_0x3c9270[_0xfb72('0x5f')][_0xfb72('0x63')]+=0x1;_0x3c9270[_0xfb72('0x5f')][_0xfb72('0x2b')]+=_0x1930eb[_0x2ac44f]['duration']-_0x1930eb[_0x2ac44f][_0xfb72('0x64')]||0x0;_0x3c9270[_0xfb72('0x5f')][_0xfb72('0x2c')]+=_0x1930eb[_0x2ac44f][_0xfb72('0x64')];}}}return _0x3c9270[_0xfb72('0x5f')];};};Realtime[_0xfb72('0x3d')]['initCampaigns']=function(){var _0x3a721f=this;return function(_0x25c025){if(_0x25c025){freeIsNotKey(_0x25c025,_0x3a721f[_0xfb72('0x14')],_0xfb72('0x3f'));for(var _0x21e5b2=0x0,_0x5a81c2={};_0x21e5b2<_0x25c025[_0xfb72('0x43')];_0x21e5b2+=0x1){_0x5a81c2=_0x25c025[_0x21e5b2];if(_[_0xfb72('0x46')](_0x3a721f[_0xfb72('0x14')][_0x5a81c2[_0xfb72('0x3f')]])){_0x3a721f['campaigns'][_0x5a81c2[_0xfb72('0x3f')]]=new Campaign(_0x5a81c2);}else{_0x3a721f[_0xfb72('0x3e')](_0x3a721f[_0xfb72('0x14')][_0x5a81c2[_0xfb72('0x3f')]],_0x5a81c2);_0x3a721f[_0xfb72('0x14')][_0x5a81c2[_0xfb72('0x3f')]]['dialQueueProject']=_0x5a81c2[_0xfb72('0x65')]?_0x5a81c2[_0xfb72('0x65')][_0xfb72('0x3f')]:undefined;}}}return _0x3a721f[_0xfb72('0x14')];};};Realtime['prototype']['initVoiceExtensions']=function(){var _0x7520eb=this;return function(_0x39e753){if(_0x39e753){freeIsNotKey(_0x39e753,_0x7520eb[_0xfb72('0x66')],'id');for(var _0x438bed=0x0,_0x10f691={};_0x438bed<_0x39e753[_0xfb72('0x43')];_0x438bed+=0x1){_0x10f691=_0x39e753[_0x438bed];if(_[_0xfb72('0x46')](_0x7520eb[_0xfb72('0x66')][_0x10f691['id']])){_0x7520eb[_0xfb72('0x66')][_0x10f691['id']]=new VoiceExtension(_0x10f691);}else{_0x7520eb[_0xfb72('0x3e')](_0x7520eb[_0xfb72('0x66')][_0x10f691['id']],_0x10f691);}}}return _0x7520eb['voiceExtensions'];};};Realtime[_0xfb72('0x3d')][_0xfb72('0x67')]=function(){var _0x521fb9=this;return function(_0x46f028){clearCampaigns(_0x521fb9['campaigns']);for(var _0x4ff707=0x0;_0x4ff707<_0x46f028[_0xfb72('0x43')];_0x4ff707+=0x1){_[_0xfb72('0x68')](_0x521fb9[_0xfb72('0x14')][_0x46f028[_0x4ff707]['name']],_0x46f028[_0x4ff707]);}return _0x521fb9[_0xfb72('0x14')];};};Realtime[_0xfb72('0x3d')]['initFaxAccounts']=function(){var _0x51c8a9=this;return function(_0x20960a){if(_0x20960a){freeIsNotKey(_0x20960a,_0x51c8a9[_0xfb72('0x23')],'id');for(var _0x22ddee=0x0,_0x4c5afa={},_0xfa1613={};_0x22ddee<_0x20960a[_0xfb72('0x43')];_0x22ddee+=0x1){_0x4c5afa=_0x20960a[_0x22ddee];if(_[_0xfb72('0x46')](_0x51c8a9['faxAccounts'][_0x4c5afa['id']])){_0x51c8a9[_0xfb72('0x23')][_0x4c5afa['id']]=new FaxAccount(_0x4c5afa);}else{_0x51c8a9[_0xfb72('0x3e')](_0x51c8a9[_0xfb72('0x23')][_0x4c5afa['id']],_0x4c5afa);}}}return _0x51c8a9[_0xfb72('0x23')];};};module[_0xfb72('0x69')]=Realtime;