8cf41ae6db8128d22088367fbc761e572560c0e3
[motion2.git] / server / services / ami / report / voiceCallReport.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 _0xb027=['[%s][voiceCallReport][hangup]\x20event:','[%s][voiceCallReport][hangup]\x20reason:%s','cause-txt','endtime','billableseconds','omit','destconnectedlinenum','user:agentcomplete','event','BlindTransfer','outbound','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','custom:voiceCallReport','[%s][voiceCallReport][hangup]','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','transfercalleridnum','origtransferercalleridnum','transfertargetcalleridnum','origtransfereruniqueid','[%s][voiceCallReport][attendedtransfer]','syncBlindTransfer','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','transfereecalleridnum','[%s][voiceCallReport][blindtransfer]\x20event:','[%s][voiceCallReport][blindtransfer]','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','mohtime','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','[%s][voiceCallReport][musiconholdstop]','exports','bluebird','lodash','util','path','../../../config/environment','../../../config/logger','../ami','not_inuse','inuse','invalid','unavailable','onhold','set','agi','dial','NO\x20ANSWER','FAILED','ANSWERED','BUSY','defaults','localhost','socket.io-emitter','redis','channels','blindTransfers','coreshowchannel','syncNewExten','newexten','bind','newchannel','syncNewChannel','varset','syncHangup','newcallerid','attendedtransfer','syncAttendedTransfer','blindtransfer','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','info','[voiceCallReport][coreshowchannels]\x20started','actionCoreShowChannels','error','[voiceCallReport][coreshowchannels]','inspect','prototype','isNotNull','isUndefined','emit','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','uniqueid','calleridname','debug','[%s][voiceCallReport][newcallerid]\x20event:','merge','keys','[%s][voiceCallReport][newcallerid]','linkedid','channel','OutgoingSpoolFailed','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','context','exten','starttime','format','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','from-sip','agents','split','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','accountcode','user:%s','name','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','application','applicationdata','toLowerCase','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','subtract','duration','seconds','pick','includes','startsWith','cdr(','queue','[%s][voiceCallReport][newexten]','syncNewState','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','calleridnum','[%s][voiceCallReport][newstate]\x20event:','channelstate','answered','answertime','holdtime','diff','connectedlinenum','connectedlinename','destinationchannel','UserId','membername','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','monitor','.wav49','replace','.WAV','monitorFilename','find','monitors','isNil','push','rec','[%s][voiceCallReport][mixMonitorFilename]','[%s][voiceCallReport][varset]\x20event:','variable','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','value','xmd-phone','xmd-callerid','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','callerid','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','type','[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s','xmd-originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','originatecalleridnum','xmd-destination','destination','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','mixmonitor_filename','parse','sipcallid','sipcalllinkedid','[%s][voiceCallReport][varset]'];(function(_0x5ee3ea,_0x15a572){var _0x3f3042=function(_0x221110){while(--_0x221110){_0x5ee3ea['push'](_0x5ee3ea['shift']());}};_0x3f3042(++_0x15a572);}(_0xb027,0xd5));var _0x7b02=function(_0x20781d,_0x19ed70){_0x20781d=_0x20781d-0x0;var _0x9f8b69=_0xb027[_0x20781d];return _0x9f8b69;};'use strict';var BPromise=require(_0x7b02('0x0'));var _=require(_0x7b02('0x1'));var moment=require('moment');var util=require(_0x7b02('0x2'));var path=require(_0x7b02('0x3'));var Redis=require('ioredis');var config=require(_0x7b02('0x4'));var logger=require(_0x7b02('0x5'))('ami');var ami=require(_0x7b02('0x6'));var Channel=require('../model/channel');var statusDesc=['unknown',_0x7b02('0x7'),_0x7b02('0x8'),'busy',_0x7b02('0x9'),_0x7b02('0xa'),'ringing','ringinuse',_0x7b02('0xb')];var applications=[_0x7b02('0xc'),'queue',_0x7b02('0xd'),_0x7b02('0xe'),'playback','voicemail'];var dispositions=[_0x7b02('0xf'),_0x7b02('0x10'),'FAILED','NO\x20ANSWER','NO\x20ANSWER',_0x7b02('0xf'),_0x7b02('0x11'),_0x7b02('0x12'),'FAILED',_0x7b02('0x10'),_0x7b02('0x10')];var actions={};config['redis']=_[_0x7b02('0x13')](config['redis'],{'host':_0x7b02('0x14'),'port':0x18eb});var io=require(_0x7b02('0x15'))(new Redis(config[_0x7b02('0x16')]));function VoiceCallReport(_0x908009){this[_0x7b02('0x17')]=_0x908009['channels'];this['agents']=_0x908009['agents'];this[_0x7b02('0x18')]={};ami['on'](_0x7b02('0x19'),this[_0x7b02('0x1a')]['bind'](this));ami['on'](_0x7b02('0x1b'),this[_0x7b02('0x1a')][_0x7b02('0x1c')](this));ami['on'](_0x7b02('0x1d'),this[_0x7b02('0x1e')][_0x7b02('0x1c')](this));ami['on']('newstate',this['syncNewState']['bind'](this));ami['on'](_0x7b02('0x1f'),this['syncVarSet']['bind'](this));ami['on']('hangup',this[_0x7b02('0x20')][_0x7b02('0x1c')](this));ami['on'](_0x7b02('0x21'),this['syncNewCallerId']['bind'](this));ami['on'](_0x7b02('0x22'),this[_0x7b02('0x23')][_0x7b02('0x1c')](this));ami['on'](_0x7b02('0x24'),this['syncBlindTransfer'][_0x7b02('0x1c')](this));ami['on']('musiconholdstart',this[_0x7b02('0x25')][_0x7b02('0x1c')](this));ami['on'](_0x7b02('0x26'),this[_0x7b02('0x27')][_0x7b02('0x1c')](this));try{logger[_0x7b02('0x28')](_0x7b02('0x29'));ami[_0x7b02('0x2a')]();}catch(_0x456d7c){logger[_0x7b02('0x2b')](_0x7b02('0x2c'),util[_0x7b02('0x2d')](_0x456d7c,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x7b02('0x2e')][_0x7b02('0x2f')]=function(_0x3fd8f8){return _0x3fd8f8!==null&&!_[_0x7b02('0x30')](_0x3fd8f8);};VoiceCallReport[_0x7b02('0x2e')][_0x7b02('0x31')]=function(_0x4d79e6,_0x3b07ce,_0x27aeff){io['to'](_0x4d79e6)[_0x7b02('0x31')](_0x3b07ce,_0x27aeff);};VoiceCallReport[_0x7b02('0x2e')]['syncNewCallerId']=function(_0x233640){try{if(this[_0x7b02('0x2f')](_0x233640)){logger[_0x7b02('0x28')](_0x7b02('0x32'),_0x233640[_0x7b02('0x33')],_0x233640[_0x7b02('0x34')],_0x233640['calleridnum']);logger[_0x7b02('0x35')](_0x7b02('0x36'),_0x233640[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x233640,{'showHidden':![],'depth':null}));if(_0x233640[_0x7b02('0x33')]===_0x233640['linkedid']){if(!_[_0x7b02('0x30')](this[_0x7b02('0x17')][_0x233640[_0x7b02('0x33')]])){_[_0x7b02('0x37')](this[_0x7b02('0x17')][_0x233640[_0x7b02('0x33')]],_['pick'](_0x233640,_[_0x7b02('0x38')](this[_0x7b02('0x17')][_0x233640['uniqueid']])));}}}}catch(_0x192555){logger[_0x7b02('0x2b')](_0x7b02('0x39'),_0x233640['uniqueid'],util[_0x7b02('0x2d')](_0x192555,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')]['syncNewChannel']=function(_0x45620){try{if(this[_0x7b02('0x2f')](_0x45620)){logger['debug']('[%s][voiceCallReport][newchannel]\x20event:',_0x45620[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x45620,{'showHidden':![],'depth':null}));if(_0x45620[_0x7b02('0x33')]===_0x45620[_0x7b02('0x3a')]&&_0x45620[_0x7b02('0x3b')]!=_0x7b02('0x3c')){if(_[_0x7b02('0x30')](this[_0x7b02('0x17')][_0x45620[_0x7b02('0x33')]])){logger[_0x7b02('0x28')](_0x7b02('0x3d'),_0x45620['uniqueid'],_0x45620[_0x7b02('0x3e')],_0x45620[_0x7b02('0x3f')]);this[_0x7b02('0x17')][_0x45620[_0x7b02('0x33')]]=new Channel();this[_0x7b02('0x17')][_0x45620[_0x7b02('0x33')]][_0x7b02('0x40')]=moment()[_0x7b02('0x41')](_0x7b02('0x42'));this['channels'][_0x45620['uniqueid']][_0x7b02('0x43')]=dispositions[_[_0x7b02('0x44')](_0x45620['channelstate'])];_['merge'](this[_0x7b02('0x17')][_0x45620['uniqueid']],_['pick'](_0x45620,_[_0x7b02('0x38')](this[_0x7b02('0x17')][_0x45620[_0x7b02('0x33')]])));if(_0x45620[_0x7b02('0x3e')]===_0x7b02('0x45')){if(this[_0x7b02('0x46')][_0x45620['channel'][_0x7b02('0x47')]('-')[0x0]]){this[_0x7b02('0x46')][_0x45620['channel'][_0x7b02('0x47')]('-')[0x0]]['destconnectedlinenum']=_0x45620['exten'];logger['debug'](_0x7b02('0x48'),_0x45620['uniqueid'],util[_0x7b02('0x2d')]({'destaccountcode':this[_0x7b02('0x46')][_0x45620[_0x7b02('0x3b')]['split']('-')[0x0]][_0x7b02('0x49')],'destconnectedlinenum':_0x45620[_0x7b02('0x3f')]},{'showHidden':![],'depth':null}));this['emit'](util[_0x7b02('0x41')](_0x7b02('0x4a'),this[_0x7b02('0x46')][_0x45620[_0x7b02('0x3b')]['split']('-')[0x0]][_0x7b02('0x4b')]),'user:agentconnect',{'destaccountcode':this[_0x7b02('0x46')][_0x45620['channel'][_0x7b02('0x47')]('-')[0x0]][_0x7b02('0x49')],'destconnectedlinenum':_0x45620[_0x7b02('0x3f')]});}}}}}}catch(_0x3287a9){logger['error'](_0x7b02('0x4c'),_0x45620['uniqueid'],util[_0x7b02('0x2d')](_0x3287a9,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')]['syncNewExten']=function(_0x38f343){try{if(this[_0x7b02('0x2f')](_0x38f343)){logger['debug'](_0x7b02('0x4d'),_0x38f343[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x38f343,{'showHidden':![],'depth':null}));if(_0x38f343[_0x7b02('0x33')]===_0x38f343['linkedid']&&_0x38f343['exten']!='h'&&_0x38f343[_0x7b02('0x3b')]!=_0x7b02('0x3c')){_0x38f343[_0x7b02('0x4e')]=_0x38f343[_0x7b02('0x4e')]['toLowerCase']();_0x38f343[_0x7b02('0x4f')]=(_0x38f343['appdata']||_0x38f343['applicationdata'])[_0x7b02('0x50')]();logger['info'](_0x7b02('0x51'),_0x38f343[_0x7b02('0x33')],_0x38f343[_0x7b02('0x4e')],_0x38f343[_0x7b02('0x4f')]);if(_[_0x7b02('0x30')](this[_0x7b02('0x17')][_0x38f343[_0x7b02('0x33')]])){this[_0x7b02('0x17')][_0x38f343[_0x7b02('0x33')]]=new Channel();this[_0x7b02('0x17')][_0x38f343[_0x7b02('0x33')]][_0x7b02('0x40')]=_0x38f343['duration']?moment()[_0x7b02('0x52')](moment[_0x7b02('0x53')](_0x38f343['duration'])[_0x7b02('0x54')](),_0x7b02('0x54'))['format'](_0x7b02('0x42')):moment()[_0x7b02('0x41')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x7b02('0x17')][_0x38f343['uniqueid']][_0x7b02('0x43')]='NO\x20ANSWER';}_[_0x7b02('0x37')](this['channels'][_0x38f343[_0x7b02('0x33')]],_[_0x7b02('0x55')](_0x38f343,_[_0x7b02('0x38')](this['channels'][_0x38f343['uniqueid']])));if(_[_0x7b02('0x56')](applications,_0x38f343[_0x7b02('0x4e')])){this[_0x7b02('0x17')][_0x38f343['uniqueid']]['lastapplication']=_0x38f343[_0x7b02('0x4e')];this[_0x7b02('0x17')][_0x38f343[_0x7b02('0x33')]]['lastdata']=_0x38f343[_0x7b02('0x4f')];if(_0x38f343['application']===_0x7b02('0xc')&&_[_0x7b02('0x57')](_0x38f343[_0x7b02('0x4f')],_0x7b02('0x58'))){var _0x218896=_0x38f343[_0x7b02('0x4f')][_0x7b02('0x47')]('=');var _0x2bcc4d=_0x218896[0x0]['match'](/cdr\((.*)\)/);if(_0x2bcc4d){this['channels'][_0x38f343[_0x7b02('0x33')]][_0x2bcc4d[0x1]]=_0x218896[0x1];}}else if(_0x38f343[_0x7b02('0x4e')]===_0x7b02('0x59')){this[_0x7b02('0x17')][_0x38f343['uniqueid']][_0x7b02('0x59')]=_0x38f343['applicationdata'][_0x7b02('0x47')](',')[0x0];}}}}}catch(_0x10cb35){logger[_0x7b02('0x2b')](_0x7b02('0x5a'),_0x38f343[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x10cb35,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')][_0x7b02('0x5b')]=function(_0x6e5c1b){try{if(this[_0x7b02('0x2f')](_0x6e5c1b)){logger[_0x7b02('0x28')](_0x7b02('0x5c'),_0x6e5c1b[_0x7b02('0x33')],_0x6e5c1b[_0x7b02('0x3a')],_0x6e5c1b[_0x7b02('0x34')],_0x6e5c1b[_0x7b02('0x5d')]);logger[_0x7b02('0x35')](_0x7b02('0x5e'),_0x6e5c1b['uniqueid'],util[_0x7b02('0x2d')](_0x6e5c1b,{'showHidden':![],'depth':null}));if(_0x6e5c1b[_0x7b02('0x33')]!==_0x6e5c1b['linkedid']){if(this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x3a')]]){if(_0x6e5c1b[_0x7b02('0x5f')]==='6'){if(!this[_0x7b02('0x17')][_0x6e5c1b['linkedid']][_0x7b02('0x60')]){var _0x193cbf=moment();this['channels'][_0x6e5c1b['linkedid']][_0x7b02('0x60')]=!![];this[_0x7b02('0x17')][_0x6e5c1b['linkedid']][_0x7b02('0x61')]=_0x193cbf[_0x7b02('0x41')](_0x7b02('0x42'));if(this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x3a')]][_0x7b02('0x40')]){this[_0x7b02('0x17')][_0x6e5c1b['linkedid']][_0x7b02('0x62')]=_0x193cbf[_0x7b02('0x63')](this['channels'][_0x6e5c1b[_0x7b02('0x3a')]][_0x7b02('0x40')],_0x7b02('0x54'));}}this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x3a')]]['linkedid']=_0x6e5c1b[_0x7b02('0x33')];if(_0x6e5c1b['calleridnum']!=='xcally-motion-preview'){this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x3a')]][_0x7b02('0x64')]=_0x6e5c1b[_0x7b02('0x5d')];}this['channels'][_0x6e5c1b['linkedid']][_0x7b02('0x65')]=_0x6e5c1b[_0x7b02('0x34')];this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x3a')]][_0x7b02('0x66')]=_0x6e5c1b[_0x7b02('0x3b')];this['channels'][_0x6e5c1b[_0x7b02('0x3a')]][_0x7b02('0x43')]=dispositions[_['toNumber'](_0x6e5c1b[_0x7b02('0x5f')])];if(this['agents'][_0x6e5c1b[_0x7b02('0x3b')][_0x7b02('0x47')]('-')[0x0]]){this['channels'][_0x6e5c1b[_0x7b02('0x3a')]][_0x7b02('0x67')]=this[_0x7b02('0x46')][_0x6e5c1b[_0x7b02('0x3b')]['split']('-')[0x0]]['id'];this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x3a')]][_0x7b02('0x68')]=this[_0x7b02('0x46')][_0x6e5c1b[_0x7b02('0x3b')][_0x7b02('0x47')]('-')[0x0]][_0x7b02('0x4b')];}}}}else{if(this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x33')]]){if(_0x6e5c1b[_0x7b02('0x5f')]==='6'){if(this['agents'][_0x6e5c1b[_0x7b02('0x3b')]['split']('-')[0x0]]){this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x33')]][_0x7b02('0x67')]=this[_0x7b02('0x46')][_0x6e5c1b['channel']['split']('-')[0x0]]['id'];this[_0x7b02('0x17')][_0x6e5c1b[_0x7b02('0x33')]]['membername']=this['agents'][_0x6e5c1b[_0x7b02('0x3b')][_0x7b02('0x47')]('-')[0x0]][_0x7b02('0x4b')];}}}}}}catch(_0x5e375e){logger['error'](_0x7b02('0x69'),_0x6e5c1b[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x5e375e,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')][_0x7b02('0x6a')]=function(_0x228369,_0x49b761){try{if(this[_0x7b02('0x17')][_0x228369]){logger['info'](_0x7b02('0x6b'),_0x228369,_0x49b761);this[_0x7b02('0x17')][_0x228369][_0x7b02('0x6c')]=!![];if(_['endsWith'](_0x49b761,_0x7b02('0x6d'))){_0x49b761=_0x49b761[_0x7b02('0x6e')](_0x7b02('0x6d'),_0x7b02('0x6f'));}this['channels'][_0x228369][_0x7b02('0x70')]=_0x49b761;var _0x406394=_[_0x7b02('0x71')](this[_0x7b02('0x17')][_0x228369][_0x7b02('0x72')],{'filename':_0x49b761});if(_[_0x7b02('0x73')](_0x406394)){this[_0x7b02('0x17')][_0x228369][_0x7b02('0x72')][_0x7b02('0x74')]({'filename':_0x49b761,'createdAt':moment()[_0x7b02('0x41')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':'','status':_0x7b02('0x75')});}}}catch(_0x14faed){logger['error'](_0x7b02('0x76'),_0x228369,util[_0x7b02('0x2d')](_0x14faed,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')]['syncVarSet']=function(_0x50acef){try{if(this['isNotNull'](_0x50acef)){logger['debug'](_0x7b02('0x77'),_0x50acef[_0x7b02('0x33')],util['inspect'](_0x50acef,{'showHidden':![],'depth':null}));if(this['channels'][_0x50acef[_0x7b02('0x33')]]&&_0x50acef['channel']!=_0x7b02('0x3c')){if(this[_0x7b02('0x2f')](_0x50acef[_0x7b02('0x78')])){if(this[_0x7b02('0x2f')](_0x50acef['variable']['mixmonitor_filename'])){logger[_0x7b02('0x28')](_0x7b02('0x79'),_0x50acef[_0x7b02('0x33')],_0x50acef['value']);this[_0x7b02('0x6a')](_0x50acef[_0x7b02('0x33')],_0x50acef[_0x7b02('0x7a')]);}else if(this[_0x7b02('0x2f')](_0x50acef[_0x7b02('0x78')][_0x7b02('0x7b')])){logger[_0x7b02('0x28')]('[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s',_0x50acef[_0x7b02('0x33')],_0x50acef[_0x7b02('0x7a')]);this['channels'][_0x50acef[_0x7b02('0x33')]][_0x7b02('0x5d')]=_0x50acef[_0x7b02('0x7a')];}else if(this[_0x7b02('0x2f')](_0x50acef[_0x7b02('0x78')][_0x7b02('0x7c')])){logger[_0x7b02('0x28')](_0x7b02('0x7d'),_0x50acef[_0x7b02('0x33')],_0x50acef[_0x7b02('0x7a')]);this['channels'][_0x50acef[_0x7b02('0x33')]][_0x7b02('0x7e')]=_0x50acef[_0x7b02('0x7a')];}else if(this['isNotNull'](_0x50acef[_0x7b02('0x78')]['xmd-cdrtype'])){logger[_0x7b02('0x28')](_0x7b02('0x7f'),_0x50acef[_0x7b02('0x33')],_0x50acef['value']);this[_0x7b02('0x17')][_0x50acef['uniqueid']][_0x7b02('0x80')]=_0x50acef[_0x7b02('0x7a')];}else if(this['isNotNull'](_0x50acef[_0x7b02('0x78')]['xmd-queue'])){logger['info'](_0x7b02('0x81'),_0x50acef[_0x7b02('0x33')],_0x50acef[_0x7b02('0x7a')][_0x7b02('0x47')](',')[0x0]);this[_0x7b02('0x17')][_0x50acef['uniqueid']][_0x7b02('0x59')]=_0x50acef[_0x7b02('0x7a')]['split'](',')[0x0];}else if(this['isNotNull'](_0x50acef['variable'][_0x7b02('0x82')])){logger[_0x7b02('0x28')](_0x7b02('0x83'),_0x50acef[_0x7b02('0x33')],_0x50acef[_0x7b02('0x7a')]);this[_0x7b02('0x17')][_0x50acef[_0x7b02('0x33')]][_0x7b02('0x84')]=_0x50acef[_0x7b02('0x7a')];}else if(this[_0x7b02('0x2f')](_0x50acef[_0x7b02('0x78')][_0x7b02('0x85')])){logger['info']('[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s',_0x50acef[_0x7b02('0x33')],_0x50acef[_0x7b02('0x7a')]);this[_0x7b02('0x17')][_0x50acef[_0x7b02('0x33')]][_0x7b02('0x86')]=_0x50acef[_0x7b02('0x7a')];}else if(this[_0x7b02('0x2f')](_0x50acef['variable']['xmd-callerid-preview'])){logger[_0x7b02('0x28')](_0x7b02('0x87'),_0x50acef[_0x7b02('0x33')],_0x50acef['value']);this['channels'][_0x50acef[_0x7b02('0x33')]]['calleridpreview']=_0x50acef['value'];}else if(this[_0x7b02('0x2f')](_0x50acef[_0x7b02('0x78')][_0x7b02('0x88')])){logger['info']('[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s',_0x50acef[_0x7b02('0x33')],_0x50acef[_0x7b02('0x7a')]);this[_0x7b02('0x17')][_0x50acef[_0x7b02('0x33')]][_0x7b02('0x59')]=_0x50acef[_0x7b02('0x7a')];}else if(this[_0x7b02('0x2f')](_0x50acef[_0x7b02('0x78')]['sipcallid'])){logger[_0x7b02('0x28')](_0x7b02('0x89'),_0x50acef[_0x7b02('0x33')],_0x50acef[_0x7b02('0x7a')]);this['channels'][_0x50acef['uniqueid']]['sipcalluniqueid']=_0x50acef[_0x7b02('0x7a')];}}}else if(this[_0x7b02('0x2f')](_0x50acef['variable'][_0x7b02('0x8a')])){if(_0x50acef[_0x7b02('0x7a')]){var _0x2631b5=path[_0x7b02('0x8b')](_0x50acef[_0x7b02('0x7a')])['name'];logger[_0x7b02('0x28')](_0x7b02('0x79'),_0x2631b5,_0x50acef[_0x7b02('0x7a')]);this[_0x7b02('0x6a')](_0x2631b5,_0x50acef[_0x7b02('0x7a')]);}}else if(this[_0x7b02('0x17')][_0x50acef['linkedid']]){if(this[_0x7b02('0x2f')](_0x50acef[_0x7b02('0x78')])){if(this[_0x7b02('0x2f')](_0x50acef['variable'][_0x7b02('0x8c')])){logger[_0x7b02('0x28')](_0x7b02('0x89'),_0x50acef['linkedid'],_0x50acef['value']);this['channels'][_0x50acef[_0x7b02('0x3a')]][_0x7b02('0x8d')]=_0x50acef[_0x7b02('0x7a')];}}}}}catch(_0x3fd44a){logger[_0x7b02('0x2b')](_0x7b02('0x8e'),_0x50acef['uniqueid'],util[_0x7b02('0x2d')](_0x3fd44a,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')]['syncHangup']=function(_0xf71207){try{if(this['isNotNull'](_0xf71207)){logger[_0x7b02('0x35')](_0x7b02('0x8f'),_0xf71207['uniqueid'],util[_0x7b02('0x2d')](_0xf71207,{'showHidden':![],'depth':null}));if(this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]]){logger[_0x7b02('0x28')](_0x7b02('0x90'),_0xf71207[_0x7b02('0x33')],_0xf71207[_0x7b02('0x91')]);var _0x439ef3=moment();this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x92')]=_0x439ef3[_0x7b02('0x41')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]]['duration']=_0x439ef3[_0x7b02('0x63')](this[_0x7b02('0x17')][_0xf71207['uniqueid']][_0x7b02('0x40')],_0x7b02('0x54'));if(this['channels'][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x60')]){this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x93')]=_0x439ef3[_0x7b02('0x63')](this['channels'][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x61')],_0x7b02('0x54'));this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]]['holdtime']=this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x53')]-this[_0x7b02('0x17')][_0xf71207['uniqueid']][_0x7b02('0x93')];}if(_0xf71207[_0x7b02('0x3e')]===_0x7b02('0x45')){if(this[_0x7b02('0x46')][_0xf71207[_0x7b02('0x3b')][_0x7b02('0x47')]('-')[0x0]]){this[_0x7b02('0x46')][_0xf71207[_0x7b02('0x3b')][_0x7b02('0x47')]('-')[0x0]]=_[_0x7b02('0x94')](this['agents'][_0xf71207[_0x7b02('0x3b')]['split']('-')[0x0]],[_0x7b02('0x95')]);logger[_0x7b02('0x35')]('[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:',_0xf71207[_0x7b02('0x33')],util[_0x7b02('0x2d')]({'destaccountcode':this[_0x7b02('0x46')][_0xf71207[_0x7b02('0x3b')][_0x7b02('0x47')]('-')[0x0]][_0x7b02('0x49')]},{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x7b02('0x4a'),this['agents'][_0xf71207[_0x7b02('0x3b')][_0x7b02('0x47')]('-')[0x0]][_0x7b02('0x4b')]),_0x7b02('0x96'),{'destaccountcode':this['agents'][_0xf71207[_0x7b02('0x3b')][_0x7b02('0x47')]('-')[0x0]][_0x7b02('0x49')]});}}if(_0xf71207[_0x7b02('0x97')]===_0x7b02('0x98')){this[_0x7b02('0x18')][_0xf71207[_0x7b02('0x33')]]=this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]];}else{if(this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x80')]===_0x7b02('0x99')&&this[_0x7b02('0x18')][_0xf71207[_0x7b02('0x33')]]){this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x33')]=[this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x3a')],this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]][_0x7b02('0x3a')]=this['channels'][_0xf71207['uniqueid']]['uniqueid']][0x0];delete this['blindTransfers'][_0xf71207[_0x7b02('0x33')]];}}logger['debug'](_0x7b02('0x9a'),_0xf71207[_0x7b02('0x33')],util[_0x7b02('0x2d')](this[_0x7b02('0x17')][_0xf71207[_0x7b02('0x33')]],{'showHidden':![],'depth':null}));ami[_0x7b02('0x31')](_0x7b02('0x9b'),this[_0x7b02('0x17')][_0xf71207['uniqueid']]);delete this['channels'][_0xf71207[_0x7b02('0x33')]];}}}catch(_0x1c4a4d){logger[_0x7b02('0x2b')](_0x7b02('0x9c'),_0xf71207['uniqueid'],util['inspect'](_0x1c4a4d,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x7b02('0x23')]=function(_0x5d7d19){try{if(this[_0x7b02('0x2f')](_0x5d7d19)){logger[_0x7b02('0x28')](_0x7b02('0x9d'),_0x5d7d19[_0x7b02('0x33')],_0x5d7d19['origtransferercalleridnum'],_0x5d7d19['transfertargetcalleridnum']);logger[_0x7b02('0x35')](_0x7b02('0x9e'),_0x5d7d19[_0x7b02('0x33')],util['inspect'](_0x5d7d19,{'showHidden':![],'depth':null}));if(this['channels'][_0x5d7d19['transfereeuniqueid']]){this[_0x7b02('0x17')][_0x5d7d19[_0x7b02('0x9f')]]['transfercalleridnum']=_0x5d7d19['origtransferercalleridnum'];this['channels'][_0x5d7d19[_0x7b02('0x9f')]]['transferconnectedlinenum']=_0x5d7d19['transfertargetcalleridnum'];if(this['channels'][_0x5d7d19['secondtransfereruniqueid']]){var _0x1a1f52=this[_0x7b02('0x17')][_0x5d7d19[_0x7b02('0xa0')]];this['channels'][_0x5d7d19[_0x7b02('0xa0')]]=this[_0x7b02('0x17')][_0x5d7d19[_0x7b02('0x9f')]];this['channels'][_0x5d7d19[_0x7b02('0x9f')]]=_0x1a1f52;}}else if(this['channels'][_0x5d7d19[_0x7b02('0xa1')]]){this[_0x7b02('0x17')][_0x5d7d19[_0x7b02('0xa1')]][_0x7b02('0xa2')]=_0x5d7d19[_0x7b02('0xa3')];this['channels'][_0x5d7d19[_0x7b02('0xa1')]]['transferconnectedlinenum']=_0x5d7d19[_0x7b02('0xa4')];if(this['channels'][_0x5d7d19[_0x7b02('0xa5')]]){var _0x1a1f52=this[_0x7b02('0x17')][_0x5d7d19[_0x7b02('0xa5')]];this['channels'][_0x5d7d19[_0x7b02('0xa5')]]=this[_0x7b02('0x17')][_0x5d7d19['transfertargetuniqueid']];this[_0x7b02('0x17')][_0x5d7d19[_0x7b02('0xa1')]]=_0x1a1f52;}}}}catch(_0x3a0096){logger['error'](_0x7b02('0xa6'),_0x5d7d19[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x3a0096,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')][_0x7b02('0xa7')]=function(_0x381adf){try{if(this[_0x7b02('0x2f')](_0x381adf)){logger[_0x7b02('0x28')](_0x7b02('0xa8'),_0x381adf['uniqueid'],_0x381adf[_0x7b02('0xa9')],_0x381adf['extension']);logger[_0x7b02('0x35')](_0x7b02('0xaa'),_0x381adf[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x381adf,{'showHidden':![],'depth':null}));if(this[_0x7b02('0x17')][_0x381adf[_0x7b02('0x9f')]]){this['channels'][_0x381adf[_0x7b02('0x9f')]]['transfercalleridnum']=_0x381adf['transfereecalleridnum'];this[_0x7b02('0x17')][_0x381adf[_0x7b02('0x9f')]]['transferconnectedlinenum']=_0x381adf['extension'];this['syncHangup']({'event':_0x7b02('0x98'),'uniqueid':_0x381adf[_0x7b02('0x9f')],'context':_0x381adf[_0x7b02('0x3e')],'channel':_0x381adf['transfererchannel']});}}}catch(_0x2de6f8){logger[_0x7b02('0x2b')](_0x7b02('0xab'),_0x381adf[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x2de6f8,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')]['syncMusicOnHoldStart']=function(_0x129dec){try{if(this['isNotNull'](_0x129dec)){logger[_0x7b02('0x35')]('[%s][voiceCallReport][musiconholdstart]\x20event:',_0x129dec['uniqueid'],util[_0x7b02('0x2d')](_0x129dec,{'showHidden':![],'depth':null}));if(this['channels'][_0x129dec[_0x7b02('0x33')]]){if(!_[_0x7b02('0x73')](this[_0x7b02('0x17')][_0x129dec['uniqueid']][_0x7b02('0x61')])){this[_0x7b02('0x17')][_0x129dec['uniqueid']][_0x7b02('0xac')]=moment()[_0x7b02('0x41')](_0x7b02('0x42'));logger['info'](_0x7b02('0xad'),_0x129dec[_0x7b02('0x33')],this['channels'][_0x129dec[_0x7b02('0x33')]][_0x7b02('0xac')]);}}}}catch(_0x439b47){logger['error']('[%s][voiceCallReport][musiconholdstart]',_0x129dec[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x439b47,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b02('0x2e')][_0x7b02('0x27')]=function(_0x496167){try{if(this[_0x7b02('0x2f')](_0x496167)){logger[_0x7b02('0x35')]('[%s][voiceCallReport][musiconholdstop]\x20event:',_0x496167[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x496167,{'showHidden':![],'depth':null}));if(this[_0x7b02('0x17')][_0x496167[_0x7b02('0x33')]]){if(!_[_0x7b02('0x73')](this[_0x7b02('0x17')][_0x496167[_0x7b02('0x33')]]['mohstarttime'])){this[_0x7b02('0x17')][_0x496167[_0x7b02('0x33')]][_0x7b02('0xae')]+=moment()['milliseconds'](0x0)['diff'](this[_0x7b02('0x17')][_0x496167[_0x7b02('0x33')]][_0x7b02('0xac')],_0x7b02('0x54'));logger[_0x7b02('0x28')](_0x7b02('0xaf'),_0x496167[_0x7b02('0x33')],this[_0x7b02('0x17')][_0x496167[_0x7b02('0x33')]][_0x7b02('0xae')]);delete this['channels'][_0x496167[_0x7b02('0x33')]][_0x7b02('0xac')];}}}}catch(_0x2f85be){logger['error'](_0x7b02('0xb0'),_0x496167[_0x7b02('0x33')],util[_0x7b02('0x2d')](_0x2f85be,{'showHidden':![],'depth':null}));}};module[_0x7b02('0xb1')]=VoiceCallReport;