Built motion from commit 775e2a94.|2.6.3
[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 _0xb0b9=['freshsalesAccounts','mapKeys','SIP/%s','name','hasOwnProperty','isNil','format','total','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','answered','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','agents','interface','isUndefined','mergeFromDatabase','prototype','length','initTrunks','voiceQueues','initZendeskAccounts','initFreshdeskAccounts','initVtigerAccounts','initServicenowAccounts','servicenowAccounts','initDynamics365Accounts','merge','initVoiceQueueReports','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','sumHoldTime','diff','queuecallerjoinAt','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','seconds','queuecallercomplete','queuecallerleaveAt','initVoiceCallReports','duration','billableseconds','initCampaigns','dialQueueProject','SquareProject','initFaxAccounts','faxAccounts','exports','bluebird','lodash','moment','../model/agent','../model/telephone','../model/trigger','../model/template','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/faxAccount','telephones','trunks','triggers','campaigns','templates','outbound','voiceExtensions','channels','queueChannels','timers','settings','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts','dynamics365Accounts'];(function(_0x188edb,_0x19fed6){var _0x669a3d=function(_0x40b5d9){while(--_0x40b5d9){_0x188edb['push'](_0x188edb['shift']());}};_0x669a3d(++_0x19fed6);}(_0xb0b9,0x115));var _0x9b0b=function(_0x4b672c,_0x5492e8){_0x4b672c=_0x4b672c-0x0;var _0x30fd6d=_0xb0b9[_0x4b672c];return _0x30fd6d;};'use strict';var BPromise=require(_0x9b0b('0x0'));var util=require('util');var _=require(_0x9b0b('0x1'));var moment=require(_0x9b0b('0x2'));var Agent=require(_0x9b0b('0x3'));var Telephone=require(_0x9b0b('0x4'));var Trunk=require('../model/trunk');var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0x9b0b('0x5'));var Template=require(_0x9b0b('0x6'));var Campaign=require('../model/campaign');var VoiceExtension=require('../model/voiceExtension');var ZendeskAccount=require(_0x9b0b('0x7'));var SalesforceAccount=require(_0x9b0b('0x8'));var FreshdeskAccount=require(_0x9b0b('0x9'));var SugarcrmAccount=require(_0x9b0b('0xa'));var ZohoAccount=require(_0x9b0b('0xb'));var DeskAccount=require('../model/deskAccount');var VtigerAccount=require(_0x9b0b('0xc'));var ServicenowAccount=require(_0x9b0b('0xd'));var Dynamics365Account=require(_0x9b0b('0xe'));var FreshsalesAccount=require('../model/freshsalesAccount');var FaxAccount=require(_0x9b0b('0xf'));var Realtime=function(){this['agents']={};this[_0x9b0b('0x10')]={};this[_0x9b0b('0x11')]={};this['voiceQueues']={};this[_0x9b0b('0x12')]={};this[_0x9b0b('0x13')]={};this[_0x9b0b('0x14')]={};this[_0x9b0b('0x15')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x9b0b('0x16')]={};this[_0x9b0b('0x17')]={};this[_0x9b0b('0x18')]={};this['outboundChannels']={};this[_0x9b0b('0x19')]={};this[_0x9b0b('0x1a')]={};this[_0x9b0b('0x1b')]={};this[_0x9b0b('0x1c')]={};this[_0x9b0b('0x1d')]={};this[_0x9b0b('0x1e')]={};this[_0x9b0b('0x1f')]={};this[_0x9b0b('0x20')]={};this[_0x9b0b('0x21')]={};this['servicenowAccounts']={};this[_0x9b0b('0x22')]={};this[_0x9b0b('0x23')]={};this['faxAccounts']={};};function freeIsNotKey(_0x48d8f3,_0x1d64a5,_0x5eb90d){var _0x492f2e=_[_0x9b0b('0x24')](_0x48d8f3,function(_0x3c8f8e,_0x5c84a7){return _0x3c8f8e[_0x5eb90d];});for(var _0x52323a in _0x1d64a5){if(_0x1d64a5['hasOwnProperty'](_0x52323a)){if(!_0x492f2e[_0x52323a]){delete _0x1d64a5[_0x52323a];}}}}function freeIsNotKeySip(_0x2f49fb,_0x502a5c){var _0x325dad=_[_0x9b0b('0x24')](_0x2f49fb,function(_0x4727e0,_0x331338){return util['format'](_0x9b0b('0x25'),_0x4727e0[_0x9b0b('0x26')]);});for(var _0x2b3646 in _0x502a5c){if(_0x502a5c[_0x9b0b('0x27')](_0x2b3646)){if(!_0x325dad[_0x2b3646]){delete _0x502a5c[_0x2b3646];}}}}function freeIsNotKeyAgent(_0x4b82cd,_0x5ba39f){var _0xe68f18=_[_0x9b0b('0x24')](_0x4b82cd,function(_0x12e0eb,_0x8c596b){var _0x4ec44e=_[_0x9b0b('0x28')](_0x12e0eb['interface'])?util[_0x9b0b('0x29')](_0x9b0b('0x25'),_0x12e0eb[_0x9b0b('0x26')]):_0x12e0eb['interface'];return _0x4ec44e;});for(var _0x314176 in _0x5ba39f){if(_0x5ba39f[_0x9b0b('0x27')](_0x314176)){if(!_0xe68f18[_0x314176]){delete _0x5ba39f[_0x314176];}}}}function clearVoiceCallReports(_0x2dc827){_0x2dc827[_0x9b0b('0x2a')]=0x0;_0x2dc827['answered']=0x0;_0x2dc827['sumHoldTime']=0x0;_0x2dc827[_0x9b0b('0x2b')]=0x0;_0x2dc827[_0x9b0b('0x2c')]=0x0;}function clearCampaigns(_0x15b2ee){if(!_[_0x9b0b('0x2d')](_0x15b2ee)){for(var _0x5d1246 in _0x15b2ee){if(_0x15b2ee[_0x9b0b('0x27')](_0x5d1246)){_0x15b2ee[_0x5d1246][_0x9b0b('0x2e')]=0x0;_0x15b2ee[_0x5d1246][_0x9b0b('0x2f')]=0x0;}}}}function clearVoiceQueues(_0x3da70f){if(!_[_0x9b0b('0x2d')](_0x3da70f)){for(var _0xe9e4bb in _0x3da70f){if(_0x3da70f[_0x9b0b('0x27')](_0xe9e4bb)){_0x3da70f[_0xe9e4bb]['total']=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x30')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x31')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x32')]=0x0;_0x3da70f[_0xe9e4bb]['sumHoldTime']=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x2b')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x2c')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x33')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x34')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x35')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x36')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x37')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x38')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x39')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x3a')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x3b')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x3c')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x3d')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x3e')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x33')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x3f')]=0x0;_0x3da70f[_0xe9e4bb][_0x9b0b('0x40')]=!![];}}}}Realtime['prototype']['mergeFromDatabase']=function(_0x396d08,_0x8052e9){for(var _0x181882 in _0x8052e9){if(_0x396d08['hasOwnProperty'](_0x181882)){_0x396d08[_0x181882]=_0x8052e9[_0x181882];}}};Realtime['prototype']['initAgents']=function(){var _0x8954f2=this;return function(_0x5ea50c){if(_0x5ea50c){freeIsNotKeyAgent(_0x5ea50c,_0x8954f2[_0x9b0b('0x41')]);for(var _0x3f0f3f=0x0,_0x31ec2d={},_0x4a2a1e={};_0x3f0f3f<_0x5ea50c['length'];_0x3f0f3f+=0x1){_0x31ec2d=_0x5ea50c[_0x3f0f3f];var _0xd48f8b=_[_0x9b0b('0x28')](_0x31ec2d['interface'])?util[_0x9b0b('0x29')]('SIP/%s',_0x31ec2d[_0x9b0b('0x26')]):_0x31ec2d[_0x9b0b('0x42')];if(_[_0x9b0b('0x43')](_0x8954f2[_0x9b0b('0x41')][_0xd48f8b])){_0x8954f2[_0x9b0b('0x41')][_0xd48f8b]=new Agent(_0x31ec2d);}else{_0x8954f2[_0x9b0b('0x44')](_0x8954f2['agents'][_0xd48f8b],_0x31ec2d);}}}return _0x8954f2[_0x9b0b('0x41')];};};Realtime[_0x9b0b('0x45')]['initTelephones']=function(){var _0x65572=this;return function(_0x2e454c){if(_0x2e454c){freeIsNotKeySip(_0x2e454c,_0x65572['telephones']);for(var _0x2674d8=0x0,_0x504850={},_0x17e450={};_0x2674d8<_0x2e454c[_0x9b0b('0x46')];_0x2674d8+=0x1){_0x504850=_0x2e454c[_0x2674d8];if(_[_0x9b0b('0x43')](_0x65572['telephones'][util[_0x9b0b('0x29')]('SIP/%s',_0x504850[_0x9b0b('0x26')])])){_0x65572[_0x9b0b('0x10')][util[_0x9b0b('0x29')]('SIP/%s',_0x504850[_0x9b0b('0x26')])]=new Telephone(_0x504850);}else{_0x65572[_0x9b0b('0x44')](_0x65572[_0x9b0b('0x10')][util[_0x9b0b('0x29')](_0x9b0b('0x25'),_0x504850[_0x9b0b('0x26')])],_0x504850);}}}return _0x65572[_0x9b0b('0x10')];};};Realtime[_0x9b0b('0x45')][_0x9b0b('0x47')]=function(){var _0xc67dab=this;return function(_0x1ad0fc){if(_0x1ad0fc){freeIsNotKeySip(_0x1ad0fc,_0xc67dab[_0x9b0b('0x11')]);for(var _0x1506f7=0x0,_0x24ba31={},_0xcdade4={};_0x1506f7<_0x1ad0fc[_0x9b0b('0x46')];_0x1506f7+=0x1){_0x24ba31=_0x1ad0fc[_0x1506f7];if(_[_0x9b0b('0x43')](_0xc67dab[_0x9b0b('0x11')][util[_0x9b0b('0x29')](_0x9b0b('0x25'),_0x24ba31['name'])])){_0xc67dab[_0x9b0b('0x11')][util[_0x9b0b('0x29')](_0x9b0b('0x25'),_0x24ba31[_0x9b0b('0x26')])]=new Trunk(_0x24ba31);}else{_0xc67dab[_0x9b0b('0x44')](_0xc67dab[_0x9b0b('0x11')][util[_0x9b0b('0x29')](_0x9b0b('0x25'),_0x24ba31[_0x9b0b('0x26')])],_0x24ba31);}}}return _0xc67dab[_0x9b0b('0x11')];};};Realtime[_0x9b0b('0x45')]['initVoiceQueues']=function(){var _0x50118d=this;return function(_0x53eda4){if(_0x53eda4){freeIsNotKey(_0x53eda4,_0x50118d[_0x9b0b('0x48')],_0x9b0b('0x26'));for(var _0x131d1d=0x0,_0x4da067={},_0x4507fc={};_0x131d1d<_0x53eda4[_0x9b0b('0x46')];_0x131d1d+=0x1){_0x4da067=_0x53eda4[_0x131d1d];if(_['isUndefined'](_0x50118d[_0x9b0b('0x48')][_0x4da067['name']])){_0x50118d[_0x9b0b('0x48')][_0x4da067['name']]=new VoiceQueue(_0x4da067);}else{_0x50118d[_0x9b0b('0x44')](_0x50118d[_0x9b0b('0x48')][_0x4da067['name']],_0x4da067);}}}return _0x50118d['voiceQueues'];};};Realtime['prototype']['initTriggers']=function(){var _0x23efef=this;return function(_0x34c381){if(_0x34c381){freeIsNotKey(_0x34c381,_0x23efef[_0x9b0b('0x12')],'id');for(var _0x18fbe2=0x0,_0x130632={},_0x39d164={};_0x18fbe2<_0x34c381[_0x9b0b('0x46')];_0x18fbe2+=0x1){_0x130632=_0x34c381[_0x18fbe2];if(_[_0x9b0b('0x43')](_0x23efef[_0x9b0b('0x12')][_0x130632['id']])){_0x23efef[_0x9b0b('0x12')][_0x130632['id']]=new Trigger(_0x130632);}else{_0x23efef[_0x9b0b('0x44')](_0x23efef[_0x9b0b('0x12')][_0x130632['id']],_0x130632);}}}return _0x23efef[_0x9b0b('0x12')];};};Realtime[_0x9b0b('0x45')]['initTemplates']=function(){var _0x522a11=this;return function(_0x2c43ca){if(_0x2c43ca){freeIsNotKey(_0x2c43ca,_0x522a11[_0x9b0b('0x14')],'id');for(var _0x8c2789=0x0,_0x563b7f={},_0x4cbdea={};_0x8c2789<_0x2c43ca['length'];_0x8c2789+=0x1){_0x563b7f=_0x2c43ca[_0x8c2789];if(_[_0x9b0b('0x43')](_0x522a11[_0x9b0b('0x14')][_0x563b7f['id']])){_0x522a11['templates'][_0x563b7f['id']]=new Template(_0x563b7f);}else{_0x522a11['mergeFromDatabase'](_0x522a11['templates'][_0x563b7f['id']],_0x563b7f);}}}return _0x522a11['templates'];};};Realtime[_0x9b0b('0x45')][_0x9b0b('0x49')]=function(){var _0x3aecb9=this;return function(_0x10329a){if(_0x10329a){freeIsNotKey(_0x10329a,_0x3aecb9[_0x9b0b('0x1b')],'id');for(var _0x6435da=0x0,_0x4b5d1d={},_0x43b987={};_0x6435da<_0x10329a[_0x9b0b('0x46')];_0x6435da+=0x1){_0x4b5d1d=_0x10329a[_0x6435da];if(_[_0x9b0b('0x43')](_0x3aecb9['zendeskAccounts'][_0x4b5d1d['id']])){_0x3aecb9['zendeskAccounts'][_0x4b5d1d['id']]=new ZendeskAccount(_0x4b5d1d);}else{_0x3aecb9[_0x9b0b('0x44')](_0x3aecb9['zendeskAccounts'][_0x4b5d1d['id']],_0x4b5d1d);}}}return _0x3aecb9['zendeskAccounts'];};};Realtime[_0x9b0b('0x45')]['initSalesforceAccounts']=function(){var _0x47d96f=this;return function(_0x19be20){if(_0x19be20){freeIsNotKey(_0x19be20,_0x47d96f[_0x9b0b('0x1c')],'id');for(var _0x267a39=0x0,_0x2313a3={},_0x1850ec={};_0x267a39<_0x19be20['length'];_0x267a39+=0x1){_0x2313a3=_0x19be20[_0x267a39];if(_[_0x9b0b('0x43')](_0x47d96f[_0x9b0b('0x1c')][_0x2313a3['id']])){_0x47d96f[_0x9b0b('0x1c')][_0x2313a3['id']]=new SalesforceAccount(_0x2313a3);}else{_0x47d96f[_0x9b0b('0x44')](_0x47d96f[_0x9b0b('0x1c')][_0x2313a3['id']],_0x2313a3);}}}return _0x47d96f[_0x9b0b('0x1c')];};};Realtime[_0x9b0b('0x45')][_0x9b0b('0x4a')]=function(){var _0x48ebe3=this;return function(_0x2bcde6){if(_0x2bcde6){freeIsNotKey(_0x2bcde6,_0x48ebe3[_0x9b0b('0x1e')],'id');for(var _0x359963=0x0,_0x4c985e={},_0x3a25c6={};_0x359963<_0x2bcde6['length'];_0x359963+=0x1){_0x4c985e=_0x2bcde6[_0x359963];if(_[_0x9b0b('0x43')](_0x48ebe3[_0x9b0b('0x1e')][_0x4c985e['id']])){_0x48ebe3[_0x9b0b('0x1e')][_0x4c985e['id']]=new FreshdeskAccount(_0x4c985e);}else{_0x48ebe3['mergeFromDatabase'](_0x48ebe3[_0x9b0b('0x1e')][_0x4c985e['id']],_0x4c985e);}}}return _0x48ebe3[_0x9b0b('0x1e')];};};Realtime[_0x9b0b('0x45')]['initZohoAccounts']=function(){var _0x75519b=this;return function(_0x3bee5b){if(_0x3bee5b){freeIsNotKey(_0x3bee5b,_0x75519b['zohoAccounts'],'id');for(var _0xa5ebab=0x0,_0x1c72d0={},_0x3f614e={};_0xa5ebab<_0x3bee5b['length'];_0xa5ebab+=0x1){_0x1c72d0=_0x3bee5b[_0xa5ebab];if(_[_0x9b0b('0x43')](_0x75519b[_0x9b0b('0x1f')][_0x1c72d0['id']])){_0x75519b[_0x9b0b('0x1f')][_0x1c72d0['id']]=new ZohoAccount(_0x1c72d0);}else{_0x75519b[_0x9b0b('0x44')](_0x75519b['zohoAccounts'][_0x1c72d0['id']],_0x1c72d0);}}}return _0x75519b[_0x9b0b('0x1f')];};};Realtime[_0x9b0b('0x45')]['initDeskAccounts']=function(){var _0x5857eb=this;return function(_0x3293e0){if(_0x3293e0){freeIsNotKey(_0x3293e0,_0x5857eb[_0x9b0b('0x20')],'id');for(var _0xa73edf=0x0,_0x3d5693={},_0x2c93e7={};_0xa73edf<_0x3293e0[_0x9b0b('0x46')];_0xa73edf+=0x1){_0x3d5693=_0x3293e0[_0xa73edf];if(_[_0x9b0b('0x43')](_0x5857eb[_0x9b0b('0x20')][_0x3d5693['id']])){_0x5857eb[_0x9b0b('0x20')][_0x3d5693['id']]=new DeskAccount(_0x3d5693);}else{_0x5857eb[_0x9b0b('0x44')](_0x5857eb[_0x9b0b('0x20')][_0x3d5693['id']],_0x3d5693);}}}return _0x5857eb[_0x9b0b('0x20')];};};Realtime['prototype']['initSugarcrmAccounts']=function(){var _0x30bbd6=this;return function(_0x49cc69){if(_0x49cc69){freeIsNotKey(_0x49cc69,_0x30bbd6[_0x9b0b('0x1d')],'id');for(var _0x35326d=0x0,_0x5cfcbe={},_0x2d81c9={};_0x35326d<_0x49cc69[_0x9b0b('0x46')];_0x35326d+=0x1){_0x5cfcbe=_0x49cc69[_0x35326d];if(_[_0x9b0b('0x43')](_0x30bbd6[_0x9b0b('0x1d')][_0x5cfcbe['id']])){_0x30bbd6[_0x9b0b('0x1d')][_0x5cfcbe['id']]=new SugarcrmAccount(_0x5cfcbe);}else{_0x30bbd6['mergeFromDatabase'](_0x30bbd6[_0x9b0b('0x1d')][_0x5cfcbe['id']],_0x5cfcbe);}}}return _0x30bbd6[_0x9b0b('0x1d')];};};Realtime['prototype'][_0x9b0b('0x4b')]=function(){var _0x235376=this;return function(_0x3e219d){if(_0x3e219d){freeIsNotKey(_0x3e219d,_0x235376['vtigerAccounts'],'id');for(var _0x9bc0ef=0x0,_0x357fcc={},_0x47b5b9={};_0x9bc0ef<_0x3e219d[_0x9b0b('0x46')];_0x9bc0ef+=0x1){_0x357fcc=_0x3e219d[_0x9bc0ef];if(_['isUndefined'](_0x235376[_0x9b0b('0x21')][_0x357fcc['id']])){_0x235376[_0x9b0b('0x21')][_0x357fcc['id']]=new VtigerAccount(_0x357fcc);}else{_0x235376[_0x9b0b('0x44')](_0x235376[_0x9b0b('0x21')][_0x357fcc['id']],_0x357fcc);}}}return _0x235376['vtigerAccounts'];};};Realtime[_0x9b0b('0x45')][_0x9b0b('0x4c')]=function(){var _0x5b1bb0=this;return function(_0x2ee749){if(_0x2ee749){freeIsNotKey(_0x2ee749,_0x5b1bb0[_0x9b0b('0x4d')],'id');for(var _0x2710b4=0x0,_0x48a50a={},_0x2be02e={};_0x2710b4<_0x2ee749[_0x9b0b('0x46')];_0x2710b4+=0x1){_0x48a50a=_0x2ee749[_0x2710b4];if(_[_0x9b0b('0x43')](_0x5b1bb0[_0x9b0b('0x4d')][_0x48a50a['id']])){_0x5b1bb0[_0x9b0b('0x4d')][_0x48a50a['id']]=new ServicenowAccount(_0x48a50a);}else{_0x5b1bb0['mergeFromDatabase'](_0x5b1bb0[_0x9b0b('0x4d')][_0x48a50a['id']],_0x48a50a);}}}return _0x5b1bb0[_0x9b0b('0x4d')];};};Realtime['prototype'][_0x9b0b('0x4e')]=function(){var _0x3390dd=this;return function(_0x1658bf){if(_0x1658bf){freeIsNotKey(_0x1658bf,_0x3390dd[_0x9b0b('0x22')],'id');for(var _0xb1c18f=0x0,_0x476e77={},_0x1e6bb9={};_0xb1c18f<_0x1658bf[_0x9b0b('0x46')];_0xb1c18f+=0x1){_0x476e77=_0x1658bf[_0xb1c18f];if(_['isUndefined'](_0x3390dd['dynamics365Accounts'][_0x476e77['id']])){_0x3390dd['dynamics365Accounts'][_0x476e77['id']]=new Dynamics365Account(_0x476e77);}else{_0x3390dd[_0x9b0b('0x44')](_0x3390dd['dynamics365Accounts'][_0x476e77['id']],_0x476e77);}}}return _0x3390dd[_0x9b0b('0x22')];};};Realtime[_0x9b0b('0x45')]['initFreshsalesAccounts']=function(){var _0x1fb4cf=this;return function(_0x2a5b0b){if(_0x2a5b0b){freeIsNotKey(_0x2a5b0b,_0x1fb4cf[_0x9b0b('0x23')],'id');for(var _0x177bd1=0x0,_0x479832={},_0x3d08ad={};_0x177bd1<_0x2a5b0b[_0x9b0b('0x46')];_0x177bd1+=0x1){_0x479832=_0x2a5b0b[_0x177bd1];if(_['isUndefined'](_0x1fb4cf[_0x9b0b('0x23')][_0x479832['id']])){_0x1fb4cf['freshsalesAccounts'][_0x479832['id']]=new FreshsalesAccount(_0x479832);}else{_0x1fb4cf[_0x9b0b('0x44')](_0x1fb4cf[_0x9b0b('0x23')][_0x479832['id']],_0x479832);}}}return _0x1fb4cf['freshsalesAccounts'];};};Realtime['prototype']['initVoiceQueueHopperHistory']=function(){var _0x1d890c=this;return function(_0x485a5e){for(var _0x246731=0x0;_0x246731<_0x485a5e[_0x9b0b('0x46')];_0x246731+=0x1){_[_0x9b0b('0x4f')](_0x1d890c[_0x9b0b('0x48')][_0x485a5e[_0x246731]['name']],_0x485a5e[_0x246731]);}return _0x1d890c[_0x9b0b('0x48')];};};Realtime[_0x9b0b('0x45')][_0x9b0b('0x50')]=function(){var _0x2816a2=this;return function(_0x4fde8b){clearVoiceQueues(_0x2816a2[_0x9b0b('0x48')]);if(_0x4fde8b){_0x4fde8b=_[_0x9b0b('0x51')](_0x4fde8b,_0x9b0b('0x52'));for(var _0x1363e2 in _0x4fde8b){if(_0x4fde8b[_0x9b0b('0x27')](_0x1363e2)){var _0x356559={};for(var _0x210986=0x0;_0x210986<_0x4fde8b[_0x1363e2][_0x9b0b('0x46')];_0x210986+=0x1){var _0x50fdda=_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x53')];if(_0x2816a2['voiceQueues'][_0x50fdda]){if(_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x54')]){_0x2816a2[_0x9b0b('0x48')][_0x50fdda]['unmanaged']+=0x1;}if(_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x55')]){_0x2816a2[_0x9b0b('0x48')][_0x50fdda]['abandoned']+=0x1;}_0x2816a2[_0x9b0b('0x48')][_0x50fdda][_0x9b0b('0x56')]+=moment(_0x4fde8b[_0x1363e2][_0x210986]['queuecallerleaveAt'])[_0x9b0b('0x57')](moment(_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x58')]),'seconds')||0x0;if(_0x210986===_0x4fde8b[_0x1363e2]['length']-0x1){_0x2816a2[_0x9b0b('0x48')][_0x50fdda]['sumDuration']+=moment(_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x59')]||_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x5a')]||_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x5b')])[_0x9b0b('0x57')](moment(_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x58')]),_0x9b0b('0x5c'))||0x0;_0x2816a2[_0x9b0b('0x48')][_0x50fdda][_0x9b0b('0x2a')]+=0x1;if(_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x5d')]){_0x2816a2[_0x9b0b('0x48')][_0x50fdda][_0x9b0b('0x30')]+=0x1;_0x2816a2[_0x9b0b('0x48')][_0x50fdda][_0x9b0b('0x2c')]+=moment(_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x59')])[_0x9b0b('0x57')](moment(_0x4fde8b[_0x1363e2][_0x210986][_0x9b0b('0x5e')]),_0x9b0b('0x5c'))||0x0;}}else{_0x2816a2[_0x9b0b('0x48')][_0x50fdda][_0x9b0b('0x2b')]+=_0x2816a2['voiceQueues'][_0x50fdda][_0x9b0b('0x56')]||0x0;}}}}}}return _0x2816a2[_0x9b0b('0x48')];};};Realtime[_0x9b0b('0x45')][_0x9b0b('0x5f')]=function(){var _0x5e77c4=this;return function(_0x4cac7a){clearVoiceCallReports(_0x5e77c4['outbound']);if(_0x4cac7a){for(var _0x5d77dc=0x0;_0x5d77dc<_0x4cac7a[_0x9b0b('0x46')];_0x5d77dc+=0x1){_0x5e77c4['outbound'][_0x9b0b('0x2a')]+=0x1;_0x5e77c4[_0x9b0b('0x15')][_0x9b0b('0x2b')]+=_0x4cac7a[_0x5d77dc]['duration'];if(_0x4cac7a[_0x5d77dc]['disposition']==='ANSWERED'){_0x5e77c4['outbound'][_0x9b0b('0x30')]+=0x1;_0x5e77c4[_0x9b0b('0x15')][_0x9b0b('0x56')]+=_0x4cac7a[_0x5d77dc][_0x9b0b('0x60')]-_0x4cac7a[_0x5d77dc]['billableseconds']||0x0;_0x5e77c4[_0x9b0b('0x15')][_0x9b0b('0x2c')]+=_0x4cac7a[_0x5d77dc][_0x9b0b('0x61')];}}}return _0x5e77c4['outbound'];};};Realtime[_0x9b0b('0x45')][_0x9b0b('0x62')]=function(){var _0x19b75f=this;return function(_0x1c9d88){if(_0x1c9d88){freeIsNotKey(_0x1c9d88,_0x19b75f[_0x9b0b('0x13')],'name');for(var _0x5c048f=0x0,_0x35f776={};_0x5c048f<_0x1c9d88[_0x9b0b('0x46')];_0x5c048f+=0x1){_0x35f776=_0x1c9d88[_0x5c048f];if(_[_0x9b0b('0x43')](_0x19b75f[_0x9b0b('0x13')][_0x35f776[_0x9b0b('0x26')]])){_0x19b75f['campaigns'][_0x35f776[_0x9b0b('0x26')]]=new Campaign(_0x35f776);}else{_0x19b75f[_0x9b0b('0x44')](_0x19b75f['campaigns'][_0x35f776[_0x9b0b('0x26')]],_0x35f776);_0x19b75f[_0x9b0b('0x13')][_0x35f776[_0x9b0b('0x26')]][_0x9b0b('0x63')]=_0x35f776[_0x9b0b('0x64')]?_0x35f776[_0x9b0b('0x64')]['name']:undefined;}}}return _0x19b75f[_0x9b0b('0x13')];};};Realtime[_0x9b0b('0x45')]['initVoiceExtensions']=function(){var _0x58e695=this;return function(_0x76faf9){if(_0x76faf9){freeIsNotKey(_0x76faf9,_0x58e695['voiceExtensions'],'id');for(var _0x20d3cb=0x0,_0x5c35a2={};_0x20d3cb<_0x76faf9['length'];_0x20d3cb+=0x1){_0x5c35a2=_0x76faf9[_0x20d3cb];if(_[_0x9b0b('0x43')](_0x58e695['voiceExtensions'][_0x5c35a2['id']])){_0x58e695[_0x9b0b('0x16')][_0x5c35a2['id']]=new VoiceExtension(_0x5c35a2);}else{_0x58e695[_0x9b0b('0x44')](_0x58e695[_0x9b0b('0x16')][_0x5c35a2['id']],_0x5c35a2);}}}return _0x58e695[_0x9b0b('0x16')];};};Realtime[_0x9b0b('0x45')]['initCampaignHopperHistory']=function(){var _0xe9d106=this;return function(_0x4917c2){clearCampaigns(_0xe9d106['campaigns']);for(var _0x3438fe=0x0;_0x3438fe<_0x4917c2[_0x9b0b('0x46')];_0x3438fe+=0x1){_[_0x9b0b('0x4f')](_0xe9d106[_0x9b0b('0x13')][_0x4917c2[_0x3438fe]['name']],_0x4917c2[_0x3438fe]);}return _0xe9d106[_0x9b0b('0x13')];};};Realtime[_0x9b0b('0x45')][_0x9b0b('0x65')]=function(){var _0x6ea783=this;return function(_0x2a34f1){if(_0x2a34f1){freeIsNotKey(_0x2a34f1,_0x6ea783[_0x9b0b('0x66')],'id');for(var _0x2e0b19=0x0,_0x1a1478={},_0x3b9685={};_0x2e0b19<_0x2a34f1[_0x9b0b('0x46')];_0x2e0b19+=0x1){_0x1a1478=_0x2a34f1[_0x2e0b19];if(_[_0x9b0b('0x43')](_0x6ea783[_0x9b0b('0x66')][_0x1a1478['id']])){_0x6ea783['faxAccounts'][_0x1a1478['id']]=new FaxAccount(_0x1a1478);}else{_0x6ea783[_0x9b0b('0x44')](_0x6ea783[_0x9b0b('0x66')][_0x1a1478['id']],_0x1a1478);}}}return _0x6ea783[_0x9b0b('0x66')];};};module[_0x9b0b('0x67')]=Realtime;