Built motion from commit 67e5df37.|2.0.66
[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 _0xa9e0=['outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundAnswerCallsDay','prototype','mergeFromDatabase','initAgents','agents','length','isUndefined','telephones','initVoiceQueues','initTriggers','initTemplates','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','deskAccounts','initSugarcrmAccounts','merge','initVoiceQueueReports','groupBy','queue','unmanaged','queuecallerleaveAt','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerexitAt','queuecallercomplete','duration','disposition','ANSWERED','billableseconds','initVoiceExtensions','voiceExtensions','initCampaignHopperHistory','bluebird','util','lodash','../model/telephone','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/faxAccount','trunks','voiceQueues','triggers','campaigns','templates','outbound','timers','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','faxAccounts','mapKeys','hasOwnProperty','format','SIP/%s','name','total','answered','sumHoldTime','sumDuration','sumBillable','ivrAnswerCallsDay','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay'];(function(_0xc6be3a,_0x540e05){var _0x56a310=function(_0x50a144){while(--_0x50a144){_0xc6be3a['push'](_0xc6be3a['shift']());}};_0x56a310(++_0x540e05);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbe200f,_0x4b50eb){_0xbe200f=_0xbe200f-0x0;var _0x192597=_0xa9e0[_0xbe200f];return _0x192597;};'use strict';var BPromise=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Telephone=require(_0x0a9e('0x3'));var Trunk=require('../model/trunk');var VoiceQueue=require(_0x0a9e('0x4'));var Trigger=require(_0x0a9e('0x5'));var Template=require(_0x0a9e('0x6'));var Campaign=require(_0x0a9e('0x7'));var VoiceExtension=require(_0x0a9e('0x8'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require(_0x0a9e('0x9'));var FreshdeskAccount=require(_0x0a9e('0xa'));var SugarcrmAccount=require(_0x0a9e('0xb'));var ZohoAccount=require('../model/zohoAccount');var DeskAccount=require('../model/deskAccount');var FaxAccount=require(_0x0a9e('0xc'));var Realtime=function(){this['agents']={};this['telephones']={};this[_0x0a9e('0xd')]={};this[_0x0a9e('0xe')]={};this[_0x0a9e('0xf')]={};this[_0x0a9e('0x10')]={};this[_0x0a9e('0x11')]={};this[_0x0a9e('0x12')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this['channels']={};this['queueChannels']={};this['outboundChannels']={};this[_0x0a9e('0x13')]={};this[_0x0a9e('0x14')]={};this[_0x0a9e('0x15')]={};this[_0x0a9e('0x16')]={};this[_0x0a9e('0x17')]={};this[_0x0a9e('0x18')]={};this['deskAccounts']={};this[_0x0a9e('0x19')]={};};function freeIsNotKey(_0x239b12,_0x2b4227,_0x281129){var _0x44dcfd=_[_0x0a9e('0x1a')](_0x239b12,function(_0x52a03d,_0x22dccb){return _0x52a03d[_0x281129];});for(var _0x5d0880 in _0x2b4227){if(_0x2b4227[_0x0a9e('0x1b')](_0x5d0880)){if(!_0x44dcfd[_0x5d0880]){delete _0x2b4227[_0x5d0880];}}}}function freeIsNotKeySip(_0x519dfd,_0x16033c){var _0x12066b=_['mapKeys'](_0x519dfd,function(_0x225616,_0x5a0a06){return util[_0x0a9e('0x1c')](_0x0a9e('0x1d'),_0x225616[_0x0a9e('0x1e')]);});for(var _0x205fd6 in _0x16033c){if(_0x16033c[_0x0a9e('0x1b')](_0x205fd6)){if(!_0x12066b[_0x205fd6]){delete _0x16033c[_0x205fd6];}}}}function clearVoiceCallReports(_0x2eb11f){_0x2eb11f[_0x0a9e('0x1f')]=0x0;_0x2eb11f[_0x0a9e('0x20')]=0x0;_0x2eb11f[_0x0a9e('0x21')]=0x0;_0x2eb11f[_0x0a9e('0x22')]=0x0;_0x2eb11f[_0x0a9e('0x23')]=0x0;}function clearCampaigns(_0x105080){if(!_['isEmpty'](_0x105080)){for(var _0x2c3407 in _0x105080){if(_0x105080[_0x0a9e('0x1b')](_0x2c3407)){_0x105080[_0x2c3407]['ivrTotalCallsDays']=0x0;_0x105080[_0x2c3407][_0x0a9e('0x24')]=0x0;}}}}function clearVoiceQueues(_0x5a09ef){if(!_['isEmpty'](_0x5a09ef)){for(var _0x3a02e1 in _0x5a09ef){if(_0x5a09ef[_0x0a9e('0x1b')](_0x3a02e1)){_0x5a09ef[_0x3a02e1][_0x0a9e('0x1f')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x20')]=0x0;_0x5a09ef[_0x3a02e1]['unmanaged']=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x21')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x22')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x23')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x25')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x26')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x27')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x28')]=0x0;_0x5a09ef[_0x3a02e1]['outboundNoSuchCallsDay']=0x0;_0x5a09ef[_0x3a02e1]['outboundUnknownCallsDay']=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x29')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x2a')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x2b')]=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x2c')]=0x0;_0x5a09ef[_0x3a02e1]['outboundRejectCallsDay']=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x2d')]=0x0;_0x5a09ef[_0x3a02e1]['outboundAnswerAgiCallsDay']=0x0;_0x5a09ef[_0x3a02e1][_0x0a9e('0x2e')]=0x0;_0x5a09ef[_0x3a02e1]['queueStatusComplete']=!![];}}}}Realtime[_0x0a9e('0x2f')][_0x0a9e('0x30')]=function(_0x25fba9,_0x14433c){for(var _0x140511 in _0x14433c){if(_0x25fba9[_0x0a9e('0x1b')](_0x140511)){_0x25fba9[_0x140511]=_0x14433c[_0x140511];}}};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x31')]=function(){var _0x5a101a=this;return function(_0x3652a7){if(_0x3652a7){freeIsNotKeySip(_0x3652a7,_0x5a101a[_0x0a9e('0x32')]);for(var _0x2b1f27=0x0,_0x2ec755={},_0x5c877d={};_0x2b1f27<_0x3652a7[_0x0a9e('0x33')];_0x2b1f27+=0x1){_0x2ec755=_0x3652a7[_0x2b1f27];if(_[_0x0a9e('0x34')](_0x5a101a[_0x0a9e('0x32')][util[_0x0a9e('0x1c')](_0x0a9e('0x1d'),_0x2ec755[_0x0a9e('0x1e')])])){_0x5a101a[_0x0a9e('0x32')][util[_0x0a9e('0x1c')](_0x0a9e('0x1d'),_0x2ec755['name'])]=new Agent(_0x2ec755);}else{_0x5a101a[_0x0a9e('0x30')](_0x5a101a['agents'][util[_0x0a9e('0x1c')](_0x0a9e('0x1d'),_0x2ec755[_0x0a9e('0x1e')])],_0x2ec755);}}}return _0x5a101a[_0x0a9e('0x32')];};};Realtime[_0x0a9e('0x2f')]['initTelephones']=function(){var _0x66c1d2=this;return function(_0x46f0a5){if(_0x46f0a5){freeIsNotKeySip(_0x46f0a5,_0x66c1d2[_0x0a9e('0x35')]);for(var _0x2da5c0=0x0,_0x2b45ea={},_0x409319={};_0x2da5c0<_0x46f0a5[_0x0a9e('0x33')];_0x2da5c0+=0x1){_0x2b45ea=_0x46f0a5[_0x2da5c0];if(_[_0x0a9e('0x34')](_0x66c1d2['telephones'][util[_0x0a9e('0x1c')]('SIP/%s',_0x2b45ea[_0x0a9e('0x1e')])])){_0x66c1d2[_0x0a9e('0x35')][util[_0x0a9e('0x1c')](_0x0a9e('0x1d'),_0x2b45ea['name'])]=new Telephone(_0x2b45ea);}else{_0x66c1d2[_0x0a9e('0x30')](_0x66c1d2[_0x0a9e('0x35')][util[_0x0a9e('0x1c')](_0x0a9e('0x1d'),_0x2b45ea['name'])],_0x2b45ea);}}}return _0x66c1d2['telephones'];};};Realtime[_0x0a9e('0x2f')]['initTrunks']=function(){var _0x24936a=this;return function(_0x3d9717){if(_0x3d9717){freeIsNotKeySip(_0x3d9717,_0x24936a[_0x0a9e('0xd')]);for(var _0x1ef87a=0x0,_0x4f41ae={},_0x31916f={};_0x1ef87a<_0x3d9717[_0x0a9e('0x33')];_0x1ef87a+=0x1){_0x4f41ae=_0x3d9717[_0x1ef87a];if(_[_0x0a9e('0x34')](_0x24936a['trunks'][util[_0x0a9e('0x1c')](_0x0a9e('0x1d'),_0x4f41ae[_0x0a9e('0x1e')])])){_0x24936a['trunks'][util['format'](_0x0a9e('0x1d'),_0x4f41ae[_0x0a9e('0x1e')])]=new Trunk(_0x4f41ae);}else{_0x24936a['mergeFromDatabase'](_0x24936a[_0x0a9e('0xd')][util[_0x0a9e('0x1c')](_0x0a9e('0x1d'),_0x4f41ae[_0x0a9e('0x1e')])],_0x4f41ae);}}}return _0x24936a['trunks'];};};Realtime['prototype'][_0x0a9e('0x36')]=function(){var _0x45b3d0=this;return function(_0x53f3ee){if(_0x53f3ee){freeIsNotKey(_0x53f3ee,_0x45b3d0[_0x0a9e('0xe')],_0x0a9e('0x1e'));for(var _0x1459bb=0x0,_0x5b4f5e={},_0x316c8f={};_0x1459bb<_0x53f3ee[_0x0a9e('0x33')];_0x1459bb+=0x1){_0x5b4f5e=_0x53f3ee[_0x1459bb];if(_[_0x0a9e('0x34')](_0x45b3d0[_0x0a9e('0xe')][_0x5b4f5e[_0x0a9e('0x1e')]])){_0x45b3d0[_0x0a9e('0xe')][_0x5b4f5e[_0x0a9e('0x1e')]]=new VoiceQueue(_0x5b4f5e);}else{_0x45b3d0[_0x0a9e('0x30')](_0x45b3d0[_0x0a9e('0xe')][_0x5b4f5e[_0x0a9e('0x1e')]],_0x5b4f5e);}}}return _0x45b3d0[_0x0a9e('0xe')];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x37')]=function(){var _0x11ca30=this;return function(_0x37f6cc){if(_0x37f6cc){freeIsNotKey(_0x37f6cc,_0x11ca30['triggers'],'id');for(var _0x52628e=0x0,_0x473fdc={},_0xb3795a={};_0x52628e<_0x37f6cc[_0x0a9e('0x33')];_0x52628e+=0x1){_0x473fdc=_0x37f6cc[_0x52628e];if(_[_0x0a9e('0x34')](_0x11ca30[_0x0a9e('0xf')][_0x473fdc['id']])){_0x11ca30[_0x0a9e('0xf')][_0x473fdc['id']]=new Trigger(_0x473fdc);}else{_0x11ca30[_0x0a9e('0x30')](_0x11ca30[_0x0a9e('0xf')][_0x473fdc['id']],_0x473fdc);}}}return _0x11ca30[_0x0a9e('0xf')];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x38')]=function(){var _0x35ed4a=this;return function(_0x5026aa){if(_0x5026aa){freeIsNotKey(_0x5026aa,_0x35ed4a[_0x0a9e('0x11')],'id');for(var _0x138b8b=0x0,_0xdd268f={},_0xfbd5ad={};_0x138b8b<_0x5026aa[_0x0a9e('0x33')];_0x138b8b+=0x1){_0xdd268f=_0x5026aa[_0x138b8b];if(_[_0x0a9e('0x34')](_0x35ed4a[_0x0a9e('0x11')][_0xdd268f['id']])){_0x35ed4a[_0x0a9e('0x11')][_0xdd268f['id']]=new Template(_0xdd268f);}else{_0x35ed4a['mergeFromDatabase'](_0x35ed4a[_0x0a9e('0x11')][_0xdd268f['id']],_0xdd268f);}}}return _0x35ed4a['templates'];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x39')]=function(){var _0x8d6dd1=this;return function(_0x562fb4){if(_0x562fb4){freeIsNotKey(_0x562fb4,_0x8d6dd1[_0x0a9e('0x14')],'id');for(var _0x7f6eb1=0x0,_0x4774f4={},_0x34aa5a={};_0x7f6eb1<_0x562fb4[_0x0a9e('0x33')];_0x7f6eb1+=0x1){_0x4774f4=_0x562fb4[_0x7f6eb1];if(_[_0x0a9e('0x34')](_0x8d6dd1[_0x0a9e('0x14')][_0x4774f4['id']])){_0x8d6dd1['zendeskAccounts'][_0x4774f4['id']]=new ZendeskAccount(_0x4774f4);}else{_0x8d6dd1[_0x0a9e('0x30')](_0x8d6dd1[_0x0a9e('0x14')][_0x4774f4['id']],_0x4774f4);}}}return _0x8d6dd1[_0x0a9e('0x14')];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x3a')]=function(){var _0x992c77=this;return function(_0x6054ee){if(_0x6054ee){freeIsNotKey(_0x6054ee,_0x992c77[_0x0a9e('0x15')],'id');for(var _0x34febd=0x0,_0x58a5c2={},_0xe401a={};_0x34febd<_0x6054ee[_0x0a9e('0x33')];_0x34febd+=0x1){_0x58a5c2=_0x6054ee[_0x34febd];if(_['isUndefined'](_0x992c77['salesforceAccounts'][_0x58a5c2['id']])){_0x992c77['salesforceAccounts'][_0x58a5c2['id']]=new SalesforceAccount(_0x58a5c2);}else{_0x992c77[_0x0a9e('0x30')](_0x992c77[_0x0a9e('0x15')][_0x58a5c2['id']],_0x58a5c2);}}}return _0x992c77[_0x0a9e('0x15')];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x3b')]=function(){var _0x30decb=this;return function(_0x2e5165){if(_0x2e5165){freeIsNotKey(_0x2e5165,_0x30decb[_0x0a9e('0x17')],'id');for(var _0x5d38ae=0x0,_0x4b1b9f={},_0x53975a={};_0x5d38ae<_0x2e5165[_0x0a9e('0x33')];_0x5d38ae+=0x1){_0x4b1b9f=_0x2e5165[_0x5d38ae];if(_[_0x0a9e('0x34')](_0x30decb[_0x0a9e('0x17')][_0x4b1b9f['id']])){_0x30decb['freshdeskAccounts'][_0x4b1b9f['id']]=new FreshdeskAccount(_0x4b1b9f);}else{_0x30decb[_0x0a9e('0x30')](_0x30decb[_0x0a9e('0x17')][_0x4b1b9f['id']],_0x4b1b9f);}}}return _0x30decb['freshdeskAccounts'];};};Realtime['prototype'][_0x0a9e('0x3c')]=function(){var _0x59c6ff=this;return function(_0x443e72){if(_0x443e72){freeIsNotKey(_0x443e72,_0x59c6ff['zohoAccounts'],'id');for(var _0x2e5e62=0x0,_0x3c20b2={},_0x439340={};_0x2e5e62<_0x443e72['length'];_0x2e5e62+=0x1){_0x3c20b2=_0x443e72[_0x2e5e62];if(_[_0x0a9e('0x34')](_0x59c6ff[_0x0a9e('0x18')][_0x3c20b2['id']])){_0x59c6ff['zohoAccounts'][_0x3c20b2['id']]=new ZohoAccount(_0x3c20b2);}else{_0x59c6ff['mergeFromDatabase'](_0x59c6ff[_0x0a9e('0x18')][_0x3c20b2['id']],_0x3c20b2);}}}return _0x59c6ff[_0x0a9e('0x18')];};};Realtime['prototype'][_0x0a9e('0x3d')]=function(){var _0x5ce9ac=this;return function(_0x211ef9){if(_0x211ef9){freeIsNotKey(_0x211ef9,_0x5ce9ac['deskAccounts'],'id');for(var _0xe22ccc=0x0,_0x4a6deb={},_0x5da27d={};_0xe22ccc<_0x211ef9['length'];_0xe22ccc+=0x1){_0x4a6deb=_0x211ef9[_0xe22ccc];if(_[_0x0a9e('0x34')](_0x5ce9ac['deskAccounts'][_0x4a6deb['id']])){_0x5ce9ac[_0x0a9e('0x3e')][_0x4a6deb['id']]=new DeskAccount(_0x4a6deb);}else{_0x5ce9ac[_0x0a9e('0x30')](_0x5ce9ac[_0x0a9e('0x3e')][_0x4a6deb['id']],_0x4a6deb);}}}return _0x5ce9ac[_0x0a9e('0x3e')];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x3f')]=function(){var _0xd10662=this;return function(_0x28d814){if(_0x28d814){freeIsNotKey(_0x28d814,_0xd10662['sugarcrmAccounts'],'id');for(var _0x1c693e=0x0,_0x121cef={},_0x2642bb={};_0x1c693e<_0x28d814[_0x0a9e('0x33')];_0x1c693e+=0x1){_0x121cef=_0x28d814[_0x1c693e];if(_[_0x0a9e('0x34')](_0xd10662[_0x0a9e('0x16')][_0x121cef['id']])){_0xd10662['sugarcrmAccounts'][_0x121cef['id']]=new SugarcrmAccount(_0x121cef);}else{_0xd10662[_0x0a9e('0x30')](_0xd10662[_0x0a9e('0x16')][_0x121cef['id']],_0x121cef);}}}return _0xd10662['sugarcrmAccounts'];};};Realtime[_0x0a9e('0x2f')]['initVoiceQueueHopperHistory']=function(){var _0x20c668=this;return function(_0x5ba1f9){for(var _0x4b3c1a=0x0;_0x4b3c1a<_0x5ba1f9['length'];_0x4b3c1a+=0x1){_[_0x0a9e('0x40')](_0x20c668['voiceQueues'][_0x5ba1f9[_0x4b3c1a][_0x0a9e('0x1e')]],_0x5ba1f9[_0x4b3c1a]);}return _0x20c668[_0x0a9e('0xe')];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x41')]=function(){var _0x1cca9f=this;return function(_0x26d7db){clearVoiceQueues(_0x1cca9f['voiceQueues']);if(_0x26d7db){_0x26d7db=_[_0x0a9e('0x42')](_0x26d7db,'uniqueid');for(var _0xca4ade in _0x26d7db){if(_0x26d7db[_0x0a9e('0x1b')](_0xca4ade)){var _0x51aaf7={};for(var _0x5adf8f=0x0;_0x5adf8f<_0x26d7db[_0xca4ade][_0x0a9e('0x33')];_0x5adf8f+=0x1){var _0x156f1c=_0x26d7db[_0xca4ade][_0x5adf8f][_0x0a9e('0x43')];if(_0x1cca9f[_0x0a9e('0xe')][_0x156f1c]){if(_0x26d7db[_0xca4ade][_0x5adf8f]['queuecallerexit']){_0x1cca9f[_0x0a9e('0xe')][_0x156f1c][_0x0a9e('0x44')]+=0x1;}_0x1cca9f['voiceQueues'][_0x156f1c][_0x0a9e('0x21')]+=moment(_0x26d7db[_0xca4ade][_0x5adf8f][_0x0a9e('0x45')])[_0x0a9e('0x46')](moment(_0x26d7db[_0xca4ade][_0x5adf8f][_0x0a9e('0x47')]),_0x0a9e('0x48'))||0x0;if(_0x5adf8f===_0x26d7db[_0xca4ade]['length']-0x1){_0x1cca9f[_0x0a9e('0xe')][_0x156f1c][_0x0a9e('0x22')]+=moment(_0x26d7db[_0xca4ade][_0x5adf8f][_0x0a9e('0x49')]||_0x26d7db[_0xca4ade][_0x5adf8f]['queuecallerabandonAt']||_0x26d7db[_0xca4ade][_0x5adf8f][_0x0a9e('0x4a')])['diff'](moment(_0x26d7db[_0xca4ade][_0x5adf8f]['queuecallerjoinAt']),_0x0a9e('0x48'))||0x0;_0x1cca9f[_0x0a9e('0xe')][_0x156f1c][_0x0a9e('0x1f')]+=0x1;if(_0x26d7db[_0xca4ade][_0x5adf8f][_0x0a9e('0x4b')]){_0x1cca9f[_0x0a9e('0xe')][_0x156f1c][_0x0a9e('0x20')]+=0x1;_0x1cca9f[_0x0a9e('0xe')][_0x156f1c][_0x0a9e('0x23')]+=moment(_0x26d7db[_0xca4ade][_0x5adf8f][_0x0a9e('0x49')])[_0x0a9e('0x46')](moment(_0x26d7db[_0xca4ade][_0x5adf8f][_0x0a9e('0x45')]),_0x0a9e('0x48'))||0x0;}}else{_0x1cca9f[_0x0a9e('0xe')][_0x156f1c][_0x0a9e('0x22')]+=_0x1cca9f[_0x0a9e('0xe')][_0x156f1c][_0x0a9e('0x21')];}}}}}}return _0x1cca9f[_0x0a9e('0xe')];};};Realtime[_0x0a9e('0x2f')]['initVoiceCallReports']=function(){var _0x1b0b98=this;return function(_0x295763){clearVoiceCallReports(_0x1b0b98[_0x0a9e('0x12')]);if(_0x295763){for(var _0x4edbb0=0x0;_0x4edbb0<_0x295763[_0x0a9e('0x33')];_0x4edbb0+=0x1){_0x1b0b98[_0x0a9e('0x12')]['total']+=0x1;_0x1b0b98[_0x0a9e('0x12')][_0x0a9e('0x22')]+=_0x295763[_0x4edbb0][_0x0a9e('0x4c')];if(_0x295763[_0x4edbb0][_0x0a9e('0x4d')]===_0x0a9e('0x4e')){_0x1b0b98['outbound']['answered']+=0x1;_0x1b0b98['outbound'][_0x0a9e('0x21')]+=_0x295763[_0x4edbb0][_0x0a9e('0x4c')]-_0x295763[_0x4edbb0][_0x0a9e('0x4f')];_0x1b0b98[_0x0a9e('0x12')][_0x0a9e('0x23')]+=_0x295763[_0x4edbb0][_0x0a9e('0x4f')];}}}return _0x1b0b98[_0x0a9e('0x12')];};};Realtime[_0x0a9e('0x2f')]['initCampaigns']=function(){var _0x235f8f=this;return function(_0xcbc8b2){if(_0xcbc8b2){freeIsNotKey(_0xcbc8b2,_0x235f8f[_0x0a9e('0x10')],'name');for(var _0x2bdc44=0x0,_0x583b2e={};_0x2bdc44<_0xcbc8b2[_0x0a9e('0x33')];_0x2bdc44+=0x1){_0x583b2e=_0xcbc8b2[_0x2bdc44];if(_[_0x0a9e('0x34')](_0x235f8f['campaigns'][_0x583b2e[_0x0a9e('0x1e')]])){_0x235f8f[_0x0a9e('0x10')][_0x583b2e[_0x0a9e('0x1e')]]=new Campaign(_0x583b2e);}else{_0x235f8f[_0x0a9e('0x30')](_0x235f8f['campaigns'][_0x583b2e[_0x0a9e('0x1e')]],_0x583b2e);}}}return _0x235f8f[_0x0a9e('0x10')];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x50')]=function(){var _0x5b7fc3=this;return function(_0x109ccb){if(_0x109ccb){freeIsNotKey(_0x109ccb,_0x5b7fc3[_0x0a9e('0x51')],'id');for(var _0x2d5506=0x0,_0x361b21={};_0x2d5506<_0x109ccb['length'];_0x2d5506+=0x1){_0x361b21=_0x109ccb[_0x2d5506];if(_[_0x0a9e('0x34')](_0x5b7fc3[_0x0a9e('0x51')][_0x361b21['id']])){_0x5b7fc3[_0x0a9e('0x51')][_0x361b21['id']]=new VoiceExtension(_0x361b21);}else{_0x5b7fc3[_0x0a9e('0x30')](_0x5b7fc3[_0x0a9e('0x51')][_0x361b21['id']],_0x361b21);}}}return _0x5b7fc3[_0x0a9e('0x51')];};};Realtime[_0x0a9e('0x2f')][_0x0a9e('0x52')]=function(){var _0x1a7b03=this;return function(_0x336dc3){clearCampaigns(_0x1a7b03[_0x0a9e('0x10')]);for(var _0x1f10ef=0x0;_0x1f10ef<_0x336dc3[_0x0a9e('0x33')];_0x1f10ef+=0x1){_[_0x0a9e('0x40')](_0x1a7b03['campaigns'][_0x336dc3[_0x1f10ef][_0x0a9e('0x1e')]],_0x336dc3[_0x1f10ef]);}return _0x1a7b03[_0x0a9e('0x10')];};};Realtime[_0x0a9e('0x2f')]['initFaxAccounts']=function(){var _0x3736e0=this;return function(_0x33dda0){if(_0x33dda0){freeIsNotKey(_0x33dda0,_0x3736e0[_0x0a9e('0x19')],'id');for(var _0x2b9463=0x0,_0x56d650={},_0x541e80={};_0x2b9463<_0x33dda0[_0x0a9e('0x33')];_0x2b9463+=0x1){_0x56d650=_0x33dda0[_0x2b9463];if(_[_0x0a9e('0x34')](_0x3736e0['faxAccounts'][_0x56d650['id']])){_0x3736e0[_0x0a9e('0x19')][_0x56d650['id']]=new FaxAccount(_0x56d650);}else{_0x3736e0['mergeFromDatabase'](_0x3736e0[_0x0a9e('0x19')][_0x56d650['id']],_0x56d650);}}}return _0x3736e0[_0x0a9e('0x19')];};};module['exports']=Realtime;