d39fec16224a0c882115611c548108012d7a3177
[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 _0x4a7c=['prototype','length','isUndefined','telephones','initTrunks','initVoiceQueues','initTriggers','triggers','templates','initZendeskAccounts','initSalesforceAccounts','salesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initSugarcrmAccounts','vtigerAccounts','servicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','merge','initVoiceQueueReports','uniqueid','queue','queuecallerexit','queuecallerleaveAt','diff','queuecallerjoinAt','seconds','queuecallerabandonAt','queuecallerexitAt','queuecallercomplete','initVoiceCallReports','duration','billableseconds','initCampaigns','initVoiceExtensions','initCampaignHopperHistory','faxAccounts','exports','bluebird','util','lodash','moment','../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','trunks','voiceQueues','campaigns','outbound','voiceExtensions','channels','queueChannels','outboundChannels','timers','zendeskAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','dynamics365Accounts','freshsalesAccounts','hasOwnProperty','mapKeys','format','SIP/%s','name','isNil','interface','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','abandoned','outboundAnswerAgiCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundRejectCallsDay','outboundReCallsDay','mergeFromDatabase'];(function(_0x2717eb,_0x39ea39){var _0xc7342c=function(_0x251eb8){while(--_0x251eb8){_0x2717eb['push'](_0x2717eb['shift']());}};_0xc7342c(++_0x39ea39);}(_0x4a7c,0x90));var _0xc4a7=function(_0x91695,_0x3e8f4b){_0x91695=_0x91695-0x0;var _0x159b3a=_0x4a7c[_0x91695];return _0x159b3a;};'use strict';var BPromise=require(_0xc4a7('0x0'));var util=require(_0xc4a7('0x1'));var _=require(_0xc4a7('0x2'));var moment=require(_0xc4a7('0x3'));var Agent=require('../model/agent');var Telephone=require(_0xc4a7('0x4'));var Trunk=require(_0xc4a7('0x5'));var VoiceQueue=require(_0xc4a7('0x6'));var Trigger=require(_0xc4a7('0x7'));var Template=require(_0xc4a7('0x8'));var Campaign=require(_0xc4a7('0x9'));var VoiceExtension=require(_0xc4a7('0xa'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require(_0xc4a7('0xb'));var FreshdeskAccount=require(_0xc4a7('0xc'));var SugarcrmAccount=require(_0xc4a7('0xd'));var ZohoAccount=require(_0xc4a7('0xe'));var DeskAccount=require(_0xc4a7('0xf'));var VtigerAccount=require(_0xc4a7('0x10'));var ServicenowAccount=require(_0xc4a7('0x11'));var Dynamics365Account=require(_0xc4a7('0x12'));var FreshsalesAccount=require(_0xc4a7('0x13'));var FaxAccount=require(_0xc4a7('0x14'));var Realtime=function(){this[_0xc4a7('0x15')]={};this['telephones']={};this[_0xc4a7('0x16')]={};this[_0xc4a7('0x17')]={};this['triggers']={};this[_0xc4a7('0x18')]={};this['templates']={};this[_0xc4a7('0x19')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xc4a7('0x1a')]={};this[_0xc4a7('0x1b')]={};this[_0xc4a7('0x1c')]={};this[_0xc4a7('0x1d')]={};this[_0xc4a7('0x1e')]={};this[_0xc4a7('0x1f')]={};this['salesforceAccounts']={};this[_0xc4a7('0x20')]={};this[_0xc4a7('0x21')]={};this[_0xc4a7('0x22')]={};this[_0xc4a7('0x23')]={};this['vtigerAccounts']={};this['servicenowAccounts']={};this[_0xc4a7('0x24')]={};this[_0xc4a7('0x25')]={};this['faxAccounts']={};};function freeIsNotKey(_0x5625d7,_0x1710e9,_0x443810){var _0x48fa12=_['mapKeys'](_0x5625d7,function(_0x45b692,_0x332104){return _0x45b692[_0x443810];});for(var _0x3e664c in _0x1710e9){if(_0x1710e9[_0xc4a7('0x26')](_0x3e664c)){if(!_0x48fa12[_0x3e664c]){delete _0x1710e9[_0x3e664c];}}}}function freeIsNotKeySip(_0x3d7143,_0x1192ec){var _0x35fd32=_[_0xc4a7('0x27')](_0x3d7143,function(_0x2af67a,_0x3dc239){return util[_0xc4a7('0x28')](_0xc4a7('0x29'),_0x2af67a[_0xc4a7('0x2a')]);});for(var _0x288f18 in _0x1192ec){if(_0x1192ec[_0xc4a7('0x26')](_0x288f18)){if(!_0x35fd32[_0x288f18]){delete _0x1192ec[_0x288f18];}}}}function freeIsNotKeyAgent(_0x2f519d,_0x4a7eaa){var _0xff3f5b=_['mapKeys'](_0x2f519d,function(_0x2e6298,_0x27a2f8){var _0x16958f=_[_0xc4a7('0x2b')](_0x2e6298[_0xc4a7('0x2c')])?util['format'](_0xc4a7('0x29'),_0x2e6298[_0xc4a7('0x2a')]):_0x2e6298[_0xc4a7('0x2c')];return _0x16958f;});for(var _0x873435 in _0x4a7eaa){if(_0x4a7eaa[_0xc4a7('0x26')](_0x873435)){if(!_0xff3f5b[_0x873435]){delete _0x4a7eaa[_0x873435];}}}}function clearVoiceCallReports(_0x4bbf74){_0x4bbf74[_0xc4a7('0x2d')]=0x0;_0x4bbf74[_0xc4a7('0x2e')]=0x0;_0x4bbf74[_0xc4a7('0x2f')]=0x0;_0x4bbf74[_0xc4a7('0x30')]=0x0;_0x4bbf74[_0xc4a7('0x31')]=0x0;}function clearCampaigns(_0x24cd56){if(!_[_0xc4a7('0x32')](_0x24cd56)){for(var _0x10e1da in _0x24cd56){if(_0x24cd56[_0xc4a7('0x26')](_0x10e1da)){_0x24cd56[_0x10e1da][_0xc4a7('0x33')]=0x0;_0x24cd56[_0x10e1da][_0xc4a7('0x34')]=0x0;}}}}function clearVoiceQueues(_0x3da0ab){if(!_[_0xc4a7('0x32')](_0x3da0ab)){for(var _0x41d010 in _0x3da0ab){if(_0x3da0ab[_0xc4a7('0x26')](_0x41d010)){_0x3da0ab[_0x41d010][_0xc4a7('0x2d')]=0x0;_0x3da0ab[_0x41d010]['answered']=0x0;_0x3da0ab[_0x41d010]['unmanaged']=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x35')]=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x2f')]=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x30')]=0x0;_0x3da0ab[_0x41d010]['sumBillable']=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x36')]=0x0;_0x3da0ab[_0x41d010]['outboundNoAnswerCallsDay']=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x37')]=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x38')]=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x39')]=0x0;_0x3da0ab[_0x41d010]['outboundUnknownCallsDay']=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x3a')]=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x3b')]=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x3c')]=0x0;_0x3da0ab[_0x41d010]['outboundOriginateFailureCallsDay']=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x3d')]=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x3e')]=0x0;_0x3da0ab[_0x41d010][_0xc4a7('0x36')]=0x0;_0x3da0ab[_0x41d010]['outboundAnswerCallsDay']=0x0;_0x3da0ab[_0x41d010]['queueStatusComplete']=!![];}}}}Realtime['prototype'][_0xc4a7('0x3f')]=function(_0x2a2deb,_0x376e72){for(var _0x25f7af in _0x376e72){if(_0x2a2deb[_0xc4a7('0x26')](_0x25f7af)){_0x2a2deb[_0x25f7af]=_0x376e72[_0x25f7af];}}};Realtime[_0xc4a7('0x40')]['initAgents']=function(){var _0x23c562=this;return function(_0x279a69){if(_0x279a69){freeIsNotKeyAgent(_0x279a69,_0x23c562[_0xc4a7('0x15')]);for(var _0x1c7c96=0x0,_0xc5053={},_0x449262={};_0x1c7c96<_0x279a69[_0xc4a7('0x41')];_0x1c7c96+=0x1){_0xc5053=_0x279a69[_0x1c7c96];var _0x1a506e=_[_0xc4a7('0x2b')](_0xc5053[_0xc4a7('0x2c')])?util[_0xc4a7('0x28')]('SIP/%s',_0xc5053[_0xc4a7('0x2a')]):_0xc5053[_0xc4a7('0x2c')];if(_[_0xc4a7('0x42')](_0x23c562[_0xc4a7('0x15')][_0x1a506e])){_0x23c562[_0xc4a7('0x15')][_0x1a506e]=new Agent(_0xc5053);}else{_0x23c562[_0xc4a7('0x3f')](_0x23c562[_0xc4a7('0x15')][_0x1a506e],_0xc5053);}}}return _0x23c562[_0xc4a7('0x15')];};};Realtime['prototype']['initTelephones']=function(){var _0x4cda08=this;return function(_0x10c717){if(_0x10c717){freeIsNotKeySip(_0x10c717,_0x4cda08[_0xc4a7('0x43')]);for(var _0x1d9f46=0x0,_0xf3c611={},_0x170cdd={};_0x1d9f46<_0x10c717[_0xc4a7('0x41')];_0x1d9f46+=0x1){_0xf3c611=_0x10c717[_0x1d9f46];if(_[_0xc4a7('0x42')](_0x4cda08[_0xc4a7('0x43')][util[_0xc4a7('0x28')](_0xc4a7('0x29'),_0xf3c611['name'])])){_0x4cda08[_0xc4a7('0x43')][util[_0xc4a7('0x28')](_0xc4a7('0x29'),_0xf3c611['name'])]=new Telephone(_0xf3c611);}else{_0x4cda08[_0xc4a7('0x3f')](_0x4cda08[_0xc4a7('0x43')][util['format'](_0xc4a7('0x29'),_0xf3c611[_0xc4a7('0x2a')])],_0xf3c611);}}}return _0x4cda08[_0xc4a7('0x43')];};};Realtime['prototype'][_0xc4a7('0x44')]=function(){var _0x3ec650=this;return function(_0x25df08){if(_0x25df08){freeIsNotKeySip(_0x25df08,_0x3ec650[_0xc4a7('0x16')]);for(var _0x4ae74e=0x0,_0x4c3c4d={},_0x3560d0={};_0x4ae74e<_0x25df08[_0xc4a7('0x41')];_0x4ae74e+=0x1){_0x4c3c4d=_0x25df08[_0x4ae74e];if(_[_0xc4a7('0x42')](_0x3ec650[_0xc4a7('0x16')][util[_0xc4a7('0x28')](_0xc4a7('0x29'),_0x4c3c4d[_0xc4a7('0x2a')])])){_0x3ec650[_0xc4a7('0x16')][util[_0xc4a7('0x28')](_0xc4a7('0x29'),_0x4c3c4d[_0xc4a7('0x2a')])]=new Trunk(_0x4c3c4d);}else{_0x3ec650['mergeFromDatabase'](_0x3ec650['trunks'][util['format'](_0xc4a7('0x29'),_0x4c3c4d[_0xc4a7('0x2a')])],_0x4c3c4d);}}}return _0x3ec650[_0xc4a7('0x16')];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x45')]=function(){var _0x53e254=this;return function(_0x3a3d06){if(_0x3a3d06){freeIsNotKey(_0x3a3d06,_0x53e254['voiceQueues'],_0xc4a7('0x2a'));for(var _0x5d40e8=0x0,_0x943124={},_0x5721a4={};_0x5d40e8<_0x3a3d06[_0xc4a7('0x41')];_0x5d40e8+=0x1){_0x943124=_0x3a3d06[_0x5d40e8];if(_['isUndefined'](_0x53e254[_0xc4a7('0x17')][_0x943124[_0xc4a7('0x2a')]])){_0x53e254['voiceQueues'][_0x943124[_0xc4a7('0x2a')]]=new VoiceQueue(_0x943124);}else{_0x53e254[_0xc4a7('0x3f')](_0x53e254[_0xc4a7('0x17')][_0x943124[_0xc4a7('0x2a')]],_0x943124);}}}return _0x53e254['voiceQueues'];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x46')]=function(){var _0x586b3a=this;return function(_0x59d5c7){if(_0x59d5c7){freeIsNotKey(_0x59d5c7,_0x586b3a[_0xc4a7('0x47')],'id');for(var _0x4755ce=0x0,_0xf02b00={},_0x3988cc={};_0x4755ce<_0x59d5c7[_0xc4a7('0x41')];_0x4755ce+=0x1){_0xf02b00=_0x59d5c7[_0x4755ce];if(_[_0xc4a7('0x42')](_0x586b3a['triggers'][_0xf02b00['id']])){_0x586b3a[_0xc4a7('0x47')][_0xf02b00['id']]=new Trigger(_0xf02b00);}else{_0x586b3a[_0xc4a7('0x3f')](_0x586b3a[_0xc4a7('0x47')][_0xf02b00['id']],_0xf02b00);}}}return _0x586b3a[_0xc4a7('0x47')];};};Realtime[_0xc4a7('0x40')]['initTemplates']=function(){var _0x48f75d=this;return function(_0x220c3b){if(_0x220c3b){freeIsNotKey(_0x220c3b,_0x48f75d[_0xc4a7('0x48')],'id');for(var _0x4d17e4=0x0,_0x382ce4={},_0x30fef0={};_0x4d17e4<_0x220c3b[_0xc4a7('0x41')];_0x4d17e4+=0x1){_0x382ce4=_0x220c3b[_0x4d17e4];if(_['isUndefined'](_0x48f75d[_0xc4a7('0x48')][_0x382ce4['id']])){_0x48f75d[_0xc4a7('0x48')][_0x382ce4['id']]=new Template(_0x382ce4);}else{_0x48f75d['mergeFromDatabase'](_0x48f75d[_0xc4a7('0x48')][_0x382ce4['id']],_0x382ce4);}}}return _0x48f75d[_0xc4a7('0x48')];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x49')]=function(){var _0x2ff7ba=this;return function(_0x306052){if(_0x306052){freeIsNotKey(_0x306052,_0x2ff7ba['zendeskAccounts'],'id');for(var _0x37049a=0x0,_0x4b2d55={},_0x4cf032={};_0x37049a<_0x306052[_0xc4a7('0x41')];_0x37049a+=0x1){_0x4b2d55=_0x306052[_0x37049a];if(_['isUndefined'](_0x2ff7ba[_0xc4a7('0x1f')][_0x4b2d55['id']])){_0x2ff7ba[_0xc4a7('0x1f')][_0x4b2d55['id']]=new ZendeskAccount(_0x4b2d55);}else{_0x2ff7ba[_0xc4a7('0x3f')](_0x2ff7ba[_0xc4a7('0x1f')][_0x4b2d55['id']],_0x4b2d55);}}}return _0x2ff7ba[_0xc4a7('0x1f')];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x4a')]=function(){var _0x17d7cd=this;return function(_0x28611f){if(_0x28611f){freeIsNotKey(_0x28611f,_0x17d7cd[_0xc4a7('0x4b')],'id');for(var _0x58d09f=0x0,_0x120e75={},_0x578fcc={};_0x58d09f<_0x28611f['length'];_0x58d09f+=0x1){_0x120e75=_0x28611f[_0x58d09f];if(_[_0xc4a7('0x42')](_0x17d7cd['salesforceAccounts'][_0x120e75['id']])){_0x17d7cd[_0xc4a7('0x4b')][_0x120e75['id']]=new SalesforceAccount(_0x120e75);}else{_0x17d7cd['mergeFromDatabase'](_0x17d7cd['salesforceAccounts'][_0x120e75['id']],_0x120e75);}}}return _0x17d7cd['salesforceAccounts'];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x4c')]=function(){var _0x171e36=this;return function(_0x451e81){if(_0x451e81){freeIsNotKey(_0x451e81,_0x171e36[_0xc4a7('0x21')],'id');for(var _0x5a73d8=0x0,_0x53718c={},_0x4b90a9={};_0x5a73d8<_0x451e81[_0xc4a7('0x41')];_0x5a73d8+=0x1){_0x53718c=_0x451e81[_0x5a73d8];if(_['isUndefined'](_0x171e36[_0xc4a7('0x21')][_0x53718c['id']])){_0x171e36[_0xc4a7('0x21')][_0x53718c['id']]=new FreshdeskAccount(_0x53718c);}else{_0x171e36[_0xc4a7('0x3f')](_0x171e36[_0xc4a7('0x21')][_0x53718c['id']],_0x53718c);}}}return _0x171e36[_0xc4a7('0x21')];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x4d')]=function(){var _0x522ac7=this;return function(_0x4c5d3d){if(_0x4c5d3d){freeIsNotKey(_0x4c5d3d,_0x522ac7[_0xc4a7('0x22')],'id');for(var _0x19d81c=0x0,_0x215a16={},_0x42329f={};_0x19d81c<_0x4c5d3d[_0xc4a7('0x41')];_0x19d81c+=0x1){_0x215a16=_0x4c5d3d[_0x19d81c];if(_[_0xc4a7('0x42')](_0x522ac7['zohoAccounts'][_0x215a16['id']])){_0x522ac7[_0xc4a7('0x22')][_0x215a16['id']]=new ZohoAccount(_0x215a16);}else{_0x522ac7[_0xc4a7('0x3f')](_0x522ac7[_0xc4a7('0x22')][_0x215a16['id']],_0x215a16);}}}return _0x522ac7[_0xc4a7('0x22')];};};Realtime[_0xc4a7('0x40')]['initDeskAccounts']=function(){var _0x1467c7=this;return function(_0x3cadb0){if(_0x3cadb0){freeIsNotKey(_0x3cadb0,_0x1467c7['deskAccounts'],'id');for(var _0x3d666c=0x0,_0x51d2c3={},_0x3ee054={};_0x3d666c<_0x3cadb0[_0xc4a7('0x41')];_0x3d666c+=0x1){_0x51d2c3=_0x3cadb0[_0x3d666c];if(_[_0xc4a7('0x42')](_0x1467c7[_0xc4a7('0x23')][_0x51d2c3['id']])){_0x1467c7[_0xc4a7('0x23')][_0x51d2c3['id']]=new DeskAccount(_0x51d2c3);}else{_0x1467c7[_0xc4a7('0x3f')](_0x1467c7[_0xc4a7('0x23')][_0x51d2c3['id']],_0x51d2c3);}}}return _0x1467c7[_0xc4a7('0x23')];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x4e')]=function(){var _0x2db914=this;return function(_0x235155){if(_0x235155){freeIsNotKey(_0x235155,_0x2db914[_0xc4a7('0x20')],'id');for(var _0x576d59=0x0,_0x24bce0={},_0x48cc46={};_0x576d59<_0x235155[_0xc4a7('0x41')];_0x576d59+=0x1){_0x24bce0=_0x235155[_0x576d59];if(_[_0xc4a7('0x42')](_0x2db914['sugarcrmAccounts'][_0x24bce0['id']])){_0x2db914[_0xc4a7('0x20')][_0x24bce0['id']]=new SugarcrmAccount(_0x24bce0);}else{_0x2db914[_0xc4a7('0x3f')](_0x2db914[_0xc4a7('0x20')][_0x24bce0['id']],_0x24bce0);}}}return _0x2db914['sugarcrmAccounts'];};};Realtime[_0xc4a7('0x40')]['initVtigerAccounts']=function(){var _0x384fa8=this;return function(_0x40e17c){if(_0x40e17c){freeIsNotKey(_0x40e17c,_0x384fa8['vtigerAccounts'],'id');for(var _0x19c46b=0x0,_0xeceff6={},_0x50cb06={};_0x19c46b<_0x40e17c[_0xc4a7('0x41')];_0x19c46b+=0x1){_0xeceff6=_0x40e17c[_0x19c46b];if(_[_0xc4a7('0x42')](_0x384fa8[_0xc4a7('0x4f')][_0xeceff6['id']])){_0x384fa8['vtigerAccounts'][_0xeceff6['id']]=new VtigerAccount(_0xeceff6);}else{_0x384fa8[_0xc4a7('0x3f')](_0x384fa8[_0xc4a7('0x4f')][_0xeceff6['id']],_0xeceff6);}}}return _0x384fa8['vtigerAccounts'];};};Realtime[_0xc4a7('0x40')]['initServicenowAccounts']=function(){var _0x1fbd23=this;return function(_0x38e4d8){if(_0x38e4d8){freeIsNotKey(_0x38e4d8,_0x1fbd23['servicenowAccounts'],'id');for(var _0x236d47=0x0,_0x3becf8={},_0x21877f={};_0x236d47<_0x38e4d8[_0xc4a7('0x41')];_0x236d47+=0x1){_0x3becf8=_0x38e4d8[_0x236d47];if(_[_0xc4a7('0x42')](_0x1fbd23[_0xc4a7('0x50')][_0x3becf8['id']])){_0x1fbd23[_0xc4a7('0x50')][_0x3becf8['id']]=new ServicenowAccount(_0x3becf8);}else{_0x1fbd23[_0xc4a7('0x3f')](_0x1fbd23[_0xc4a7('0x50')][_0x3becf8['id']],_0x3becf8);}}}return _0x1fbd23['servicenowAccounts'];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x51')]=function(){var _0x57aee3=this;return function(_0x18c4cd){if(_0x18c4cd){freeIsNotKey(_0x18c4cd,_0x57aee3[_0xc4a7('0x24')],'id');for(var _0x1ef17e=0x0,_0x5fabc6={},_0xcabc46={};_0x1ef17e<_0x18c4cd[_0xc4a7('0x41')];_0x1ef17e+=0x1){_0x5fabc6=_0x18c4cd[_0x1ef17e];if(_[_0xc4a7('0x42')](_0x57aee3[_0xc4a7('0x24')][_0x5fabc6['id']])){_0x57aee3[_0xc4a7('0x24')][_0x5fabc6['id']]=new Dynamics365Account(_0x5fabc6);}else{_0x57aee3[_0xc4a7('0x3f')](_0x57aee3['dynamics365Accounts'][_0x5fabc6['id']],_0x5fabc6);}}}return _0x57aee3[_0xc4a7('0x24')];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x52')]=function(){var _0x66c014=this;return function(_0x374fde){if(_0x374fde){freeIsNotKey(_0x374fde,_0x66c014[_0xc4a7('0x25')],'id');for(var _0x2e3d4f=0x0,_0x22bab2={},_0x1ef148={};_0x2e3d4f<_0x374fde['length'];_0x2e3d4f+=0x1){_0x22bab2=_0x374fde[_0x2e3d4f];if(_['isUndefined'](_0x66c014[_0xc4a7('0x25')][_0x22bab2['id']])){_0x66c014[_0xc4a7('0x25')][_0x22bab2['id']]=new FreshsalesAccount(_0x22bab2);}else{_0x66c014[_0xc4a7('0x3f')](_0x66c014[_0xc4a7('0x25')][_0x22bab2['id']],_0x22bab2);}}}return _0x66c014['freshsalesAccounts'];};};Realtime['prototype'][_0xc4a7('0x53')]=function(){var _0x11a5da=this;return function(_0x3b55cc){for(var _0x482c67=0x0;_0x482c67<_0x3b55cc[_0xc4a7('0x41')];_0x482c67+=0x1){_[_0xc4a7('0x54')](_0x11a5da[_0xc4a7('0x17')][_0x3b55cc[_0x482c67][_0xc4a7('0x2a')]],_0x3b55cc[_0x482c67]);}return _0x11a5da[_0xc4a7('0x17')];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x55')]=function(){var _0x1768c2=this;return function(_0x214aa8){clearVoiceQueues(_0x1768c2[_0xc4a7('0x17')]);if(_0x214aa8){_0x214aa8=_['groupBy'](_0x214aa8,_0xc4a7('0x56'));for(var _0x2c0964 in _0x214aa8){if(_0x214aa8['hasOwnProperty'](_0x2c0964)){var _0x34170e={};for(var _0x34a762=0x0;_0x34a762<_0x214aa8[_0x2c0964][_0xc4a7('0x41')];_0x34a762+=0x1){var _0xd67658=_0x214aa8[_0x2c0964][_0x34a762][_0xc4a7('0x57')];if(_0x1768c2['voiceQueues'][_0xd67658]){if(_0x214aa8[_0x2c0964][_0x34a762][_0xc4a7('0x58')]){_0x1768c2[_0xc4a7('0x17')][_0xd67658]['unmanaged']+=0x1;}if(_0x214aa8[_0x2c0964][_0x34a762]['queuecallerabandon']){_0x1768c2['voiceQueues'][_0xd67658][_0xc4a7('0x35')]+=0x1;}_0x1768c2['voiceQueues'][_0xd67658][_0xc4a7('0x2f')]+=moment(_0x214aa8[_0x2c0964][_0x34a762][_0xc4a7('0x59')])[_0xc4a7('0x5a')](moment(_0x214aa8[_0x2c0964][_0x34a762][_0xc4a7('0x5b')]),_0xc4a7('0x5c'))||0x0;if(_0x34a762===_0x214aa8[_0x2c0964][_0xc4a7('0x41')]-0x1){_0x1768c2[_0xc4a7('0x17')][_0xd67658][_0xc4a7('0x30')]+=moment(_0x214aa8[_0x2c0964][_0x34a762]['queuecallercompleteAt']||_0x214aa8[_0x2c0964][_0x34a762][_0xc4a7('0x5d')]||_0x214aa8[_0x2c0964][_0x34a762][_0xc4a7('0x5e')])[_0xc4a7('0x5a')](moment(_0x214aa8[_0x2c0964][_0x34a762]['queuecallerjoinAt']),_0xc4a7('0x5c'))||0x0;_0x1768c2['voiceQueues'][_0xd67658][_0xc4a7('0x2d')]+=0x1;if(_0x214aa8[_0x2c0964][_0x34a762][_0xc4a7('0x5f')]){_0x1768c2[_0xc4a7('0x17')][_0xd67658][_0xc4a7('0x2e')]+=0x1;_0x1768c2[_0xc4a7('0x17')][_0xd67658][_0xc4a7('0x31')]+=moment(_0x214aa8[_0x2c0964][_0x34a762]['queuecallercompleteAt'])[_0xc4a7('0x5a')](moment(_0x214aa8[_0x2c0964][_0x34a762][_0xc4a7('0x59')]),_0xc4a7('0x5c'))||0x0;}}else{_0x1768c2[_0xc4a7('0x17')][_0xd67658][_0xc4a7('0x30')]+=_0x1768c2[_0xc4a7('0x17')][_0xd67658]['sumHoldTime']||0x0;}}}}}}return _0x1768c2[_0xc4a7('0x17')];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x60')]=function(){var _0x475b4d=this;return function(_0x4bcc3b){clearVoiceCallReports(_0x475b4d[_0xc4a7('0x19')]);if(_0x4bcc3b){for(var _0x2a08a7=0x0;_0x2a08a7<_0x4bcc3b[_0xc4a7('0x41')];_0x2a08a7+=0x1){_0x475b4d[_0xc4a7('0x19')][_0xc4a7('0x2d')]+=0x1;_0x475b4d['outbound'][_0xc4a7('0x30')]+=_0x4bcc3b[_0x2a08a7][_0xc4a7('0x61')];if(_0x4bcc3b[_0x2a08a7]['disposition']==='ANSWERED'){_0x475b4d[_0xc4a7('0x19')]['answered']+=0x1;_0x475b4d[_0xc4a7('0x19')][_0xc4a7('0x2f')]+=_0x4bcc3b[_0x2a08a7][_0xc4a7('0x61')]-_0x4bcc3b[_0x2a08a7]['billableseconds']||0x0;_0x475b4d[_0xc4a7('0x19')][_0xc4a7('0x31')]+=_0x4bcc3b[_0x2a08a7][_0xc4a7('0x62')];}}}return _0x475b4d[_0xc4a7('0x19')];};};Realtime['prototype'][_0xc4a7('0x63')]=function(){var _0x10ac00=this;return function(_0x584f85){if(_0x584f85){freeIsNotKey(_0x584f85,_0x10ac00[_0xc4a7('0x18')],_0xc4a7('0x2a'));for(var _0x2c2703=0x0,_0x300464={};_0x2c2703<_0x584f85['length'];_0x2c2703+=0x1){_0x300464=_0x584f85[_0x2c2703];if(_[_0xc4a7('0x42')](_0x10ac00[_0xc4a7('0x18')][_0x300464[_0xc4a7('0x2a')]])){_0x10ac00[_0xc4a7('0x18')][_0x300464[_0xc4a7('0x2a')]]=new Campaign(_0x300464);}else{_0x10ac00[_0xc4a7('0x3f')](_0x10ac00['campaigns'][_0x300464['name']],_0x300464);}}}return _0x10ac00['campaigns'];};};Realtime[_0xc4a7('0x40')][_0xc4a7('0x64')]=function(){var _0x4e44a2=this;return function(_0x2a9bbe){if(_0x2a9bbe){freeIsNotKey(_0x2a9bbe,_0x4e44a2[_0xc4a7('0x1a')],'id');for(var _0x11b0c6=0x0,_0x3ba41c={};_0x11b0c6<_0x2a9bbe[_0xc4a7('0x41')];_0x11b0c6+=0x1){_0x3ba41c=_0x2a9bbe[_0x11b0c6];if(_[_0xc4a7('0x42')](_0x4e44a2['voiceExtensions'][_0x3ba41c['id']])){_0x4e44a2['voiceExtensions'][_0x3ba41c['id']]=new VoiceExtension(_0x3ba41c);}else{_0x4e44a2[_0xc4a7('0x3f')](_0x4e44a2[_0xc4a7('0x1a')][_0x3ba41c['id']],_0x3ba41c);}}}return _0x4e44a2['voiceExtensions'];};};Realtime['prototype'][_0xc4a7('0x65')]=function(){var _0xf69790=this;return function(_0x201305){clearCampaigns(_0xf69790[_0xc4a7('0x18')]);for(var _0x295786=0x0;_0x295786<_0x201305['length'];_0x295786+=0x1){_[_0xc4a7('0x54')](_0xf69790[_0xc4a7('0x18')][_0x201305[_0x295786]['name']],_0x201305[_0x295786]);}return _0xf69790[_0xc4a7('0x18')];};};Realtime[_0xc4a7('0x40')]['initFaxAccounts']=function(){var _0x43c409=this;return function(_0xe986d8){if(_0xe986d8){freeIsNotKey(_0xe986d8,_0x43c409['faxAccounts'],'id');for(var _0xed1ebb=0x0,_0x110da1={},_0xa1022d={};_0xed1ebb<_0xe986d8['length'];_0xed1ebb+=0x1){_0x110da1=_0xe986d8[_0xed1ebb];if(_[_0xc4a7('0x42')](_0x43c409[_0xc4a7('0x66')][_0x110da1['id']])){_0x43c409[_0xc4a7('0x66')][_0x110da1['id']]=new FaxAccount(_0x110da1);}else{_0x43c409[_0xc4a7('0x3f')](_0x43c409[_0xc4a7('0x66')][_0x110da1['id']],_0x110da1);}}}return _0x43c409[_0xc4a7('0x66')];};};module[_0xc4a7('0x67')]=Realtime;