Built motion from commit 0900f080.|2.5.45
[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 _0x61ed=['unmanaged','abandoned','outboundNoAnswerCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundRejectCallsDay','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','length','format','trunks','isUndefined','initTemplates','initZendeskAccounts','initSalesforceAccounts','salesforceAccounts','initFreshdeskAccounts','initZohoAccounts','zohoAccounts','initSugarcrmAccounts','initServicenowAccounts','initDynamics365Accounts','dynamics365Accounts','initFreshsalesAccounts','initVoiceQueueReports','uniqueid','queuecallerexit','queuecallerabandon','queuecallerleaveAt','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','queuecallercomplete','initVoiceCallReports','disposition','ANSWERED','duration','billableseconds','initCampaigns','dialQueueProject','SquareProject','voiceExtensions','merge','initFaxAccounts','exports','bluebird','util','lodash','moment','../model/agent','../model/telephone','../model/trigger','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','telephones','voiceQueues','triggers','campaigns','templates','outbound','queueChannels','outboundChannels','timers','settings','zendeskAccounts','sugarcrmAccounts','freshdeskAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','SIP/%s','name','isNil','interface','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay'];(function(_0x14094a,_0x1421e){var _0x4d085e=function(_0x14d3d5){while(--_0x14d3d5){_0x14094a['push'](_0x14094a['shift']());}};_0x4d085e(++_0x1421e);}(_0x61ed,0x174));var _0xd61e=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x61ed[_0x14add3];return _0x4a174f;};'use strict';var BPromise=require(_0xd61e('0x0'));var util=require(_0xd61e('0x1'));var _=require(_0xd61e('0x2'));var moment=require(_0xd61e('0x3'));var Agent=require(_0xd61e('0x4'));var Telephone=require(_0xd61e('0x5'));var Trunk=require('../model/trunk');var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0xd61e('0x6'));var Template=require('../model/template');var Campaign=require(_0xd61e('0x7'));var VoiceExtension=require(_0xd61e('0x8'));var ZendeskAccount=require(_0xd61e('0x9'));var SalesforceAccount=require(_0xd61e('0xa'));var FreshdeskAccount=require(_0xd61e('0xb'));var SugarcrmAccount=require('../model/sugarcrmAccount');var ZohoAccount=require(_0xd61e('0xc'));var DeskAccount=require(_0xd61e('0xd'));var VtigerAccount=require(_0xd61e('0xe'));var ServicenowAccount=require(_0xd61e('0xf'));var Dynamics365Account=require(_0xd61e('0x10'));var FreshsalesAccount=require(_0xd61e('0x11'));var FaxAccount=require(_0xd61e('0x12'));var Realtime=function(){this[_0xd61e('0x13')]={};this[_0xd61e('0x14')]={};this['trunks']={};this[_0xd61e('0x15')]={};this[_0xd61e('0x16')]={};this[_0xd61e('0x17')]={};this[_0xd61e('0x18')]={};this[_0xd61e('0x19')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this['channels']={};this[_0xd61e('0x1a')]={};this[_0xd61e('0x1b')]={};this[_0xd61e('0x1c')]={};this[_0xd61e('0x1d')]={};this[_0xd61e('0x1e')]={};this['salesforceAccounts']={};this[_0xd61e('0x1f')]={};this[_0xd61e('0x20')]={};this['zohoAccounts']={};this[_0xd61e('0x21')]={};this[_0xd61e('0x22')]={};this[_0xd61e('0x23')]={};this['dynamics365Accounts']={};this[_0xd61e('0x24')]={};this[_0xd61e('0x25')]={};};function freeIsNotKey(_0x53eb3f,_0x325454,_0x437403){var _0x542bdf=_[_0xd61e('0x26')](_0x53eb3f,function(_0x17d604,_0x2a44ed){return _0x17d604[_0x437403];});for(var _0x5477ba in _0x325454){if(_0x325454[_0xd61e('0x27')](_0x5477ba)){if(!_0x542bdf[_0x5477ba]){delete _0x325454[_0x5477ba];}}}}function freeIsNotKeySip(_0x583b77,_0x472c5f){var _0x2e980e=_[_0xd61e('0x26')](_0x583b77,function(_0x55f481,_0x3e9b4f){return util['format'](_0xd61e('0x28'),_0x55f481[_0xd61e('0x29')]);});for(var _0x2302d5 in _0x472c5f){if(_0x472c5f['hasOwnProperty'](_0x2302d5)){if(!_0x2e980e[_0x2302d5]){delete _0x472c5f[_0x2302d5];}}}}function freeIsNotKeyAgent(_0x276533,_0xd6e4d0){var _0x25ae52=_[_0xd61e('0x26')](_0x276533,function(_0x58ade9,_0x529854){var _0x5dc09d=_[_0xd61e('0x2a')](_0x58ade9[_0xd61e('0x2b')])?util['format'](_0xd61e('0x28'),_0x58ade9[_0xd61e('0x29')]):_0x58ade9[_0xd61e('0x2b')];return _0x5dc09d;});for(var _0x3c7ca5 in _0xd6e4d0){if(_0xd6e4d0[_0xd61e('0x27')](_0x3c7ca5)){if(!_0x25ae52[_0x3c7ca5]){delete _0xd6e4d0[_0x3c7ca5];}}}}function clearVoiceCallReports(_0x1f237b){_0x1f237b[_0xd61e('0x2c')]=0x0;_0x1f237b[_0xd61e('0x2d')]=0x0;_0x1f237b[_0xd61e('0x2e')]=0x0;_0x1f237b[_0xd61e('0x2f')]=0x0;_0x1f237b[_0xd61e('0x30')]=0x0;}function clearCampaigns(_0x46d210){if(!_[_0xd61e('0x31')](_0x46d210)){for(var _0x1a4b94 in _0x46d210){if(_0x46d210['hasOwnProperty'](_0x1a4b94)){_0x46d210[_0x1a4b94][_0xd61e('0x32')]=0x0;_0x46d210[_0x1a4b94][_0xd61e('0x33')]=0x0;}}}}function clearVoiceQueues(_0x3f9ced){if(!_[_0xd61e('0x31')](_0x3f9ced)){for(var _0xa4b784 in _0x3f9ced){if(_0x3f9ced[_0xd61e('0x27')](_0xa4b784)){_0x3f9ced[_0xa4b784][_0xd61e('0x2c')]=0x0;_0x3f9ced[_0xa4b784]['answered']=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x34')]=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x35')]=0x0;_0x3f9ced[_0xa4b784]['sumHoldTime']=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x2f')]=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x30')]=0x0;_0x3f9ced[_0xa4b784]['outboundAnswerAgiCallsDay']=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x36')]=0x0;_0x3f9ced[_0xa4b784]['outboundBusyCallsDay']=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x37')]=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x38')]=0x0;_0x3f9ced[_0xa4b784]['outboundUnknownCallsDay']=0x0;_0x3f9ced[_0xa4b784]['outboundDropCallsDayTimeout']=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x39')]=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x3a')]=0x0;_0x3f9ced[_0xa4b784]['outboundOriginateFailureCallsDay']=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x3b')]=0x0;_0x3f9ced[_0xa4b784]['outboundReCallsDay']=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x3c')]=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x3d')]=0x0;_0x3f9ced[_0xa4b784][_0xd61e('0x3e')]=!![];}}}}Realtime[_0xd61e('0x3f')][_0xd61e('0x40')]=function(_0x22afc1,_0x53a706){for(var _0xee08c8 in _0x53a706){if(_0x22afc1[_0xd61e('0x27')](_0xee08c8)){_0x22afc1[_0xee08c8]=_0x53a706[_0xee08c8];}}};Realtime['prototype'][_0xd61e('0x41')]=function(){var _0x2c0dcb=this;return function(_0x5df83c){if(_0x5df83c){freeIsNotKeyAgent(_0x5df83c,_0x2c0dcb[_0xd61e('0x13')]);for(var _0x14c6ba=0x0,_0x1d6fe8={},_0x4ecc88={};_0x14c6ba<_0x5df83c[_0xd61e('0x42')];_0x14c6ba+=0x1){_0x1d6fe8=_0x5df83c[_0x14c6ba];var _0x51819a=_[_0xd61e('0x2a')](_0x1d6fe8['interface'])?util['format'](_0xd61e('0x28'),_0x1d6fe8['name']):_0x1d6fe8[_0xd61e('0x2b')];if(_['isUndefined'](_0x2c0dcb[_0xd61e('0x13')][_0x51819a])){_0x2c0dcb[_0xd61e('0x13')][_0x51819a]=new Agent(_0x1d6fe8);}else{_0x2c0dcb[_0xd61e('0x40')](_0x2c0dcb[_0xd61e('0x13')][_0x51819a],_0x1d6fe8);}}}return _0x2c0dcb[_0xd61e('0x13')];};};Realtime[_0xd61e('0x3f')]['initTelephones']=function(){var _0x44232f=this;return function(_0x35c94a){if(_0x35c94a){freeIsNotKeySip(_0x35c94a,_0x44232f[_0xd61e('0x14')]);for(var _0x572e96=0x0,_0x2dc1a3={},_0x14aa68={};_0x572e96<_0x35c94a[_0xd61e('0x42')];_0x572e96+=0x1){_0x2dc1a3=_0x35c94a[_0x572e96];if(_['isUndefined'](_0x44232f['telephones'][util[_0xd61e('0x43')](_0xd61e('0x28'),_0x2dc1a3[_0xd61e('0x29')])])){_0x44232f['telephones'][util[_0xd61e('0x43')](_0xd61e('0x28'),_0x2dc1a3['name'])]=new Telephone(_0x2dc1a3);}else{_0x44232f['mergeFromDatabase'](_0x44232f['telephones'][util['format'](_0xd61e('0x28'),_0x2dc1a3[_0xd61e('0x29')])],_0x2dc1a3);}}}return _0x44232f[_0xd61e('0x14')];};};Realtime[_0xd61e('0x3f')]['initTrunks']=function(){var _0x1ff1ce=this;return function(_0x299f1c){if(_0x299f1c){freeIsNotKeySip(_0x299f1c,_0x1ff1ce[_0xd61e('0x44')]);for(var _0x35ac5a=0x0,_0x45568b={},_0x520929={};_0x35ac5a<_0x299f1c[_0xd61e('0x42')];_0x35ac5a+=0x1){_0x45568b=_0x299f1c[_0x35ac5a];if(_[_0xd61e('0x45')](_0x1ff1ce[_0xd61e('0x44')][util[_0xd61e('0x43')](_0xd61e('0x28'),_0x45568b[_0xd61e('0x29')])])){_0x1ff1ce[_0xd61e('0x44')][util[_0xd61e('0x43')]('SIP/%s',_0x45568b['name'])]=new Trunk(_0x45568b);}else{_0x1ff1ce[_0xd61e('0x40')](_0x1ff1ce[_0xd61e('0x44')][util[_0xd61e('0x43')]('SIP/%s',_0x45568b['name'])],_0x45568b);}}}return _0x1ff1ce[_0xd61e('0x44')];};};Realtime['prototype']['initVoiceQueues']=function(){var _0x442a1a=this;return function(_0x5148f9){if(_0x5148f9){freeIsNotKey(_0x5148f9,_0x442a1a[_0xd61e('0x15')],'name');for(var _0x39aa63=0x0,_0x4f15f2={},_0x214bd4={};_0x39aa63<_0x5148f9[_0xd61e('0x42')];_0x39aa63+=0x1){_0x4f15f2=_0x5148f9[_0x39aa63];if(_[_0xd61e('0x45')](_0x442a1a[_0xd61e('0x15')][_0x4f15f2[_0xd61e('0x29')]])){_0x442a1a[_0xd61e('0x15')][_0x4f15f2['name']]=new VoiceQueue(_0x4f15f2);}else{_0x442a1a[_0xd61e('0x40')](_0x442a1a['voiceQueues'][_0x4f15f2[_0xd61e('0x29')]],_0x4f15f2);}}}return _0x442a1a[_0xd61e('0x15')];};};Realtime[_0xd61e('0x3f')]['initTriggers']=function(){var _0x187093=this;return function(_0x530f80){if(_0x530f80){freeIsNotKey(_0x530f80,_0x187093['triggers'],'id');for(var _0x38e0ea=0x0,_0x2db662={},_0x59e6e1={};_0x38e0ea<_0x530f80['length'];_0x38e0ea+=0x1){_0x2db662=_0x530f80[_0x38e0ea];if(_[_0xd61e('0x45')](_0x187093[_0xd61e('0x16')][_0x2db662['id']])){_0x187093['triggers'][_0x2db662['id']]=new Trigger(_0x2db662);}else{_0x187093['mergeFromDatabase'](_0x187093[_0xd61e('0x16')][_0x2db662['id']],_0x2db662);}}}return _0x187093[_0xd61e('0x16')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x46')]=function(){var _0x5e0fd3=this;return function(_0x58e788){if(_0x58e788){freeIsNotKey(_0x58e788,_0x5e0fd3[_0xd61e('0x18')],'id');for(var _0x4c496b=0x0,_0x52ea8d={},_0x2ac786={};_0x4c496b<_0x58e788['length'];_0x4c496b+=0x1){_0x52ea8d=_0x58e788[_0x4c496b];if(_[_0xd61e('0x45')](_0x5e0fd3[_0xd61e('0x18')][_0x52ea8d['id']])){_0x5e0fd3[_0xd61e('0x18')][_0x52ea8d['id']]=new Template(_0x52ea8d);}else{_0x5e0fd3[_0xd61e('0x40')](_0x5e0fd3[_0xd61e('0x18')][_0x52ea8d['id']],_0x52ea8d);}}}return _0x5e0fd3[_0xd61e('0x18')];};};Realtime['prototype'][_0xd61e('0x47')]=function(){var _0x2657dd=this;return function(_0x4e8fa1){if(_0x4e8fa1){freeIsNotKey(_0x4e8fa1,_0x2657dd[_0xd61e('0x1e')],'id');for(var _0x409792=0x0,_0x5d3472={},_0x22a574={};_0x409792<_0x4e8fa1[_0xd61e('0x42')];_0x409792+=0x1){_0x5d3472=_0x4e8fa1[_0x409792];if(_[_0xd61e('0x45')](_0x2657dd['zendeskAccounts'][_0x5d3472['id']])){_0x2657dd[_0xd61e('0x1e')][_0x5d3472['id']]=new ZendeskAccount(_0x5d3472);}else{_0x2657dd[_0xd61e('0x40')](_0x2657dd[_0xd61e('0x1e')][_0x5d3472['id']],_0x5d3472);}}}return _0x2657dd[_0xd61e('0x1e')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x48')]=function(){var _0x313578=this;return function(_0x10cc3e){if(_0x10cc3e){freeIsNotKey(_0x10cc3e,_0x313578[_0xd61e('0x49')],'id');for(var _0x5d6838=0x0,_0x1e7a81={},_0x45e47f={};_0x5d6838<_0x10cc3e[_0xd61e('0x42')];_0x5d6838+=0x1){_0x1e7a81=_0x10cc3e[_0x5d6838];if(_[_0xd61e('0x45')](_0x313578['salesforceAccounts'][_0x1e7a81['id']])){_0x313578['salesforceAccounts'][_0x1e7a81['id']]=new SalesforceAccount(_0x1e7a81);}else{_0x313578[_0xd61e('0x40')](_0x313578[_0xd61e('0x49')][_0x1e7a81['id']],_0x1e7a81);}}}return _0x313578[_0xd61e('0x49')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x4a')]=function(){var _0x35c376=this;return function(_0x428272){if(_0x428272){freeIsNotKey(_0x428272,_0x35c376[_0xd61e('0x20')],'id');for(var _0x513977=0x0,_0x19e4dc={},_0x58ce19={};_0x513977<_0x428272[_0xd61e('0x42')];_0x513977+=0x1){_0x19e4dc=_0x428272[_0x513977];if(_[_0xd61e('0x45')](_0x35c376[_0xd61e('0x20')][_0x19e4dc['id']])){_0x35c376[_0xd61e('0x20')][_0x19e4dc['id']]=new FreshdeskAccount(_0x19e4dc);}else{_0x35c376[_0xd61e('0x40')](_0x35c376['freshdeskAccounts'][_0x19e4dc['id']],_0x19e4dc);}}}return _0x35c376[_0xd61e('0x20')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x4b')]=function(){var _0x20fdae=this;return function(_0x1212c4){if(_0x1212c4){freeIsNotKey(_0x1212c4,_0x20fdae[_0xd61e('0x4c')],'id');for(var _0x7c546e=0x0,_0x23c73e={},_0x52de1d={};_0x7c546e<_0x1212c4[_0xd61e('0x42')];_0x7c546e+=0x1){_0x23c73e=_0x1212c4[_0x7c546e];if(_[_0xd61e('0x45')](_0x20fdae[_0xd61e('0x4c')][_0x23c73e['id']])){_0x20fdae['zohoAccounts'][_0x23c73e['id']]=new ZohoAccount(_0x23c73e);}else{_0x20fdae['mergeFromDatabase'](_0x20fdae['zohoAccounts'][_0x23c73e['id']],_0x23c73e);}}}return _0x20fdae[_0xd61e('0x4c')];};};Realtime[_0xd61e('0x3f')]['initDeskAccounts']=function(){var _0x584955=this;return function(_0x548842){if(_0x548842){freeIsNotKey(_0x548842,_0x584955[_0xd61e('0x21')],'id');for(var _0x43003a=0x0,_0x6441fb={},_0x5d34ee={};_0x43003a<_0x548842[_0xd61e('0x42')];_0x43003a+=0x1){_0x6441fb=_0x548842[_0x43003a];if(_['isUndefined'](_0x584955[_0xd61e('0x21')][_0x6441fb['id']])){_0x584955[_0xd61e('0x21')][_0x6441fb['id']]=new DeskAccount(_0x6441fb);}else{_0x584955[_0xd61e('0x40')](_0x584955[_0xd61e('0x21')][_0x6441fb['id']],_0x6441fb);}}}return _0x584955[_0xd61e('0x21')];};};Realtime['prototype'][_0xd61e('0x4d')]=function(){var _0x4ce3d2=this;return function(_0xc6d26e){if(_0xc6d26e){freeIsNotKey(_0xc6d26e,_0x4ce3d2[_0xd61e('0x1f')],'id');for(var _0x542c0a=0x0,_0x4359eb={},_0x2909da={};_0x542c0a<_0xc6d26e['length'];_0x542c0a+=0x1){_0x4359eb=_0xc6d26e[_0x542c0a];if(_['isUndefined'](_0x4ce3d2[_0xd61e('0x1f')][_0x4359eb['id']])){_0x4ce3d2[_0xd61e('0x1f')][_0x4359eb['id']]=new SugarcrmAccount(_0x4359eb);}else{_0x4ce3d2[_0xd61e('0x40')](_0x4ce3d2[_0xd61e('0x1f')][_0x4359eb['id']],_0x4359eb);}}}return _0x4ce3d2[_0xd61e('0x1f')];};};Realtime[_0xd61e('0x3f')]['initVtigerAccounts']=function(){var _0x5ef394=this;return function(_0x53a345){if(_0x53a345){freeIsNotKey(_0x53a345,_0x5ef394[_0xd61e('0x22')],'id');for(var _0x5738c2=0x0,_0x15d8cf={},_0x51ef0a={};_0x5738c2<_0x53a345[_0xd61e('0x42')];_0x5738c2+=0x1){_0x15d8cf=_0x53a345[_0x5738c2];if(_['isUndefined'](_0x5ef394[_0xd61e('0x22')][_0x15d8cf['id']])){_0x5ef394['vtigerAccounts'][_0x15d8cf['id']]=new VtigerAccount(_0x15d8cf);}else{_0x5ef394[_0xd61e('0x40')](_0x5ef394[_0xd61e('0x22')][_0x15d8cf['id']],_0x15d8cf);}}}return _0x5ef394[_0xd61e('0x22')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x4e')]=function(){var _0xcdeaed=this;return function(_0x4e17d7){if(_0x4e17d7){freeIsNotKey(_0x4e17d7,_0xcdeaed[_0xd61e('0x23')],'id');for(var _0x3ecd21=0x0,_0x17b94c={},_0x45e88a={};_0x3ecd21<_0x4e17d7['length'];_0x3ecd21+=0x1){_0x17b94c=_0x4e17d7[_0x3ecd21];if(_[_0xd61e('0x45')](_0xcdeaed[_0xd61e('0x23')][_0x17b94c['id']])){_0xcdeaed['servicenowAccounts'][_0x17b94c['id']]=new ServicenowAccount(_0x17b94c);}else{_0xcdeaed[_0xd61e('0x40')](_0xcdeaed[_0xd61e('0x23')][_0x17b94c['id']],_0x17b94c);}}}return _0xcdeaed['servicenowAccounts'];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x4f')]=function(){var _0x4a6138=this;return function(_0x1fddd6){if(_0x1fddd6){freeIsNotKey(_0x1fddd6,_0x4a6138[_0xd61e('0x50')],'id');for(var _0x54b850=0x0,_0x252ea5={},_0x3e7e92={};_0x54b850<_0x1fddd6[_0xd61e('0x42')];_0x54b850+=0x1){_0x252ea5=_0x1fddd6[_0x54b850];if(_['isUndefined'](_0x4a6138[_0xd61e('0x50')][_0x252ea5['id']])){_0x4a6138['dynamics365Accounts'][_0x252ea5['id']]=new Dynamics365Account(_0x252ea5);}else{_0x4a6138['mergeFromDatabase'](_0x4a6138['dynamics365Accounts'][_0x252ea5['id']],_0x252ea5);}}}return _0x4a6138[_0xd61e('0x50')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x51')]=function(){var _0x10beac=this;return function(_0xb47cf6){if(_0xb47cf6){freeIsNotKey(_0xb47cf6,_0x10beac[_0xd61e('0x24')],'id');for(var _0x22e8c8=0x0,_0x4b9381={},_0x4d01ac={};_0x22e8c8<_0xb47cf6[_0xd61e('0x42')];_0x22e8c8+=0x1){_0x4b9381=_0xb47cf6[_0x22e8c8];if(_['isUndefined'](_0x10beac[_0xd61e('0x24')][_0x4b9381['id']])){_0x10beac[_0xd61e('0x24')][_0x4b9381['id']]=new FreshsalesAccount(_0x4b9381);}else{_0x10beac['mergeFromDatabase'](_0x10beac[_0xd61e('0x24')][_0x4b9381['id']],_0x4b9381);}}}return _0x10beac['freshsalesAccounts'];};};Realtime[_0xd61e('0x3f')]['initVoiceQueueHopperHistory']=function(){var _0x355cb9=this;return function(_0x2a9519){for(var _0x3e256f=0x0;_0x3e256f<_0x2a9519[_0xd61e('0x42')];_0x3e256f+=0x1){_['merge'](_0x355cb9[_0xd61e('0x15')][_0x2a9519[_0x3e256f][_0xd61e('0x29')]],_0x2a9519[_0x3e256f]);}return _0x355cb9[_0xd61e('0x15')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x52')]=function(){var _0x4ba47c=this;return function(_0x4c0c41){clearVoiceQueues(_0x4ba47c['voiceQueues']);if(_0x4c0c41){_0x4c0c41=_['groupBy'](_0x4c0c41,_0xd61e('0x53'));for(var _0x45f7e5 in _0x4c0c41){if(_0x4c0c41[_0xd61e('0x27')](_0x45f7e5)){var _0x48f0d9={};for(var _0x2dbbe1=0x0;_0x2dbbe1<_0x4c0c41[_0x45f7e5][_0xd61e('0x42')];_0x2dbbe1+=0x1){var _0x4cc0e8=_0x4c0c41[_0x45f7e5][_0x2dbbe1]['queue'];if(_0x4ba47c[_0xd61e('0x15')][_0x4cc0e8]){if(_0x4c0c41[_0x45f7e5][_0x2dbbe1][_0xd61e('0x54')]){_0x4ba47c['voiceQueues'][_0x4cc0e8][_0xd61e('0x34')]+=0x1;}if(_0x4c0c41[_0x45f7e5][_0x2dbbe1][_0xd61e('0x55')]){_0x4ba47c['voiceQueues'][_0x4cc0e8][_0xd61e('0x35')]+=0x1;}_0x4ba47c[_0xd61e('0x15')][_0x4cc0e8][_0xd61e('0x2e')]+=moment(_0x4c0c41[_0x45f7e5][_0x2dbbe1][_0xd61e('0x56')])[_0xd61e('0x57')](moment(_0x4c0c41[_0x45f7e5][_0x2dbbe1][_0xd61e('0x58')]),_0xd61e('0x59'))||0x0;if(_0x2dbbe1===_0x4c0c41[_0x45f7e5][_0xd61e('0x42')]-0x1){_0x4ba47c[_0xd61e('0x15')][_0x4cc0e8][_0xd61e('0x2f')]+=moment(_0x4c0c41[_0x45f7e5][_0x2dbbe1][_0xd61e('0x5a')]||_0x4c0c41[_0x45f7e5][_0x2dbbe1][_0xd61e('0x5b')]||_0x4c0c41[_0x45f7e5][_0x2dbbe1][_0xd61e('0x5c')])[_0xd61e('0x57')](moment(_0x4c0c41[_0x45f7e5][_0x2dbbe1]['queuecallerjoinAt']),_0xd61e('0x59'))||0x0;_0x4ba47c[_0xd61e('0x15')][_0x4cc0e8][_0xd61e('0x2c')]+=0x1;if(_0x4c0c41[_0x45f7e5][_0x2dbbe1][_0xd61e('0x5d')]){_0x4ba47c[_0xd61e('0x15')][_0x4cc0e8][_0xd61e('0x2d')]+=0x1;_0x4ba47c[_0xd61e('0x15')][_0x4cc0e8][_0xd61e('0x30')]+=moment(_0x4c0c41[_0x45f7e5][_0x2dbbe1]['queuecallercompleteAt'])[_0xd61e('0x57')](moment(_0x4c0c41[_0x45f7e5][_0x2dbbe1]['queuecallerleaveAt']),_0xd61e('0x59'))||0x0;}}else{_0x4ba47c[_0xd61e('0x15')][_0x4cc0e8]['sumDuration']+=_0x4ba47c['voiceQueues'][_0x4cc0e8][_0xd61e('0x2e')]||0x0;}}}}}}return _0x4ba47c['voiceQueues'];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x5e')]=function(){var _0x3793dd=this;return function(_0x988e68){clearVoiceCallReports(_0x3793dd['outbound']);if(_0x988e68){for(var _0x1d6534=0x0;_0x1d6534<_0x988e68[_0xd61e('0x42')];_0x1d6534+=0x1){_0x3793dd[_0xd61e('0x19')][_0xd61e('0x2c')]+=0x1;_0x3793dd[_0xd61e('0x19')][_0xd61e('0x2f')]+=_0x988e68[_0x1d6534]['duration'];if(_0x988e68[_0x1d6534][_0xd61e('0x5f')]===_0xd61e('0x60')){_0x3793dd[_0xd61e('0x19')][_0xd61e('0x2d')]+=0x1;_0x3793dd['outbound']['sumHoldTime']+=_0x988e68[_0x1d6534][_0xd61e('0x61')]-_0x988e68[_0x1d6534][_0xd61e('0x62')]||0x0;_0x3793dd[_0xd61e('0x19')][_0xd61e('0x30')]+=_0x988e68[_0x1d6534][_0xd61e('0x62')];}}}return _0x3793dd[_0xd61e('0x19')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x63')]=function(){var _0xbfe58b=this;return function(_0x46925f){if(_0x46925f){freeIsNotKey(_0x46925f,_0xbfe58b[_0xd61e('0x17')],_0xd61e('0x29'));for(var _0x14d205=0x0,_0x2710b8={};_0x14d205<_0x46925f[_0xd61e('0x42')];_0x14d205+=0x1){_0x2710b8=_0x46925f[_0x14d205];if(_[_0xd61e('0x45')](_0xbfe58b[_0xd61e('0x17')][_0x2710b8[_0xd61e('0x29')]])){_0xbfe58b['campaigns'][_0x2710b8['name']]=new Campaign(_0x2710b8);}else{_0xbfe58b['mergeFromDatabase'](_0xbfe58b[_0xd61e('0x17')][_0x2710b8['name']],_0x2710b8);_0xbfe58b['campaigns'][_0x2710b8[_0xd61e('0x29')]][_0xd61e('0x64')]=_0x2710b8[_0xd61e('0x65')]?_0x2710b8['SquareProject'][_0xd61e('0x29')]:undefined;}}}return _0xbfe58b[_0xd61e('0x17')];};};Realtime[_0xd61e('0x3f')]['initVoiceExtensions']=function(){var _0x27638e=this;return function(_0x35da1b){if(_0x35da1b){freeIsNotKey(_0x35da1b,_0x27638e[_0xd61e('0x66')],'id');for(var _0x202834=0x0,_0x54727e={};_0x202834<_0x35da1b[_0xd61e('0x42')];_0x202834+=0x1){_0x54727e=_0x35da1b[_0x202834];if(_[_0xd61e('0x45')](_0x27638e[_0xd61e('0x66')][_0x54727e['id']])){_0x27638e['voiceExtensions'][_0x54727e['id']]=new VoiceExtension(_0x54727e);}else{_0x27638e['mergeFromDatabase'](_0x27638e[_0xd61e('0x66')][_0x54727e['id']],_0x54727e);}}}return _0x27638e['voiceExtensions'];};};Realtime[_0xd61e('0x3f')]['initCampaignHopperHistory']=function(){var _0x191326=this;return function(_0x3de90b){clearCampaigns(_0x191326[_0xd61e('0x17')]);for(var _0x3a5cee=0x0;_0x3a5cee<_0x3de90b[_0xd61e('0x42')];_0x3a5cee+=0x1){_[_0xd61e('0x67')](_0x191326['campaigns'][_0x3de90b[_0x3a5cee][_0xd61e('0x29')]],_0x3de90b[_0x3a5cee]);}return _0x191326[_0xd61e('0x17')];};};Realtime[_0xd61e('0x3f')][_0xd61e('0x68')]=function(){var _0x2fbab8=this;return function(_0x1999e7){if(_0x1999e7){freeIsNotKey(_0x1999e7,_0x2fbab8['faxAccounts'],'id');for(var _0x5cd64f=0x0,_0x50e25c={},_0x15a08a={};_0x5cd64f<_0x1999e7[_0xd61e('0x42')];_0x5cd64f+=0x1){_0x50e25c=_0x1999e7[_0x5cd64f];if(_['isUndefined'](_0x2fbab8[_0xd61e('0x25')][_0x50e25c['id']])){_0x2fbab8[_0xd61e('0x25')][_0x50e25c['id']]=new FaxAccount(_0x50e25c);}else{_0x2fbab8[_0xd61e('0x40')](_0x2fbab8['faxAccounts'][_0x50e25c['id']],_0x50e25c);}}}return _0x2fbab8['faxAccounts'];};};module[_0xd61e('0x69')]=Realtime;