f47c4b77d4dfc5c54e9f923fa9603cb1d6efc927
[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 _0xc1f7=['../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/campaign','../model/zendeskAccount','../model/salesforceAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','agents','triggers','campaigns','templates','queueChannels','outboundChannels','timers','sugarcrmAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','mapKeys','hasOwnProperty','isNil','interface','format','SIP/%s','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','name','isUndefined','telephones','length','initTrunks','trunks','initVoiceQueues','voiceQueues','initTriggers','initTemplates','initZendeskAccounts','zendeskAccounts','initSalesforceAccounts','salesforceAccounts','freshdeskAccounts','initZohoAccounts','zohoAccounts','initDeskAccounts','deskAccounts','initVtigerAccounts','initServicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','merge','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','queuecallercomplete','queuecallerleaveAt','initVoiceCallReports','outbound','duration','ANSWERED','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','voiceExtensions','initCampaignHopperHistory','faxAccounts','exports','bluebird','util'];(function(_0x13b7d2,_0x46c7c5){var _0x279e13=function(_0x5e4f05){while(--_0x5e4f05){_0x13b7d2['push'](_0x13b7d2['shift']());}};_0x279e13(++_0x46c7c5);}(_0xc1f7,0x13f));var _0x7c1f=function(_0x4ccab6,_0x2094d9){_0x4ccab6=_0x4ccab6-0x0;var _0x4e7f19=_0xc1f7[_0x4ccab6];return _0x4e7f19;};'use strict';var BPromise=require(_0x7c1f('0x0'));var util=require(_0x7c1f('0x1'));var _=require('lodash');var moment=require('moment');var Agent=require('../model/agent');var Telephone=require(_0x7c1f('0x2'));var Trunk=require(_0x7c1f('0x3'));var VoiceQueue=require(_0x7c1f('0x4'));var Trigger=require(_0x7c1f('0x5'));var Template=require(_0x7c1f('0x6'));var Campaign=require(_0x7c1f('0x7'));var VoiceExtension=require('../model/voiceExtension');var ZendeskAccount=require(_0x7c1f('0x8'));var SalesforceAccount=require(_0x7c1f('0x9'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require('../model/sugarcrmAccount');var ZohoAccount=require(_0x7c1f('0xa'));var DeskAccount=require(_0x7c1f('0xb'));var VtigerAccount=require(_0x7c1f('0xc'));var ServicenowAccount=require(_0x7c1f('0xd'));var Dynamics365Account=require(_0x7c1f('0xe'));var FreshsalesAccount=require(_0x7c1f('0xf'));var FaxAccount=require('../model/faxAccount');var Realtime=function(){this[_0x7c1f('0x10')]={};this['telephones']={};this['trunks']={};this['voiceQueues']={};this[_0x7c1f('0x11')]={};this[_0x7c1f('0x12')]={};this[_0x7c1f('0x13')]={};this['outbound']={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this['channels']={};this[_0x7c1f('0x14')]={};this[_0x7c1f('0x15')]={};this[_0x7c1f('0x16')]={};this['settings']={};this['zendeskAccounts']={};this['salesforceAccounts']={};this[_0x7c1f('0x17')]={};this['freshdeskAccounts']={};this['zohoAccounts']={};this['deskAccounts']={};this[_0x7c1f('0x18')]={};this[_0x7c1f('0x19')]={};this[_0x7c1f('0x1a')]={};this[_0x7c1f('0x1b')]={};this['faxAccounts']={};};function freeIsNotKey(_0x510c3c,_0x11d04e,_0x3ae9f6){var _0x2985a3=_[_0x7c1f('0x1c')](_0x510c3c,function(_0x3f2808,_0x5b29cb){return _0x3f2808[_0x3ae9f6];});for(var _0x1e2202 in _0x11d04e){if(_0x11d04e['hasOwnProperty'](_0x1e2202)){if(!_0x2985a3[_0x1e2202]){delete _0x11d04e[_0x1e2202];}}}}function freeIsNotKeySip(_0x1379c4,_0x4b58e8){var _0x4dbd57=_[_0x7c1f('0x1c')](_0x1379c4,function(_0x16ad02,_0x384205){return util['format']('SIP/%s',_0x16ad02['name']);});for(var _0x555310 in _0x4b58e8){if(_0x4b58e8[_0x7c1f('0x1d')](_0x555310)){if(!_0x4dbd57[_0x555310]){delete _0x4b58e8[_0x555310];}}}}function freeIsNotKeyAgent(_0xea7da5,_0x5784bd){var _0x5b59d8=_[_0x7c1f('0x1c')](_0xea7da5,function(_0xacb426,_0x110524){var _0x121ce=_[_0x7c1f('0x1e')](_0xacb426[_0x7c1f('0x1f')])?util[_0x7c1f('0x20')](_0x7c1f('0x21'),_0xacb426['name']):_0xacb426[_0x7c1f('0x1f')];return _0x121ce;});for(var _0x4781fa in _0x5784bd){if(_0x5784bd[_0x7c1f('0x1d')](_0x4781fa)){if(!_0x5b59d8[_0x4781fa]){delete _0x5784bd[_0x4781fa];}}}}function clearVoiceCallReports(_0x39df2f){_0x39df2f[_0x7c1f('0x22')]=0x0;_0x39df2f[_0x7c1f('0x23')]=0x0;_0x39df2f[_0x7c1f('0x24')]=0x0;_0x39df2f[_0x7c1f('0x25')]=0x0;_0x39df2f[_0x7c1f('0x26')]=0x0;}function clearCampaigns(_0x42d416){if(!_[_0x7c1f('0x27')](_0x42d416)){for(var _0x53817d in _0x42d416){if(_0x42d416[_0x7c1f('0x1d')](_0x53817d)){_0x42d416[_0x53817d][_0x7c1f('0x28')]=0x0;_0x42d416[_0x53817d]['ivrAnswerCallsDay']=0x0;}}}}function clearVoiceQueues(_0x5b517c){if(!_[_0x7c1f('0x27')](_0x5b517c)){for(var _0x19d6ba in _0x5b517c){if(_0x5b517c[_0x7c1f('0x1d')](_0x19d6ba)){_0x5b517c[_0x19d6ba]['total']=0x0;_0x5b517c[_0x19d6ba]['answered']=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x29')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x2a')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x24')]=0x0;_0x5b517c[_0x19d6ba]['sumDuration']=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x26')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x2b')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x2c')]=0x0;_0x5b517c[_0x19d6ba]['outboundBusyCallsDay']=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x2d')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x2e')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x2f')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x30')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x31')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x32')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x33')]=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x34')]=0x0;_0x5b517c[_0x19d6ba]['outboundReCallsDay']=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x2b')]=0x0;_0x5b517c[_0x19d6ba]['outboundAnswerCallsDay']=0x0;_0x5b517c[_0x19d6ba][_0x7c1f('0x35')]=!![];}}}}Realtime[_0x7c1f('0x36')][_0x7c1f('0x37')]=function(_0x18c4b3,_0x218828){for(var _0x7c2780 in _0x218828){if(_0x18c4b3['hasOwnProperty'](_0x7c2780)){_0x18c4b3[_0x7c2780]=_0x218828[_0x7c2780];}}};Realtime['prototype'][_0x7c1f('0x38')]=function(){var _0x4a1bd5=this;return function(_0x2313c9){if(_0x2313c9){freeIsNotKeyAgent(_0x2313c9,_0x4a1bd5[_0x7c1f('0x10')]);for(var _0x8ff940=0x0,_0x8d51ad={},_0x58fdd7={};_0x8ff940<_0x2313c9['length'];_0x8ff940+=0x1){_0x8d51ad=_0x2313c9[_0x8ff940];var _0x5a1b3a=_[_0x7c1f('0x1e')](_0x8d51ad[_0x7c1f('0x1f')])?util[_0x7c1f('0x20')](_0x7c1f('0x21'),_0x8d51ad[_0x7c1f('0x39')]):_0x8d51ad['interface'];if(_[_0x7c1f('0x3a')](_0x4a1bd5[_0x7c1f('0x10')][_0x5a1b3a])){_0x4a1bd5[_0x7c1f('0x10')][_0x5a1b3a]=new Agent(_0x8d51ad);}else{_0x4a1bd5['mergeFromDatabase'](_0x4a1bd5[_0x7c1f('0x10')][_0x5a1b3a],_0x8d51ad);}}}return _0x4a1bd5[_0x7c1f('0x10')];};};Realtime[_0x7c1f('0x36')]['initTelephones']=function(){var _0x100baa=this;return function(_0x2e9316){if(_0x2e9316){freeIsNotKeySip(_0x2e9316,_0x100baa[_0x7c1f('0x3b')]);for(var _0xd89da5=0x0,_0x3c6259={},_0x4aef27={};_0xd89da5<_0x2e9316[_0x7c1f('0x3c')];_0xd89da5+=0x1){_0x3c6259=_0x2e9316[_0xd89da5];if(_[_0x7c1f('0x3a')](_0x100baa[_0x7c1f('0x3b')][util['format'](_0x7c1f('0x21'),_0x3c6259[_0x7c1f('0x39')])])){_0x100baa[_0x7c1f('0x3b')][util['format'](_0x7c1f('0x21'),_0x3c6259[_0x7c1f('0x39')])]=new Telephone(_0x3c6259);}else{_0x100baa[_0x7c1f('0x37')](_0x100baa[_0x7c1f('0x3b')][util['format'](_0x7c1f('0x21'),_0x3c6259[_0x7c1f('0x39')])],_0x3c6259);}}}return _0x100baa[_0x7c1f('0x3b')];};};Realtime['prototype'][_0x7c1f('0x3d')]=function(){var _0xe61d3a=this;return function(_0x1fe7c8){if(_0x1fe7c8){freeIsNotKeySip(_0x1fe7c8,_0xe61d3a[_0x7c1f('0x3e')]);for(var _0x3b7154=0x0,_0x2079a1={},_0x58f181={};_0x3b7154<_0x1fe7c8[_0x7c1f('0x3c')];_0x3b7154+=0x1){_0x2079a1=_0x1fe7c8[_0x3b7154];if(_[_0x7c1f('0x3a')](_0xe61d3a[_0x7c1f('0x3e')][util[_0x7c1f('0x20')](_0x7c1f('0x21'),_0x2079a1[_0x7c1f('0x39')])])){_0xe61d3a[_0x7c1f('0x3e')][util['format'](_0x7c1f('0x21'),_0x2079a1[_0x7c1f('0x39')])]=new Trunk(_0x2079a1);}else{_0xe61d3a['mergeFromDatabase'](_0xe61d3a[_0x7c1f('0x3e')][util[_0x7c1f('0x20')](_0x7c1f('0x21'),_0x2079a1[_0x7c1f('0x39')])],_0x2079a1);}}}return _0xe61d3a[_0x7c1f('0x3e')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x3f')]=function(){var _0x1548d9=this;return function(_0x4b4e85){if(_0x4b4e85){freeIsNotKey(_0x4b4e85,_0x1548d9[_0x7c1f('0x40')],_0x7c1f('0x39'));for(var _0x108d8a=0x0,_0x3f6ae9={},_0x599a1c={};_0x108d8a<_0x4b4e85['length'];_0x108d8a+=0x1){_0x3f6ae9=_0x4b4e85[_0x108d8a];if(_[_0x7c1f('0x3a')](_0x1548d9[_0x7c1f('0x40')][_0x3f6ae9[_0x7c1f('0x39')]])){_0x1548d9[_0x7c1f('0x40')][_0x3f6ae9[_0x7c1f('0x39')]]=new VoiceQueue(_0x3f6ae9);}else{_0x1548d9['mergeFromDatabase'](_0x1548d9[_0x7c1f('0x40')][_0x3f6ae9[_0x7c1f('0x39')]],_0x3f6ae9);}}}return _0x1548d9[_0x7c1f('0x40')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x41')]=function(){var _0x1b94f5=this;return function(_0x26c04f){if(_0x26c04f){freeIsNotKey(_0x26c04f,_0x1b94f5[_0x7c1f('0x11')],'id');for(var _0x5cef17=0x0,_0x2df6e5={},_0x8061be={};_0x5cef17<_0x26c04f['length'];_0x5cef17+=0x1){_0x2df6e5=_0x26c04f[_0x5cef17];if(_[_0x7c1f('0x3a')](_0x1b94f5[_0x7c1f('0x11')][_0x2df6e5['id']])){_0x1b94f5[_0x7c1f('0x11')][_0x2df6e5['id']]=new Trigger(_0x2df6e5);}else{_0x1b94f5[_0x7c1f('0x37')](_0x1b94f5[_0x7c1f('0x11')][_0x2df6e5['id']],_0x2df6e5);}}}return _0x1b94f5[_0x7c1f('0x11')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x42')]=function(){var _0x18f821=this;return function(_0x36e649){if(_0x36e649){freeIsNotKey(_0x36e649,_0x18f821[_0x7c1f('0x13')],'id');for(var _0x1fcd0b=0x0,_0x193e61={},_0x17a6f5={};_0x1fcd0b<_0x36e649[_0x7c1f('0x3c')];_0x1fcd0b+=0x1){_0x193e61=_0x36e649[_0x1fcd0b];if(_['isUndefined'](_0x18f821['templates'][_0x193e61['id']])){_0x18f821[_0x7c1f('0x13')][_0x193e61['id']]=new Template(_0x193e61);}else{_0x18f821[_0x7c1f('0x37')](_0x18f821[_0x7c1f('0x13')][_0x193e61['id']],_0x193e61);}}}return _0x18f821['templates'];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x43')]=function(){var _0x8a4360=this;return function(_0x12fb65){if(_0x12fb65){freeIsNotKey(_0x12fb65,_0x8a4360['zendeskAccounts'],'id');for(var _0x5ef104=0x0,_0x387cb4={},_0x4df0bf={};_0x5ef104<_0x12fb65[_0x7c1f('0x3c')];_0x5ef104+=0x1){_0x387cb4=_0x12fb65[_0x5ef104];if(_['isUndefined'](_0x8a4360[_0x7c1f('0x44')][_0x387cb4['id']])){_0x8a4360[_0x7c1f('0x44')][_0x387cb4['id']]=new ZendeskAccount(_0x387cb4);}else{_0x8a4360['mergeFromDatabase'](_0x8a4360[_0x7c1f('0x44')][_0x387cb4['id']],_0x387cb4);}}}return _0x8a4360['zendeskAccounts'];};};Realtime['prototype'][_0x7c1f('0x45')]=function(){var _0x2d8232=this;return function(_0x2244fe){if(_0x2244fe){freeIsNotKey(_0x2244fe,_0x2d8232[_0x7c1f('0x46')],'id');for(var _0x2dc7eb=0x0,_0x53cb1f={},_0x277ccc={};_0x2dc7eb<_0x2244fe[_0x7c1f('0x3c')];_0x2dc7eb+=0x1){_0x53cb1f=_0x2244fe[_0x2dc7eb];if(_[_0x7c1f('0x3a')](_0x2d8232[_0x7c1f('0x46')][_0x53cb1f['id']])){_0x2d8232[_0x7c1f('0x46')][_0x53cb1f['id']]=new SalesforceAccount(_0x53cb1f);}else{_0x2d8232[_0x7c1f('0x37')](_0x2d8232[_0x7c1f('0x46')][_0x53cb1f['id']],_0x53cb1f);}}}return _0x2d8232['salesforceAccounts'];};};Realtime[_0x7c1f('0x36')]['initFreshdeskAccounts']=function(){var _0x3a251d=this;return function(_0x49e0e4){if(_0x49e0e4){freeIsNotKey(_0x49e0e4,_0x3a251d['freshdeskAccounts'],'id');for(var _0x39eac8=0x0,_0x1edacd={},_0x172bd2={};_0x39eac8<_0x49e0e4['length'];_0x39eac8+=0x1){_0x1edacd=_0x49e0e4[_0x39eac8];if(_['isUndefined'](_0x3a251d[_0x7c1f('0x47')][_0x1edacd['id']])){_0x3a251d[_0x7c1f('0x47')][_0x1edacd['id']]=new FreshdeskAccount(_0x1edacd);}else{_0x3a251d[_0x7c1f('0x37')](_0x3a251d[_0x7c1f('0x47')][_0x1edacd['id']],_0x1edacd);}}}return _0x3a251d[_0x7c1f('0x47')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x48')]=function(){var _0x471c6b=this;return function(_0x1f0456){if(_0x1f0456){freeIsNotKey(_0x1f0456,_0x471c6b[_0x7c1f('0x49')],'id');for(var _0x5a3aed=0x0,_0x3a9c79={},_0xceeb47={};_0x5a3aed<_0x1f0456[_0x7c1f('0x3c')];_0x5a3aed+=0x1){_0x3a9c79=_0x1f0456[_0x5a3aed];if(_[_0x7c1f('0x3a')](_0x471c6b['zohoAccounts'][_0x3a9c79['id']])){_0x471c6b['zohoAccounts'][_0x3a9c79['id']]=new ZohoAccount(_0x3a9c79);}else{_0x471c6b[_0x7c1f('0x37')](_0x471c6b[_0x7c1f('0x49')][_0x3a9c79['id']],_0x3a9c79);}}}return _0x471c6b['zohoAccounts'];};};Realtime['prototype'][_0x7c1f('0x4a')]=function(){var _0x3e1854=this;return function(_0xabff73){if(_0xabff73){freeIsNotKey(_0xabff73,_0x3e1854[_0x7c1f('0x4b')],'id');for(var _0x51da05=0x0,_0xab7ad7={},_0x1528b4={};_0x51da05<_0xabff73[_0x7c1f('0x3c')];_0x51da05+=0x1){_0xab7ad7=_0xabff73[_0x51da05];if(_[_0x7c1f('0x3a')](_0x3e1854['deskAccounts'][_0xab7ad7['id']])){_0x3e1854[_0x7c1f('0x4b')][_0xab7ad7['id']]=new DeskAccount(_0xab7ad7);}else{_0x3e1854[_0x7c1f('0x37')](_0x3e1854[_0x7c1f('0x4b')][_0xab7ad7['id']],_0xab7ad7);}}}return _0x3e1854[_0x7c1f('0x4b')];};};Realtime[_0x7c1f('0x36')]['initSugarcrmAccounts']=function(){var _0x1a738d=this;return function(_0x4355f9){if(_0x4355f9){freeIsNotKey(_0x4355f9,_0x1a738d['sugarcrmAccounts'],'id');for(var _0x5b0b0e=0x0,_0x368edd={},_0x2ada1d={};_0x5b0b0e<_0x4355f9['length'];_0x5b0b0e+=0x1){_0x368edd=_0x4355f9[_0x5b0b0e];if(_[_0x7c1f('0x3a')](_0x1a738d[_0x7c1f('0x17')][_0x368edd['id']])){_0x1a738d[_0x7c1f('0x17')][_0x368edd['id']]=new SugarcrmAccount(_0x368edd);}else{_0x1a738d[_0x7c1f('0x37')](_0x1a738d[_0x7c1f('0x17')][_0x368edd['id']],_0x368edd);}}}return _0x1a738d['sugarcrmAccounts'];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x4c')]=function(){var _0x2b2463=this;return function(_0x869672){if(_0x869672){freeIsNotKey(_0x869672,_0x2b2463['vtigerAccounts'],'id');for(var _0x2e5f83=0x0,_0x44eeaf={},_0x40a7e1={};_0x2e5f83<_0x869672['length'];_0x2e5f83+=0x1){_0x44eeaf=_0x869672[_0x2e5f83];if(_[_0x7c1f('0x3a')](_0x2b2463[_0x7c1f('0x18')][_0x44eeaf['id']])){_0x2b2463['vtigerAccounts'][_0x44eeaf['id']]=new VtigerAccount(_0x44eeaf);}else{_0x2b2463[_0x7c1f('0x37')](_0x2b2463[_0x7c1f('0x18')][_0x44eeaf['id']],_0x44eeaf);}}}return _0x2b2463[_0x7c1f('0x18')];};};Realtime['prototype'][_0x7c1f('0x4d')]=function(){var _0x3ee8ac=this;return function(_0x2e93f0){if(_0x2e93f0){freeIsNotKey(_0x2e93f0,_0x3ee8ac['servicenowAccounts'],'id');for(var _0x271bb5=0x0,_0x4dd782={},_0x55b591={};_0x271bb5<_0x2e93f0[_0x7c1f('0x3c')];_0x271bb5+=0x1){_0x4dd782=_0x2e93f0[_0x271bb5];if(_[_0x7c1f('0x3a')](_0x3ee8ac[_0x7c1f('0x19')][_0x4dd782['id']])){_0x3ee8ac[_0x7c1f('0x19')][_0x4dd782['id']]=new ServicenowAccount(_0x4dd782);}else{_0x3ee8ac[_0x7c1f('0x37')](_0x3ee8ac['servicenowAccounts'][_0x4dd782['id']],_0x4dd782);}}}return _0x3ee8ac[_0x7c1f('0x19')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x4e')]=function(){var _0x46c159=this;return function(_0x11ac2e){if(_0x11ac2e){freeIsNotKey(_0x11ac2e,_0x46c159[_0x7c1f('0x1a')],'id');for(var _0x48c3da=0x0,_0x18d346={},_0x1064b6={};_0x48c3da<_0x11ac2e[_0x7c1f('0x3c')];_0x48c3da+=0x1){_0x18d346=_0x11ac2e[_0x48c3da];if(_[_0x7c1f('0x3a')](_0x46c159[_0x7c1f('0x1a')][_0x18d346['id']])){_0x46c159[_0x7c1f('0x1a')][_0x18d346['id']]=new Dynamics365Account(_0x18d346);}else{_0x46c159['mergeFromDatabase'](_0x46c159[_0x7c1f('0x1a')][_0x18d346['id']],_0x18d346);}}}return _0x46c159[_0x7c1f('0x1a')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x4f')]=function(){var _0x2006b6=this;return function(_0x31e34c){if(_0x31e34c){freeIsNotKey(_0x31e34c,_0x2006b6[_0x7c1f('0x1b')],'id');for(var _0x46851e=0x0,_0x35891c={},_0x2fa22c={};_0x46851e<_0x31e34c[_0x7c1f('0x3c')];_0x46851e+=0x1){_0x35891c=_0x31e34c[_0x46851e];if(_[_0x7c1f('0x3a')](_0x2006b6[_0x7c1f('0x1b')][_0x35891c['id']])){_0x2006b6[_0x7c1f('0x1b')][_0x35891c['id']]=new FreshsalesAccount(_0x35891c);}else{_0x2006b6[_0x7c1f('0x37')](_0x2006b6['freshsalesAccounts'][_0x35891c['id']],_0x35891c);}}}return _0x2006b6[_0x7c1f('0x1b')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x50')]=function(){var _0x4380ea=this;return function(_0x2cd106){for(var _0x8dfbd9=0x0;_0x8dfbd9<_0x2cd106[_0x7c1f('0x3c')];_0x8dfbd9+=0x1){_[_0x7c1f('0x51')](_0x4380ea[_0x7c1f('0x40')][_0x2cd106[_0x8dfbd9]['name']],_0x2cd106[_0x8dfbd9]);}return _0x4380ea[_0x7c1f('0x40')];};};Realtime[_0x7c1f('0x36')]['initVoiceQueueReports']=function(){var _0x4d699e=this;return function(_0xe9f805){clearVoiceQueues(_0x4d699e[_0x7c1f('0x40')]);if(_0xe9f805){_0xe9f805=_[_0x7c1f('0x52')](_0xe9f805,_0x7c1f('0x53'));for(var _0x1d0788 in _0xe9f805){if(_0xe9f805[_0x7c1f('0x1d')](_0x1d0788)){var _0x1cce25={};for(var _0x50828f=0x0;_0x50828f<_0xe9f805[_0x1d0788]['length'];_0x50828f+=0x1){var _0xe83eaa=_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x54')];if(_0x4d699e[_0x7c1f('0x40')][_0xe83eaa]){if(_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x55')]){_0x4d699e[_0x7c1f('0x40')][_0xe83eaa][_0x7c1f('0x29')]+=0x1;}if(_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x56')]){_0x4d699e['voiceQueues'][_0xe83eaa][_0x7c1f('0x2a')]+=0x1;}_0x4d699e[_0x7c1f('0x40')][_0xe83eaa]['sumHoldTime']+=moment(_0xe9f805[_0x1d0788][_0x50828f]['queuecallerleaveAt'])[_0x7c1f('0x57')](moment(_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x58')]),_0x7c1f('0x59'))||0x0;if(_0x50828f===_0xe9f805[_0x1d0788][_0x7c1f('0x3c')]-0x1){_0x4d699e[_0x7c1f('0x40')][_0xe83eaa][_0x7c1f('0x25')]+=moment(_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x5a')]||_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x5b')]||_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x5c')])['diff'](moment(_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x58')]),_0x7c1f('0x59'))||0x0;_0x4d699e['voiceQueues'][_0xe83eaa][_0x7c1f('0x22')]+=0x1;if(_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x5d')]){_0x4d699e[_0x7c1f('0x40')][_0xe83eaa][_0x7c1f('0x23')]+=0x1;_0x4d699e['voiceQueues'][_0xe83eaa][_0x7c1f('0x26')]+=moment(_0xe9f805[_0x1d0788][_0x50828f]['queuecallercompleteAt'])['diff'](moment(_0xe9f805[_0x1d0788][_0x50828f][_0x7c1f('0x5e')]),'seconds')||0x0;}}else{_0x4d699e[_0x7c1f('0x40')][_0xe83eaa][_0x7c1f('0x25')]+=_0x4d699e[_0x7c1f('0x40')][_0xe83eaa]['sumHoldTime']||0x0;}}}}}}return _0x4d699e['voiceQueues'];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x5f')]=function(){var _0x4f8b31=this;return function(_0x27955b){clearVoiceCallReports(_0x4f8b31[_0x7c1f('0x60')]);if(_0x27955b){for(var _0x3be262=0x0;_0x3be262<_0x27955b[_0x7c1f('0x3c')];_0x3be262+=0x1){_0x4f8b31[_0x7c1f('0x60')][_0x7c1f('0x22')]+=0x1;_0x4f8b31[_0x7c1f('0x60')][_0x7c1f('0x25')]+=_0x27955b[_0x3be262][_0x7c1f('0x61')];if(_0x27955b[_0x3be262]['disposition']===_0x7c1f('0x62')){_0x4f8b31[_0x7c1f('0x60')][_0x7c1f('0x23')]+=0x1;_0x4f8b31[_0x7c1f('0x60')][_0x7c1f('0x24')]+=_0x27955b[_0x3be262]['duration']-_0x27955b[_0x3be262]['billableseconds']||0x0;_0x4f8b31[_0x7c1f('0x60')][_0x7c1f('0x26')]+=_0x27955b[_0x3be262]['billableseconds'];}}}return _0x4f8b31[_0x7c1f('0x60')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x63')]=function(){var _0x1cd98f=this;return function(_0x1d233d){if(_0x1d233d){freeIsNotKey(_0x1d233d,_0x1cd98f[_0x7c1f('0x12')],_0x7c1f('0x39'));for(var _0x54bc9f=0x0,_0xcd4117={};_0x54bc9f<_0x1d233d[_0x7c1f('0x3c')];_0x54bc9f+=0x1){_0xcd4117=_0x1d233d[_0x54bc9f];if(_[_0x7c1f('0x3a')](_0x1cd98f[_0x7c1f('0x12')][_0xcd4117['name']])){_0x1cd98f['campaigns'][_0xcd4117[_0x7c1f('0x39')]]=new Campaign(_0xcd4117);}else{_0x1cd98f[_0x7c1f('0x37')](_0x1cd98f['campaigns'][_0xcd4117['name']],_0xcd4117);_0x1cd98f[_0x7c1f('0x12')][_0xcd4117[_0x7c1f('0x39')]][_0x7c1f('0x64')]=_0xcd4117[_0x7c1f('0x65')]?_0xcd4117['SquareProject']['name']:undefined;}}}return _0x1cd98f['campaigns'];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x66')]=function(){var _0x3ff8fc=this;return function(_0x2fa772){if(_0x2fa772){freeIsNotKey(_0x2fa772,_0x3ff8fc['voiceExtensions'],'id');for(var _0x375f70=0x0,_0x8c9152={};_0x375f70<_0x2fa772[_0x7c1f('0x3c')];_0x375f70+=0x1){_0x8c9152=_0x2fa772[_0x375f70];if(_[_0x7c1f('0x3a')](_0x3ff8fc['voiceExtensions'][_0x8c9152['id']])){_0x3ff8fc['voiceExtensions'][_0x8c9152['id']]=new VoiceExtension(_0x8c9152);}else{_0x3ff8fc[_0x7c1f('0x37')](_0x3ff8fc['voiceExtensions'][_0x8c9152['id']],_0x8c9152);}}}return _0x3ff8fc[_0x7c1f('0x67')];};};Realtime[_0x7c1f('0x36')][_0x7c1f('0x68')]=function(){var _0x5ea4f4=this;return function(_0x5e2445){clearCampaigns(_0x5ea4f4[_0x7c1f('0x12')]);for(var _0x5ee1d3=0x0;_0x5ee1d3<_0x5e2445[_0x7c1f('0x3c')];_0x5ee1d3+=0x1){_[_0x7c1f('0x51')](_0x5ea4f4[_0x7c1f('0x12')][_0x5e2445[_0x5ee1d3][_0x7c1f('0x39')]],_0x5e2445[_0x5ee1d3]);}return _0x5ea4f4['campaigns'];};};Realtime[_0x7c1f('0x36')]['initFaxAccounts']=function(){var _0x148223=this;return function(_0x389542){if(_0x389542){freeIsNotKey(_0x389542,_0x148223[_0x7c1f('0x69')],'id');for(var _0x2b9c2b=0x0,_0x2b912c={},_0x805a87={};_0x2b9c2b<_0x389542['length'];_0x2b9c2b+=0x1){_0x2b912c=_0x389542[_0x2b9c2b];if(_[_0x7c1f('0x3a')](_0x148223[_0x7c1f('0x69')][_0x2b912c['id']])){_0x148223[_0x7c1f('0x69')][_0x2b912c['id']]=new FaxAccount(_0x2b912c);}else{_0x148223['mergeFromDatabase'](_0x148223[_0x7c1f('0x69')][_0x2b912c['id']],_0x2b912c);}}}return _0x148223[_0x7c1f('0x69')];};};module[_0x7c1f('0x6a')]=Realtime;