b4f74ec68d62032b7be24039c50930f1f2832e61
[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 _0x92db=['format','SIP/%s','name','hasOwnProperty','isNil','interface','sumHoldTime','sumDuration','sumBillable','ivrTotalCallsDays','ivrAnswerCallsDay','isEmpty','total','answered','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','isUndefined','initTelephones','telephones','initTrunks','length','initTriggers','triggers','initTemplates','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','freshdeskAccounts','initZohoAccounts','initDeskAccounts','initSugarcrmAccounts','initVtigerAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','initFreshsalesAccounts','merge','groupBy','uniqueid','queue','queuecallerexit','queuecallerabandon','queuecallerleaveAt','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','queuecallercomplete','ANSWERED','billableseconds','initCampaigns','initVoiceExtensions','initCampaignHopperHistory','initFaxAccounts','exports','bluebird','util','lodash','moment','../model/telephone','../model/trunk','../model/trigger','../model/template','../model/campaign','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','trunks','voiceQueues','campaigns','templates','outbound','voiceExtensions','channels','queueChannels','outboundChannels','timers','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','freshsalesAccounts','faxAccounts','mapKeys'];(function(_0x3c6f2c,_0x3bbc6a){var _0x7cb251=function(_0x43a7ac){while(--_0x43a7ac){_0x3c6f2c['push'](_0x3c6f2c['shift']());}};_0x7cb251(++_0x3bbc6a);}(_0x92db,0xb3));var _0xb92d=function(_0x2ec83e,_0x6a7a54){_0x2ec83e=_0x2ec83e-0x0;var _0x5d70cd=_0x92db[_0x2ec83e];return _0x5d70cd;};'use strict';var BPromise=require(_0xb92d('0x0'));var util=require(_0xb92d('0x1'));var _=require(_0xb92d('0x2'));var moment=require(_0xb92d('0x3'));var Agent=require('../model/agent');var Telephone=require(_0xb92d('0x4'));var Trunk=require(_0xb92d('0x5'));var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0xb92d('0x6'));var Template=require(_0xb92d('0x7'));var Campaign=require(_0xb92d('0x8'));var VoiceExtension=require('../model/voiceExtension');var ZendeskAccount=require(_0xb92d('0x9'));var SalesforceAccount=require(_0xb92d('0xa'));var FreshdeskAccount=require(_0xb92d('0xb'));var SugarcrmAccount=require(_0xb92d('0xc'));var ZohoAccount=require(_0xb92d('0xd'));var DeskAccount=require(_0xb92d('0xe'));var VtigerAccount=require(_0xb92d('0xf'));var ServicenowAccount=require(_0xb92d('0x10'));var Dynamics365Account=require(_0xb92d('0x11'));var FreshsalesAccount=require(_0xb92d('0x12'));var FaxAccount=require(_0xb92d('0x13'));var Realtime=function(){this[_0xb92d('0x14')]={};this['telephones']={};this[_0xb92d('0x15')]={};this[_0xb92d('0x16')]={};this['triggers']={};this[_0xb92d('0x17')]={};this[_0xb92d('0x18')]={};this[_0xb92d('0x19')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xb92d('0x1a')]={};this[_0xb92d('0x1b')]={};this[_0xb92d('0x1c')]={};this[_0xb92d('0x1d')]={};this[_0xb92d('0x1e')]={};this[_0xb92d('0x1f')]={};this[_0xb92d('0x20')]={};this[_0xb92d('0x21')]={};this['freshdeskAccounts']={};this[_0xb92d('0x22')]={};this[_0xb92d('0x23')]={};this['vtigerAccounts']={};this['servicenowAccounts']={};this['dynamics365Accounts']={};this[_0xb92d('0x24')]={};this[_0xb92d('0x25')]={};};function freeIsNotKey(_0x374753,_0x30d9d9,_0x249712){var _0x45b730=_['mapKeys'](_0x374753,function(_0x4626a8,_0x5e4ef9){return _0x4626a8[_0x249712];});for(var _0x48ac02 in _0x30d9d9){if(_0x30d9d9['hasOwnProperty'](_0x48ac02)){if(!_0x45b730[_0x48ac02]){delete _0x30d9d9[_0x48ac02];}}}}function freeIsNotKeySip(_0x14d0b4,_0xdefa95){var _0xe7d83f=_[_0xb92d('0x26')](_0x14d0b4,function(_0x2f73a1,_0x467146){return util[_0xb92d('0x27')](_0xb92d('0x28'),_0x2f73a1[_0xb92d('0x29')]);});for(var _0x51400c in _0xdefa95){if(_0xdefa95[_0xb92d('0x2a')](_0x51400c)){if(!_0xe7d83f[_0x51400c]){delete _0xdefa95[_0x51400c];}}}}function freeIsNotKeyAgent(_0x5b6252,_0x52108e){var _0x1ed513=_[_0xb92d('0x26')](_0x5b6252,function(_0x52b3dc,_0x16c83d){var _0xfe0067=_[_0xb92d('0x2b')](_0x52b3dc[_0xb92d('0x2c')])?util['format'](_0xb92d('0x28'),_0x52b3dc[_0xb92d('0x29')]):_0x52b3dc[_0xb92d('0x2c')];return _0xfe0067;});for(var _0x2fb3b3 in _0x52108e){if(_0x52108e[_0xb92d('0x2a')](_0x2fb3b3)){if(!_0x1ed513[_0x2fb3b3]){delete _0x52108e[_0x2fb3b3];}}}}function clearVoiceCallReports(_0x4dacff){_0x4dacff['total']=0x0;_0x4dacff['answered']=0x0;_0x4dacff[_0xb92d('0x2d')]=0x0;_0x4dacff[_0xb92d('0x2e')]=0x0;_0x4dacff[_0xb92d('0x2f')]=0x0;}function clearCampaigns(_0x532c49){if(!_['isEmpty'](_0x532c49)){for(var _0x1bd671 in _0x532c49){if(_0x532c49[_0xb92d('0x2a')](_0x1bd671)){_0x532c49[_0x1bd671][_0xb92d('0x30')]=0x0;_0x532c49[_0x1bd671][_0xb92d('0x31')]=0x0;}}}}function clearVoiceQueues(_0x1ea5cf){if(!_[_0xb92d('0x32')](_0x1ea5cf)){for(var _0x408cf4 in _0x1ea5cf){if(_0x1ea5cf[_0xb92d('0x2a')](_0x408cf4)){_0x1ea5cf[_0x408cf4][_0xb92d('0x33')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x34')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x35')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x36')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x2d')]=0x0;_0x1ea5cf[_0x408cf4]['sumDuration']=0x0;_0x1ea5cf[_0x408cf4]['sumBillable']=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x37')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x38')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x39')]=0x0;_0x1ea5cf[_0x408cf4]['outboundCongestionCallsDay']=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x3a')]=0x0;_0x1ea5cf[_0x408cf4]['outboundUnknownCallsDay']=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x3b')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x3c')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x3d')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x3e')]=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x3f')]=0x0;_0x1ea5cf[_0x408cf4]['outboundReCallsDay']=0x0;_0x1ea5cf[_0x408cf4]['outboundAnswerAgiCallsDay']=0x0;_0x1ea5cf[_0x408cf4]['outboundAnswerCallsDay']=0x0;_0x1ea5cf[_0x408cf4][_0xb92d('0x40')]=!![];}}}}Realtime[_0xb92d('0x41')][_0xb92d('0x42')]=function(_0x421352,_0x374378){for(var _0x4de91e in _0x374378){if(_0x421352['hasOwnProperty'](_0x4de91e)){_0x421352[_0x4de91e]=_0x374378[_0x4de91e];}}};Realtime['prototype'][_0xb92d('0x43')]=function(){var _0x575ee0=this;return function(_0x54e27a){if(_0x54e27a){freeIsNotKeyAgent(_0x54e27a,_0x575ee0[_0xb92d('0x14')]);for(var _0x3f1810=0x0,_0x281b8c={},_0x43fab8={};_0x3f1810<_0x54e27a['length'];_0x3f1810+=0x1){_0x281b8c=_0x54e27a[_0x3f1810];var _0x2608cf=_[_0xb92d('0x2b')](_0x281b8c[_0xb92d('0x2c')])?util[_0xb92d('0x27')](_0xb92d('0x28'),_0x281b8c[_0xb92d('0x29')]):_0x281b8c[_0xb92d('0x2c')];if(_[_0xb92d('0x44')](_0x575ee0[_0xb92d('0x14')][_0x2608cf])){_0x575ee0[_0xb92d('0x14')][_0x2608cf]=new Agent(_0x281b8c);}else{_0x575ee0[_0xb92d('0x42')](_0x575ee0[_0xb92d('0x14')][_0x2608cf],_0x281b8c);}}}return _0x575ee0[_0xb92d('0x14')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x45')]=function(){var _0x6dd3e0=this;return function(_0x48ac5f){if(_0x48ac5f){freeIsNotKeySip(_0x48ac5f,_0x6dd3e0['telephones']);for(var _0x5703eb=0x0,_0x4acdc6={},_0x356939={};_0x5703eb<_0x48ac5f['length'];_0x5703eb+=0x1){_0x4acdc6=_0x48ac5f[_0x5703eb];if(_['isUndefined'](_0x6dd3e0[_0xb92d('0x46')][util[_0xb92d('0x27')](_0xb92d('0x28'),_0x4acdc6['name'])])){_0x6dd3e0['telephones'][util[_0xb92d('0x27')]('SIP/%s',_0x4acdc6[_0xb92d('0x29')])]=new Telephone(_0x4acdc6);}else{_0x6dd3e0[_0xb92d('0x42')](_0x6dd3e0[_0xb92d('0x46')][util[_0xb92d('0x27')](_0xb92d('0x28'),_0x4acdc6[_0xb92d('0x29')])],_0x4acdc6);}}}return _0x6dd3e0[_0xb92d('0x46')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x47')]=function(){var _0x5d7033=this;return function(_0x1077d2){if(_0x1077d2){freeIsNotKeySip(_0x1077d2,_0x5d7033['trunks']);for(var _0x321f8f=0x0,_0x316df8={},_0x53ad98={};_0x321f8f<_0x1077d2[_0xb92d('0x48')];_0x321f8f+=0x1){_0x316df8=_0x1077d2[_0x321f8f];if(_[_0xb92d('0x44')](_0x5d7033[_0xb92d('0x15')][util[_0xb92d('0x27')](_0xb92d('0x28'),_0x316df8['name'])])){_0x5d7033[_0xb92d('0x15')][util[_0xb92d('0x27')](_0xb92d('0x28'),_0x316df8[_0xb92d('0x29')])]=new Trunk(_0x316df8);}else{_0x5d7033[_0xb92d('0x42')](_0x5d7033[_0xb92d('0x15')][util[_0xb92d('0x27')](_0xb92d('0x28'),_0x316df8['name'])],_0x316df8);}}}return _0x5d7033[_0xb92d('0x15')];};};Realtime[_0xb92d('0x41')]['initVoiceQueues']=function(){var _0x44242c=this;return function(_0x4470fb){if(_0x4470fb){freeIsNotKey(_0x4470fb,_0x44242c[_0xb92d('0x16')],_0xb92d('0x29'));for(var _0x2643aa=0x0,_0x407389={},_0x4d704b={};_0x2643aa<_0x4470fb[_0xb92d('0x48')];_0x2643aa+=0x1){_0x407389=_0x4470fb[_0x2643aa];if(_[_0xb92d('0x44')](_0x44242c[_0xb92d('0x16')][_0x407389[_0xb92d('0x29')]])){_0x44242c[_0xb92d('0x16')][_0x407389[_0xb92d('0x29')]]=new VoiceQueue(_0x407389);}else{_0x44242c['mergeFromDatabase'](_0x44242c[_0xb92d('0x16')][_0x407389[_0xb92d('0x29')]],_0x407389);}}}return _0x44242c[_0xb92d('0x16')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x49')]=function(){var _0x59a69e=this;return function(_0x3d5c7a){if(_0x3d5c7a){freeIsNotKey(_0x3d5c7a,_0x59a69e[_0xb92d('0x4a')],'id');for(var _0x120451=0x0,_0x5ed1a3={},_0x71fd0b={};_0x120451<_0x3d5c7a[_0xb92d('0x48')];_0x120451+=0x1){_0x5ed1a3=_0x3d5c7a[_0x120451];if(_[_0xb92d('0x44')](_0x59a69e[_0xb92d('0x4a')][_0x5ed1a3['id']])){_0x59a69e['triggers'][_0x5ed1a3['id']]=new Trigger(_0x5ed1a3);}else{_0x59a69e['mergeFromDatabase'](_0x59a69e['triggers'][_0x5ed1a3['id']],_0x5ed1a3);}}}return _0x59a69e[_0xb92d('0x4a')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x4b')]=function(){var _0x2e255c=this;return function(_0x38178f){if(_0x38178f){freeIsNotKey(_0x38178f,_0x2e255c[_0xb92d('0x18')],'id');for(var _0x9b9289=0x0,_0x593237={},_0x5e390a={};_0x9b9289<_0x38178f[_0xb92d('0x48')];_0x9b9289+=0x1){_0x593237=_0x38178f[_0x9b9289];if(_[_0xb92d('0x44')](_0x2e255c[_0xb92d('0x18')][_0x593237['id']])){_0x2e255c['templates'][_0x593237['id']]=new Template(_0x593237);}else{_0x2e255c[_0xb92d('0x42')](_0x2e255c[_0xb92d('0x18')][_0x593237['id']],_0x593237);}}}return _0x2e255c[_0xb92d('0x18')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x4c')]=function(){var _0xab32bb=this;return function(_0x5e967a){if(_0x5e967a){freeIsNotKey(_0x5e967a,_0xab32bb['zendeskAccounts'],'id');for(var _0x35d9d2=0x0,_0x1291b9={},_0x2a8b44={};_0x35d9d2<_0x5e967a[_0xb92d('0x48')];_0x35d9d2+=0x1){_0x1291b9=_0x5e967a[_0x35d9d2];if(_[_0xb92d('0x44')](_0xab32bb[_0xb92d('0x1f')][_0x1291b9['id']])){_0xab32bb[_0xb92d('0x1f')][_0x1291b9['id']]=new ZendeskAccount(_0x1291b9);}else{_0xab32bb[_0xb92d('0x42')](_0xab32bb[_0xb92d('0x1f')][_0x1291b9['id']],_0x1291b9);}}}return _0xab32bb[_0xb92d('0x1f')];};};Realtime['prototype'][_0xb92d('0x4d')]=function(){var _0x274abc=this;return function(_0x5b7b7e){if(_0x5b7b7e){freeIsNotKey(_0x5b7b7e,_0x274abc['salesforceAccounts'],'id');for(var _0x2331c6=0x0,_0x1e025f={},_0x269dd2={};_0x2331c6<_0x5b7b7e[_0xb92d('0x48')];_0x2331c6+=0x1){_0x1e025f=_0x5b7b7e[_0x2331c6];if(_[_0xb92d('0x44')](_0x274abc[_0xb92d('0x20')][_0x1e025f['id']])){_0x274abc[_0xb92d('0x20')][_0x1e025f['id']]=new SalesforceAccount(_0x1e025f);}else{_0x274abc['mergeFromDatabase'](_0x274abc[_0xb92d('0x20')][_0x1e025f['id']],_0x1e025f);}}}return _0x274abc[_0xb92d('0x20')];};};Realtime['prototype'][_0xb92d('0x4e')]=function(){var _0x41f025=this;return function(_0x1c0bd6){if(_0x1c0bd6){freeIsNotKey(_0x1c0bd6,_0x41f025[_0xb92d('0x4f')],'id');for(var _0x35186d=0x0,_0x8cddfd={},_0x33574e={};_0x35186d<_0x1c0bd6[_0xb92d('0x48')];_0x35186d+=0x1){_0x8cddfd=_0x1c0bd6[_0x35186d];if(_[_0xb92d('0x44')](_0x41f025[_0xb92d('0x4f')][_0x8cddfd['id']])){_0x41f025[_0xb92d('0x4f')][_0x8cddfd['id']]=new FreshdeskAccount(_0x8cddfd);}else{_0x41f025[_0xb92d('0x42')](_0x41f025[_0xb92d('0x4f')][_0x8cddfd['id']],_0x8cddfd);}}}return _0x41f025[_0xb92d('0x4f')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x50')]=function(){var _0x9e1838=this;return function(_0x65f7e7){if(_0x65f7e7){freeIsNotKey(_0x65f7e7,_0x9e1838[_0xb92d('0x22')],'id');for(var _0x3f8595=0x0,_0x4d9c1e={},_0x3d25ef={};_0x3f8595<_0x65f7e7[_0xb92d('0x48')];_0x3f8595+=0x1){_0x4d9c1e=_0x65f7e7[_0x3f8595];if(_[_0xb92d('0x44')](_0x9e1838['zohoAccounts'][_0x4d9c1e['id']])){_0x9e1838[_0xb92d('0x22')][_0x4d9c1e['id']]=new ZohoAccount(_0x4d9c1e);}else{_0x9e1838['mergeFromDatabase'](_0x9e1838['zohoAccounts'][_0x4d9c1e['id']],_0x4d9c1e);}}}return _0x9e1838['zohoAccounts'];};};Realtime[_0xb92d('0x41')][_0xb92d('0x51')]=function(){var _0x1a69dd=this;return function(_0x5e0932){if(_0x5e0932){freeIsNotKey(_0x5e0932,_0x1a69dd[_0xb92d('0x23')],'id');for(var _0x15cdee=0x0,_0x4e7e74={},_0x145a99={};_0x15cdee<_0x5e0932[_0xb92d('0x48')];_0x15cdee+=0x1){_0x4e7e74=_0x5e0932[_0x15cdee];if(_['isUndefined'](_0x1a69dd[_0xb92d('0x23')][_0x4e7e74['id']])){_0x1a69dd[_0xb92d('0x23')][_0x4e7e74['id']]=new DeskAccount(_0x4e7e74);}else{_0x1a69dd[_0xb92d('0x42')](_0x1a69dd[_0xb92d('0x23')][_0x4e7e74['id']],_0x4e7e74);}}}return _0x1a69dd['deskAccounts'];};};Realtime[_0xb92d('0x41')][_0xb92d('0x52')]=function(){var _0x29aa99=this;return function(_0xad277e){if(_0xad277e){freeIsNotKey(_0xad277e,_0x29aa99[_0xb92d('0x21')],'id');for(var _0x4e0927=0x0,_0x18de99={},_0x2a4124={};_0x4e0927<_0xad277e[_0xb92d('0x48')];_0x4e0927+=0x1){_0x18de99=_0xad277e[_0x4e0927];if(_[_0xb92d('0x44')](_0x29aa99[_0xb92d('0x21')][_0x18de99['id']])){_0x29aa99[_0xb92d('0x21')][_0x18de99['id']]=new SugarcrmAccount(_0x18de99);}else{_0x29aa99[_0xb92d('0x42')](_0x29aa99[_0xb92d('0x21')][_0x18de99['id']],_0x18de99);}}}return _0x29aa99[_0xb92d('0x21')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x53')]=function(){var _0x14fa35=this;return function(_0x579429){if(_0x579429){freeIsNotKey(_0x579429,_0x14fa35['vtigerAccounts'],'id');for(var _0x1baf55=0x0,_0x547f9d={},_0x26b536={};_0x1baf55<_0x579429[_0xb92d('0x48')];_0x1baf55+=0x1){_0x547f9d=_0x579429[_0x1baf55];if(_['isUndefined'](_0x14fa35[_0xb92d('0x54')][_0x547f9d['id']])){_0x14fa35[_0xb92d('0x54')][_0x547f9d['id']]=new VtigerAccount(_0x547f9d);}else{_0x14fa35['mergeFromDatabase'](_0x14fa35[_0xb92d('0x54')][_0x547f9d['id']],_0x547f9d);}}}return _0x14fa35['vtigerAccounts'];};};Realtime[_0xb92d('0x41')]['initServicenowAccounts']=function(){var _0x48f6fd=this;return function(_0x55cefe){if(_0x55cefe){freeIsNotKey(_0x55cefe,_0x48f6fd['servicenowAccounts'],'id');for(var _0x3c4eaa=0x0,_0x47b290={},_0x4ddabe={};_0x3c4eaa<_0x55cefe[_0xb92d('0x48')];_0x3c4eaa+=0x1){_0x47b290=_0x55cefe[_0x3c4eaa];if(_['isUndefined'](_0x48f6fd['servicenowAccounts'][_0x47b290['id']])){_0x48f6fd[_0xb92d('0x55')][_0x47b290['id']]=new ServicenowAccount(_0x47b290);}else{_0x48f6fd[_0xb92d('0x42')](_0x48f6fd[_0xb92d('0x55')][_0x47b290['id']],_0x47b290);}}}return _0x48f6fd[_0xb92d('0x55')];};};Realtime[_0xb92d('0x41')]['initDynamics365Accounts']=function(){var _0x11d694=this;return function(_0x296611){if(_0x296611){freeIsNotKey(_0x296611,_0x11d694[_0xb92d('0x56')],'id');for(var _0x4f9de3=0x0,_0x47e475={},_0x2d93a9={};_0x4f9de3<_0x296611[_0xb92d('0x48')];_0x4f9de3+=0x1){_0x47e475=_0x296611[_0x4f9de3];if(_[_0xb92d('0x44')](_0x11d694[_0xb92d('0x56')][_0x47e475['id']])){_0x11d694[_0xb92d('0x56')][_0x47e475['id']]=new Dynamics365Account(_0x47e475);}else{_0x11d694[_0xb92d('0x42')](_0x11d694['dynamics365Accounts'][_0x47e475['id']],_0x47e475);}}}return _0x11d694[_0xb92d('0x56')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x57')]=function(){var _0x14e57d=this;return function(_0x732865){if(_0x732865){freeIsNotKey(_0x732865,_0x14e57d[_0xb92d('0x24')],'id');for(var _0x4ea589=0x0,_0x2e3740={},_0x3677af={};_0x4ea589<_0x732865[_0xb92d('0x48')];_0x4ea589+=0x1){_0x2e3740=_0x732865[_0x4ea589];if(_[_0xb92d('0x44')](_0x14e57d[_0xb92d('0x24')][_0x2e3740['id']])){_0x14e57d['freshsalesAccounts'][_0x2e3740['id']]=new FreshsalesAccount(_0x2e3740);}else{_0x14e57d[_0xb92d('0x42')](_0x14e57d[_0xb92d('0x24')][_0x2e3740['id']],_0x2e3740);}}}return _0x14e57d[_0xb92d('0x24')];};};Realtime['prototype']['initVoiceQueueHopperHistory']=function(){var _0x3bac1e=this;return function(_0x3e326c){for(var _0x1f0223=0x0;_0x1f0223<_0x3e326c['length'];_0x1f0223+=0x1){_[_0xb92d('0x58')](_0x3bac1e[_0xb92d('0x16')][_0x3e326c[_0x1f0223][_0xb92d('0x29')]],_0x3e326c[_0x1f0223]);}return _0x3bac1e['voiceQueues'];};};Realtime[_0xb92d('0x41')]['initVoiceQueueReports']=function(){var _0x5624e3=this;return function(_0x50c402){clearVoiceQueues(_0x5624e3[_0xb92d('0x16')]);if(_0x50c402){_0x50c402=_[_0xb92d('0x59')](_0x50c402,_0xb92d('0x5a'));for(var _0x43854f in _0x50c402){if(_0x50c402[_0xb92d('0x2a')](_0x43854f)){var _0x4e8d09={};for(var _0x5e553b=0x0;_0x5e553b<_0x50c402[_0x43854f][_0xb92d('0x48')];_0x5e553b+=0x1){var _0x380f8d=_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x5b')];if(_0x5624e3[_0xb92d('0x16')][_0x380f8d]){if(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x5c')]){_0x5624e3['voiceQueues'][_0x380f8d][_0xb92d('0x35')]+=0x1;}if(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x5d')]){_0x5624e3['voiceQueues'][_0x380f8d][_0xb92d('0x36')]+=0x1;}_0x5624e3['voiceQueues'][_0x380f8d][_0xb92d('0x2d')]+=moment(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x5e')])[_0xb92d('0x5f')](moment(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x60')]),_0xb92d('0x61'))||0x0;if(_0x5e553b===_0x50c402[_0x43854f][_0xb92d('0x48')]-0x1){_0x5624e3[_0xb92d('0x16')][_0x380f8d][_0xb92d('0x2e')]+=moment(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x62')]||_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x63')]||_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x64')])['diff'](moment(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x60')]),_0xb92d('0x61'))||0x0;_0x5624e3['voiceQueues'][_0x380f8d]['total']+=0x1;if(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x65')]){_0x5624e3['voiceQueues'][_0x380f8d][_0xb92d('0x34')]+=0x1;_0x5624e3['voiceQueues'][_0x380f8d][_0xb92d('0x2f')]+=moment(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x62')])[_0xb92d('0x5f')](moment(_0x50c402[_0x43854f][_0x5e553b][_0xb92d('0x5e')]),_0xb92d('0x61'))||0x0;}}else{_0x5624e3[_0xb92d('0x16')][_0x380f8d]['sumDuration']+=_0x5624e3[_0xb92d('0x16')][_0x380f8d]['sumHoldTime']||0x0;}}}}}}return _0x5624e3[_0xb92d('0x16')];};};Realtime[_0xb92d('0x41')]['initVoiceCallReports']=function(){var _0x89ea4b=this;return function(_0x55a553){clearVoiceCallReports(_0x89ea4b[_0xb92d('0x19')]);if(_0x55a553){for(var _0x21ef7d=0x0;_0x21ef7d<_0x55a553['length'];_0x21ef7d+=0x1){_0x89ea4b[_0xb92d('0x19')]['total']+=0x1;_0x89ea4b['outbound'][_0xb92d('0x2e')]+=_0x55a553[_0x21ef7d]['duration'];if(_0x55a553[_0x21ef7d]['disposition']===_0xb92d('0x66')){_0x89ea4b[_0xb92d('0x19')][_0xb92d('0x34')]+=0x1;_0x89ea4b[_0xb92d('0x19')][_0xb92d('0x2d')]+=_0x55a553[_0x21ef7d]['duration']-_0x55a553[_0x21ef7d][_0xb92d('0x67')]||0x0;_0x89ea4b[_0xb92d('0x19')][_0xb92d('0x2f')]+=_0x55a553[_0x21ef7d]['billableseconds'];}}}return _0x89ea4b[_0xb92d('0x19')];};};Realtime[_0xb92d('0x41')][_0xb92d('0x68')]=function(){var _0x25149b=this;return function(_0x27dfc2){if(_0x27dfc2){freeIsNotKey(_0x27dfc2,_0x25149b[_0xb92d('0x17')],_0xb92d('0x29'));for(var _0x4e9350=0x0,_0x2bbaf5={};_0x4e9350<_0x27dfc2['length'];_0x4e9350+=0x1){_0x2bbaf5=_0x27dfc2[_0x4e9350];if(_['isUndefined'](_0x25149b[_0xb92d('0x17')][_0x2bbaf5[_0xb92d('0x29')]])){_0x25149b[_0xb92d('0x17')][_0x2bbaf5[_0xb92d('0x29')]]=new Campaign(_0x2bbaf5);}else{_0x25149b['mergeFromDatabase'](_0x25149b[_0xb92d('0x17')][_0x2bbaf5[_0xb92d('0x29')]],_0x2bbaf5);}}}return _0x25149b['campaigns'];};};Realtime[_0xb92d('0x41')][_0xb92d('0x69')]=function(){var _0x29675e=this;return function(_0x1c1669){if(_0x1c1669){freeIsNotKey(_0x1c1669,_0x29675e[_0xb92d('0x1a')],'id');for(var _0x1e5371=0x0,_0x2e944a={};_0x1e5371<_0x1c1669[_0xb92d('0x48')];_0x1e5371+=0x1){_0x2e944a=_0x1c1669[_0x1e5371];if(_[_0xb92d('0x44')](_0x29675e[_0xb92d('0x1a')][_0x2e944a['id']])){_0x29675e[_0xb92d('0x1a')][_0x2e944a['id']]=new VoiceExtension(_0x2e944a);}else{_0x29675e['mergeFromDatabase'](_0x29675e[_0xb92d('0x1a')][_0x2e944a['id']],_0x2e944a);}}}return _0x29675e['voiceExtensions'];};};Realtime[_0xb92d('0x41')][_0xb92d('0x6a')]=function(){var _0x7283a6=this;return function(_0x40ebfc){clearCampaigns(_0x7283a6[_0xb92d('0x17')]);for(var _0x421e04=0x0;_0x421e04<_0x40ebfc['length'];_0x421e04+=0x1){_[_0xb92d('0x58')](_0x7283a6[_0xb92d('0x17')][_0x40ebfc[_0x421e04][_0xb92d('0x29')]],_0x40ebfc[_0x421e04]);}return _0x7283a6['campaigns'];};};Realtime[_0xb92d('0x41')][_0xb92d('0x6b')]=function(){var _0x5357fe=this;return function(_0x2a0510){if(_0x2a0510){freeIsNotKey(_0x2a0510,_0x5357fe[_0xb92d('0x25')],'id');for(var _0x4a328f=0x0,_0x3b4b03={},_0x5aff56={};_0x4a328f<_0x2a0510[_0xb92d('0x48')];_0x4a328f+=0x1){_0x3b4b03=_0x2a0510[_0x4a328f];if(_[_0xb92d('0x44')](_0x5357fe[_0xb92d('0x25')][_0x3b4b03['id']])){_0x5357fe[_0xb92d('0x25')][_0x3b4b03['id']]=new FaxAccount(_0x3b4b03);}else{_0x5357fe[_0xb92d('0x42')](_0x5357fe['faxAccounts'][_0x3b4b03['id']],_0x3b4b03);}}}return _0x5357fe[_0xb92d('0x25')];};};module[_0xb92d('0x6c')]=Realtime;