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