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