e4cd1667991933ed211f0f6d7d387925110a625a
[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 _0x7162=['bluebird','util','moment','../model/agent','../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/template','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','telephones','trunks','voiceQueues','triggers','campaigns','templates','voiceExtensions','channels','queueChannels','outboundChannels','timers','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','name','interface','format','SIP/%s','total','sumHoldTime','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','sumDuration','sumBillable','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundRejectCallsDay','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','queueStatusComplete','mergeFromDatabase','initAgents','agents','prototype','initTelephones','length','initTrunks','isUndefined','initTriggers','initTemplates','initZendeskAccounts','zendeskAccounts','initSalesforceAccounts','salesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','deskAccounts','initSugarcrmAccounts','initServicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','groupBy','uniqueid','queuecallerexit','queuecallerabandon','queuecallerleaveAt','diff','seconds','queuecallercompleteAt','queuecallerabandonAt','queuecallercomplete','answered','initVoiceCallReports','outbound','duration','disposition','ANSWERED','billableseconds','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','initCampaignHopperHistory','merge','initFaxAccounts','exports'];(function(_0x2ed95e,_0x39feb0){var _0x4c3f0f=function(_0x1a7039){while(--_0x1a7039){_0x2ed95e['push'](_0x2ed95e['shift']());}};_0x4c3f0f(++_0x39feb0);}(_0x7162,0xe2));var _0x2716=function(_0xbf4631,_0x38b47d){_0xbf4631=_0xbf4631-0x0;var _0x9e0ef1=_0x7162[_0xbf4631];return _0x9e0ef1;};'use strict';var BPromise=require(_0x2716('0x0'));var util=require(_0x2716('0x1'));var _=require('lodash');var moment=require(_0x2716('0x2'));var Agent=require(_0x2716('0x3'));var Telephone=require(_0x2716('0x4'));var Trunk=require(_0x2716('0x5'));var VoiceQueue=require(_0x2716('0x6'));var Trigger=require(_0x2716('0x7'));var Template=require(_0x2716('0x8'));var Campaign=require('../model/campaign');var VoiceExtension=require(_0x2716('0x9'));var ZendeskAccount=require(_0x2716('0xa'));var SalesforceAccount=require(_0x2716('0xb'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require(_0x2716('0xc'));var ZohoAccount=require(_0x2716('0xd'));var DeskAccount=require(_0x2716('0xe'));var VtigerAccount=require(_0x2716('0xf'));var ServicenowAccount=require(_0x2716('0x10'));var Dynamics365Account=require(_0x2716('0x11'));var FreshsalesAccount=require(_0x2716('0x12'));var FaxAccount=require(_0x2716('0x13'));var Realtime=function(){this['agents']={};this[_0x2716('0x14')]={};this[_0x2716('0x15')]={};this[_0x2716('0x16')]={};this[_0x2716('0x17')]={};this[_0x2716('0x18')]={};this[_0x2716('0x19')]={};this['outbound']={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x2716('0x1a')]={};this[_0x2716('0x1b')]={};this[_0x2716('0x1c')]={};this[_0x2716('0x1d')]={};this[_0x2716('0x1e')]={};this['zendeskAccounts']={};this['salesforceAccounts']={};this[_0x2716('0x1f')]={};this[_0x2716('0x20')]={};this[_0x2716('0x21')]={};this['deskAccounts']={};this[_0x2716('0x22')]={};this[_0x2716('0x23')]={};this[_0x2716('0x24')]={};this[_0x2716('0x25')]={};this[_0x2716('0x26')]={};};function freeIsNotKey(_0x491e22,_0x3ab746,_0x1f7858){var _0x308823=_[_0x2716('0x27')](_0x491e22,function(_0x12d8e1,_0x34fef0){return _0x12d8e1[_0x1f7858];});for(var _0x1b37be in _0x3ab746){if(_0x3ab746[_0x2716('0x28')](_0x1b37be)){if(!_0x308823[_0x1b37be]){delete _0x3ab746[_0x1b37be];}}}}function freeIsNotKeySip(_0x37de14,_0x1e32a7){var _0x16a101=_['mapKeys'](_0x37de14,function(_0x500443,_0x5011b3){return util['format']('SIP/%s',_0x500443[_0x2716('0x29')]);});for(var _0x275c4b in _0x1e32a7){if(_0x1e32a7[_0x2716('0x28')](_0x275c4b)){if(!_0x16a101[_0x275c4b]){delete _0x1e32a7[_0x275c4b];}}}}function freeIsNotKeyAgent(_0x2f966a,_0x4bbb0c){var _0x6a1b26=_[_0x2716('0x27')](_0x2f966a,function(_0xfb80c9,_0x1a0494){var _0xf4eb01=_['isNil'](_0xfb80c9[_0x2716('0x2a')])?util[_0x2716('0x2b')](_0x2716('0x2c'),_0xfb80c9[_0x2716('0x29')]):_0xfb80c9[_0x2716('0x2a')];return _0xf4eb01;});for(var _0x5ed6f7 in _0x4bbb0c){if(_0x4bbb0c[_0x2716('0x28')](_0x5ed6f7)){if(!_0x6a1b26[_0x5ed6f7]){delete _0x4bbb0c[_0x5ed6f7];}}}}function clearVoiceCallReports(_0x2ae208){_0x2ae208[_0x2716('0x2d')]=0x0;_0x2ae208['answered']=0x0;_0x2ae208[_0x2716('0x2e')]=0x0;_0x2ae208['sumDuration']=0x0;_0x2ae208['sumBillable']=0x0;}function clearCampaigns(_0x7d3145){if(!_[_0x2716('0x2f')](_0x7d3145)){for(var _0xa637be in _0x7d3145){if(_0x7d3145[_0x2716('0x28')](_0xa637be)){_0x7d3145[_0xa637be][_0x2716('0x30')]=0x0;_0x7d3145[_0xa637be][_0x2716('0x31')]=0x0;}}}}function clearVoiceQueues(_0x3069c0){if(!_[_0x2716('0x2f')](_0x3069c0)){for(var _0x7f5522 in _0x3069c0){if(_0x3069c0[_0x2716('0x28')](_0x7f5522)){_0x3069c0[_0x7f5522][_0x2716('0x2d')]=0x0;_0x3069c0[_0x7f5522]['answered']=0x0;_0x3069c0[_0x7f5522][_0x2716('0x32')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x33')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x2e')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x34')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x35')]=0x0;_0x3069c0[_0x7f5522]['outboundAnswerAgiCallsDay']=0x0;_0x3069c0[_0x7f5522][_0x2716('0x36')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x37')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x38')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x39')]=0x0;_0x3069c0[_0x7f5522]['outboundUnknownCallsDay']=0x0;_0x3069c0[_0x7f5522][_0x2716('0x3a')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x3b')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x3c')]=0x0;_0x3069c0[_0x7f5522]['outboundOriginateFailureCallsDay']=0x0;_0x3069c0[_0x7f5522][_0x2716('0x3d')]=0x0;_0x3069c0[_0x7f5522]['outboundReCallsDay']=0x0;_0x3069c0[_0x7f5522][_0x2716('0x3e')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x3f')]=0x0;_0x3069c0[_0x7f5522][_0x2716('0x40')]=!![];}}}}Realtime['prototype'][_0x2716('0x41')]=function(_0xa8cf74,_0x31e480){for(var _0x1b71ee in _0x31e480){if(_0xa8cf74['hasOwnProperty'](_0x1b71ee)){_0xa8cf74[_0x1b71ee]=_0x31e480[_0x1b71ee];}}};Realtime['prototype'][_0x2716('0x42')]=function(){var _0x57ff1c=this;return function(_0x1bd3d4){if(_0x1bd3d4){freeIsNotKeyAgent(_0x1bd3d4,_0x57ff1c[_0x2716('0x43')]);for(var _0x495770=0x0,_0x5eacf9={},_0x95aee5={};_0x495770<_0x1bd3d4['length'];_0x495770+=0x1){_0x5eacf9=_0x1bd3d4[_0x495770];var _0x188231=_['isNil'](_0x5eacf9[_0x2716('0x2a')])?util[_0x2716('0x2b')](_0x2716('0x2c'),_0x5eacf9[_0x2716('0x29')]):_0x5eacf9[_0x2716('0x2a')];if(_['isUndefined'](_0x57ff1c[_0x2716('0x43')][_0x188231])){_0x57ff1c[_0x2716('0x43')][_0x188231]=new Agent(_0x5eacf9);}else{_0x57ff1c['mergeFromDatabase'](_0x57ff1c[_0x2716('0x43')][_0x188231],_0x5eacf9);}}}return _0x57ff1c['agents'];};};Realtime[_0x2716('0x44')][_0x2716('0x45')]=function(){var _0x4bbdc3=this;return function(_0x123a42){if(_0x123a42){freeIsNotKeySip(_0x123a42,_0x4bbdc3[_0x2716('0x14')]);for(var _0x30ba5e=0x0,_0x204467={},_0x5a6b39={};_0x30ba5e<_0x123a42[_0x2716('0x46')];_0x30ba5e+=0x1){_0x204467=_0x123a42[_0x30ba5e];if(_['isUndefined'](_0x4bbdc3['telephones'][util['format']('SIP/%s',_0x204467['name'])])){_0x4bbdc3[_0x2716('0x14')][util[_0x2716('0x2b')](_0x2716('0x2c'),_0x204467[_0x2716('0x29')])]=new Telephone(_0x204467);}else{_0x4bbdc3[_0x2716('0x41')](_0x4bbdc3[_0x2716('0x14')][util[_0x2716('0x2b')]('SIP/%s',_0x204467[_0x2716('0x29')])],_0x204467);}}}return _0x4bbdc3[_0x2716('0x14')];};};Realtime['prototype'][_0x2716('0x47')]=function(){var _0xe03391=this;return function(_0x217294){if(_0x217294){freeIsNotKeySip(_0x217294,_0xe03391[_0x2716('0x15')]);for(var _0x19e8eb=0x0,_0x558356={},_0x2219c8={};_0x19e8eb<_0x217294[_0x2716('0x46')];_0x19e8eb+=0x1){_0x558356=_0x217294[_0x19e8eb];if(_[_0x2716('0x48')](_0xe03391[_0x2716('0x15')][util[_0x2716('0x2b')]('SIP/%s',_0x558356[_0x2716('0x29')])])){_0xe03391[_0x2716('0x15')][util[_0x2716('0x2b')]('SIP/%s',_0x558356[_0x2716('0x29')])]=new Trunk(_0x558356);}else{_0xe03391['mergeFromDatabase'](_0xe03391['trunks'][util[_0x2716('0x2b')](_0x2716('0x2c'),_0x558356[_0x2716('0x29')])],_0x558356);}}}return _0xe03391['trunks'];};};Realtime['prototype']['initVoiceQueues']=function(){var _0x18ef2a=this;return function(_0x22fed3){if(_0x22fed3){freeIsNotKey(_0x22fed3,_0x18ef2a[_0x2716('0x16')],'name');for(var _0x108066=0x0,_0x36b3de={},_0x3b0b8f={};_0x108066<_0x22fed3[_0x2716('0x46')];_0x108066+=0x1){_0x36b3de=_0x22fed3[_0x108066];if(_[_0x2716('0x48')](_0x18ef2a[_0x2716('0x16')][_0x36b3de[_0x2716('0x29')]])){_0x18ef2a[_0x2716('0x16')][_0x36b3de['name']]=new VoiceQueue(_0x36b3de);}else{_0x18ef2a[_0x2716('0x41')](_0x18ef2a['voiceQueues'][_0x36b3de['name']],_0x36b3de);}}}return _0x18ef2a['voiceQueues'];};};Realtime[_0x2716('0x44')][_0x2716('0x49')]=function(){var _0x5661b0=this;return function(_0x38e892){if(_0x38e892){freeIsNotKey(_0x38e892,_0x5661b0[_0x2716('0x17')],'id');for(var _0x2d640c=0x0,_0x4bf987={},_0x4fd0ee={};_0x2d640c<_0x38e892[_0x2716('0x46')];_0x2d640c+=0x1){_0x4bf987=_0x38e892[_0x2d640c];if(_[_0x2716('0x48')](_0x5661b0['triggers'][_0x4bf987['id']])){_0x5661b0[_0x2716('0x17')][_0x4bf987['id']]=new Trigger(_0x4bf987);}else{_0x5661b0['mergeFromDatabase'](_0x5661b0[_0x2716('0x17')][_0x4bf987['id']],_0x4bf987);}}}return _0x5661b0['triggers'];};};Realtime[_0x2716('0x44')][_0x2716('0x4a')]=function(){var _0x269c73=this;return function(_0x4f9ebd){if(_0x4f9ebd){freeIsNotKey(_0x4f9ebd,_0x269c73[_0x2716('0x19')],'id');for(var _0x4f715e=0x0,_0x19ca9b={},_0x3d5442={};_0x4f715e<_0x4f9ebd[_0x2716('0x46')];_0x4f715e+=0x1){_0x19ca9b=_0x4f9ebd[_0x4f715e];if(_[_0x2716('0x48')](_0x269c73[_0x2716('0x19')][_0x19ca9b['id']])){_0x269c73[_0x2716('0x19')][_0x19ca9b['id']]=new Template(_0x19ca9b);}else{_0x269c73[_0x2716('0x41')](_0x269c73[_0x2716('0x19')][_0x19ca9b['id']],_0x19ca9b);}}}return _0x269c73[_0x2716('0x19')];};};Realtime[_0x2716('0x44')][_0x2716('0x4b')]=function(){var _0x477fc9=this;return function(_0x9a7f23){if(_0x9a7f23){freeIsNotKey(_0x9a7f23,_0x477fc9['zendeskAccounts'],'id');for(var _0x34133d=0x0,_0x4968e3={},_0x1c6fa1={};_0x34133d<_0x9a7f23['length'];_0x34133d+=0x1){_0x4968e3=_0x9a7f23[_0x34133d];if(_[_0x2716('0x48')](_0x477fc9[_0x2716('0x4c')][_0x4968e3['id']])){_0x477fc9[_0x2716('0x4c')][_0x4968e3['id']]=new ZendeskAccount(_0x4968e3);}else{_0x477fc9[_0x2716('0x41')](_0x477fc9[_0x2716('0x4c')][_0x4968e3['id']],_0x4968e3);}}}return _0x477fc9[_0x2716('0x4c')];};};Realtime[_0x2716('0x44')][_0x2716('0x4d')]=function(){var _0x196229=this;return function(_0x13c6c3){if(_0x13c6c3){freeIsNotKey(_0x13c6c3,_0x196229[_0x2716('0x4e')],'id');for(var _0x2d4600=0x0,_0x10638b={},_0x8acb3f={};_0x2d4600<_0x13c6c3[_0x2716('0x46')];_0x2d4600+=0x1){_0x10638b=_0x13c6c3[_0x2d4600];if(_[_0x2716('0x48')](_0x196229[_0x2716('0x4e')][_0x10638b['id']])){_0x196229[_0x2716('0x4e')][_0x10638b['id']]=new SalesforceAccount(_0x10638b);}else{_0x196229['mergeFromDatabase'](_0x196229[_0x2716('0x4e')][_0x10638b['id']],_0x10638b);}}}return _0x196229[_0x2716('0x4e')];};};Realtime[_0x2716('0x44')][_0x2716('0x4f')]=function(){var _0x3f84b7=this;return function(_0x4e615d){if(_0x4e615d){freeIsNotKey(_0x4e615d,_0x3f84b7[_0x2716('0x20')],'id');for(var _0x144c78=0x0,_0x4f58e0={},_0x48c2b9={};_0x144c78<_0x4e615d[_0x2716('0x46')];_0x144c78+=0x1){_0x4f58e0=_0x4e615d[_0x144c78];if(_[_0x2716('0x48')](_0x3f84b7[_0x2716('0x20')][_0x4f58e0['id']])){_0x3f84b7[_0x2716('0x20')][_0x4f58e0['id']]=new FreshdeskAccount(_0x4f58e0);}else{_0x3f84b7[_0x2716('0x41')](_0x3f84b7[_0x2716('0x20')][_0x4f58e0['id']],_0x4f58e0);}}}return _0x3f84b7[_0x2716('0x20')];};};Realtime['prototype'][_0x2716('0x50')]=function(){var _0x57a796=this;return function(_0x5bc945){if(_0x5bc945){freeIsNotKey(_0x5bc945,_0x57a796[_0x2716('0x21')],'id');for(var _0x3085f2=0x0,_0x3d5447={},_0x4d2261={};_0x3085f2<_0x5bc945['length'];_0x3085f2+=0x1){_0x3d5447=_0x5bc945[_0x3085f2];if(_[_0x2716('0x48')](_0x57a796[_0x2716('0x21')][_0x3d5447['id']])){_0x57a796[_0x2716('0x21')][_0x3d5447['id']]=new ZohoAccount(_0x3d5447);}else{_0x57a796[_0x2716('0x41')](_0x57a796[_0x2716('0x21')][_0x3d5447['id']],_0x3d5447);}}}return _0x57a796[_0x2716('0x21')];};};Realtime[_0x2716('0x44')][_0x2716('0x51')]=function(){var _0x4bb949=this;return function(_0x39ed11){if(_0x39ed11){freeIsNotKey(_0x39ed11,_0x4bb949[_0x2716('0x52')],'id');for(var _0x476921=0x0,_0x3ab0b8={},_0x4076a4={};_0x476921<_0x39ed11[_0x2716('0x46')];_0x476921+=0x1){_0x3ab0b8=_0x39ed11[_0x476921];if(_[_0x2716('0x48')](_0x4bb949[_0x2716('0x52')][_0x3ab0b8['id']])){_0x4bb949[_0x2716('0x52')][_0x3ab0b8['id']]=new DeskAccount(_0x3ab0b8);}else{_0x4bb949[_0x2716('0x41')](_0x4bb949['deskAccounts'][_0x3ab0b8['id']],_0x3ab0b8);}}}return _0x4bb949[_0x2716('0x52')];};};Realtime[_0x2716('0x44')][_0x2716('0x53')]=function(){var _0x52c67d=this;return function(_0x42a084){if(_0x42a084){freeIsNotKey(_0x42a084,_0x52c67d['sugarcrmAccounts'],'id');for(var _0xdd4ac0=0x0,_0x5d3ad8={},_0x546308={};_0xdd4ac0<_0x42a084[_0x2716('0x46')];_0xdd4ac0+=0x1){_0x5d3ad8=_0x42a084[_0xdd4ac0];if(_['isUndefined'](_0x52c67d[_0x2716('0x1f')][_0x5d3ad8['id']])){_0x52c67d[_0x2716('0x1f')][_0x5d3ad8['id']]=new SugarcrmAccount(_0x5d3ad8);}else{_0x52c67d['mergeFromDatabase'](_0x52c67d[_0x2716('0x1f')][_0x5d3ad8['id']],_0x5d3ad8);}}}return _0x52c67d[_0x2716('0x1f')];};};Realtime[_0x2716('0x44')]['initVtigerAccounts']=function(){var _0x45f173=this;return function(_0x33cbf0){if(_0x33cbf0){freeIsNotKey(_0x33cbf0,_0x45f173[_0x2716('0x22')],'id');for(var _0x43c739=0x0,_0x2fd18f={},_0x326c55={};_0x43c739<_0x33cbf0['length'];_0x43c739+=0x1){_0x2fd18f=_0x33cbf0[_0x43c739];if(_[_0x2716('0x48')](_0x45f173[_0x2716('0x22')][_0x2fd18f['id']])){_0x45f173[_0x2716('0x22')][_0x2fd18f['id']]=new VtigerAccount(_0x2fd18f);}else{_0x45f173['mergeFromDatabase'](_0x45f173[_0x2716('0x22')][_0x2fd18f['id']],_0x2fd18f);}}}return _0x45f173[_0x2716('0x22')];};};Realtime[_0x2716('0x44')][_0x2716('0x54')]=function(){var _0x4fb732=this;return function(_0x45109f){if(_0x45109f){freeIsNotKey(_0x45109f,_0x4fb732['servicenowAccounts'],'id');for(var _0x1b4e13=0x0,_0x1175d2={},_0x3b021e={};_0x1b4e13<_0x45109f['length'];_0x1b4e13+=0x1){_0x1175d2=_0x45109f[_0x1b4e13];if(_['isUndefined'](_0x4fb732[_0x2716('0x23')][_0x1175d2['id']])){_0x4fb732[_0x2716('0x23')][_0x1175d2['id']]=new ServicenowAccount(_0x1175d2);}else{_0x4fb732[_0x2716('0x41')](_0x4fb732['servicenowAccounts'][_0x1175d2['id']],_0x1175d2);}}}return _0x4fb732[_0x2716('0x23')];};};Realtime[_0x2716('0x44')][_0x2716('0x55')]=function(){var _0x2b1da4=this;return function(_0x12963b){if(_0x12963b){freeIsNotKey(_0x12963b,_0x2b1da4[_0x2716('0x24')],'id');for(var _0x5f0860=0x0,_0x5adf84={},_0x2e4fcc={};_0x5f0860<_0x12963b['length'];_0x5f0860+=0x1){_0x5adf84=_0x12963b[_0x5f0860];if(_[_0x2716('0x48')](_0x2b1da4[_0x2716('0x24')][_0x5adf84['id']])){_0x2b1da4[_0x2716('0x24')][_0x5adf84['id']]=new Dynamics365Account(_0x5adf84);}else{_0x2b1da4[_0x2716('0x41')](_0x2b1da4[_0x2716('0x24')][_0x5adf84['id']],_0x5adf84);}}}return _0x2b1da4['dynamics365Accounts'];};};Realtime[_0x2716('0x44')][_0x2716('0x56')]=function(){var _0x1ef047=this;return function(_0x31242f){if(_0x31242f){freeIsNotKey(_0x31242f,_0x1ef047['freshsalesAccounts'],'id');for(var _0x12bf3d=0x0,_0x354e09={},_0x23837={};_0x12bf3d<_0x31242f[_0x2716('0x46')];_0x12bf3d+=0x1){_0x354e09=_0x31242f[_0x12bf3d];if(_[_0x2716('0x48')](_0x1ef047[_0x2716('0x25')][_0x354e09['id']])){_0x1ef047['freshsalesAccounts'][_0x354e09['id']]=new FreshsalesAccount(_0x354e09);}else{_0x1ef047[_0x2716('0x41')](_0x1ef047[_0x2716('0x25')][_0x354e09['id']],_0x354e09);}}}return _0x1ef047['freshsalesAccounts'];};};Realtime[_0x2716('0x44')][_0x2716('0x57')]=function(){var _0x51bd08=this;return function(_0x3297ca){for(var _0x47229f=0x0;_0x47229f<_0x3297ca[_0x2716('0x46')];_0x47229f+=0x1){_['merge'](_0x51bd08[_0x2716('0x16')][_0x3297ca[_0x47229f][_0x2716('0x29')]],_0x3297ca[_0x47229f]);}return _0x51bd08['voiceQueues'];};};Realtime[_0x2716('0x44')]['initVoiceQueueReports']=function(){var _0x3ee704=this;return function(_0x4c218b){clearVoiceQueues(_0x3ee704[_0x2716('0x16')]);if(_0x4c218b){_0x4c218b=_[_0x2716('0x58')](_0x4c218b,_0x2716('0x59'));for(var _0x6212ab in _0x4c218b){if(_0x4c218b[_0x2716('0x28')](_0x6212ab)){var _0x1fd010={};for(var _0x4b9c9a=0x0;_0x4b9c9a<_0x4c218b[_0x6212ab][_0x2716('0x46')];_0x4b9c9a+=0x1){var _0x438ddf=_0x4c218b[_0x6212ab][_0x4b9c9a]['queue'];if(_0x3ee704[_0x2716('0x16')][_0x438ddf]){if(_0x4c218b[_0x6212ab][_0x4b9c9a][_0x2716('0x5a')]){_0x3ee704[_0x2716('0x16')][_0x438ddf][_0x2716('0x32')]+=0x1;}if(_0x4c218b[_0x6212ab][_0x4b9c9a][_0x2716('0x5b')]){_0x3ee704['voiceQueues'][_0x438ddf][_0x2716('0x33')]+=0x1;}_0x3ee704[_0x2716('0x16')][_0x438ddf][_0x2716('0x2e')]+=moment(_0x4c218b[_0x6212ab][_0x4b9c9a][_0x2716('0x5c')])[_0x2716('0x5d')](moment(_0x4c218b[_0x6212ab][_0x4b9c9a]['queuecallerjoinAt']),_0x2716('0x5e'))||0x0;if(_0x4b9c9a===_0x4c218b[_0x6212ab][_0x2716('0x46')]-0x1){_0x3ee704[_0x2716('0x16')][_0x438ddf][_0x2716('0x34')]+=moment(_0x4c218b[_0x6212ab][_0x4b9c9a][_0x2716('0x5f')]||_0x4c218b[_0x6212ab][_0x4b9c9a][_0x2716('0x60')]||_0x4c218b[_0x6212ab][_0x4b9c9a]['queuecallerexitAt'])['diff'](moment(_0x4c218b[_0x6212ab][_0x4b9c9a]['queuecallerjoinAt']),'seconds')||0x0;_0x3ee704[_0x2716('0x16')][_0x438ddf][_0x2716('0x2d')]+=0x1;if(_0x4c218b[_0x6212ab][_0x4b9c9a][_0x2716('0x61')]){_0x3ee704[_0x2716('0x16')][_0x438ddf][_0x2716('0x62')]+=0x1;_0x3ee704[_0x2716('0x16')][_0x438ddf][_0x2716('0x35')]+=moment(_0x4c218b[_0x6212ab][_0x4b9c9a][_0x2716('0x5f')])[_0x2716('0x5d')](moment(_0x4c218b[_0x6212ab][_0x4b9c9a][_0x2716('0x5c')]),_0x2716('0x5e'))||0x0;}}else{_0x3ee704[_0x2716('0x16')][_0x438ddf][_0x2716('0x34')]+=_0x3ee704[_0x2716('0x16')][_0x438ddf]['sumHoldTime']||0x0;}}}}}}return _0x3ee704[_0x2716('0x16')];};};Realtime['prototype'][_0x2716('0x63')]=function(){var _0x21e213=this;return function(_0x119198){clearVoiceCallReports(_0x21e213[_0x2716('0x64')]);if(_0x119198){for(var _0x442112=0x0;_0x442112<_0x119198['length'];_0x442112+=0x1){_0x21e213['outbound'][_0x2716('0x2d')]+=0x1;_0x21e213[_0x2716('0x64')][_0x2716('0x34')]+=_0x119198[_0x442112][_0x2716('0x65')];if(_0x119198[_0x442112][_0x2716('0x66')]===_0x2716('0x67')){_0x21e213[_0x2716('0x64')]['answered']+=0x1;_0x21e213[_0x2716('0x64')][_0x2716('0x2e')]+=_0x119198[_0x442112][_0x2716('0x65')]-_0x119198[_0x442112][_0x2716('0x68')]||0x0;_0x21e213[_0x2716('0x64')][_0x2716('0x35')]+=_0x119198[_0x442112]['billableseconds'];}}}return _0x21e213[_0x2716('0x64')];};};Realtime[_0x2716('0x44')][_0x2716('0x69')]=function(){var _0x356618=this;return function(_0x2dab4e){if(_0x2dab4e){freeIsNotKey(_0x2dab4e,_0x356618[_0x2716('0x18')],_0x2716('0x29'));for(var _0x3cbca6=0x0,_0x4f3286={};_0x3cbca6<_0x2dab4e[_0x2716('0x46')];_0x3cbca6+=0x1){_0x4f3286=_0x2dab4e[_0x3cbca6];if(_[_0x2716('0x48')](_0x356618['campaigns'][_0x4f3286['name']])){_0x356618[_0x2716('0x18')][_0x4f3286['name']]=new Campaign(_0x4f3286);}else{_0x356618[_0x2716('0x41')](_0x356618[_0x2716('0x18')][_0x4f3286['name']],_0x4f3286);_0x356618[_0x2716('0x18')][_0x4f3286[_0x2716('0x29')]][_0x2716('0x6a')]=_0x4f3286[_0x2716('0x6b')]?_0x4f3286['SquareProject']['name']:undefined;}}}return _0x356618[_0x2716('0x18')];};};Realtime['prototype'][_0x2716('0x6c')]=function(){var _0x501a96=this;return function(_0x10a1db){if(_0x10a1db){freeIsNotKey(_0x10a1db,_0x501a96['voiceExtensions'],'id');for(var _0x452e08=0x0,_0x5bb55a={};_0x452e08<_0x10a1db[_0x2716('0x46')];_0x452e08+=0x1){_0x5bb55a=_0x10a1db[_0x452e08];if(_[_0x2716('0x48')](_0x501a96[_0x2716('0x1a')][_0x5bb55a['id']])){_0x501a96[_0x2716('0x1a')][_0x5bb55a['id']]=new VoiceExtension(_0x5bb55a);}else{_0x501a96['mergeFromDatabase'](_0x501a96[_0x2716('0x1a')][_0x5bb55a['id']],_0x5bb55a);}}}return _0x501a96['voiceExtensions'];};};Realtime[_0x2716('0x44')][_0x2716('0x6d')]=function(){var _0x361f95=this;return function(_0x486d09){clearCampaigns(_0x361f95['campaigns']);for(var _0x353b14=0x0;_0x353b14<_0x486d09[_0x2716('0x46')];_0x353b14+=0x1){_[_0x2716('0x6e')](_0x361f95[_0x2716('0x18')][_0x486d09[_0x353b14][_0x2716('0x29')]],_0x486d09[_0x353b14]);}return _0x361f95[_0x2716('0x18')];};};Realtime['prototype'][_0x2716('0x6f')]=function(){var _0x32d636=this;return function(_0x3d4e21){if(_0x3d4e21){freeIsNotKey(_0x3d4e21,_0x32d636[_0x2716('0x26')],'id');for(var _0x4b4942=0x0,_0x1615ed={},_0x1d8e47={};_0x4b4942<_0x3d4e21[_0x2716('0x46')];_0x4b4942+=0x1){_0x1615ed=_0x3d4e21[_0x4b4942];if(_[_0x2716('0x48')](_0x32d636['faxAccounts'][_0x1615ed['id']])){_0x32d636[_0x2716('0x26')][_0x1615ed['id']]=new FaxAccount(_0x1615ed);}else{_0x32d636[_0x2716('0x41')](_0x32d636[_0x2716('0x26')][_0x1615ed['id']],_0x1615ed);}}}return _0x32d636[_0x2716('0x26')];};};module[_0x2716('0x70')]=Realtime;