0ba6b43cc6b25eb3489b71dfb50c9be66b20b7a2
[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 _0x0cee=['vtigerAccounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','SIP/%s','name','isNil','interface','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','unmanaged','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','queueStatusComplete','mergeFromDatabase','initAgents','format','isUndefined','prototype','initTelephones','telephones','length','initTrunks','trunks','initVoiceQueues','voiceQueues','initTriggers','initTemplates','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','freshdeskAccounts','initZohoAccounts','zohoAccounts','initSugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','servicenowAccounts','dynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','merge','groupBy','queuecallerexit','queuecallerabandon','abandoned','queuecallerleaveAt','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerexitAt','queuecallercomplete','duration','disposition','ANSWERED','billableseconds','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','initFaxAccounts','exports','bluebird','util','lodash','moment','../model/agent','../model/telephone','../model/trigger','../model/template','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/deskAccount','../model/vtigerAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','triggers','campaigns','templates','outbound','voiceExtensions','channels','queueChannels','outboundChannels','timers','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','deskAccounts'];(function(_0xf2dec4,_0x3f8e04){var _0x1244ff=function(_0x2fc663){while(--_0x2fc663){_0xf2dec4['push'](_0xf2dec4['shift']());}};_0x1244ff(++_0x3f8e04);}(_0x0cee,0x12f));var _0xe0ce=function(_0x1aa48a,_0x57afe3){_0x1aa48a=_0x1aa48a-0x0;var _0x4b6cb7=_0x0cee[_0x1aa48a];return _0x4b6cb7;};'use strict';var BPromise=require(_0xe0ce('0x0'));var util=require(_0xe0ce('0x1'));var _=require(_0xe0ce('0x2'));var moment=require(_0xe0ce('0x3'));var Agent=require(_0xe0ce('0x4'));var Telephone=require(_0xe0ce('0x5'));var Trunk=require('../model/trunk');var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0xe0ce('0x6'));var Template=require(_0xe0ce('0x7'));var Campaign=require(_0xe0ce('0x8'));var VoiceExtension=require(_0xe0ce('0x9'));var ZendeskAccount=require(_0xe0ce('0xa'));var SalesforceAccount=require(_0xe0ce('0xb'));var FreshdeskAccount=require(_0xe0ce('0xc'));var SugarcrmAccount=require(_0xe0ce('0xd'));var ZohoAccount=require('../model/zohoAccount');var DeskAccount=require(_0xe0ce('0xe'));var VtigerAccount=require(_0xe0ce('0xf'));var ServicenowAccount=require('../model/servicenowAccount');var Dynamics365Account=require(_0xe0ce('0x10'));var FreshsalesAccount=require(_0xe0ce('0x11'));var FaxAccount=require(_0xe0ce('0x12'));var Realtime=function(){this[_0xe0ce('0x13')]={};this['telephones']={};this['trunks']={};this['voiceQueues']={};this[_0xe0ce('0x14')]={};this[_0xe0ce('0x15')]={};this[_0xe0ce('0x16')]={};this[_0xe0ce('0x17')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xe0ce('0x18')]={};this[_0xe0ce('0x19')]={};this[_0xe0ce('0x1a')]={};this[_0xe0ce('0x1b')]={};this[_0xe0ce('0x1c')]={};this[_0xe0ce('0x1d')]={};this[_0xe0ce('0x1e')]={};this[_0xe0ce('0x1f')]={};this['freshdeskAccounts']={};this['zohoAccounts']={};this[_0xe0ce('0x20')]={};this[_0xe0ce('0x21')]={};this['servicenowAccounts']={};this['dynamics365Accounts']={};this[_0xe0ce('0x22')]={};this[_0xe0ce('0x23')]={};};function freeIsNotKey(_0x49e9d1,_0x4169ce,_0x11cbc9){var _0x4e82bc=_[_0xe0ce('0x24')](_0x49e9d1,function(_0x4e4e19,_0x5ff437){return _0x4e4e19[_0x11cbc9];});for(var _0x2b5ec6 in _0x4169ce){if(_0x4169ce[_0xe0ce('0x25')](_0x2b5ec6)){if(!_0x4e82bc[_0x2b5ec6]){delete _0x4169ce[_0x2b5ec6];}}}}function freeIsNotKeySip(_0x412b52,_0x39f2c5){var _0x5316fb=_['mapKeys'](_0x412b52,function(_0xadcb66,_0x5edfc1){return util['format'](_0xe0ce('0x26'),_0xadcb66[_0xe0ce('0x27')]);});for(var _0x494c2a in _0x39f2c5){if(_0x39f2c5[_0xe0ce('0x25')](_0x494c2a)){if(!_0x5316fb[_0x494c2a]){delete _0x39f2c5[_0x494c2a];}}}}function freeIsNotKeyAgent(_0x96c2a4,_0x196cee){var _0x1c3e52=_[_0xe0ce('0x24')](_0x96c2a4,function(_0x4ce716,_0xfcb09){var _0x5d31b2=_[_0xe0ce('0x28')](_0x4ce716['interface'])?util['format']('SIP/%s',_0x4ce716['name']):_0x4ce716[_0xe0ce('0x29')];return _0x5d31b2;});for(var _0x52a372 in _0x196cee){if(_0x196cee[_0xe0ce('0x25')](_0x52a372)){if(!_0x1c3e52[_0x52a372]){delete _0x196cee[_0x52a372];}}}}function clearVoiceCallReports(_0x21f9c3){_0x21f9c3[_0xe0ce('0x2a')]=0x0;_0x21f9c3[_0xe0ce('0x2b')]=0x0;_0x21f9c3[_0xe0ce('0x2c')]=0x0;_0x21f9c3[_0xe0ce('0x2d')]=0x0;_0x21f9c3[_0xe0ce('0x2e')]=0x0;}function clearCampaigns(_0x2b2dfc){if(!_[_0xe0ce('0x2f')](_0x2b2dfc)){for(var _0x188c56 in _0x2b2dfc){if(_0x2b2dfc[_0xe0ce('0x25')](_0x188c56)){_0x2b2dfc[_0x188c56][_0xe0ce('0x30')]=0x0;_0x2b2dfc[_0x188c56]['ivrAnswerCallsDay']=0x0;}}}}function clearVoiceQueues(_0x300a8e){if(!_[_0xe0ce('0x2f')](_0x300a8e)){for(var _0x42d3ed in _0x300a8e){if(_0x300a8e[_0xe0ce('0x25')](_0x42d3ed)){_0x300a8e[_0x42d3ed]['total']=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x2b')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x31')]=0x0;_0x300a8e[_0x42d3ed]['abandoned']=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x2c')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x2d')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x2e')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x32')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x33')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x34')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x35')]=0x0;_0x300a8e[_0x42d3ed]['outboundNoSuchCallsDay']=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x36')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x37')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x38')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x39')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x3a')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x3b')]=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x3c')]=0x0;_0x300a8e[_0x42d3ed]['outboundAnswerAgiCallsDay']=0x0;_0x300a8e[_0x42d3ed]['outboundAnswerCallsDay']=0x0;_0x300a8e[_0x42d3ed][_0xe0ce('0x3d')]=!![];}}}}Realtime['prototype'][_0xe0ce('0x3e')]=function(_0x26ef23,_0x22ad36){for(var _0x27f61c in _0x22ad36){if(_0x26ef23[_0xe0ce('0x25')](_0x27f61c)){_0x26ef23[_0x27f61c]=_0x22ad36[_0x27f61c];}}};Realtime['prototype'][_0xe0ce('0x3f')]=function(){var _0x422e1b=this;return function(_0x47ede8){if(_0x47ede8){freeIsNotKeyAgent(_0x47ede8,_0x422e1b['agents']);for(var _0x55226d=0x0,_0x3c0b90={},_0x890e07={};_0x55226d<_0x47ede8['length'];_0x55226d+=0x1){_0x3c0b90=_0x47ede8[_0x55226d];var _0x1de631=_[_0xe0ce('0x28')](_0x3c0b90[_0xe0ce('0x29')])?util[_0xe0ce('0x40')]('SIP/%s',_0x3c0b90[_0xe0ce('0x27')]):_0x3c0b90[_0xe0ce('0x29')];if(_[_0xe0ce('0x41')](_0x422e1b[_0xe0ce('0x13')][_0x1de631])){_0x422e1b[_0xe0ce('0x13')][_0x1de631]=new Agent(_0x3c0b90);}else{_0x422e1b['mergeFromDatabase'](_0x422e1b['agents'][_0x1de631],_0x3c0b90);}}}return _0x422e1b[_0xe0ce('0x13')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x43')]=function(){var _0x26df1b=this;return function(_0x571a64){if(_0x571a64){freeIsNotKeySip(_0x571a64,_0x26df1b[_0xe0ce('0x44')]);for(var _0x119a1=0x0,_0x4ed22c={},_0x28be5a={};_0x119a1<_0x571a64[_0xe0ce('0x45')];_0x119a1+=0x1){_0x4ed22c=_0x571a64[_0x119a1];if(_['isUndefined'](_0x26df1b[_0xe0ce('0x44')][util[_0xe0ce('0x40')](_0xe0ce('0x26'),_0x4ed22c[_0xe0ce('0x27')])])){_0x26df1b[_0xe0ce('0x44')][util[_0xe0ce('0x40')](_0xe0ce('0x26'),_0x4ed22c['name'])]=new Telephone(_0x4ed22c);}else{_0x26df1b[_0xe0ce('0x3e')](_0x26df1b[_0xe0ce('0x44')][util[_0xe0ce('0x40')](_0xe0ce('0x26'),_0x4ed22c[_0xe0ce('0x27')])],_0x4ed22c);}}}return _0x26df1b['telephones'];};};Realtime['prototype'][_0xe0ce('0x46')]=function(){var _0x3faa6c=this;return function(_0x2f8e67){if(_0x2f8e67){freeIsNotKeySip(_0x2f8e67,_0x3faa6c['trunks']);for(var _0x1de6b9=0x0,_0x4697e7={},_0x4827de={};_0x1de6b9<_0x2f8e67['length'];_0x1de6b9+=0x1){_0x4697e7=_0x2f8e67[_0x1de6b9];if(_[_0xe0ce('0x41')](_0x3faa6c[_0xe0ce('0x47')][util[_0xe0ce('0x40')](_0xe0ce('0x26'),_0x4697e7['name'])])){_0x3faa6c[_0xe0ce('0x47')][util[_0xe0ce('0x40')](_0xe0ce('0x26'),_0x4697e7[_0xe0ce('0x27')])]=new Trunk(_0x4697e7);}else{_0x3faa6c[_0xe0ce('0x3e')](_0x3faa6c[_0xe0ce('0x47')][util[_0xe0ce('0x40')]('SIP/%s',_0x4697e7[_0xe0ce('0x27')])],_0x4697e7);}}}return _0x3faa6c[_0xe0ce('0x47')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x48')]=function(){var _0x441e4c=this;return function(_0x185ced){if(_0x185ced){freeIsNotKey(_0x185ced,_0x441e4c[_0xe0ce('0x49')],'name');for(var _0x33dc0c=0x0,_0x370cb3={},_0x5914a9={};_0x33dc0c<_0x185ced[_0xe0ce('0x45')];_0x33dc0c+=0x1){_0x370cb3=_0x185ced[_0x33dc0c];if(_[_0xe0ce('0x41')](_0x441e4c[_0xe0ce('0x49')][_0x370cb3[_0xe0ce('0x27')]])){_0x441e4c[_0xe0ce('0x49')][_0x370cb3['name']]=new VoiceQueue(_0x370cb3);}else{_0x441e4c[_0xe0ce('0x3e')](_0x441e4c[_0xe0ce('0x49')][_0x370cb3[_0xe0ce('0x27')]],_0x370cb3);}}}return _0x441e4c[_0xe0ce('0x49')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x4a')]=function(){var _0x656e82=this;return function(_0x1d8aa3){if(_0x1d8aa3){freeIsNotKey(_0x1d8aa3,_0x656e82[_0xe0ce('0x14')],'id');for(var _0x222ccc=0x0,_0x4aa28a={},_0x5f48c8={};_0x222ccc<_0x1d8aa3[_0xe0ce('0x45')];_0x222ccc+=0x1){_0x4aa28a=_0x1d8aa3[_0x222ccc];if(_[_0xe0ce('0x41')](_0x656e82[_0xe0ce('0x14')][_0x4aa28a['id']])){_0x656e82['triggers'][_0x4aa28a['id']]=new Trigger(_0x4aa28a);}else{_0x656e82[_0xe0ce('0x3e')](_0x656e82['triggers'][_0x4aa28a['id']],_0x4aa28a);}}}return _0x656e82[_0xe0ce('0x14')];};};Realtime['prototype'][_0xe0ce('0x4b')]=function(){var _0x36b678=this;return function(_0x45d0a4){if(_0x45d0a4){freeIsNotKey(_0x45d0a4,_0x36b678['templates'],'id');for(var _0x5f0ccc=0x0,_0x448552={},_0x384f05={};_0x5f0ccc<_0x45d0a4[_0xe0ce('0x45')];_0x5f0ccc+=0x1){_0x448552=_0x45d0a4[_0x5f0ccc];if(_[_0xe0ce('0x41')](_0x36b678['templates'][_0x448552['id']])){_0x36b678[_0xe0ce('0x16')][_0x448552['id']]=new Template(_0x448552);}else{_0x36b678['mergeFromDatabase'](_0x36b678['templates'][_0x448552['id']],_0x448552);}}}return _0x36b678[_0xe0ce('0x16')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x4c')]=function(){var _0xb3ee0f=this;return function(_0x345b45){if(_0x345b45){freeIsNotKey(_0x345b45,_0xb3ee0f[_0xe0ce('0x1d')],'id');for(var _0x121047=0x0,_0x30e611={},_0x256ace={};_0x121047<_0x345b45['length'];_0x121047+=0x1){_0x30e611=_0x345b45[_0x121047];if(_[_0xe0ce('0x41')](_0xb3ee0f[_0xe0ce('0x1d')][_0x30e611['id']])){_0xb3ee0f[_0xe0ce('0x1d')][_0x30e611['id']]=new ZendeskAccount(_0x30e611);}else{_0xb3ee0f[_0xe0ce('0x3e')](_0xb3ee0f[_0xe0ce('0x1d')][_0x30e611['id']],_0x30e611);}}}return _0xb3ee0f[_0xe0ce('0x1d')];};};Realtime['prototype'][_0xe0ce('0x4d')]=function(){var _0x52b217=this;return function(_0x4c9c0f){if(_0x4c9c0f){freeIsNotKey(_0x4c9c0f,_0x52b217[_0xe0ce('0x1e')],'id');for(var _0x4f4174=0x0,_0x25bdaa={},_0x4e41e1={};_0x4f4174<_0x4c9c0f[_0xe0ce('0x45')];_0x4f4174+=0x1){_0x25bdaa=_0x4c9c0f[_0x4f4174];if(_['isUndefined'](_0x52b217['salesforceAccounts'][_0x25bdaa['id']])){_0x52b217[_0xe0ce('0x1e')][_0x25bdaa['id']]=new SalesforceAccount(_0x25bdaa);}else{_0x52b217[_0xe0ce('0x3e')](_0x52b217[_0xe0ce('0x1e')][_0x25bdaa['id']],_0x25bdaa);}}}return _0x52b217[_0xe0ce('0x1e')];};};Realtime['prototype'][_0xe0ce('0x4e')]=function(){var _0x511149=this;return function(_0x4a1602){if(_0x4a1602){freeIsNotKey(_0x4a1602,_0x511149[_0xe0ce('0x4f')],'id');for(var _0x3d2c43=0x0,_0x1d0445={},_0x2d497b={};_0x3d2c43<_0x4a1602[_0xe0ce('0x45')];_0x3d2c43+=0x1){_0x1d0445=_0x4a1602[_0x3d2c43];if(_['isUndefined'](_0x511149[_0xe0ce('0x4f')][_0x1d0445['id']])){_0x511149[_0xe0ce('0x4f')][_0x1d0445['id']]=new FreshdeskAccount(_0x1d0445);}else{_0x511149['mergeFromDatabase'](_0x511149[_0xe0ce('0x4f')][_0x1d0445['id']],_0x1d0445);}}}return _0x511149[_0xe0ce('0x4f')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x50')]=function(){var _0x131d3a=this;return function(_0x56e7e7){if(_0x56e7e7){freeIsNotKey(_0x56e7e7,_0x131d3a[_0xe0ce('0x51')],'id');for(var _0xa409f5=0x0,_0x4a57e0={},_0x460518={};_0xa409f5<_0x56e7e7['length'];_0xa409f5+=0x1){_0x4a57e0=_0x56e7e7[_0xa409f5];if(_[_0xe0ce('0x41')](_0x131d3a[_0xe0ce('0x51')][_0x4a57e0['id']])){_0x131d3a[_0xe0ce('0x51')][_0x4a57e0['id']]=new ZohoAccount(_0x4a57e0);}else{_0x131d3a[_0xe0ce('0x3e')](_0x131d3a[_0xe0ce('0x51')][_0x4a57e0['id']],_0x4a57e0);}}}return _0x131d3a[_0xe0ce('0x51')];};};Realtime['prototype']['initDeskAccounts']=function(){var _0x54c6c0=this;return function(_0x2ce024){if(_0x2ce024){freeIsNotKey(_0x2ce024,_0x54c6c0[_0xe0ce('0x20')],'id');for(var _0x51c512=0x0,_0x4b6338={},_0x51a648={};_0x51c512<_0x2ce024[_0xe0ce('0x45')];_0x51c512+=0x1){_0x4b6338=_0x2ce024[_0x51c512];if(_['isUndefined'](_0x54c6c0['deskAccounts'][_0x4b6338['id']])){_0x54c6c0[_0xe0ce('0x20')][_0x4b6338['id']]=new DeskAccount(_0x4b6338);}else{_0x54c6c0[_0xe0ce('0x3e')](_0x54c6c0[_0xe0ce('0x20')][_0x4b6338['id']],_0x4b6338);}}}return _0x54c6c0[_0xe0ce('0x20')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x52')]=function(){var _0x4b4836=this;return function(_0x3a0adf){if(_0x3a0adf){freeIsNotKey(_0x3a0adf,_0x4b4836[_0xe0ce('0x1f')],'id');for(var _0x3dba60=0x0,_0x1d56f6={},_0x4d929e={};_0x3dba60<_0x3a0adf[_0xe0ce('0x45')];_0x3dba60+=0x1){_0x1d56f6=_0x3a0adf[_0x3dba60];if(_[_0xe0ce('0x41')](_0x4b4836['sugarcrmAccounts'][_0x1d56f6['id']])){_0x4b4836[_0xe0ce('0x1f')][_0x1d56f6['id']]=new SugarcrmAccount(_0x1d56f6);}else{_0x4b4836[_0xe0ce('0x3e')](_0x4b4836['sugarcrmAccounts'][_0x1d56f6['id']],_0x1d56f6);}}}return _0x4b4836['sugarcrmAccounts'];};};Realtime['prototype'][_0xe0ce('0x53')]=function(){var _0x52e998=this;return function(_0x4d7c3b){if(_0x4d7c3b){freeIsNotKey(_0x4d7c3b,_0x52e998[_0xe0ce('0x21')],'id');for(var _0x133f4a=0x0,_0x24707c={},_0xacd302={};_0x133f4a<_0x4d7c3b[_0xe0ce('0x45')];_0x133f4a+=0x1){_0x24707c=_0x4d7c3b[_0x133f4a];if(_[_0xe0ce('0x41')](_0x52e998[_0xe0ce('0x21')][_0x24707c['id']])){_0x52e998[_0xe0ce('0x21')][_0x24707c['id']]=new VtigerAccount(_0x24707c);}else{_0x52e998[_0xe0ce('0x3e')](_0x52e998[_0xe0ce('0x21')][_0x24707c['id']],_0x24707c);}}}return _0x52e998[_0xe0ce('0x21')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x54')]=function(){var _0x5e7851=this;return function(_0x4d17af){if(_0x4d17af){freeIsNotKey(_0x4d17af,_0x5e7851[_0xe0ce('0x55')],'id');for(var _0x3da6b2=0x0,_0x49088b={},_0x49b264={};_0x3da6b2<_0x4d17af[_0xe0ce('0x45')];_0x3da6b2+=0x1){_0x49088b=_0x4d17af[_0x3da6b2];if(_[_0xe0ce('0x41')](_0x5e7851[_0xe0ce('0x55')][_0x49088b['id']])){_0x5e7851[_0xe0ce('0x55')][_0x49088b['id']]=new ServicenowAccount(_0x49088b);}else{_0x5e7851[_0xe0ce('0x3e')](_0x5e7851[_0xe0ce('0x55')][_0x49088b['id']],_0x49088b);}}}return _0x5e7851[_0xe0ce('0x55')];};};Realtime[_0xe0ce('0x42')]['initDynamics365Accounts']=function(){var _0x27d15c=this;return function(_0xee3b82){if(_0xee3b82){freeIsNotKey(_0xee3b82,_0x27d15c[_0xe0ce('0x56')],'id');for(var _0x423c45=0x0,_0x518366={},_0x481cd8={};_0x423c45<_0xee3b82['length'];_0x423c45+=0x1){_0x518366=_0xee3b82[_0x423c45];if(_[_0xe0ce('0x41')](_0x27d15c[_0xe0ce('0x56')][_0x518366['id']])){_0x27d15c[_0xe0ce('0x56')][_0x518366['id']]=new Dynamics365Account(_0x518366);}else{_0x27d15c[_0xe0ce('0x3e')](_0x27d15c[_0xe0ce('0x56')][_0x518366['id']],_0x518366);}}}return _0x27d15c[_0xe0ce('0x56')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x57')]=function(){var _0x2c5b4f=this;return function(_0x8f6f93){if(_0x8f6f93){freeIsNotKey(_0x8f6f93,_0x2c5b4f[_0xe0ce('0x22')],'id');for(var _0x22ad6d=0x0,_0x47dbf1={},_0x4b6960={};_0x22ad6d<_0x8f6f93[_0xe0ce('0x45')];_0x22ad6d+=0x1){_0x47dbf1=_0x8f6f93[_0x22ad6d];if(_[_0xe0ce('0x41')](_0x2c5b4f[_0xe0ce('0x22')][_0x47dbf1['id']])){_0x2c5b4f[_0xe0ce('0x22')][_0x47dbf1['id']]=new FreshsalesAccount(_0x47dbf1);}else{_0x2c5b4f['mergeFromDatabase'](_0x2c5b4f['freshsalesAccounts'][_0x47dbf1['id']],_0x47dbf1);}}}return _0x2c5b4f[_0xe0ce('0x22')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x58')]=function(){var _0x5cb243=this;return function(_0x48c9a8){for(var _0x584f18=0x0;_0x584f18<_0x48c9a8[_0xe0ce('0x45')];_0x584f18+=0x1){_[_0xe0ce('0x59')](_0x5cb243['voiceQueues'][_0x48c9a8[_0x584f18][_0xe0ce('0x27')]],_0x48c9a8[_0x584f18]);}return _0x5cb243[_0xe0ce('0x49')];};};Realtime[_0xe0ce('0x42')]['initVoiceQueueReports']=function(){var _0x52cdac=this;return function(_0x390842){clearVoiceQueues(_0x52cdac[_0xe0ce('0x49')]);if(_0x390842){_0x390842=_[_0xe0ce('0x5a')](_0x390842,'uniqueid');for(var _0xee1c33 in _0x390842){if(_0x390842['hasOwnProperty'](_0xee1c33)){var _0x3d043b={};for(var _0x57e348=0x0;_0x57e348<_0x390842[_0xee1c33][_0xe0ce('0x45')];_0x57e348+=0x1){var _0x2014a8=_0x390842[_0xee1c33][_0x57e348]['queue'];if(_0x52cdac['voiceQueues'][_0x2014a8]){if(_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x5b')]){_0x52cdac[_0xe0ce('0x49')][_0x2014a8][_0xe0ce('0x31')]+=0x1;}if(_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x5c')]){_0x52cdac['voiceQueues'][_0x2014a8][_0xe0ce('0x5d')]+=0x1;}_0x52cdac[_0xe0ce('0x49')][_0x2014a8]['sumHoldTime']+=moment(_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x5e')])[_0xe0ce('0x5f')](moment(_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x60')]),_0xe0ce('0x61'))||0x0;if(_0x57e348===_0x390842[_0xee1c33][_0xe0ce('0x45')]-0x1){_0x52cdac[_0xe0ce('0x49')][_0x2014a8][_0xe0ce('0x2d')]+=moment(_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x62')]||_0x390842[_0xee1c33][_0x57e348]['queuecallerabandonAt']||_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x63')])[_0xe0ce('0x5f')](moment(_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x60')]),'seconds')||0x0;_0x52cdac['voiceQueues'][_0x2014a8][_0xe0ce('0x2a')]+=0x1;if(_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x64')]){_0x52cdac[_0xe0ce('0x49')][_0x2014a8]['answered']+=0x1;_0x52cdac[_0xe0ce('0x49')][_0x2014a8][_0xe0ce('0x2e')]+=moment(_0x390842[_0xee1c33][_0x57e348][_0xe0ce('0x62')])[_0xe0ce('0x5f')](moment(_0x390842[_0xee1c33][_0x57e348]['queuecallerleaveAt']),_0xe0ce('0x61'))||0x0;}}else{_0x52cdac[_0xe0ce('0x49')][_0x2014a8][_0xe0ce('0x2d')]+=_0x52cdac[_0xe0ce('0x49')][_0x2014a8][_0xe0ce('0x2c')]||0x0;}}}}}}return _0x52cdac['voiceQueues'];};};Realtime['prototype']['initVoiceCallReports']=function(){var _0xf9c00c=this;return function(_0x8a5d51){clearVoiceCallReports(_0xf9c00c[_0xe0ce('0x17')]);if(_0x8a5d51){for(var _0x2a1348=0x0;_0x2a1348<_0x8a5d51[_0xe0ce('0x45')];_0x2a1348+=0x1){_0xf9c00c['outbound'][_0xe0ce('0x2a')]+=0x1;_0xf9c00c[_0xe0ce('0x17')][_0xe0ce('0x2d')]+=_0x8a5d51[_0x2a1348][_0xe0ce('0x65')];if(_0x8a5d51[_0x2a1348][_0xe0ce('0x66')]===_0xe0ce('0x67')){_0xf9c00c[_0xe0ce('0x17')][_0xe0ce('0x2b')]+=0x1;_0xf9c00c[_0xe0ce('0x17')][_0xe0ce('0x2c')]+=_0x8a5d51[_0x2a1348][_0xe0ce('0x65')]-_0x8a5d51[_0x2a1348][_0xe0ce('0x68')]||0x0;_0xf9c00c[_0xe0ce('0x17')][_0xe0ce('0x2e')]+=_0x8a5d51[_0x2a1348][_0xe0ce('0x68')];}}}return _0xf9c00c[_0xe0ce('0x17')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x69')]=function(){var _0x25b0cf=this;return function(_0x22bb35){if(_0x22bb35){freeIsNotKey(_0x22bb35,_0x25b0cf[_0xe0ce('0x15')],_0xe0ce('0x27'));for(var _0x259524=0x0,_0x4aab9={};_0x259524<_0x22bb35[_0xe0ce('0x45')];_0x259524+=0x1){_0x4aab9=_0x22bb35[_0x259524];if(_[_0xe0ce('0x41')](_0x25b0cf[_0xe0ce('0x15')][_0x4aab9[_0xe0ce('0x27')]])){_0x25b0cf[_0xe0ce('0x15')][_0x4aab9['name']]=new Campaign(_0x4aab9);}else{_0x25b0cf[_0xe0ce('0x3e')](_0x25b0cf[_0xe0ce('0x15')][_0x4aab9[_0xe0ce('0x27')]],_0x4aab9);_0x25b0cf[_0xe0ce('0x15')][_0x4aab9[_0xe0ce('0x27')]][_0xe0ce('0x6a')]=_0x4aab9[_0xe0ce('0x6b')]?_0x4aab9['SquareProject'][_0xe0ce('0x27')]:undefined;}}}return _0x25b0cf[_0xe0ce('0x15')];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x6c')]=function(){var _0x4f1a33=this;return function(_0x293f2f){if(_0x293f2f){freeIsNotKey(_0x293f2f,_0x4f1a33['voiceExtensions'],'id');for(var _0x263e64=0x0,_0x121276={};_0x263e64<_0x293f2f[_0xe0ce('0x45')];_0x263e64+=0x1){_0x121276=_0x293f2f[_0x263e64];if(_[_0xe0ce('0x41')](_0x4f1a33[_0xe0ce('0x18')][_0x121276['id']])){_0x4f1a33['voiceExtensions'][_0x121276['id']]=new VoiceExtension(_0x121276);}else{_0x4f1a33[_0xe0ce('0x3e')](_0x4f1a33['voiceExtensions'][_0x121276['id']],_0x121276);}}}return _0x4f1a33['voiceExtensions'];};};Realtime[_0xe0ce('0x42')][_0xe0ce('0x6d')]=function(){var _0x238aaf=this;return function(_0x2e3ae0){clearCampaigns(_0x238aaf[_0xe0ce('0x15')]);for(var _0x240600=0x0;_0x240600<_0x2e3ae0[_0xe0ce('0x45')];_0x240600+=0x1){_[_0xe0ce('0x59')](_0x238aaf['campaigns'][_0x2e3ae0[_0x240600][_0xe0ce('0x27')]],_0x2e3ae0[_0x240600]);}return _0x238aaf[_0xe0ce('0x15')];};};Realtime['prototype'][_0xe0ce('0x6e')]=function(){var _0x3fef61=this;return function(_0x52da6c){if(_0x52da6c){freeIsNotKey(_0x52da6c,_0x3fef61['faxAccounts'],'id');for(var _0x15d7ba=0x0,_0x4c0daa={},_0x9c273e={};_0x15d7ba<_0x52da6c[_0xe0ce('0x45')];_0x15d7ba+=0x1){_0x4c0daa=_0x52da6c[_0x15d7ba];if(_[_0xe0ce('0x41')](_0x3fef61[_0xe0ce('0x23')][_0x4c0daa['id']])){_0x3fef61[_0xe0ce('0x23')][_0x4c0daa['id']]=new FaxAccount(_0x4c0daa);}else{_0x3fef61['mergeFromDatabase'](_0x3fef61['faxAccounts'][_0x4c0daa['id']],_0x4c0daa);}}}return _0x3fef61[_0xe0ce('0x23')];};};module[_0xe0ce('0x6f')]=Realtime;