1f96e2d92d707954f0813553614e7a496ac0290c
[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 _0x1c75=['destconnectedlinenum','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','resolve','then','transferType','undefined','isEmpty','getSettings','stopRecordingOnTransfer','Action','StopMixMonitor','catch','finally','destinationchannel','webbar:stopmonitors','event','BlindTransfer','type','outbound','custom:voiceCallReport','[%s][voiceCallReport][hangup]','syncAttendedTransfer','origtransferercalleridnum','transfertargetcalleridnum','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','some','origtransfererlinkedid','routeid','ATTENDED','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','transfereecalleridnum','extension','[%s][voiceCallReport][blindtransfer]\x20event:','transfereruniqueid','BLIND','[%s][voiceCallReport][blindtransfer]','answertime','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','isNil','milliseconds','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','mohtime','[%s][voiceCallReport][musiconholdstop]','exports','util','path','ioredis','../../../config/environment','../../../config/logger','../ami','../rpc/setting','not_inuse','inuse','busy','ringing','ringinuse','onhold','set','queue','agi','playback','voicemail','NO\x20ANSWER','FAILED','ANSWERED','BUSY','redis','localhost','channels','agents','blindTransfers','coreshowchannel','syncNewExten','bind','newchannel','syncNewChannel','syncNewState','varset','syncVarSet','syncHangup','newcallerid','syncNewCallerId','attendedtransfer','blindtransfer','syncBlindTransfer','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','info','[voiceCallReport][coreshowchannels]\x20started','error','[voiceCallReport][coreshowchannels]','inspect','prototype','isNotNull','isUndefined','emit','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','calleridname','debug','[%s][voiceCallReport][newcallerid]\x20event:','uniqueid','linkedid','merge','pick','[%s][voiceCallReport][newchannel]\x20event:','channel','OutgoingSpoolFailed','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','context','exten','starttime','format','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','channelstate','keys','from-sip','split','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','accountcode','user:%s','[%s][voiceCallReport][newchannel]','application','toLowerCase','applicationdata','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','duration','subtract','seconds','includes','lastapplication','lastdata','startsWith','cdr(','match','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','calleridnum','[%s][voiceCallReport][newstate]\x20event:','answered','holdtime','diff','connectedlinenum','connectedlinename','UserId','membername','name','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','endsWith','replace','.wav49','.WAV','find','monitors','push','rec','[%s][voiceCallReport][varset]\x20event:','variable','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','value','xmd-callerid','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','xmd-cdrtype','xmd-queue','xmd-originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','xmd-destination','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','destination','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','calleridpreview','xmcs-queue','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','mixmonitor_filename','sipcalllinkedid','[%s][voiceCallReport][varset]','[%s][voiceCallReport][hangup]\x20event:','[%s][voiceCallReport][hangup]\x20reason:%s','cause-txt','endtime','billableseconds'];(function(_0x23ec06,_0x561142){var _0x2831d4=function(_0x3802bc){while(--_0x3802bc){_0x23ec06['push'](_0x23ec06['shift']());}};_0x2831d4(++_0x561142);}(_0x1c75,0xf4));var _0x51c7=function(_0x2a0824,_0x21d97a){_0x2a0824=_0x2a0824-0x0;var _0x1a78f7=_0x1c75[_0x2a0824];return _0x1a78f7;};'use strict';var BPromise=require('bluebird');var _=require('lodash');var moment=require('moment');var util=require(_0x51c7('0x0'));var path=require(_0x51c7('0x1'));var Redis=require(_0x51c7('0x2'));var config=require(_0x51c7('0x3'));var logger=require(_0x51c7('0x4'))('ami');var ami=require(_0x51c7('0x5'));var Channel=require('../model/channel');var RpcSetting=require(_0x51c7('0x6'));var statusDesc=['unknown',_0x51c7('0x7'),_0x51c7('0x8'),_0x51c7('0x9'),'invalid','unavailable',_0x51c7('0xa'),_0x51c7('0xb'),_0x51c7('0xc')];var applications=[_0x51c7('0xd'),_0x51c7('0xe'),_0x51c7('0xf'),'dial',_0x51c7('0x10'),_0x51c7('0x11')];var dispositions=[_0x51c7('0x12'),_0x51c7('0x13'),_0x51c7('0x13'),_0x51c7('0x12'),'NO\x20ANSWER',_0x51c7('0x12'),_0x51c7('0x14'),_0x51c7('0x15'),_0x51c7('0x13'),_0x51c7('0x13'),_0x51c7('0x13')];var actions={};config[_0x51c7('0x16')]=_['defaults'](config[_0x51c7('0x16')],{'host':_0x51c7('0x17'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x51c7('0x16')]));function VoiceCallReport(_0x283b53){this[_0x51c7('0x18')]=_0x283b53['channels'];this[_0x51c7('0x19')]=_0x283b53[_0x51c7('0x19')];this[_0x51c7('0x1a')]={};ami['on'](_0x51c7('0x1b'),this[_0x51c7('0x1c')]['bind'](this));ami['on']('newexten',this['syncNewExten'][_0x51c7('0x1d')](this));ami['on'](_0x51c7('0x1e'),this[_0x51c7('0x1f')][_0x51c7('0x1d')](this));ami['on']('newstate',this[_0x51c7('0x20')][_0x51c7('0x1d')](this));ami['on'](_0x51c7('0x21'),this[_0x51c7('0x22')][_0x51c7('0x1d')](this));ami['on']('hangup',this[_0x51c7('0x23')][_0x51c7('0x1d')](this));ami['on'](_0x51c7('0x24'),this[_0x51c7('0x25')][_0x51c7('0x1d')](this));ami['on'](_0x51c7('0x26'),this['syncAttendedTransfer'][_0x51c7('0x1d')](this));ami['on'](_0x51c7('0x27'),this[_0x51c7('0x28')][_0x51c7('0x1d')](this));ami['on'](_0x51c7('0x29'),this[_0x51c7('0x2a')][_0x51c7('0x1d')](this));ami['on'](_0x51c7('0x2b'),this[_0x51c7('0x2c')]['bind'](this));try{logger[_0x51c7('0x2d')](_0x51c7('0x2e'));ami['actionCoreShowChannels']();}catch(_0x512290){logger[_0x51c7('0x2f')](_0x51c7('0x30'),util[_0x51c7('0x31')](_0x512290,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x51c7('0x32')][_0x51c7('0x33')]=function(_0x2dfac6){return _0x2dfac6!==null&&!_[_0x51c7('0x34')](_0x2dfac6);};VoiceCallReport[_0x51c7('0x32')][_0x51c7('0x35')]=function(_0x509913,_0x4efd40,_0x35d329){io['to'](_0x509913)[_0x51c7('0x35')](_0x4efd40,_0x35d329);};VoiceCallReport[_0x51c7('0x32')][_0x51c7('0x25')]=function(_0x4f7481){try{if(this[_0x51c7('0x33')](_0x4f7481)){logger[_0x51c7('0x2d')](_0x51c7('0x36'),_0x4f7481['uniqueid'],_0x4f7481[_0x51c7('0x37')],_0x4f7481['calleridnum']);logger[_0x51c7('0x38')](_0x51c7('0x39'),_0x4f7481[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x4f7481,{'showHidden':![],'depth':null}));if(_0x4f7481[_0x51c7('0x3a')]===_0x4f7481[_0x51c7('0x3b')]){if(!_['isUndefined'](this[_0x51c7('0x18')][_0x4f7481[_0x51c7('0x3a')]])){_[_0x51c7('0x3c')](this['channels'][_0x4f7481[_0x51c7('0x3a')]],_[_0x51c7('0x3d')](_0x4f7481,_['keys'](this[_0x51c7('0x18')][_0x4f7481['uniqueid']])));}}}}catch(_0x41b3d0){logger[_0x51c7('0x2f')]('[%s][voiceCallReport][newcallerid]',_0x4f7481[_0x51c7('0x3a')],util['inspect'](_0x41b3d0,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x51c7('0x32')][_0x51c7('0x1f')]=function(_0x8d6c72){try{if(this[_0x51c7('0x33')](_0x8d6c72)){logger[_0x51c7('0x38')](_0x51c7('0x3e'),_0x8d6c72[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x8d6c72,{'showHidden':![],'depth':null}));if(_0x8d6c72[_0x51c7('0x3a')]===_0x8d6c72[_0x51c7('0x3b')]&&_0x8d6c72[_0x51c7('0x3f')]!=_0x51c7('0x40')){if(_[_0x51c7('0x34')](this[_0x51c7('0x18')][_0x8d6c72['uniqueid']])){logger['info'](_0x51c7('0x41'),_0x8d6c72[_0x51c7('0x3a')],_0x8d6c72[_0x51c7('0x42')],_0x8d6c72[_0x51c7('0x43')]);this[_0x51c7('0x18')][_0x8d6c72[_0x51c7('0x3a')]]=new Channel();this[_0x51c7('0x18')][_0x8d6c72[_0x51c7('0x3a')]][_0x51c7('0x44')]=moment()[_0x51c7('0x45')](_0x51c7('0x46'));this[_0x51c7('0x18')][_0x8d6c72[_0x51c7('0x3a')]][_0x51c7('0x47')]=dispositions[_[_0x51c7('0x48')](_0x8d6c72[_0x51c7('0x49')])];_['merge'](this[_0x51c7('0x18')][_0x8d6c72[_0x51c7('0x3a')]],_['pick'](_0x8d6c72,_[_0x51c7('0x4a')](this['channels'][_0x8d6c72['uniqueid']])));if(_0x8d6c72[_0x51c7('0x42')]===_0x51c7('0x4b')){if(this[_0x51c7('0x19')][_0x8d6c72[_0x51c7('0x3f')][_0x51c7('0x4c')]('-')[0x0]]){this[_0x51c7('0x19')][_0x8d6c72[_0x51c7('0x3f')][_0x51c7('0x4c')]('-')[0x0]]['destconnectedlinenum']=_0x8d6c72[_0x51c7('0x43')];logger[_0x51c7('0x38')](_0x51c7('0x4d'),_0x8d6c72['uniqueid'],util[_0x51c7('0x31')]({'destaccountcode':this[_0x51c7('0x19')][_0x8d6c72[_0x51c7('0x3f')][_0x51c7('0x4c')]('-')[0x0]][_0x51c7('0x4e')],'destconnectedlinenum':_0x8d6c72[_0x51c7('0x43')]},{'showHidden':![],'depth':null}));this[_0x51c7('0x35')](util['format'](_0x51c7('0x4f'),this[_0x51c7('0x19')][_0x8d6c72[_0x51c7('0x3f')][_0x51c7('0x4c')]('-')[0x0]]['name']),'user:agentconnect',{'destaccountcode':this[_0x51c7('0x19')][_0x8d6c72['channel'][_0x51c7('0x4c')]('-')[0x0]][_0x51c7('0x4e')],'destconnectedlinenum':_0x8d6c72[_0x51c7('0x43')]});}}}}}}catch(_0x503fe8){logger[_0x51c7('0x2f')](_0x51c7('0x50'),_0x8d6c72[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x503fe8,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x51c7('0x32')]['syncNewExten']=function(_0x1661aa){try{if(this[_0x51c7('0x33')](_0x1661aa)){logger['debug']('[%s][voiceCallReport][newexten]\x20event:',_0x1661aa['uniqueid'],util[_0x51c7('0x31')](_0x1661aa,{'showHidden':![],'depth':null}));if(_0x1661aa[_0x51c7('0x3a')]===_0x1661aa[_0x51c7('0x3b')]&&_0x1661aa['exten']!='h'&&_0x1661aa[_0x51c7('0x3f')]!=_0x51c7('0x40')){_0x1661aa[_0x51c7('0x51')]=_0x1661aa['application'][_0x51c7('0x52')]();_0x1661aa['applicationdata']=(_0x1661aa['appdata']||_0x1661aa[_0x51c7('0x53')])['toLowerCase']();logger[_0x51c7('0x2d')](_0x51c7('0x54'),_0x1661aa['uniqueid'],_0x1661aa[_0x51c7('0x51')],_0x1661aa['applicationdata']);if(_[_0x51c7('0x34')](this[_0x51c7('0x18')][_0x1661aa['uniqueid']])){this[_0x51c7('0x18')][_0x1661aa[_0x51c7('0x3a')]]=new Channel();this[_0x51c7('0x18')][_0x1661aa['uniqueid']][_0x51c7('0x44')]=_0x1661aa[_0x51c7('0x55')]?moment()[_0x51c7('0x56')](moment['duration'](_0x1661aa[_0x51c7('0x55')])[_0x51c7('0x57')](),_0x51c7('0x57'))[_0x51c7('0x45')](_0x51c7('0x46')):moment()['format'](_0x51c7('0x46'));this[_0x51c7('0x18')][_0x1661aa[_0x51c7('0x3a')]][_0x51c7('0x47')]=_0x51c7('0x12');}_[_0x51c7('0x3c')](this[_0x51c7('0x18')][_0x1661aa['uniqueid']],_[_0x51c7('0x3d')](_0x1661aa,_[_0x51c7('0x4a')](this[_0x51c7('0x18')][_0x1661aa['uniqueid']])));if(_[_0x51c7('0x58')](applications,_0x1661aa['application'])){this[_0x51c7('0x18')][_0x1661aa[_0x51c7('0x3a')]][_0x51c7('0x59')]=_0x1661aa['application'];this[_0x51c7('0x18')][_0x1661aa[_0x51c7('0x3a')]][_0x51c7('0x5a')]=_0x1661aa['applicationdata'];if(_0x1661aa[_0x51c7('0x51')]===_0x51c7('0xd')&&_[_0x51c7('0x5b')](_0x1661aa[_0x51c7('0x53')],_0x51c7('0x5c'))){var _0x20b989=_0x1661aa['applicationdata']['split']('=');var _0x569faa=_0x20b989[0x0][_0x51c7('0x5d')](/cdr\((.*)\)/);if(_0x569faa){this[_0x51c7('0x18')][_0x1661aa[_0x51c7('0x3a')]][_0x569faa[0x1]]=_0x20b989[0x1];}}else if(_0x1661aa[_0x51c7('0x51')]===_0x51c7('0xe')){this[_0x51c7('0x18')][_0x1661aa[_0x51c7('0x3a')]][_0x51c7('0xe')]=_0x1661aa[_0x51c7('0x53')][_0x51c7('0x4c')](',')[0x0];}}}}}catch(_0x52f8e4){logger[_0x51c7('0x2f')]('[%s][voiceCallReport][newexten]',_0x1661aa[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x52f8e4,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x51c7('0x32')][_0x51c7('0x20')]=function(_0x5e17e1){try{if(this[_0x51c7('0x33')](_0x5e17e1)){logger[_0x51c7('0x2d')](_0x51c7('0x5e'),_0x5e17e1[_0x51c7('0x3a')],_0x5e17e1['linkedid'],_0x5e17e1[_0x51c7('0x37')],_0x5e17e1[_0x51c7('0x5f')]);logger[_0x51c7('0x38')](_0x51c7('0x60'),_0x5e17e1[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x5e17e1,{'showHidden':![],'depth':null}));if(_0x5e17e1['uniqueid']!==_0x5e17e1['linkedid']){if(this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3b')]]){if(_0x5e17e1[_0x51c7('0x49')]==='6'){if(!this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3b')]][_0x51c7('0x61')]){var _0x5e878a=moment();this['channels'][_0x5e17e1[_0x51c7('0x3b')]][_0x51c7('0x61')]=!![];this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3b')]]['answertime']=_0x5e878a[_0x51c7('0x45')](_0x51c7('0x46'));if(this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3b')]][_0x51c7('0x44')]){this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3b')]][_0x51c7('0x62')]=_0x5e878a[_0x51c7('0x63')](this['channels'][_0x5e17e1[_0x51c7('0x3b')]][_0x51c7('0x44')],'seconds');}}this['channels'][_0x5e17e1[_0x51c7('0x3b')]]['linkedid']=_0x5e17e1[_0x51c7('0x3a')];if(_0x5e17e1[_0x51c7('0x5f')]!=='xcally-motion-preview'){this['channels'][_0x5e17e1['linkedid']][_0x51c7('0x64')]=_0x5e17e1['calleridnum'];}this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3b')]][_0x51c7('0x65')]=_0x5e17e1[_0x51c7('0x37')];this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3b')]]['destinationchannel']=_0x5e17e1['channel'];this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3b')]][_0x51c7('0x47')]=dispositions[_['toNumber'](_0x5e17e1[_0x51c7('0x49')])];if(this['agents'][_0x5e17e1['channel'][_0x51c7('0x4c')]('-')[0x0]]){this[_0x51c7('0x18')][_0x5e17e1['linkedid']][_0x51c7('0x66')]=this[_0x51c7('0x19')][_0x5e17e1[_0x51c7('0x3f')][_0x51c7('0x4c')]('-')[0x0]]['id'];this['channels'][_0x5e17e1[_0x51c7('0x3b')]][_0x51c7('0x67')]=this[_0x51c7('0x19')][_0x5e17e1[_0x51c7('0x3f')][_0x51c7('0x4c')]('-')[0x0]]['name'];}}}}else{if(this[_0x51c7('0x18')][_0x5e17e1['uniqueid']]){if(_0x5e17e1[_0x51c7('0x49')]==='6'){if(this[_0x51c7('0x19')][_0x5e17e1[_0x51c7('0x3f')]['split']('-')[0x0]]){this[_0x51c7('0x18')][_0x5e17e1[_0x51c7('0x3a')]][_0x51c7('0x66')]=this[_0x51c7('0x19')][_0x5e17e1['channel'][_0x51c7('0x4c')]('-')[0x0]]['id'];this['channels'][_0x5e17e1[_0x51c7('0x3a')]]['membername']=this[_0x51c7('0x19')][_0x5e17e1['channel']['split']('-')[0x0]][_0x51c7('0x68')];}}}}}}catch(_0x4ad6b9){logger[_0x51c7('0x2f')](_0x51c7('0x69'),_0x5e17e1['uniqueid'],util[_0x51c7('0x31')](_0x4ad6b9,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x51c7('0x6a')]=function(_0x432cfc,_0x30589b){try{if(this['channels'][_0x432cfc]){logger[_0x51c7('0x2d')]('[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s',_0x432cfc,_0x30589b);this[_0x51c7('0x18')][_0x432cfc]['monitor']=!![];if(_[_0x51c7('0x6b')](_0x30589b,'.wav49')){_0x30589b=_0x30589b[_0x51c7('0x6c')](_0x51c7('0x6d'),_0x51c7('0x6e'));}this['channels'][_0x432cfc]['monitorFilename']=_0x30589b;var _0x4500a6=_[_0x51c7('0x6f')](this['channels'][_0x432cfc]['monitors'],{'filename':_0x30589b});if(_['isNil'](_0x4500a6)){this[_0x51c7('0x18')][_0x432cfc][_0x51c7('0x70')][_0x51c7('0x71')]({'filename':_0x30589b,'createdAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':'','status':_0x51c7('0x72')});}}}catch(_0x5a04bd){logger['error']('[%s][voiceCallReport][mixMonitorFilename]',_0x432cfc,util['inspect'](_0x5a04bd,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncVarSet']=function(_0x25a24f){try{if(this[_0x51c7('0x33')](_0x25a24f)){logger['debug'](_0x51c7('0x73'),_0x25a24f['uniqueid'],util['inspect'](_0x25a24f,{'showHidden':![],'depth':null}));if(this[_0x51c7('0x18')][_0x25a24f[_0x51c7('0x3a')]]&&_0x25a24f[_0x51c7('0x3f')]!=_0x51c7('0x40')){if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')])){if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')]['mixmonitor_filename'])){logger[_0x51c7('0x2d')](_0x51c7('0x75'),_0x25a24f[_0x51c7('0x3a')],_0x25a24f['value']);this[_0x51c7('0x6a')](_0x25a24f[_0x51c7('0x3a')],_0x25a24f['value']);}else if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')]['xmd-phone'])){logger[_0x51c7('0x2d')](_0x51c7('0x76'),_0x25a24f[_0x51c7('0x3a')],_0x25a24f[_0x51c7('0x77')]);this[_0x51c7('0x18')][_0x25a24f[_0x51c7('0x3a')]]['calleridnum']=_0x25a24f[_0x51c7('0x77')];}else if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')][_0x51c7('0x78')])){logger[_0x51c7('0x2d')](_0x51c7('0x79'),_0x25a24f[_0x51c7('0x3a')],_0x25a24f[_0x51c7('0x77')]);this[_0x51c7('0x18')][_0x25a24f[_0x51c7('0x3a')]]['callerid']=_0x25a24f[_0x51c7('0x77')];}else if(this[_0x51c7('0x33')](_0x25a24f['variable'][_0x51c7('0x7a')])){logger[_0x51c7('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x25a24f[_0x51c7('0x3a')],_0x25a24f[_0x51c7('0x77')]);this[_0x51c7('0x18')][_0x25a24f[_0x51c7('0x3a')]]['type']=_0x25a24f['value'];}else if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')][_0x51c7('0x7b')])){logger[_0x51c7('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s',_0x25a24f[_0x51c7('0x3a')],_0x25a24f[_0x51c7('0x77')][_0x51c7('0x4c')](',')[0x0]);this[_0x51c7('0x18')][_0x25a24f[_0x51c7('0x3a')]]['queue']=_0x25a24f[_0x51c7('0x77')]['split'](',')[0x0];}else if(this['isNotNull'](_0x25a24f['variable'][_0x51c7('0x7c')])){logger['info'](_0x51c7('0x7d'),_0x25a24f['uniqueid'],_0x25a24f[_0x51c7('0x77')]);this[_0x51c7('0x18')][_0x25a24f[_0x51c7('0x3a')]]['originatecalleridnum']=_0x25a24f[_0x51c7('0x77')];}else if(this['isNotNull'](_0x25a24f['variable'][_0x51c7('0x7e')])){logger['info'](_0x51c7('0x7f'),_0x25a24f[_0x51c7('0x3a')],_0x25a24f['value']);this['channels'][_0x25a24f[_0x51c7('0x3a')]][_0x51c7('0x80')]=_0x25a24f[_0x51c7('0x77')];}else if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')]['xmd-callerid-preview'])){logger[_0x51c7('0x2d')](_0x51c7('0x81'),_0x25a24f['uniqueid'],_0x25a24f[_0x51c7('0x77')]);this[_0x51c7('0x18')][_0x25a24f['uniqueid']][_0x51c7('0x82')]=_0x25a24f[_0x51c7('0x77')];}else if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')][_0x51c7('0x83')])){logger[_0x51c7('0x2d')]('[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s',_0x25a24f['uniqueid'],_0x25a24f[_0x51c7('0x77')]);this[_0x51c7('0x18')][_0x25a24f[_0x51c7('0x3a')]][_0x51c7('0xe')]=_0x25a24f[_0x51c7('0x77')];}else if(this[_0x51c7('0x33')](_0x25a24f['variable'][_0x51c7('0x84')])){logger['info'](_0x51c7('0x85'),_0x25a24f[_0x51c7('0x3a')],_0x25a24f[_0x51c7('0x77')]);this[_0x51c7('0x18')][_0x25a24f[_0x51c7('0x3a')]]['sipcalluniqueid']=_0x25a24f[_0x51c7('0x77')];}}}else if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')][_0x51c7('0x86')])){if(_0x25a24f['value']){var _0x44a9b0=path['parse'](_0x25a24f[_0x51c7('0x77')])['name'];logger[_0x51c7('0x2d')](_0x51c7('0x75'),_0x44a9b0,_0x25a24f['value']);this[_0x51c7('0x6a')](_0x44a9b0,_0x25a24f[_0x51c7('0x77')]);}}else if(this[_0x51c7('0x18')][_0x25a24f['linkedid']]){if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')])){if(this[_0x51c7('0x33')](_0x25a24f[_0x51c7('0x74')][_0x51c7('0x84')])){logger[_0x51c7('0x2d')](_0x51c7('0x85'),_0x25a24f[_0x51c7('0x3b')],_0x25a24f[_0x51c7('0x77')]);this['channels'][_0x25a24f['linkedid']][_0x51c7('0x87')]=_0x25a24f['value'];}}}}}catch(_0x3515f1){logger[_0x51c7('0x2f')](_0x51c7('0x88'),_0x25a24f['uniqueid'],util[_0x51c7('0x31')](_0x3515f1,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x51c7('0x23')]=function(_0x12bd4e){try{if(this[_0x51c7('0x33')](_0x12bd4e)){logger[_0x51c7('0x38')](_0x51c7('0x89'),_0x12bd4e[_0x51c7('0x3a')],util['inspect'](_0x12bd4e,{'showHidden':![],'depth':null}));if(this['channels'][_0x12bd4e['uniqueid']]){logger[_0x51c7('0x2d')](_0x51c7('0x8a'),_0x12bd4e['uniqueid'],_0x12bd4e[_0x51c7('0x8b')]);var _0xc02f1=moment();this[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]][_0x51c7('0x8c')]=_0xc02f1[_0x51c7('0x45')](_0x51c7('0x46'));this[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]][_0x51c7('0x55')]=_0xc02f1[_0x51c7('0x63')](this[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]]['starttime'],'seconds');if(this['channels'][_0x12bd4e[_0x51c7('0x3a')]]['answered']){this['channels'][_0x12bd4e[_0x51c7('0x3a')]][_0x51c7('0x8d')]=_0xc02f1[_0x51c7('0x63')](this[_0x51c7('0x18')][_0x12bd4e['uniqueid']]['answertime'],_0x51c7('0x57'));this[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]]['holdtime']=this[_0x51c7('0x18')][_0x12bd4e['uniqueid']]['duration']-this['channels'][_0x12bd4e[_0x51c7('0x3a')]][_0x51c7('0x8d')];}if(_0x12bd4e[_0x51c7('0x42')]===_0x51c7('0x4b')){if(this[_0x51c7('0x19')][_0x12bd4e['channel'][_0x51c7('0x4c')]('-')[0x0]]){this['agents'][_0x12bd4e['channel'][_0x51c7('0x4c')]('-')[0x0]]=_['omit'](this[_0x51c7('0x19')][_0x12bd4e[_0x51c7('0x3f')]['split']('-')[0x0]],[_0x51c7('0x8e')]);logger['debug'](_0x51c7('0x8f'),_0x12bd4e[_0x51c7('0x3a')],util[_0x51c7('0x31')]({'destaccountcode':this['agents'][_0x12bd4e[_0x51c7('0x3f')][_0x51c7('0x4c')]('-')[0x0]][_0x51c7('0x4e')]},{'showHidden':![],'depth':null}));this[_0x51c7('0x35')](util['format'](_0x51c7('0x4f'),this[_0x51c7('0x19')][_0x12bd4e['channel'][_0x51c7('0x4c')]('-')[0x0]][_0x51c7('0x68')]),'user:agentcomplete',{'destaccountcode':this['agents'][_0x12bd4e[_0x51c7('0x3f')][_0x51c7('0x4c')]('-')[0x0]][_0x51c7('0x4e')]});}}var _0x1b5d69=this;Promise[_0x51c7('0x90')]()[_0x51c7('0x91')](function(){var _0x535fb7=_0x1b5d69[_0x51c7('0x18')][_0x12bd4e['uniqueid']];if(typeof _0x535fb7[_0x51c7('0x92')]===_0x51c7('0x93'))return;if(_[_0x51c7('0x94')](_0x535fb7[_0x51c7('0x70')]))return;return RpcSetting[_0x51c7('0x95')]()['then'](function(_0x567721){if(!_0x567721[_0x51c7('0x96')])return;return Promise['resolve']()['then'](function(){return ami[_0x51c7('0x97')]({'action':_0x51c7('0x98'),'channel':_0x535fb7['channel']})[_0x51c7('0x99')](function(){});})[_0x51c7('0x91')](function(){return ami['Action']({'action':_0x51c7('0x98'),'channel':_0x535fb7['destinationchannel']})[_0x51c7('0x99')](function(){})[_0x51c7('0x9a')](function(){var _0xa3df9=_0x1b5d69[_0x51c7('0x19')][_0x535fb7[_0x51c7('0x9b')][_0x51c7('0x4c')]('-')[0x0]];if(!_0xa3df9)return;io['emit'](_0x51c7('0x9c'),{'agentId':_0xa3df9['id'],'uniqueid':_0x535fb7[_0x51c7('0x3a')]});});});});})['then'](function(){if(_0x12bd4e[_0x51c7('0x9d')]===_0x51c7('0x9e')){_0x1b5d69[_0x51c7('0x1a')][_0x12bd4e['uniqueid']]=_0x1b5d69[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]];}else{if(_0x1b5d69[_0x51c7('0x18')][_0x12bd4e['uniqueid']][_0x51c7('0x9f')]===_0x51c7('0xa0')&&_0x1b5d69['blindTransfers'][_0x12bd4e[_0x51c7('0x3a')]]){_0x1b5d69['channels'][_0x12bd4e[_0x51c7('0x3a')]][_0x51c7('0x3a')]=[_0x1b5d69[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]]['linkedid'],_0x1b5d69[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]][_0x51c7('0x3b')]=_0x1b5d69[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]][_0x51c7('0x3a')]][0x0];delete _0x1b5d69[_0x51c7('0x1a')][_0x12bd4e[_0x51c7('0x3a')]];}}logger[_0x51c7('0x38')]('[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:',_0x12bd4e[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x1b5d69[_0x51c7('0x18')][_0x12bd4e[_0x51c7('0x3a')]],{'showHidden':![],'depth':null}));ami[_0x51c7('0x35')](_0x51c7('0xa1'),_0x1b5d69[_0x51c7('0x18')][_0x12bd4e['uniqueid']]);delete _0x1b5d69[_0x51c7('0x18')][_0x12bd4e['uniqueid']];});}}}catch(_0x3788d2){logger[_0x51c7('0x2f')](_0x51c7('0xa2'),_0x12bd4e[_0x51c7('0x3a')],util['inspect'](_0x3788d2,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x51c7('0x32')][_0x51c7('0xa3')]=function(_0x49866e){try{if(this[_0x51c7('0x33')](_0x49866e)){logger[_0x51c7('0x2d')]('[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0x49866e[_0x51c7('0x3a')],_0x49866e[_0x51c7('0xa4')],_0x49866e[_0x51c7('0xa5')]);logger[_0x51c7('0x38')](_0x51c7('0xa6'),_0x49866e[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x49866e,{'showHidden':![],'depth':null}));if(this['channels'][_0x49866e[_0x51c7('0xa7')]]){this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xa7')]][_0x51c7('0xa8')]=_0x49866e[_0x51c7('0xa4')];this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xa7')]][_0x51c7('0xa9')]=_0x49866e[_0x51c7('0xa5')];if(this['channels'][_0x49866e[_0x51c7('0xaa')]]){var _0x5efbfb=this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xaa')]];this['channels'][_0x49866e['secondtransfereruniqueid']]=this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xa7')]];this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xa7')]]=_0x5efbfb;}}else if(this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xab')]]){this['channels'][_0x49866e[_0x51c7('0xab')]][_0x51c7('0xa8')]=_0x49866e[_0x51c7('0xa4')];this[_0x51c7('0x18')][_0x49866e['transfertargetuniqueid']][_0x51c7('0xa9')]=_0x49866e[_0x51c7('0xa5')];if(this['channels'][_0x49866e[_0x51c7('0xac')]]){var _0x5efbfb=this[_0x51c7('0x18')][_0x49866e['origtransfereruniqueid']];this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xac')]]=this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xab')]];this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xab')]]=_0x5efbfb;}}if((this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xac')]]||this['channels'][_0x49866e['origtransfererlinkedid']])&&this['channels'][_0x49866e['secondtransfereruniqueid']]){var _0xaa6a90=_[_0x51c7('0xad')]([this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xac')]],this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xae')]],this[_0x51c7('0x18')][_0x49866e['secondtransfereruniqueid']]],function(_0x5dc531){return _0x5dc531&&_0x5dc531['type']===_0x51c7('0xa0')&&_0x5dc531[_0x51c7('0xaf')];});if(_0xaa6a90){if(this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xac')]])this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xac')]][_0x51c7('0x92')]=_0x51c7('0xb0');if(this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xae')]])this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xae')]][_0x51c7('0x92')]=_0x51c7('0xb0');this[_0x51c7('0x18')][_0x49866e[_0x51c7('0xaa')]][_0x51c7('0x92')]=_0x51c7('0xb0');}}}}catch(_0x245c84){logger['error']('[%s][voiceCallReport][attendedtransfer]',_0x49866e['uniqueid'],util['inspect'](_0x245c84,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x51c7('0x32')][_0x51c7('0x28')]=function(_0x6b3979){try{if(this['isNotNull'](_0x6b3979)){logger[_0x51c7('0x2d')](_0x51c7('0xb1'),_0x6b3979['uniqueid'],_0x6b3979[_0x51c7('0xb2')],_0x6b3979[_0x51c7('0xb3')]);logger[_0x51c7('0x38')](_0x51c7('0xb4'),_0x6b3979['uniqueid'],util[_0x51c7('0x31')](_0x6b3979,{'showHidden':![],'depth':null}));if(this['channels'][_0x6b3979[_0x51c7('0xa7')]]){this['channels'][_0x6b3979[_0x51c7('0xa7')]][_0x51c7('0xa8')]=_0x6b3979[_0x51c7('0xb2')];this[_0x51c7('0x18')][_0x6b3979[_0x51c7('0xa7')]][_0x51c7('0xa9')]=_0x6b3979['extension'];this['channels'][_0x6b3979['transfereeuniqueid']][_0x51c7('0x92')]='BLIND';this['syncHangup']({'event':_0x51c7('0x9e'),'uniqueid':_0x6b3979[_0x51c7('0xa7')],'context':_0x6b3979[_0x51c7('0x42')],'channel':_0x6b3979['transfererchannel']});}else{this['channels'][_0x6b3979[_0x51c7('0xb5')]][_0x51c7('0x92')]=_0x51c7('0xb6');}}}catch(_0x5ae7e1){logger[_0x51c7('0x2f')](_0x51c7('0xb7'),_0x6b3979[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x5ae7e1,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x51c7('0x32')]['syncMusicOnHoldStart']=function(_0xd5dd33){try{if(this['isNotNull'](_0xd5dd33)){logger['debug']('[%s][voiceCallReport][musiconholdstart]\x20event:',_0xd5dd33[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0xd5dd33,{'showHidden':![],'depth':null}));if(this[_0x51c7('0x18')][_0xd5dd33[_0x51c7('0x3a')]]){if(!_['isNil'](this[_0x51c7('0x18')][_0xd5dd33[_0x51c7('0x3a')]][_0x51c7('0xb8')])){this[_0x51c7('0x18')][_0xd5dd33[_0x51c7('0x3a')]][_0x51c7('0xb9')]=moment()[_0x51c7('0x45')](_0x51c7('0x46'));logger['info'](_0x51c7('0xba'),_0xd5dd33[_0x51c7('0x3a')],this[_0x51c7('0x18')][_0xd5dd33['uniqueid']]['mohstarttime']);}}}}catch(_0x208883){logger[_0x51c7('0x2f')]('[%s][voiceCallReport][musiconholdstart]',_0xd5dd33[_0x51c7('0x3a')],util[_0x51c7('0x31')](_0x208883,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x51c7('0x32')]['syncMusicOnHoldStop']=function(_0x5277d5){try{if(this['isNotNull'](_0x5277d5)){logger['debug']('[%s][voiceCallReport][musiconholdstop]\x20event:',_0x5277d5[_0x51c7('0x3a')],util['inspect'](_0x5277d5,{'showHidden':![],'depth':null}));if(this[_0x51c7('0x18')][_0x5277d5[_0x51c7('0x3a')]]){if(!_[_0x51c7('0xbb')](this[_0x51c7('0x18')][_0x5277d5[_0x51c7('0x3a')]]['mohstarttime'])){this['channels'][_0x5277d5[_0x51c7('0x3a')]]['mohtime']+=moment()[_0x51c7('0xbc')](0x0)['diff'](this['channels'][_0x5277d5[_0x51c7('0x3a')]][_0x51c7('0xb9')],_0x51c7('0x57'));logger['info'](_0x51c7('0xbd'),_0x5277d5[_0x51c7('0x3a')],this['channels'][_0x5277d5[_0x51c7('0x3a')]][_0x51c7('0xbe')]);delete this[_0x51c7('0x18')][_0x5277d5[_0x51c7('0x3a')]]['mohstarttime'];}}}}catch(_0x487d2d){logger[_0x51c7('0x2f')](_0x51c7('0xbf'),_0x5277d5[_0x51c7('0x3a')],util['inspect'](_0x487d2d,{'showHidden':![],'depth':null}));}};module[_0x51c7('0xc0')]=VoiceCallReport;