Built motion from commit 994c64e1.|2.6.1
[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 _0x2c28=['initVoiceQueues','initTriggers','initTemplates','zendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','zohoAccounts','initDeskAccounts','vtigerAccounts','initServicenowAccounts','servicenowAccounts','initDynamics365Accounts','freshsalesAccounts','initVoiceQueueHopperHistory','merge','groupBy','uniqueid','queuecallerexit','queuecallerabandon','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','queuecallercomplete','queuecallerleaveAt','initVoiceCallReports','disposition','ANSWERED','billableseconds','initCampaigns','dialQueueProject','initVoiceExtensions','initCampaignHopperHistory','initFaxAccounts','faxAccounts','moment','../model/telephone','../model/voiceQueue','../model/trigger','../model/template','../model/voiceExtension','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/servicenowAccount','../model/dynamics365Account','../model/faxAccount','agents','telephones','trunks','voiceQueues','triggers','campaigns','templates','outbound','voiceExtensions','channels','queueChannels','outboundChannels','timers','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','deskAccounts','dynamics365Accounts','hasOwnProperty','mapKeys','format','isNil','interface','SIP/%s','total','answered','sumHoldTime','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','sumDuration','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','length','isUndefined','mergeFromDatabase','name','initTrunks'];(function(_0x59b439,_0x14ae7b){var _0x521ea3=function(_0x5af627){while(--_0x5af627){_0x59b439['push'](_0x59b439['shift']());}};_0x521ea3(++_0x14ae7b);}(_0x2c28,0xf2));var _0x82c2=function(_0x5245bc,_0x55e740){_0x5245bc=_0x5245bc-0x0;var _0x2acb9a=_0x2c28[_0x5245bc];return _0x2acb9a;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require('lodash');var moment=require(_0x82c2('0x0'));var Agent=require('../model/agent');var Telephone=require(_0x82c2('0x1'));var Trunk=require('../model/trunk');var VoiceQueue=require(_0x82c2('0x2'));var Trigger=require(_0x82c2('0x3'));var Template=require(_0x82c2('0x4'));var Campaign=require('../model/campaign');var VoiceExtension=require(_0x82c2('0x5'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require(_0x82c2('0x6'));var FreshdeskAccount=require(_0x82c2('0x7'));var SugarcrmAccount=require(_0x82c2('0x8'));var ZohoAccount=require(_0x82c2('0x9'));var DeskAccount=require(_0x82c2('0xa'));var VtigerAccount=require('../model/vtigerAccount');var ServicenowAccount=require(_0x82c2('0xb'));var Dynamics365Account=require(_0x82c2('0xc'));var FreshsalesAccount=require('../model/freshsalesAccount');var FaxAccount=require(_0x82c2('0xd'));var Realtime=function(){this[_0x82c2('0xe')]={};this[_0x82c2('0xf')]={};this[_0x82c2('0x10')]={};this[_0x82c2('0x11')]={};this[_0x82c2('0x12')]={};this[_0x82c2('0x13')]={};this[_0x82c2('0x14')]={};this[_0x82c2('0x15')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x82c2('0x16')]={};this[_0x82c2('0x17')]={};this[_0x82c2('0x18')]={};this[_0x82c2('0x19')]={};this[_0x82c2('0x1a')]={};this['settings']={};this['zendeskAccounts']={};this[_0x82c2('0x1b')]={};this[_0x82c2('0x1c')]={};this[_0x82c2('0x1d')]={};this['zohoAccounts']={};this[_0x82c2('0x1e')]={};this['vtigerAccounts']={};this['servicenowAccounts']={};this[_0x82c2('0x1f')]={};this['freshsalesAccounts']={};this['faxAccounts']={};};function freeIsNotKey(_0x1dc023,_0x1df062,_0x369fd4){var _0x1026ed=_['mapKeys'](_0x1dc023,function(_0x17c2b9,_0x55d040){return _0x17c2b9[_0x369fd4];});for(var _0x5ac5aa in _0x1df062){if(_0x1df062[_0x82c2('0x20')](_0x5ac5aa)){if(!_0x1026ed[_0x5ac5aa]){delete _0x1df062[_0x5ac5aa];}}}}function freeIsNotKeySip(_0x869300,_0x1b1a03){var _0x26e494=_[_0x82c2('0x21')](_0x869300,function(_0x1c8a05,_0x2d9240){return util[_0x82c2('0x22')]('SIP/%s',_0x1c8a05['name']);});for(var _0x7b6707 in _0x1b1a03){if(_0x1b1a03['hasOwnProperty'](_0x7b6707)){if(!_0x26e494[_0x7b6707]){delete _0x1b1a03[_0x7b6707];}}}}function freeIsNotKeyAgent(_0x5d8dfc,_0x5420f4){var _0x4dd50f=_['mapKeys'](_0x5d8dfc,function(_0x111f64,_0x2eed89){var _0x473954=_[_0x82c2('0x23')](_0x111f64[_0x82c2('0x24')])?util[_0x82c2('0x22')](_0x82c2('0x25'),_0x111f64['name']):_0x111f64[_0x82c2('0x24')];return _0x473954;});for(var _0x3608d7 in _0x5420f4){if(_0x5420f4[_0x82c2('0x20')](_0x3608d7)){if(!_0x4dd50f[_0x3608d7]){delete _0x5420f4[_0x3608d7];}}}}function clearVoiceCallReports(_0x6fb250){_0x6fb250[_0x82c2('0x26')]=0x0;_0x6fb250[_0x82c2('0x27')]=0x0;_0x6fb250[_0x82c2('0x28')]=0x0;_0x6fb250['sumDuration']=0x0;_0x6fb250[_0x82c2('0x29')]=0x0;}function clearCampaigns(_0x256394){if(!_[_0x82c2('0x2a')](_0x256394)){for(var _0x4c5cec in _0x256394){if(_0x256394[_0x82c2('0x20')](_0x4c5cec)){_0x256394[_0x4c5cec][_0x82c2('0x2b')]=0x0;_0x256394[_0x4c5cec][_0x82c2('0x2c')]=0x0;}}}}function clearVoiceQueues(_0x1c0861){if(!_[_0x82c2('0x2a')](_0x1c0861)){for(var _0x230d9e in _0x1c0861){if(_0x1c0861[_0x82c2('0x20')](_0x230d9e)){_0x1c0861[_0x230d9e][_0x82c2('0x26')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x27')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x2d')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x2e')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x28')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x2f')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x29')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x30')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x31')]=0x0;_0x1c0861[_0x230d9e]['outboundBusyCallsDay']=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x32')]=0x0;_0x1c0861[_0x230d9e]['outboundNoSuchCallsDay']=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x33')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x34')]=0x0;_0x1c0861[_0x230d9e]['outboundDropCallsDayCallersExit']=0x0;_0x1c0861[_0x230d9e]['outboundBlacklistCallsDay']=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x35')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x36')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x37')]=0x0;_0x1c0861[_0x230d9e]['outboundAnswerAgiCallsDay']=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x38')]=0x0;_0x1c0861[_0x230d9e][_0x82c2('0x39')]=!![];}}}}Realtime[_0x82c2('0x3a')]['mergeFromDatabase']=function(_0x28d88e,_0x4adba9){for(var _0x4dd7e5 in _0x4adba9){if(_0x28d88e['hasOwnProperty'](_0x4dd7e5)){_0x28d88e[_0x4dd7e5]=_0x4adba9[_0x4dd7e5];}}};Realtime[_0x82c2('0x3a')]['initAgents']=function(){var _0x5a7084=this;return function(_0x481556){if(_0x481556){freeIsNotKeyAgent(_0x481556,_0x5a7084[_0x82c2('0xe')]);for(var _0x159259=0x0,_0x1f855e={},_0x2f88d9={};_0x159259<_0x481556[_0x82c2('0x3b')];_0x159259+=0x1){_0x1f855e=_0x481556[_0x159259];var _0x40436f=_['isNil'](_0x1f855e[_0x82c2('0x24')])?util[_0x82c2('0x22')](_0x82c2('0x25'),_0x1f855e['name']):_0x1f855e[_0x82c2('0x24')];if(_[_0x82c2('0x3c')](_0x5a7084[_0x82c2('0xe')][_0x40436f])){_0x5a7084[_0x82c2('0xe')][_0x40436f]=new Agent(_0x1f855e);}else{_0x5a7084[_0x82c2('0x3d')](_0x5a7084[_0x82c2('0xe')][_0x40436f],_0x1f855e);}}}return _0x5a7084[_0x82c2('0xe')];};};Realtime['prototype']['initTelephones']=function(){var _0x1e3452=this;return function(_0x1c1629){if(_0x1c1629){freeIsNotKeySip(_0x1c1629,_0x1e3452['telephones']);for(var _0x536b60=0x0,_0x1add62={},_0x4ca648={};_0x536b60<_0x1c1629['length'];_0x536b60+=0x1){_0x1add62=_0x1c1629[_0x536b60];if(_[_0x82c2('0x3c')](_0x1e3452['telephones'][util[_0x82c2('0x22')](_0x82c2('0x25'),_0x1add62[_0x82c2('0x3e')])])){_0x1e3452[_0x82c2('0xf')][util[_0x82c2('0x22')](_0x82c2('0x25'),_0x1add62[_0x82c2('0x3e')])]=new Telephone(_0x1add62);}else{_0x1e3452[_0x82c2('0x3d')](_0x1e3452[_0x82c2('0xf')][util[_0x82c2('0x22')](_0x82c2('0x25'),_0x1add62[_0x82c2('0x3e')])],_0x1add62);}}}return _0x1e3452['telephones'];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x3f')]=function(){var _0x1c80d0=this;return function(_0x147e06){if(_0x147e06){freeIsNotKeySip(_0x147e06,_0x1c80d0[_0x82c2('0x10')]);for(var _0x62c8e4=0x0,_0x55a49d={},_0x2b48e5={};_0x62c8e4<_0x147e06[_0x82c2('0x3b')];_0x62c8e4+=0x1){_0x55a49d=_0x147e06[_0x62c8e4];if(_['isUndefined'](_0x1c80d0[_0x82c2('0x10')][util[_0x82c2('0x22')]('SIP/%s',_0x55a49d[_0x82c2('0x3e')])])){_0x1c80d0[_0x82c2('0x10')][util[_0x82c2('0x22')](_0x82c2('0x25'),_0x55a49d[_0x82c2('0x3e')])]=new Trunk(_0x55a49d);}else{_0x1c80d0[_0x82c2('0x3d')](_0x1c80d0[_0x82c2('0x10')][util['format'](_0x82c2('0x25'),_0x55a49d[_0x82c2('0x3e')])],_0x55a49d);}}}return _0x1c80d0['trunks'];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x40')]=function(){var _0xacabb5=this;return function(_0x3d4d77){if(_0x3d4d77){freeIsNotKey(_0x3d4d77,_0xacabb5[_0x82c2('0x11')],_0x82c2('0x3e'));for(var _0x2666e2=0x0,_0x192f19={},_0x5eedf3={};_0x2666e2<_0x3d4d77[_0x82c2('0x3b')];_0x2666e2+=0x1){_0x192f19=_0x3d4d77[_0x2666e2];if(_[_0x82c2('0x3c')](_0xacabb5[_0x82c2('0x11')][_0x192f19[_0x82c2('0x3e')]])){_0xacabb5[_0x82c2('0x11')][_0x192f19[_0x82c2('0x3e')]]=new VoiceQueue(_0x192f19);}else{_0xacabb5[_0x82c2('0x3d')](_0xacabb5[_0x82c2('0x11')][_0x192f19[_0x82c2('0x3e')]],_0x192f19);}}}return _0xacabb5['voiceQueues'];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x41')]=function(){var _0xe8f653=this;return function(_0x1d006d){if(_0x1d006d){freeIsNotKey(_0x1d006d,_0xe8f653[_0x82c2('0x12')],'id');for(var _0x48bffb=0x0,_0x24ad29={},_0x111fb5={};_0x48bffb<_0x1d006d[_0x82c2('0x3b')];_0x48bffb+=0x1){_0x24ad29=_0x1d006d[_0x48bffb];if(_[_0x82c2('0x3c')](_0xe8f653[_0x82c2('0x12')][_0x24ad29['id']])){_0xe8f653[_0x82c2('0x12')][_0x24ad29['id']]=new Trigger(_0x24ad29);}else{_0xe8f653['mergeFromDatabase'](_0xe8f653[_0x82c2('0x12')][_0x24ad29['id']],_0x24ad29);}}}return _0xe8f653[_0x82c2('0x12')];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x42')]=function(){var _0xef6a40=this;return function(_0x9aade9){if(_0x9aade9){freeIsNotKey(_0x9aade9,_0xef6a40[_0x82c2('0x14')],'id');for(var _0x3c37af=0x0,_0x5ca539={},_0x450b3e={};_0x3c37af<_0x9aade9['length'];_0x3c37af+=0x1){_0x5ca539=_0x9aade9[_0x3c37af];if(_['isUndefined'](_0xef6a40[_0x82c2('0x14')][_0x5ca539['id']])){_0xef6a40[_0x82c2('0x14')][_0x5ca539['id']]=new Template(_0x5ca539);}else{_0xef6a40[_0x82c2('0x3d')](_0xef6a40[_0x82c2('0x14')][_0x5ca539['id']],_0x5ca539);}}}return _0xef6a40['templates'];};};Realtime[_0x82c2('0x3a')]['initZendeskAccounts']=function(){var _0x4ab950=this;return function(_0xcc0bb4){if(_0xcc0bb4){freeIsNotKey(_0xcc0bb4,_0x4ab950[_0x82c2('0x43')],'id');for(var _0x7e275b=0x0,_0x495eb6={},_0x164a95={};_0x7e275b<_0xcc0bb4['length'];_0x7e275b+=0x1){_0x495eb6=_0xcc0bb4[_0x7e275b];if(_[_0x82c2('0x3c')](_0x4ab950['zendeskAccounts'][_0x495eb6['id']])){_0x4ab950['zendeskAccounts'][_0x495eb6['id']]=new ZendeskAccount(_0x495eb6);}else{_0x4ab950[_0x82c2('0x3d')](_0x4ab950['zendeskAccounts'][_0x495eb6['id']],_0x495eb6);}}}return _0x4ab950[_0x82c2('0x43')];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x44')]=function(){var _0x2d1eb8=this;return function(_0xcfd7f1){if(_0xcfd7f1){freeIsNotKey(_0xcfd7f1,_0x2d1eb8[_0x82c2('0x1b')],'id');for(var _0x3f1bbf=0x0,_0xd45161={},_0x2290c0={};_0x3f1bbf<_0xcfd7f1['length'];_0x3f1bbf+=0x1){_0xd45161=_0xcfd7f1[_0x3f1bbf];if(_[_0x82c2('0x3c')](_0x2d1eb8[_0x82c2('0x1b')][_0xd45161['id']])){_0x2d1eb8[_0x82c2('0x1b')][_0xd45161['id']]=new SalesforceAccount(_0xd45161);}else{_0x2d1eb8['mergeFromDatabase'](_0x2d1eb8[_0x82c2('0x1b')][_0xd45161['id']],_0xd45161);}}}return _0x2d1eb8[_0x82c2('0x1b')];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x45')]=function(){var _0x943231=this;return function(_0x2637e6){if(_0x2637e6){freeIsNotKey(_0x2637e6,_0x943231['freshdeskAccounts'],'id');for(var _0x54fca2=0x0,_0xc706aa={},_0x2178b5={};_0x54fca2<_0x2637e6['length'];_0x54fca2+=0x1){_0xc706aa=_0x2637e6[_0x54fca2];if(_[_0x82c2('0x3c')](_0x943231[_0x82c2('0x1d')][_0xc706aa['id']])){_0x943231[_0x82c2('0x1d')][_0xc706aa['id']]=new FreshdeskAccount(_0xc706aa);}else{_0x943231[_0x82c2('0x3d')](_0x943231[_0x82c2('0x1d')][_0xc706aa['id']],_0xc706aa);}}}return _0x943231['freshdeskAccounts'];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x46')]=function(){var _0x16762f=this;return function(_0x4333b3){if(_0x4333b3){freeIsNotKey(_0x4333b3,_0x16762f[_0x82c2('0x47')],'id');for(var _0xaddadf=0x0,_0x271350={},_0x51e4c9={};_0xaddadf<_0x4333b3['length'];_0xaddadf+=0x1){_0x271350=_0x4333b3[_0xaddadf];if(_['isUndefined'](_0x16762f[_0x82c2('0x47')][_0x271350['id']])){_0x16762f[_0x82c2('0x47')][_0x271350['id']]=new ZohoAccount(_0x271350);}else{_0x16762f[_0x82c2('0x3d')](_0x16762f[_0x82c2('0x47')][_0x271350['id']],_0x271350);}}}return _0x16762f['zohoAccounts'];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x48')]=function(){var _0x1b6d05=this;return function(_0x1e1ca4){if(_0x1e1ca4){freeIsNotKey(_0x1e1ca4,_0x1b6d05['deskAccounts'],'id');for(var _0xc22f9b=0x0,_0x2b13a4={},_0x2a94d4={};_0xc22f9b<_0x1e1ca4[_0x82c2('0x3b')];_0xc22f9b+=0x1){_0x2b13a4=_0x1e1ca4[_0xc22f9b];if(_[_0x82c2('0x3c')](_0x1b6d05[_0x82c2('0x1e')][_0x2b13a4['id']])){_0x1b6d05[_0x82c2('0x1e')][_0x2b13a4['id']]=new DeskAccount(_0x2b13a4);}else{_0x1b6d05[_0x82c2('0x3d')](_0x1b6d05[_0x82c2('0x1e')][_0x2b13a4['id']],_0x2b13a4);}}}return _0x1b6d05['deskAccounts'];};};Realtime['prototype']['initSugarcrmAccounts']=function(){var _0x3470fb=this;return function(_0x2e483a){if(_0x2e483a){freeIsNotKey(_0x2e483a,_0x3470fb[_0x82c2('0x1c')],'id');for(var _0x48c53f=0x0,_0x1b41ac={},_0x4a8828={};_0x48c53f<_0x2e483a[_0x82c2('0x3b')];_0x48c53f+=0x1){_0x1b41ac=_0x2e483a[_0x48c53f];if(_[_0x82c2('0x3c')](_0x3470fb['sugarcrmAccounts'][_0x1b41ac['id']])){_0x3470fb['sugarcrmAccounts'][_0x1b41ac['id']]=new SugarcrmAccount(_0x1b41ac);}else{_0x3470fb[_0x82c2('0x3d')](_0x3470fb[_0x82c2('0x1c')][_0x1b41ac['id']],_0x1b41ac);}}}return _0x3470fb[_0x82c2('0x1c')];};};Realtime[_0x82c2('0x3a')]['initVtigerAccounts']=function(){var _0x2429d0=this;return function(_0x49d2b7){if(_0x49d2b7){freeIsNotKey(_0x49d2b7,_0x2429d0[_0x82c2('0x49')],'id');for(var _0x5c41ac=0x0,_0xc56c8e={},_0x20208a={};_0x5c41ac<_0x49d2b7[_0x82c2('0x3b')];_0x5c41ac+=0x1){_0xc56c8e=_0x49d2b7[_0x5c41ac];if(_[_0x82c2('0x3c')](_0x2429d0[_0x82c2('0x49')][_0xc56c8e['id']])){_0x2429d0[_0x82c2('0x49')][_0xc56c8e['id']]=new VtigerAccount(_0xc56c8e);}else{_0x2429d0[_0x82c2('0x3d')](_0x2429d0[_0x82c2('0x49')][_0xc56c8e['id']],_0xc56c8e);}}}return _0x2429d0['vtigerAccounts'];};};Realtime['prototype'][_0x82c2('0x4a')]=function(){var _0x291e0c=this;return function(_0x49fe70){if(_0x49fe70){freeIsNotKey(_0x49fe70,_0x291e0c[_0x82c2('0x4b')],'id');for(var _0x5b680b=0x0,_0x437b08={},_0x3711a9={};_0x5b680b<_0x49fe70[_0x82c2('0x3b')];_0x5b680b+=0x1){_0x437b08=_0x49fe70[_0x5b680b];if(_[_0x82c2('0x3c')](_0x291e0c['servicenowAccounts'][_0x437b08['id']])){_0x291e0c[_0x82c2('0x4b')][_0x437b08['id']]=new ServicenowAccount(_0x437b08);}else{_0x291e0c['mergeFromDatabase'](_0x291e0c['servicenowAccounts'][_0x437b08['id']],_0x437b08);}}}return _0x291e0c[_0x82c2('0x4b')];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x4c')]=function(){var _0x16d9d0=this;return function(_0x40f8a3){if(_0x40f8a3){freeIsNotKey(_0x40f8a3,_0x16d9d0[_0x82c2('0x1f')],'id');for(var _0x1a86d0=0x0,_0x934e0a={},_0x636d10={};_0x1a86d0<_0x40f8a3[_0x82c2('0x3b')];_0x1a86d0+=0x1){_0x934e0a=_0x40f8a3[_0x1a86d0];if(_['isUndefined'](_0x16d9d0[_0x82c2('0x1f')][_0x934e0a['id']])){_0x16d9d0[_0x82c2('0x1f')][_0x934e0a['id']]=new Dynamics365Account(_0x934e0a);}else{_0x16d9d0['mergeFromDatabase'](_0x16d9d0[_0x82c2('0x1f')][_0x934e0a['id']],_0x934e0a);}}}return _0x16d9d0[_0x82c2('0x1f')];};};Realtime[_0x82c2('0x3a')]['initFreshsalesAccounts']=function(){var _0x27ff5c=this;return function(_0x4c1aa5){if(_0x4c1aa5){freeIsNotKey(_0x4c1aa5,_0x27ff5c['freshsalesAccounts'],'id');for(var _0x6a1f2f=0x0,_0x3804cb={},_0x52de61={};_0x6a1f2f<_0x4c1aa5[_0x82c2('0x3b')];_0x6a1f2f+=0x1){_0x3804cb=_0x4c1aa5[_0x6a1f2f];if(_[_0x82c2('0x3c')](_0x27ff5c[_0x82c2('0x4d')][_0x3804cb['id']])){_0x27ff5c[_0x82c2('0x4d')][_0x3804cb['id']]=new FreshsalesAccount(_0x3804cb);}else{_0x27ff5c['mergeFromDatabase'](_0x27ff5c[_0x82c2('0x4d')][_0x3804cb['id']],_0x3804cb);}}}return _0x27ff5c[_0x82c2('0x4d')];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x4e')]=function(){var _0xbb9f43=this;return function(_0x547e82){for(var _0x53f00c=0x0;_0x53f00c<_0x547e82[_0x82c2('0x3b')];_0x53f00c+=0x1){_[_0x82c2('0x4f')](_0xbb9f43[_0x82c2('0x11')][_0x547e82[_0x53f00c]['name']],_0x547e82[_0x53f00c]);}return _0xbb9f43[_0x82c2('0x11')];};};Realtime[_0x82c2('0x3a')]['initVoiceQueueReports']=function(){var _0xf4cc2f=this;return function(_0x14086a){clearVoiceQueues(_0xf4cc2f[_0x82c2('0x11')]);if(_0x14086a){_0x14086a=_[_0x82c2('0x50')](_0x14086a,_0x82c2('0x51'));for(var _0x1d5a54 in _0x14086a){if(_0x14086a[_0x82c2('0x20')](_0x1d5a54)){var _0x22219e={};for(var _0x9cc8d5=0x0;_0x9cc8d5<_0x14086a[_0x1d5a54][_0x82c2('0x3b')];_0x9cc8d5+=0x1){var _0x2ddfbf=_0x14086a[_0x1d5a54][_0x9cc8d5]['queue'];if(_0xf4cc2f[_0x82c2('0x11')][_0x2ddfbf]){if(_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x52')]){_0xf4cc2f[_0x82c2('0x11')][_0x2ddfbf][_0x82c2('0x2d')]+=0x1;}if(_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x53')]){_0xf4cc2f[_0x82c2('0x11')][_0x2ddfbf]['abandoned']+=0x1;}_0xf4cc2f['voiceQueues'][_0x2ddfbf][_0x82c2('0x28')]+=moment(_0x14086a[_0x1d5a54][_0x9cc8d5]['queuecallerleaveAt'])[_0x82c2('0x54')](moment(_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x55')]),_0x82c2('0x56'))||0x0;if(_0x9cc8d5===_0x14086a[_0x1d5a54][_0x82c2('0x3b')]-0x1){_0xf4cc2f[_0x82c2('0x11')][_0x2ddfbf][_0x82c2('0x2f')]+=moment(_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x57')]||_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x58')]||_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x59')])['diff'](moment(_0x14086a[_0x1d5a54][_0x9cc8d5]['queuecallerjoinAt']),_0x82c2('0x56'))||0x0;_0xf4cc2f[_0x82c2('0x11')][_0x2ddfbf][_0x82c2('0x26')]+=0x1;if(_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x5a')]){_0xf4cc2f[_0x82c2('0x11')][_0x2ddfbf][_0x82c2('0x27')]+=0x1;_0xf4cc2f['voiceQueues'][_0x2ddfbf][_0x82c2('0x29')]+=moment(_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x57')])[_0x82c2('0x54')](moment(_0x14086a[_0x1d5a54][_0x9cc8d5][_0x82c2('0x5b')]),_0x82c2('0x56'))||0x0;}}else{_0xf4cc2f[_0x82c2('0x11')][_0x2ddfbf][_0x82c2('0x2f')]+=_0xf4cc2f[_0x82c2('0x11')][_0x2ddfbf][_0x82c2('0x28')]||0x0;}}}}}}return _0xf4cc2f['voiceQueues'];};};Realtime['prototype'][_0x82c2('0x5c')]=function(){var _0x432c91=this;return function(_0x1c608c){clearVoiceCallReports(_0x432c91[_0x82c2('0x15')]);if(_0x1c608c){for(var _0x1dc9a0=0x0;_0x1dc9a0<_0x1c608c['length'];_0x1dc9a0+=0x1){_0x432c91[_0x82c2('0x15')]['total']+=0x1;_0x432c91[_0x82c2('0x15')][_0x82c2('0x2f')]+=_0x1c608c[_0x1dc9a0]['duration'];if(_0x1c608c[_0x1dc9a0][_0x82c2('0x5d')]===_0x82c2('0x5e')){_0x432c91[_0x82c2('0x15')][_0x82c2('0x27')]+=0x1;_0x432c91['outbound'][_0x82c2('0x28')]+=_0x1c608c[_0x1dc9a0]['duration']-_0x1c608c[_0x1dc9a0][_0x82c2('0x5f')]||0x0;_0x432c91['outbound'][_0x82c2('0x29')]+=_0x1c608c[_0x1dc9a0]['billableseconds'];}}}return _0x432c91[_0x82c2('0x15')];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x60')]=function(){var _0x191a9e=this;return function(_0x439aeb){if(_0x439aeb){freeIsNotKey(_0x439aeb,_0x191a9e[_0x82c2('0x13')],_0x82c2('0x3e'));for(var _0x137e0a=0x0,_0x23a0a={};_0x137e0a<_0x439aeb['length'];_0x137e0a+=0x1){_0x23a0a=_0x439aeb[_0x137e0a];if(_[_0x82c2('0x3c')](_0x191a9e[_0x82c2('0x13')][_0x23a0a['name']])){_0x191a9e[_0x82c2('0x13')][_0x23a0a[_0x82c2('0x3e')]]=new Campaign(_0x23a0a);}else{_0x191a9e[_0x82c2('0x3d')](_0x191a9e[_0x82c2('0x13')][_0x23a0a[_0x82c2('0x3e')]],_0x23a0a);_0x191a9e['campaigns'][_0x23a0a[_0x82c2('0x3e')]][_0x82c2('0x61')]=_0x23a0a['SquareProject']?_0x23a0a['SquareProject'][_0x82c2('0x3e')]:undefined;}}}return _0x191a9e[_0x82c2('0x13')];};};Realtime['prototype'][_0x82c2('0x62')]=function(){var _0x510d0e=this;return function(_0x42544e){if(_0x42544e){freeIsNotKey(_0x42544e,_0x510d0e['voiceExtensions'],'id');for(var _0xab43f4=0x0,_0x4f0ae8={};_0xab43f4<_0x42544e[_0x82c2('0x3b')];_0xab43f4+=0x1){_0x4f0ae8=_0x42544e[_0xab43f4];if(_[_0x82c2('0x3c')](_0x510d0e[_0x82c2('0x16')][_0x4f0ae8['id']])){_0x510d0e[_0x82c2('0x16')][_0x4f0ae8['id']]=new VoiceExtension(_0x4f0ae8);}else{_0x510d0e[_0x82c2('0x3d')](_0x510d0e[_0x82c2('0x16')][_0x4f0ae8['id']],_0x4f0ae8);}}}return _0x510d0e['voiceExtensions'];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x63')]=function(){var _0x30eeb4=this;return function(_0x33937a){clearCampaigns(_0x30eeb4[_0x82c2('0x13')]);for(var _0x1528bb=0x0;_0x1528bb<_0x33937a['length'];_0x1528bb+=0x1){_[_0x82c2('0x4f')](_0x30eeb4['campaigns'][_0x33937a[_0x1528bb][_0x82c2('0x3e')]],_0x33937a[_0x1528bb]);}return _0x30eeb4['campaigns'];};};Realtime[_0x82c2('0x3a')][_0x82c2('0x64')]=function(){var _0x379ad0=this;return function(_0x4ff5fe){if(_0x4ff5fe){freeIsNotKey(_0x4ff5fe,_0x379ad0['faxAccounts'],'id');for(var _0x1814a6=0x0,_0x24e2fa={},_0x5404b7={};_0x1814a6<_0x4ff5fe[_0x82c2('0x3b')];_0x1814a6+=0x1){_0x24e2fa=_0x4ff5fe[_0x1814a6];if(_[_0x82c2('0x3c')](_0x379ad0['faxAccounts'][_0x24e2fa['id']])){_0x379ad0[_0x82c2('0x65')][_0x24e2fa['id']]=new FaxAccount(_0x24e2fa);}else{_0x379ad0[_0x82c2('0x3d')](_0x379ad0[_0x82c2('0x65')][_0x24e2fa['id']],_0x24e2fa);}}}return _0x379ad0[_0x82c2('0x65')];};};module['exports']=Realtime;