Built motion from commit (unavailable).|2.4.18
[motion2.git] / server / services / ami / report / voiceQueueReport.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 _0xb5e7=['clearQueueReport','agents','emitVoiceQueueChannelRemove','emit','emitVoiceQueueChannelSave','format','voice:queue:%s','name','info','stringify','voice_queue_channel:remove','type','strategy','answered','available','loggedIn','sumBillable','sumDuration','total','waiting','Trunk','active','callerid','Interval','voice_queue:save','isNotNull','clearZombieChannels','queues','catch','Action','then','[queuesummary]','syncQueueSummary','queue','countBy','callers','toNumber','loggedin','emitVoiceQueueSummary','custom:queuesummary','[syncQueueSummary][VoiceQueueReport]','inspect','syncNewExten','uniqueid','inbound','queuecallerjoinAt','YYYY-MM-DD\x20HH:mm:ss','position','count','merge','keys','push','[syncQueueCallerJoin][VoiceQueueReport]','queuecallercomplete','queuecallercompleteAt','holdtime','originalposition','queuecallerexitreason','ABANDONED','lastAssignedTo','connectedlinenum','connectedlinename','[syncQueueCallerLeave][VoiceQueueReport]','COMPLETEDBYAGENT','[syncAgentConnect][VoiceQueueReport]','last','queuecallerabandonAt','assigned','membername','queuecallerexit','queuecallerexitAt','transfer','reason','startsWith','toLowerCase','local/','linkedid','add','seconds','transfertype','FORWARD','transferexten','destexten','transferuniqueid','COMPLETEDBY','toUpperCase','[syncAgentComplete][VoiceQueueReport]','value','variable','queuecallerleaveAt','queueposition','EXITWITHKEY','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberrealtime','length','unmanaged','sumHoldTime','diff','milliseconds','lastevent','custom:queuecallerunmanaged','custom:queuecallerabandon','custom:voiceQueueReport','transfereeuniqueid','ATTENDEDTRANSFER','ATTENDED','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[syncAttendedTransfer][VoiceQueueReport]','syncBlindTransfer','BLINDTRANSFER','BLIND','extension','BlindTransfer','transfererchannel','[syncBlindTransfer][VoiceQueueReport]','[syncMusicOnHoldStart][VoiceQueueReport]','mohtime','mohstarttime','[syncMusicOnHoldStop][VoiceQueueReport]','exports','lodash','moment','bluebird','md5','../../../config/environment','../ami','../model/queueReport','redis','defaults','localhost','prototype','tail','sequence','queueReports','channels','queueChannels','voiceQueues','flagQueueSummary','campaigns','queuesummary','queuesummarycomplete','syncQueueSummaryComplete','syncQueueCallerJoin','bind','queuecallerabandon','syncQueueCallerAbandon','queuecallerleave','syncQueueCallerLeave','agentcomplete','agentconnect','syncAgentConnect','syncVarSet','hangup','syncHangup','fullybooted','syncFullyBooted','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','attendedtransfer','syncAttendedTransfer','blindtransfer','loopQueueSummary','loopQueueShow','isUndefined','hasOwnProperty','originated','isEmpty','talking','pTalking','switch','enqueue','isNil','status','channel','message','No\x20such\x20channel','error','[voiceQueueReport][checkChannel]','variables','[voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime'];(function(_0x2b78e5,_0x3126f8){var _0xa8d52d=function(_0x51fd7f){while(--_0x51fd7f){_0x2b78e5['push'](_0x2b78e5['shift']());}};_0xa8d52d(++_0x3126f8);}(_0xb5e7,0x14d));var _0x7b5e=function(_0x4fd714,_0x388a59){_0x4fd714=_0x4fd714-0x0;var _0x2fc0fd=_0xb5e7[_0x4fd714];return _0x2fc0fd;};'use strict';var _=require(_0x7b5e('0x0'));var moment=require(_0x7b5e('0x1'));var BPromise=require(_0x7b5e('0x2'));var util=require('util');var md5=require(_0x7b5e('0x3'));var Redis=require('ioredis');var config=require(_0x7b5e('0x4'));var logger=require('../../../config/logger')('ami');var ami=require(_0x7b5e('0x5'));var QueueReport=require(_0x7b5e('0x6'));config[_0x7b5e('0x7')]=_[_0x7b5e('0x8')](config['redis'],{'host':_0x7b5e('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x7b5e('0x7')]));var Sequence=function(){};Sequence[_0x7b5e('0xa')]['enqueue']=function(_0x555d9a){this['tail']=this['tail']?this[_0x7b5e('0xb')]['finally'](_0x555d9a):_0x555d9a();};function VoiceQueueReport(_0x2ea4e4){this[_0x7b5e('0xc')]=new Sequence();this[_0x7b5e('0xd')]={};this['agents']=_0x2ea4e4['agents'];this[_0x7b5e('0xe')]=_0x2ea4e4[_0x7b5e('0xf')];this[_0x7b5e('0x10')]=_0x2ea4e4['voiceQueues'];this[_0x7b5e('0x11')]=!![];this[_0x7b5e('0x12')]=_0x2ea4e4['campaigns'];this['variables']={};ami['on'](_0x7b5e('0x13'),this['syncQueueSummary']['bind'](this));ami['on'](_0x7b5e('0x14'),this[_0x7b5e('0x15')]['bind'](this));ami['on']('queuecallerjoin',this[_0x7b5e('0x16')][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x18'),this[_0x7b5e('0x19')][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x1a'),this[_0x7b5e('0x1b')][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x1c'),this['syncAgentComplete'][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x1d'),this[_0x7b5e('0x1e')][_0x7b5e('0x17')](this));ami['on']('varset',this[_0x7b5e('0x1f')][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x20'),this[_0x7b5e('0x21')][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x22'),this[_0x7b5e('0x23')]['bind'](this));ami['on'](_0x7b5e('0x24'),this[_0x7b5e('0x25')][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x26'),this[_0x7b5e('0x27')][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x28'),this[_0x7b5e('0x29')][_0x7b5e('0x17')](this));ami['on'](_0x7b5e('0x2a'),this['syncBlindTransfer'][_0x7b5e('0x17')](this));this[_0x7b5e('0x2b')]();this[_0x7b5e('0x2c')]();}function isNotNull(_0x3632b6){return _0x3632b6!==null&&!_[_0x7b5e('0x2d')](_0x3632b6);}function clearChannels(_0xd15ac1){if(!_['isEmpty'](_0xd15ac1)){for(var _0x23e85f in _0xd15ac1){if(_0xd15ac1[_0x7b5e('0x2e')](_0x23e85f)){delete _0xd15ac1[_0x23e85f];}}}}function clearCampaigns(_0x10a188){if(!_['isEmpty'](_0x10a188)){for(var _0x5370e4 in _0x10a188){if(_0x10a188[_0x7b5e('0x2e')](_0x5370e4)){_0x10a188[_0x5370e4][_0x7b5e('0x2f')]=0x0;}}}}function clearVoiceQueues(_0x58ee55){if(!_[_0x7b5e('0x30')](_0x58ee55)){for(var _0x231d46 in _0x58ee55){if(_0x58ee55['hasOwnProperty'](_0x231d46)){_0x58ee55[_0x231d46][_0x7b5e('0x2f')]=0x0;_0x58ee55[_0x231d46][_0x7b5e('0x31')]=0x0;_0x58ee55[_0x231d46][_0x7b5e('0x32')]=0x0;_0x58ee55[_0x231d46]['waiting']=0x0;_0x58ee55[_0x231d46]['queueStatusComplete']=!![];}}}}function clearAgentBooked(_0x146fc4){if(!_[_0x7b5e('0x30')](_0x146fc4)){for(var _0x53b89a in _0x146fc4){if(_0x146fc4[_0x7b5e('0x2e')](_0x53b89a)){_0x146fc4[_0x53b89a]['unlockRR']=!![];}}}}VoiceQueueReport['prototype']['clearZombieChannels']=function(){var _0x106c56=this;for(var _0xdbd3f1 in this[_0x7b5e('0xe')]){if(this[_0x7b5e('0xe')]['hasOwnProperty'](_0xdbd3f1)&&!this['channels'][_0xdbd3f1][_0x7b5e('0x33')]){this['sequence'][_0x7b5e('0x34')](function(){if(!_[_0x7b5e('0x35')](_0x106c56['channels'][_0xdbd3f1])){return ami['Action']({'action':_0x7b5e('0x36'),'channel':_0x106c56['channels'][_0xdbd3f1][_0x7b5e('0x37')]})['catch'](function(_0x4dc9b9){if(_0x4dc9b9[_0x7b5e('0x38')]===_0x7b5e('0x39')){setTimeout(function(){if(_0x106c56['channels'][_0xdbd3f1]){delete _0x106c56[_0x7b5e('0xe')][_0xdbd3f1];logger[_0x7b5e('0x3a')](_0x7b5e('0x3b'),_0xdbd3f1);}if(_0x106c56[_0x7b5e('0xd')][_0xdbd3f1]){delete _0x106c56['queueReports'][_0xdbd3f1];logger[_0x7b5e('0x3a')]('[voiceQueueReport][checkQueueReport]',_0xdbd3f1);}if(_0x106c56[_0x7b5e('0x3c')][_0xdbd3f1]){delete _0x106c56[_0x7b5e('0x3c')][_0xdbd3f1];logger['error'](_0x7b5e('0x3d'),_0xdbd3f1);}},0x1f40);}});}});}}};VoiceQueueReport[_0x7b5e('0xa')][_0x7b5e('0x23')]=function(){logger['error'](_0x7b5e('0x3e'));clearChannels(this[_0x7b5e('0xe')]);this[_0x7b5e('0x3f')](this[_0x7b5e('0xd')]);clearAgentBooked(this[_0x7b5e('0x40')]);clearVoiceQueues(this['voiceQueues']);clearCampaigns(this[_0x7b5e('0x12')]);};VoiceQueueReport['prototype']['clearQueueReport']=function(_0xaa8e03){var _0x488b40=this;if(!_['isEmpty'](_0xaa8e03)){for(var _0x205f56 in _0xaa8e03){if(_0xaa8e03[_0x7b5e('0x2e')](_0x205f56)){_0x488b40[_0x7b5e('0x41')](_0xaa8e03[_0x205f56]);delete _0xaa8e03[_0x205f56];}}}};function loggerCatch(_0x31b3ab){return function(_0x2109a7){logger['error'](_0x31b3ab,util['inspect'](_0x2109a7,{'showHidden':![],'depth':null}));};}VoiceQueueReport['prototype'][_0x7b5e('0x42')]=function(_0x41ca49,_0x3af1af,_0x40e9a7){io['to'](_0x41ca49)['emit'](_0x3af1af,_0x40e9a7);};VoiceQueueReport[_0x7b5e('0xa')][_0x7b5e('0x43')]=function(_0xffc42d){this[_0x7b5e('0x42')](util[_0x7b5e('0x44')](_0x7b5e('0x45'),_0xffc42d[_0x7b5e('0x46')]),'voice_queue_channel:save',_0xffc42d);};VoiceQueueReport['prototype']['emitVoiceQueueChannelRemove']=function(_0x5c7b14){logger[_0x7b5e('0x47')]('[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event',JSON[_0x7b5e('0x48')](_0x5c7b14));this[_0x7b5e('0x42')](util[_0x7b5e('0x44')](_0x7b5e('0x45'),_0x5c7b14[_0x7b5e('0x46')]),_0x7b5e('0x49'),_0x5c7b14);};VoiceQueueReport['prototype']['emitVoiceQueueSummary']=function(_0x2f5b3c){if(_0x2f5b3c[_0x7b5e('0x4a')]==='inbound'){var _0x2ba05e={'id':_0x2f5b3c['id'],'name':_0x2f5b3c[_0x7b5e('0x46')],'strategy':_0x2f5b3c[_0x7b5e('0x4b')],'answered':_0x2f5b3c[_0x7b5e('0x4c')],'available':_0x2f5b3c[_0x7b5e('0x4d')],'loggedIn':_0x2f5b3c[_0x7b5e('0x4e')],'pTalking':_0x2f5b3c[_0x7b5e('0x32')],'sumBillable':_0x2f5b3c[_0x7b5e('0x4f')],'sumDuration':_0x2f5b3c[_0x7b5e('0x50')],'sumHoldTime':_0x2f5b3c['sumHoldTime']||0x0,'talking':_0x2f5b3c['talking'],'total':_0x2f5b3c[_0x7b5e('0x51')],'type':_0x2f5b3c[_0x7b5e('0x4a')],'unmanaged':_0x2f5b3c['unmanaged'],'abandoned':_0x2f5b3c['abandoned'],'waiting':_0x2f5b3c[_0x7b5e('0x52')]};if(_0x2f5b3c[_0x7b5e('0x53')]){_0x2ba05e[_0x7b5e('0x53')]={'id':_0x2f5b3c[_0x7b5e('0x53')]['id'],'name':_0x2f5b3c[_0x7b5e('0x53')][_0x7b5e('0x46')],'active':_0x2f5b3c[_0x7b5e('0x53')][_0x7b5e('0x54')],'callerid':_0x2f5b3c['Trunk'][_0x7b5e('0x55')]};}if(_0x2f5b3c[_0x7b5e('0x56')]){_0x2ba05e[_0x7b5e('0x56')]={'id':_0x2f5b3c[_0x7b5e('0x56')]['id'],'name':_0x2f5b3c[_0x7b5e('0x56')][_0x7b5e('0x46')]};}var _0x2c1025=md5(JSON[_0x7b5e('0x48')](_0x2ba05e));if(_0x2f5b3c[_0x7b5e('0x3')]!==_0x2c1025){_0x2f5b3c[_0x7b5e('0x3')]=_0x2c1025;this[_0x7b5e('0x42')](util['format'](_0x7b5e('0x45'),_0x2ba05e[_0x7b5e('0x46')]),_0x7b5e('0x57'),_0x2ba05e);}}};VoiceQueueReport[_0x7b5e('0xa')][_0x7b5e('0x58')]=function(_0x352641){return _0x352641!==null&&!_['isUndefined'](_0x352641);};VoiceQueueReport['prototype'][_0x7b5e('0x2c')]=function(){var _0xba8126=this;setInterval(function(){_0xba8126[_0x7b5e('0x59')]();ami['Action']({'action':_0x7b5e('0x5a')})[_0x7b5e('0x5b')](loggerCatch('[queues]'));},0x2710);};VoiceQueueReport['prototype'][_0x7b5e('0x2b')]=function(){var _0x3a61da=this;setInterval(function(){if(_0x3a61da[_0x7b5e('0x11')]){return ami[_0x7b5e('0x5c')]({'action':'queuesummary'})[_0x7b5e('0x5d')](function(_0x4dfaee){_0x3a61da[_0x7b5e('0x11')]=![];})[_0x7b5e('0x5b')](loggerCatch(_0x7b5e('0x5e')));}},0x3e8);};VoiceQueueReport['prototype'][_0x7b5e('0x5f')]=function(_0x2578fe){try{if(this[_0x7b5e('0x58')](_0x2578fe)&&this[_0x7b5e('0x58')](_0x2578fe['queue'])){if(this[_0x7b5e('0x10')][_0x2578fe[_0x7b5e('0x60')]]){var _0x45401b=_[_0x7b5e('0x61')](this[_0x7b5e('0xe')],_0x7b5e('0x60'))[_0x2578fe['queue']]||0x0;var _0x4d5877=_0x45401b-_0x2578fe['callers'];if(this[_0x7b5e('0x10')][_0x2578fe[_0x7b5e('0x60')]][_0x7b5e('0x52')]!==_['toNumber'](_0x2578fe[_0x7b5e('0x62')])||this[_0x7b5e('0x10')][_0x2578fe['queue']]['loggedIn']!==_[_0x7b5e('0x63')](_0x2578fe['loggedin'])||this[_0x7b5e('0x10')][_0x2578fe[_0x7b5e('0x60')]][_0x7b5e('0x4d')]!==_['toNumber'](_0x2578fe[_0x7b5e('0x4d')])||this[_0x7b5e('0x10')][_0x2578fe[_0x7b5e('0x60')]]['talking']!==_0x4d5877){this[_0x7b5e('0x10')][_0x2578fe[_0x7b5e('0x60')]][_0x7b5e('0x52')]=_[_0x7b5e('0x63')](_0x2578fe[_0x7b5e('0x62')]);this[_0x7b5e('0x10')][_0x2578fe[_0x7b5e('0x60')]][_0x7b5e('0x4e')]=_['toNumber'](_0x2578fe['loggedin']);this[_0x7b5e('0x10')][_0x2578fe['queue']][_0x7b5e('0x4d')]=_['toNumber'](_0x2578fe[_0x7b5e('0x4d')]);this['voiceQueues'][_0x2578fe[_0x7b5e('0x60')]][_0x7b5e('0x31')]=_0x4d5877>0x0?_0x4d5877:0x0;this[_0x7b5e('0x10')][_0x2578fe[_0x7b5e('0x60')]][_0x7b5e('0x31')]=this['voiceQueues'][_0x2578fe[_0x7b5e('0x60')]][_0x7b5e('0x31')]>_[_0x7b5e('0x63')](_0x2578fe[_0x7b5e('0x64')])?_[_0x7b5e('0x63')](_0x2578fe[_0x7b5e('0x64')]):this[_0x7b5e('0x10')][_0x2578fe['queue']][_0x7b5e('0x31')];this[_0x7b5e('0x65')](this[_0x7b5e('0x10')][_0x2578fe['queue']]);}ami['emit'](_0x7b5e('0x66'),this[_0x7b5e('0x10')][_0x2578fe['queue']]);}}}catch(_0x11e57a){logger[_0x7b5e('0x3a')](_0x7b5e('0x67'),util[_0x7b5e('0x68')](_0x11e57a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x7b5e('0xa')][_0x7b5e('0x15')]=function(_0x2a66f9){this[_0x7b5e('0x11')]=!![];};VoiceQueueReport['prototype'][_0x7b5e('0x69')]=function(_0x35173d){};VoiceQueueReport[_0x7b5e('0xa')]['syncQueueCallerJoin']=function(_0x1c88bd){try{if(this[_0x7b5e('0x58')](_0x1c88bd)){if(_['isUndefined'](this[_0x7b5e('0xd')][_0x1c88bd[_0x7b5e('0x6a')]])){this[_0x7b5e('0xd')][_0x1c88bd['uniqueid']]=[];this['channels'][_0x1c88bd['uniqueid']]={};}var _0x3b2c45=new QueueReport();_0x3b2c45['name']=_0x1c88bd['queue'];_0x3b2c45[_0x7b5e('0x4a')]=this[_0x7b5e('0x10')][_0x3b2c45[_0x7b5e('0x46')]]&&this[_0x7b5e('0x10')][_0x3b2c45['name']][_0x7b5e('0x4a')]?this[_0x7b5e('0x10')][_0x3b2c45[_0x7b5e('0x46')]][_0x7b5e('0x4a')]||_0x7b5e('0x6b'):'inbound';_0x3b2c45[_0x7b5e('0x60')]=_0x1c88bd[_0x7b5e('0x60')];_0x3b2c45[_0x7b5e('0x6c')]=moment()[_0x7b5e('0x44')](_0x7b5e('0x6d'));_0x3b2c45[_0x7b5e('0x6e')]=_0x1c88bd[_0x7b5e('0x6e')];_0x3b2c45[_0x7b5e('0x6f')]=_0x1c88bd[_0x7b5e('0x6f')];_[_0x7b5e('0x70')](_0x3b2c45,_['pick'](_0x1c88bd,_[_0x7b5e('0x71')](_0x3b2c45)));this[_0x7b5e('0xd')][_0x1c88bd[_0x7b5e('0x6a')]][_0x7b5e('0x72')](_0x3b2c45);this[_0x7b5e('0xe')][_0x1c88bd[_0x7b5e('0x6a')]]=_0x3b2c45;this['emitVoiceQueueChannelSave'](_0x3b2c45);}}catch(_0x1bcbd6){logger[_0x7b5e('0x3a')](_0x7b5e('0x73'),util[_0x7b5e('0x68')](_0x1bcbd6,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x7b5e('0x19')]=function(_0x102f01){try{if(this[_0x7b5e('0x58')](_0x102f01)){if(this[_0x7b5e('0xd')][_0x102f01[_0x7b5e('0x6a')]]){var _0x33bc0c=_['last'](this[_0x7b5e('0xd')][_0x102f01['uniqueid']]);_0x33bc0c[_0x7b5e('0x74')]=![];_0x33bc0c[_0x7b5e('0x75')]=null;_0x33bc0c[_0x7b5e('0x76')]=_0x102f01[_0x7b5e('0x76')];_0x33bc0c[_0x7b5e('0x77')]=_0x102f01[_0x7b5e('0x77')];_0x33bc0c[_0x7b5e('0x18')]=!![];_0x33bc0c['queuecallerabandonAt']=moment()[_0x7b5e('0x44')](_0x7b5e('0x6d'));_0x33bc0c[_0x7b5e('0x78')]=_0x7b5e('0x79');_0x33bc0c[_0x7b5e('0x7a')]=null;this[_0x7b5e('0xe')][_0x102f01[_0x7b5e('0x6a')]]=_0x33bc0c;this[_0x7b5e('0x41')](_0x33bc0c);}}}catch(_0x3c5092){logger[_0x7b5e('0x3a')]('[syncQueueCallerAbandon][VoiceQueueReport]',util[_0x7b5e('0x68')](_0x3c5092,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x7b5e('0x1b')]=function(_0x4f2a03){try{if(this[_0x7b5e('0x58')](_0x4f2a03)){if(this[_0x7b5e('0xd')][_0x4f2a03[_0x7b5e('0x6a')]]){var _0x12fce7=_['last'](this[_0x7b5e('0xd')][_0x4f2a03[_0x7b5e('0x6a')]]);_0x12fce7['queuecallerleaveAt']=moment()[_0x7b5e('0x44')](_0x7b5e('0x6d'));_0x12fce7[_0x7b5e('0x7b')]=_0x4f2a03[_0x7b5e('0x7b')];_0x12fce7['connectedlinename']=_0x4f2a03[_0x7b5e('0x7c')];this[_0x7b5e('0xe')][_0x4f2a03[_0x7b5e('0x6a')]]=_0x12fce7;this[_0x7b5e('0x43')](_0x12fce7);}}}catch(_0x315810){logger['error'](_0x7b5e('0x7d'),util[_0x7b5e('0x68')](_0x315810,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x7b5e('0xa')]['syncAgentConnect']=function(_0x5a599a){try{if(this[_0x7b5e('0x58')](_0x5a599a)){if(this['queueReports'][_0x5a599a[_0x7b5e('0x6a')]]){var _0x4d7eea=_['last'](this[_0x7b5e('0xd')][_0x5a599a[_0x7b5e('0x6a')]]);_0x4d7eea[_0x7b5e('0x74')]=!![];_0x4d7eea['queuecallerexitreason']=_0x7b5e('0x7e');}}}catch(_0x4e9de6){logger[_0x7b5e('0x3a')](_0x7b5e('0x7f'),util[_0x7b5e('0x68')](_0x4e9de6,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x7b5e('0xa')]['syncAgentComplete']=function(_0x453331){try{if(this[_0x7b5e('0x58')](_0x453331)){if(this[_0x7b5e('0xd')][_0x453331['uniqueid']]){var _0x57e322=_[_0x7b5e('0x80')](this[_0x7b5e('0xd')][_0x453331[_0x7b5e('0x6a')]]);_0x57e322['queuecallerabandon']=![];_0x57e322[_0x7b5e('0x81')]=null;_0x57e322[_0x7b5e('0x82')]=!![];_0x57e322[_0x7b5e('0x7a')]=_0x453331[_0x7b5e('0x83')];_0x57e322[_0x7b5e('0x76')]=_0x453331[_0x7b5e('0x76')];_0x57e322[_0x7b5e('0x74')]=!![];_0x57e322[_0x7b5e('0x84')]=![];_0x57e322[_0x7b5e('0x85')]=null;if(!_0x57e322[_0x7b5e('0x86')]){if(_0x453331[_0x7b5e('0x87')]==_0x7b5e('0x86')){_0x57e322[_0x7b5e('0x78')]='COMPLETED';}else{if(_[_0x7b5e('0x88')](_0x453331['channel'][_0x7b5e('0x89')](),_0x7b5e('0x8a'))){if(this['queueReports'][_0x453331[_0x7b5e('0x8b')]]){var _0x5bf7ca=_['last'](this['queueReports'][_0x453331[_0x7b5e('0x8b')]]);_0x5bf7ca[_0x7b5e('0x74')]=![];_0x5bf7ca['queuecallerexit']=!![];_0x5bf7ca[_0x7b5e('0x85')]=moment(_0x57e322[_0x7b5e('0x6c')])[_0x7b5e('0x8c')](_0x453331[_0x7b5e('0x76')],_0x7b5e('0x8d'))[_0x7b5e('0x44')]('YYYY-MM-DD\x20HH:mm:ss');_0x5bf7ca[_0x7b5e('0x78')]='FORWARDTRANSFER';_0x5bf7ca[_0x7b5e('0x86')]=!![];_0x5bf7ca[_0x7b5e('0x8e')]=_0x7b5e('0x8f');_0x5bf7ca[_0x7b5e('0x90')]=_0x453331[_0x7b5e('0x91')];_0x5bf7ca[_0x7b5e('0x92')]=_0x453331['uniqueid'];var _0x4443ae=this[_0x7b5e('0xd')][_0x453331[_0x7b5e('0x8b')]];this[_0x7b5e('0xd')][_0x453331[_0x7b5e('0x8b')]]=this[_0x7b5e('0xd')][_0x453331['uniqueid']];this[_0x7b5e('0xd')][_0x453331[_0x7b5e('0x6a')]]=_0x4443ae;}}else{_0x57e322[_0x7b5e('0x78')]=_0x7b5e('0x93')+_0x453331[_0x7b5e('0x87')][_0x7b5e('0x94')]();}}}this[_0x7b5e('0xe')][_0x453331[_0x7b5e('0x6a')]]=_0x57e322;this[_0x7b5e('0x41')](_0x57e322);}}}catch(_0x45315b){logger['error'](_0x7b5e('0x95'),util[_0x7b5e('0x68')](_0x45315b,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x7b5e('0xa')][_0x7b5e('0x1f')]=function(_0x38a4db){try{if(this[_0x7b5e('0x58')](_0x38a4db)){this['addVariable'](_0x38a4db['uniqueid'],_[_0x7b5e('0x71')](_0x38a4db['variable'])[0x0],_0x38a4db[_0x7b5e('0x96')]);if(this[_0x7b5e('0xd')][_0x38a4db[_0x7b5e('0x6a')]]){var _0x50f6e2=_[_0x7b5e('0x80')](this['queueReports'][_0x38a4db[_0x7b5e('0x6a')]]);if(_0x50f6e2){if(this[_0x7b5e('0x58')](_0x38a4db[_0x7b5e('0x97')])&&this[_0x7b5e('0x58')](_0x38a4db[_0x7b5e('0x97')]['queuestatus'])){switch(_0x38a4db[_0x7b5e('0x96')]){case'CONTINUE':_0x50f6e2['queuecallerexit']=![];_0x50f6e2['queuecallerexitAt']=null;break;default:_0x50f6e2[_0x7b5e('0x84')]=!![];_0x50f6e2[_0x7b5e('0x85')]=moment()[_0x7b5e('0x44')](_0x7b5e('0x6d'));_0x50f6e2[_0x7b5e('0x98')]=moment()[_0x7b5e('0x44')](_0x7b5e('0x6d'));}_0x50f6e2['queuecallerabandon']=![];_0x50f6e2[_0x7b5e('0x81')]=null;_0x50f6e2[_0x7b5e('0x78')]=_0x38a4db[_0x7b5e('0x96')];this[_0x7b5e('0xe')][_0x38a4db[_0x7b5e('0x6a')]]=_0x50f6e2;this['emitVoiceQueueChannelRemove'](_0x50f6e2);}else if(this[_0x7b5e('0x58')](_0x38a4db[_0x7b5e('0x97')])&&this['isNotNull'](_0x38a4db[_0x7b5e('0x97')][_0x7b5e('0x99')])){if(!_0x50f6e2[_0x7b5e('0x18')]){_0x50f6e2[_0x7b5e('0x84')]=!![];_0x50f6e2['queuecallerexitAt']=moment()[_0x7b5e('0x44')]('YYYY-MM-DD\x20HH:mm:ss');_0x50f6e2[_0x7b5e('0x78')]=_0x7b5e('0x9a');_0x50f6e2[_0x7b5e('0x98')]=moment()[_0x7b5e('0x44')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x7b5e('0xe')][_0x38a4db[_0x7b5e('0x6a')]]=_0x50f6e2;}}_0x50f6e2['variables']=this[_0x7b5e('0x3c')][_0x38a4db['uniqueid']];}}}}catch(_0x30abb6){logger['error']('[syncVarSet][VoiceQueueReport]',util[_0x7b5e('0x68')](_0x30abb6,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x7b5e('0xa')]['addVariable']=function(_0x123f97,_0x435656,_0x2eb601){var _0x10b89d=[_0x7b5e('0x9b'),_0x7b5e('0x9c'),'rtpaudioqosjitter',_0x7b5e('0x9d'),_0x7b5e('0x9e'),_0x7b5e('0x9f'),_0x7b5e('0xa0'),_0x7b5e('0xa1'),'sipcallid',_0x7b5e('0xa2'),_0x7b5e('0xa3'),_0x7b5e('0xa4'),_0x7b5e('0xa5'),_0x7b5e('0xa6'),_0x7b5e('0xa7'),_0x7b5e('0xa8'),'membername','memberpenalty',_0x7b5e('0xa9')];if(!_[_0x7b5e('0x35')](_0x435656)&&!_['includes'](_0x10b89d,_0x435656)){if(_[_0x7b5e('0x2d')](this[_0x7b5e('0x3c')][_0x123f97])){this[_0x7b5e('0x3c')][_0x123f97]={};}this[_0x7b5e('0x3c')][_0x123f97][_0x435656]=_0x2eb601;}};VoiceQueueReport['prototype'][_0x7b5e('0x21')]=function(_0x1fdb01){try{if(this[_0x7b5e('0x58')](_0x1fdb01)){if(this[_0x7b5e('0xd')][_0x1fdb01[_0x7b5e('0x6a')]]){for(var _0x355cbd=0x0,_0x118bf2={};_0x355cbd<this[_0x7b5e('0xd')][_0x1fdb01['uniqueid']][_0x7b5e('0xaa')];_0x355cbd+=0x1){_0x118bf2=this[_0x7b5e('0xd')][_0x1fdb01['uniqueid']][_0x355cbd];if(this[_0x7b5e('0x10')][_0x118bf2[_0x7b5e('0x60')]]){if(_0x118bf2[_0x7b5e('0x84')]){this[_0x7b5e('0x10')][_0x118bf2['queue']][_0x7b5e('0xab')]+=0x1;}if(_0x118bf2[_0x7b5e('0x18')]){this['voiceQueues'][_0x118bf2[_0x7b5e('0x60')]]['abandoned']+=0x1;}this[_0x7b5e('0x10')][_0x118bf2[_0x7b5e('0x60')]][_0x7b5e('0xac')]+=moment(_0x118bf2[_0x7b5e('0x98')])[_0x7b5e('0xad')](_0x118bf2[_0x7b5e('0x6c')],_0x7b5e('0x8d'))||0x0;if(_0x355cbd===this[_0x7b5e('0xd')][_0x1fdb01['uniqueid']][_0x7b5e('0xaa')]-0x1){this[_0x7b5e('0x10')][_0x118bf2[_0x7b5e('0x60')]]['sumDuration']+=moment()[_0x7b5e('0xae')](0x0)[_0x7b5e('0xad')](_0x118bf2[_0x7b5e('0x6c')],_0x7b5e('0x8d'));this['voiceQueues'][_0x118bf2['queue']][_0x7b5e('0x51')]+=0x1;if(_0x118bf2['queuecallercomplete']){this['voiceQueues'][_0x118bf2[_0x7b5e('0x60')]][_0x7b5e('0x4c')]+=0x1;this[_0x7b5e('0x10')][_0x118bf2[_0x7b5e('0x60')]][_0x7b5e('0x4f')]+=moment()[_0x7b5e('0xae')](0x0)['diff'](_0x118bf2[_0x7b5e('0x98')],'seconds');_0x118bf2[_0x7b5e('0x75')]=moment()[_0x7b5e('0x44')](_0x7b5e('0x6d'));_0x118bf2['queuecallerexit']=![];_0x118bf2['queuecallerexitAt']=null;}if(_0x118bf2['queuecallerexit']){_0x118bf2[_0x7b5e('0xaf')]='unmanaged';ami[_0x7b5e('0x42')](_0x7b5e('0xb0'),_0x118bf2);}if(_0x118bf2[_0x7b5e('0x18')]){_0x118bf2[_0x7b5e('0xaf')]='abandoned';ami[_0x7b5e('0x42')](_0x7b5e('0xb1'),_0x118bf2);}}else{this['voiceQueues'][_0x118bf2[_0x7b5e('0x60')]]['sumDuration']+=this[_0x7b5e('0x10')][_0x118bf2['queue']][_0x7b5e('0xac')];}this[_0x7b5e('0xe')][_0x1fdb01[_0x7b5e('0x6a')]]=_0x118bf2;this[_0x7b5e('0x41')](_0x118bf2);this[_0x7b5e('0x65')](this[_0x7b5e('0x10')][_0x118bf2['queue']]);}}ami[_0x7b5e('0x42')](_0x7b5e('0xb2'),this['queueReports'][_0x1fdb01[_0x7b5e('0x6a')]]);delete this[_0x7b5e('0xd')][_0x1fdb01[_0x7b5e('0x6a')]];delete this[_0x7b5e('0xe')][_0x1fdb01[_0x7b5e('0x6a')]];}if(this[_0x7b5e('0x3c')][_0x1fdb01[_0x7b5e('0x6a')]]){delete this[_0x7b5e('0x3c')][_0x1fdb01[_0x7b5e('0x6a')]];}}}catch(_0x8a819f){logger[_0x7b5e('0x3a')]('[syncHangup][VoiceQueueReport]',util['inspect'](_0x8a819f,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x7b5e('0xa')]['syncAttendedTransfer']=function(_0x5ad1b1){try{if(this['isNotNull'](_0x5ad1b1)){var _0x2940b3;if(this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb3')]]){_0x2940b3=_[_0x7b5e('0x80')](this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb3')]]);_0x2940b3['transferexten']=_0x5ad1b1['secondtransfererexten'];_0x2940b3[_0x7b5e('0x92')]=_0x5ad1b1['secondtransfereruniqueid'];_0x2940b3[_0x7b5e('0x78')]=_0x7b5e('0xb4');_0x2940b3['transfer']=!![];_0x2940b3[_0x7b5e('0x8e')]=_0x7b5e('0xb5');if(this['queueReports'][_0x5ad1b1['secondtransfereruniqueid']]){var _0x1cad32=this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb6')]];this[_0x7b5e('0xd')][_0x5ad1b1['secondtransfereruniqueid']]=this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb3')]];this['queueReports'][_0x5ad1b1[_0x7b5e('0xb3')]]=_0x1cad32;var _0x5da2e6=_['last'](this[_0x7b5e('0xd')][_0x5ad1b1['transfereeuniqueid']]);_0x5da2e6[_0x7b5e('0x33')]=!![];}}else if(this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb7')]]){_0x2940b3=_[_0x7b5e('0x80')](this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb7')]]);_0x2940b3[_0x7b5e('0x90')]=_0x5ad1b1['origtransfererexten'];_0x2940b3['transferuniqueid']=_0x5ad1b1[_0x7b5e('0xb8')];_0x2940b3[_0x7b5e('0x78')]='ATTENDEDTRANSFER';_0x2940b3[_0x7b5e('0x86')]=!![];_0x2940b3['transfertype']=_0x7b5e('0xb5');if(this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb8')]]){var _0x1cad32=this[_0x7b5e('0xd')][_0x5ad1b1['origtransfereruniqueid']];this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb8')]]=this[_0x7b5e('0xd')][_0x5ad1b1['transfertargetuniqueid']];this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb7')]]=_0x1cad32;var _0x5da2e6=_[_0x7b5e('0x80')](this[_0x7b5e('0xd')][_0x5ad1b1[_0x7b5e('0xb7')]]);_0x5da2e6[_0x7b5e('0x33')]=!![];}}}}catch(_0x36935c){logger[_0x7b5e('0x3a')](_0x7b5e('0xb9'),util[_0x7b5e('0x68')](_0x36935c,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x7b5e('0xa')][_0x7b5e('0xba')]=function(_0x2382bc){try{if(this['isNotNull'](_0x2382bc)){if(this['queueReports'][_0x2382bc[_0x7b5e('0xb3')]]){var _0x290f76=_['last'](this['queueReports'][_0x2382bc[_0x7b5e('0xb3')]]);_0x290f76[_0x7b5e('0x78')]=_0x7b5e('0xbb');_0x290f76['transfer']=!![];_0x290f76[_0x7b5e('0x8e')]=_0x7b5e('0xbc');_0x290f76[_0x7b5e('0x90')]=_0x2382bc[_0x7b5e('0xbd')];_0x290f76['transferuniqueid']=_0x2382bc[_0x7b5e('0xb3')];this[_0x7b5e('0x21')]({'event':_0x7b5e('0xbe'),'uniqueid':_0x2382bc[_0x7b5e('0xb3')],'context':_0x2382bc['context'],'channel':_0x2382bc[_0x7b5e('0xbf')]});}}}catch(_0x255a8f){logger[_0x7b5e('0x3a')](_0x7b5e('0xc0'),util[_0x7b5e('0x68')](_0x255a8f,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x7b5e('0xa')][_0x7b5e('0x25')]=function(_0x484f13){try{if(this[_0x7b5e('0x58')](_0x484f13)){if(this[_0x7b5e('0xd')][_0x484f13[_0x7b5e('0x6a')]]){var _0x1fb0a0=_[_0x7b5e('0x80')](this[_0x7b5e('0xd')][_0x484f13['uniqueid']]);if(!_[_0x7b5e('0x35')](_0x1fb0a0[_0x7b5e('0x98')])){_0x1fb0a0['mohstarttime']=moment()['format'](_0x7b5e('0x6d'));}}}}catch(_0x22126b){logger[_0x7b5e('0x3a')](_0x7b5e('0xc1'),util[_0x7b5e('0x68')](_0x22126b,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncMusicOnHoldStop']=function(_0x186dcc){try{if(this[_0x7b5e('0x58')](_0x186dcc)){if(this[_0x7b5e('0xd')][_0x186dcc[_0x7b5e('0x6a')]]){var _0x5cd083=_[_0x7b5e('0x80')](this[_0x7b5e('0xd')][_0x186dcc[_0x7b5e('0x6a')]]);if(!_[_0x7b5e('0x35')](_0x5cd083['mohstarttime'])){_0x5cd083[_0x7b5e('0xc2')]+=moment()[_0x7b5e('0xae')](0x0)['diff'](_0x5cd083[_0x7b5e('0xc3')],_0x7b5e('0x8d'));delete _0x5cd083[_0x7b5e('0xc3')];}}}}catch(_0x6f8d35){logger[_0x7b5e('0x3a')](_0x7b5e('0xc4'),util[_0x7b5e('0x68')](_0x6f8d35,{'showHidden':![],'depth':null}));}};module[_0x7b5e('0xc5')]=VoiceQueueReport;