684b00bb34836c0f3979485943ca63ee1cde73bd
[motion2.git] / server / services / ami / report / index.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 _0x12ab=['monitors','monitorFilename','filename','createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','Local','indexOf','mobile','substring','lastIndexOf','transfererlinkedid','exports','lodash','moment','../../../config/environment','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','telephones','prototype','sync','realtime','xdr','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','attendedtransfer','attendedTransfer','findAgent','find','agents','name','isNil','interface','format','SIP/%s','length','connectedlinenum','accountcode','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','getAgentByInternal','keys','channel','split','calleridnum','outbound','destination','exten','type','dialer','lastapplication','lastdata','queue','from-voip-provider','callerid','context','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','ANSWERED','transfers','linkedid','transfereelinkedid','blindTransfer','getCallType','UserId','membername','monitor'];(function(_0x5b02ff,_0x4ce260){var _0xfe3187=function(_0x2aae48){while(--_0x2aae48){_0x5b02ff['push'](_0x5b02ff['shift']());}};_0xfe3187(++_0x4ce260);}(_0x12ab,0x6c));var _0xb12a=function(_0x1ca7bd,_0x22c495){_0x1ca7bd=_0x1ca7bd-0x0;var _0x5bdd3f=_0x12ab[_0x1ca7bd];return _0x5bdd3f;};'use strict';var _=require(_0xb12a('0x0'));var moment=require(_0xb12a('0x1'));var util=require('util');var config=require(_0xb12a('0x2'));var ami=require(_0xb12a('0x3'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xb12a('0x4'));var RpcVoiceDialReport=require(_0xb12a('0x5'));var RpcMemberReport=require(_0xb12a('0x6'));var RpcVoiceQueueReport=require(_0xb12a('0x7'));var RpcVoiceRecording=require(_0xb12a('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0xb12a('0x9'));var VoiceCallReport=require(_0xb12a('0xa'));var VoiceAgentReport=require(_0xb12a('0xb'));var VoiceDialReport=require(_0xb12a('0xc'));var UserReport=require('./userReport');function Report(_0x520c47){this['realtime']=_0x520c47;this['agents']=_0x520c47['agents'];this[_0xb12a('0xd')]=_0x520c47[_0xb12a('0xd')];}Report[_0xb12a('0xe')][_0xb12a('0xf')]=function(_0x102686){var _0x1071c9=new VoiceQueueReport(this['realtime']);var _0x528761=new VoiceAgentReport(this['realtime']);var _0x5da65b=new VoiceDialReport(this['realtime']);var _0x132acb=new VoiceCallReport(this[_0xb12a('0x10')]);var _0x469e0c=new UserReport(this[_0xb12a('0x10')]);if(config[_0xb12a('0x11')]&&config[_0xb12a('0x11')]['disabled']){ami['on'](_0xb12a('0x12'),this[_0xb12a('0x13')][_0xb12a('0x14')](this));ami['on'](_0xb12a('0x15'),this[_0xb12a('0x16')][_0xb12a('0x14')](this));ami['on'](_0xb12a('0x17'),this[_0xb12a('0x18')][_0xb12a('0x14')](this));ami['on'](_0xb12a('0x19'),this[_0xb12a('0x1a')][_0xb12a('0x14')](this));ami['on']('blindtransfer',this['blindTransfer'][_0xb12a('0x14')](this));ami['on'](_0xb12a('0x1b'),this[_0xb12a('0x1c')][_0xb12a('0x14')](this));}};Report[_0xb12a('0xe')][_0xb12a('0x1d')]=function(_0x4304d4){var _0x59c8fb;_0x59c8fb=_[_0xb12a('0x1e')](this[_0xb12a('0x1f')],function(_0x50c9c5){return _0x50c9c5['accountcode']==_0x4304d4||_0x50c9c5[_0xb12a('0x20')]==_0x4304d4;});if(_[_0xb12a('0x21')](_0x59c8fb)){var _0x2e7bd4=_['find'](this[_0xb12a('0xd')],function(_0x83a721){return _0x83a721['accountcode']==_0x4304d4||_0x83a721['name']==_0x4304d4;});if(_0x2e7bd4){_0x59c8fb=_[_0xb12a('0x1e')](this[_0xb12a('0x1f')],function(_0x261e71){return _0x261e71[_0xb12a('0x22')]==util[_0xb12a('0x23')](_0xb12a('0x24'),_0x2e7bd4[_0xb12a('0x20')]);});}}return _0x59c8fb;};Report[_0xb12a('0xe')][_0xb12a('0x13')]=function(_0x315298){for(var _0x5dfcee=0x0;_0x5dfcee<_0x315298[_0xb12a('0x25')];_0x5dfcee+=0x1){var _0x2aeef7=this[_0xb12a('0x1d')](_0x315298[_0x5dfcee][_0xb12a('0x26')]);if(_0x2aeef7){_0x315298[_0x5dfcee][_0xb12a('0x27')]=_0x2aeef7['accountcode'];_0x315298[_0x5dfcee]['assigned']=!![];_0x315298[_0x5dfcee][_0xb12a('0x28')]=_0x2aeef7[_0xb12a('0x20')];_0x315298[_0x5dfcee][_0xb12a('0x22')]=_[_0xb12a('0x21')](_0x2aeef7[_0xb12a('0x22')])?util[_0xb12a('0x23')](_0xb12a('0x24'),_0x2aeef7[_0xb12a('0x20')]):_0x2aeef7['interface'];if(_0x315298[_0x5dfcee][_0xb12a('0x29')]){_0x315298[_0x5dfcee][_0xb12a('0x2a')]=moment()[_0xb12a('0x23')](_0xb12a('0x2b'));}if(_0x315298[_0x5dfcee][_0xb12a('0x2c')]){_0x315298[_0x5dfcee][_0xb12a('0x2d')]=moment()[_0xb12a('0x23')](_0xb12a('0x2b'));}RpcMemberReport[_0xb12a('0x13')](_0x315298[_0x5dfcee]);}RpcVoiceQueueReport[_0xb12a('0x2e')](_0x315298[_0x5dfcee]);}};function extractCalleridNumber(_0x5392a0){var _0x19157b=_0x5392a0[_0xb12a('0x2f')](/<(.*?)>/);return _0x19157b?_0x19157b[0x1]:_0x5392a0;}Report[_0xb12a('0xe')][_0xb12a('0x30')]=function(_0x13a9bc){for(var _0x5b70f4=0x0;_0x5b70f4<Object[_0xb12a('0x31')](this[_0xb12a('0x1f')])[_0xb12a('0x25')];_0x5b70f4++){var _0xade41=Object[_0xb12a('0x31')](this['agents'])[_0x5b70f4];var _0x5375e8=this[_0xb12a('0x1f')][_0xade41];if(_0x5375e8[_0xb12a('0x27')]===Number(_0x13a9bc))return _0x5375e8;}return null;};Report[_0xb12a('0xe')]['getCallType']=function(_0x1b4522){var _0x5bdbea=_0x1b4522[_0xb12a('0x32')][_0xb12a('0x33')]('-')[0x0];var _0x1a6e3d=this['agents'][_0x5bdbea];if(!_0x1a6e3d)_0x1a6e3d=this[_0xb12a('0x30')](_0x1b4522[_0xb12a('0x34')]);return!_0x1a6e3d?_0xb12a('0x35'):'internal';};Report[_0xb12a('0xe')][_0xb12a('0x16')]=function(_0x568825){_0x568825[_0xb12a('0x36')]=_0x568825[_0xb12a('0x36')]||_0x568825[_0xb12a('0x37')];if(_0x568825[_0xb12a('0x38')]==_0xb12a('0x39')){_0x568825[_0xb12a('0x3a')]='queue';_0x568825[_0xb12a('0x3b')]=_0x568825[_0xb12a('0x3c')];if(_0x568825['context']==_0xb12a('0x3d')){_0x568825['accountcode']='';_0x568825[_0xb12a('0x36')]=extractCalleridNumber(_0x568825[_0xb12a('0x3e')]);}else if(_0x568825[_0xb12a('0x3f')]==_0xb12a('0x40')){if(_0x568825[_0xb12a('0x36')]==_0xb12a('0x41')){_0x568825['destination']=extractCalleridNumber(_0x568825[_0xb12a('0x42')]);_0x568825[_0xb12a('0x34')]=_0x568825[_0xb12a('0x43')];_0x568825['destinationchannel']=[_0x568825[_0xb12a('0x32')],_0x568825['channel']=_0x568825[_0xb12a('0x44')]][0x0];_0x568825[_0xb12a('0x3e')]=_0x568825[_0xb12a('0x42')];}else{_0x568825[_0xb12a('0x36')]=_0x568825['calleridnum'];_0x568825[_0xb12a('0x34')]=_0x568825[_0xb12a('0x43')];if(_0x568825['disposition']==_0xb12a('0x45')){_0x568825[_0xb12a('0x27')]=_0x568825[_0xb12a('0x26')];}else{_0x568825[_0xb12a('0x27')]='';}}}}else{_0x568825[_0xb12a('0x3e')]=util[_0xb12a('0x23')]('\x22%s\x22\x20<%s>',_0x568825['calleridname'],_0x568825['calleridnum']);}if(RpcVoiceTransferReport[_0xb12a('0x46')][_0x568825[_0xb12a('0x47')]]){var _0x5d5b4d=RpcVoiceTransferReport['transfers'][_0x568825[_0xb12a('0x47')]];_0x5d5b4d[_0xb12a('0x48')]=_0x568825['uniqueid'];RpcVoiceTransferReport[_0xb12a('0x49')](_0x5d5b4d);delete RpcVoiceTransferReport['transfers'][_0x568825[_0xb12a('0x47')]];}if(_[_0xb12a('0x21')](_0x568825[_0xb12a('0x38')])){_0x568825[_0xb12a('0x38')]=this[_0xb12a('0x4a')](_0x568825);}if(_[_0xb12a('0x21')](_0x568825[_0xb12a('0x4b')])){var _0x4b6923=_0x568825['channel'][_0xb12a('0x33')]('-')[0x0];var _0xeaca63=this['agents'][_0x4b6923];if(!_0xeaca63)_0xeaca63=this['getAgentByInternal'](_0x568825[_0xb12a('0x27')]);if(_0xeaca63){_0x568825[_0xb12a('0x4b')]=_0xeaca63['id'];_0x568825[_0xb12a('0x4c')]=_0xeaca63[_0xb12a('0x20')];}}RpcVoiceCallReport[_0xb12a('0x2e')](_0x568825);if(_0x568825[_0xb12a('0x4d')]){for(var _0x5ddfc0=0x0;_0x5ddfc0<_0x568825[_0xb12a('0x4e')][_0xb12a('0x25')];_0x5ddfc0+=0x1){_0x568825[_0xb12a('0x4f')]=_0x568825[_0xb12a('0x4e')][_0x5ddfc0][_0xb12a('0x50')];_0x568825[_0xb12a('0x51')]=_0x568825[_0xb12a('0x4e')][_0x5ddfc0]['createdAt'];if(_0x568825['exten']==_0xb12a('0x41')){_0x568825[_0xb12a('0x34')]=_0x568825['connectedlinenum'];_0x568825['calleridname']=_0x568825['connectedlinename'];_0x568825[_0xb12a('0x26')]=_0x568825[_0xb12a('0x27')];_0x568825[_0xb12a('0x52')]=_0x568825['membername'];_0x568825['exten']=_0x568825[_0xb12a('0x43')];}else if(_0x568825['exten']==_0xb12a('0x53')){_0x568825[_0xb12a('0x34')]=_0x568825[_0xb12a('0x36')];_0x568825['exten']=_0x568825[_0xb12a('0x43')];}RpcVoiceRecording['create'](_0x568825);}}};Report[_0xb12a('0xe')][_0xb12a('0x18')]=function(_0x26da35){if(_[_0xb12a('0x54')](_0x26da35)){_0x26da35[_0xb12a('0x55')](function(_0x2a7e4e){RpcVoiceAgentReport[_0xb12a('0x2e')](_0x2a7e4e);});}else{RpcVoiceAgentReport[_0xb12a('0x2e')](_0x26da35);}};Report[_0xb12a('0xe')][_0xb12a('0x1a')]=function(_0x5d4388){RpcVoiceDialReport[_0xb12a('0x2e')](_0x5d4388);var _0xc5e206;var _0x53fb05;var _0x2b16ac=_0x5d4388['channel'];if(_['startsWith'](_0x2b16ac,_0xb12a('0x56'))){_0x53fb05=_0x2b16ac['substring'](_0x2b16ac[_0xb12a('0x57')]('/')+0x1,_0x2b16ac[_0xb12a('0x57')]('@'));_0xc5e206=_[_0xb12a('0x1e')](this[_0xb12a('0x1f')],function(_0x1efa95){return _0x1efa95[_0xb12a('0x58')]==_0x53fb05||_0x1efa95['phone']==_0x53fb05||_0x1efa95[_0xb12a('0x27')]==_0x53fb05;});}else{_0x53fb05=_0x2b16ac[_0xb12a('0x59')](_0x2b16ac[_0xb12a('0x57')]('/')+0x1,_0x2b16ac[_0xb12a('0x5a')]('-'));_0xc5e206=this[_0xb12a('0x1d')](_0x53fb05);}if(_0xc5e206){_0x5d4388[_0xb12a('0x22')]=_['isNil'](_0xc5e206[_0xb12a('0x22')])?util[_0xb12a('0x23')](_0xb12a('0x24'),_0xc5e206[_0xb12a('0x20')]):_0xc5e206[_0xb12a('0x22')];_0x5d4388[_0xb12a('0x4c')]=_0xc5e206[_0xb12a('0x20')];_0x5d4388[_0xb12a('0x27')]=_0xc5e206[_0xb12a('0x27')];RpcMemberReport[_0xb12a('0x1a')](_0x5d4388);}};Report[_0xb12a('0xe')]['blindTransfer']=function(_0x146c1d){RpcVoiceTransferReport[_0xb12a('0x46')][_0x146c1d[_0xb12a('0x5b')]]=_0x146c1d;};Report[_0xb12a('0xe')][_0xb12a('0x1c')]=function(_0x54fecc){RpcVoiceTransferReport['attendedTransfer'](_0x54fecc);};module[_0xb12a('0x5c')]=Report;