10d3b95a240366064f3b149254c44e98bb560f85
[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 _0xfbe6=['assigned','lastAssignedTo','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','getAgentByInternal','keys','channel','split','calleridnum','outbound','internal','exten','type','lastapplication','queue','context','from-voip-provider','callerid','from-sip','destination','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','disposition','\x22%s\x22\x20<%s>','transfers','linkedid','transfereelinkedid','uniqueid','getCallType','UserId','monitor','monitorFilename','filename','createdAt','monitors','connectedlinename','xcally-motion-dialer','voiceAgentReport','forEach','Local','indexOf','mobile','phone','substring','lastIndexOf','transfererlinkedid','attendedTransfer','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','findAgent','find','isNil','accountcode','name','interface','format','SIP/%s','length','connectedlinenum'];(function(_0x503d48,_0x42e5a9){var _0x59743e=function(_0x496dbd){while(--_0x496dbd){_0x503d48['push'](_0x503d48['shift']());}};_0x59743e(++_0x42e5a9);}(_0xfbe6,0x1b2));var _0x6fbe=function(_0x1ca0d5,_0x533a21){_0x1ca0d5=_0x1ca0d5-0x0;var _0x22ef3d=_0xfbe6[_0x1ca0d5];return _0x22ef3d;};'use strict';var _=require(_0x6fbe('0x0'));var moment=require(_0x6fbe('0x1'));var util=require(_0x6fbe('0x2'));var config=require(_0x6fbe('0x3'));var ami=require(_0x6fbe('0x4'));var RpcVoiceAgentReport=require(_0x6fbe('0x5'));var RpcVoiceCallReport=require(_0x6fbe('0x6'));var RpcVoiceDialReport=require(_0x6fbe('0x7'));var RpcMemberReport=require(_0x6fbe('0x8'));var RpcVoiceQueueReport=require(_0x6fbe('0x9'));var RpcVoiceRecording=require(_0x6fbe('0xa'));var RpcVoiceTransferReport=require(_0x6fbe('0xb'));var VoiceQueueReport=require(_0x6fbe('0xc'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x6fbe('0xd'));var UserReport=require(_0x6fbe('0xe'));function Report(_0x2443f9){this[_0x6fbe('0xf')]=_0x2443f9;this['agents']=_0x2443f9[_0x6fbe('0x10')];this[_0x6fbe('0x11')]=_0x2443f9[_0x6fbe('0x11')];}Report[_0x6fbe('0x12')][_0x6fbe('0x13')]=function(_0x5a808c){var _0x406122=new VoiceQueueReport(this[_0x6fbe('0xf')]);var _0x4e7e44=new VoiceAgentReport(this[_0x6fbe('0xf')]);var _0x39c7a7=new VoiceDialReport(this[_0x6fbe('0xf')]);var _0x5bf220=new VoiceCallReport(this[_0x6fbe('0xf')]);var _0x44dee3=new UserReport(this[_0x6fbe('0xf')]);if(config[_0x6fbe('0x14')]&&config['xdr'][_0x6fbe('0x15')]){ami['on']('custom:voiceQueueReport',this[_0x6fbe('0x16')][_0x6fbe('0x17')](this));ami['on'](_0x6fbe('0x18'),this[_0x6fbe('0x19')]['bind'](this));ami['on']('custom:voiceAgentReport',this['voiceAgentReport'][_0x6fbe('0x17')](this));ami['on'](_0x6fbe('0x1a'),this[_0x6fbe('0x1b')][_0x6fbe('0x17')](this));ami['on'](_0x6fbe('0x1c'),this[_0x6fbe('0x1d')][_0x6fbe('0x17')](this));ami['on'](_0x6fbe('0x1e'),this['attendedTransfer']['bind'](this));}};Report[_0x6fbe('0x12')][_0x6fbe('0x1f')]=function(_0xf39946){var _0x521610;_0x521610=_[_0x6fbe('0x20')](this['agents'],function(_0x57279e){return _0x57279e['accountcode']==_0xf39946||_0x57279e['name']==_0xf39946;});if(_[_0x6fbe('0x21')](_0x521610)){var _0x1ea1f2=_[_0x6fbe('0x20')](this[_0x6fbe('0x11')],function(_0x353c59){return _0x353c59[_0x6fbe('0x22')]==_0xf39946||_0x353c59[_0x6fbe('0x23')]==_0xf39946;});if(_0x1ea1f2){_0x521610=_['find'](this['agents'],function(_0xb8795a){return _0xb8795a[_0x6fbe('0x24')]==util[_0x6fbe('0x25')](_0x6fbe('0x26'),_0x1ea1f2[_0x6fbe('0x23')]);});}}return _0x521610;};Report[_0x6fbe('0x12')]['voiceQueueReport']=function(_0x39ca3f){for(var _0x3bca04=0x0;_0x3bca04<_0x39ca3f[_0x6fbe('0x27')];_0x3bca04+=0x1){var _0x2d7616=this[_0x6fbe('0x1f')](_0x39ca3f[_0x3bca04][_0x6fbe('0x28')]);if(_0x2d7616){_0x39ca3f[_0x3bca04][_0x6fbe('0x22')]=_0x2d7616[_0x6fbe('0x22')];_0x39ca3f[_0x3bca04][_0x6fbe('0x29')]=!![];_0x39ca3f[_0x3bca04][_0x6fbe('0x2a')]=_0x2d7616['name'];_0x39ca3f[_0x3bca04][_0x6fbe('0x24')]=_[_0x6fbe('0x21')](_0x2d7616[_0x6fbe('0x24')])?util[_0x6fbe('0x25')]('SIP/%s',_0x2d7616[_0x6fbe('0x23')]):_0x2d7616['interface'];if(_0x39ca3f[_0x3bca04]['queuecallercomplete']){_0x39ca3f[_0x3bca04][_0x6fbe('0x2b')]=moment()[_0x6fbe('0x25')](_0x6fbe('0x2c'));}if(_0x39ca3f[_0x3bca04][_0x6fbe('0x2d')]){_0x39ca3f[_0x3bca04][_0x6fbe('0x2e')]=moment()['format'](_0x6fbe('0x2c'));}RpcMemberReport['voiceQueueReport'](_0x39ca3f[_0x3bca04]);}RpcVoiceQueueReport[_0x6fbe('0x2f')](_0x39ca3f[_0x3bca04]);}};function extractCalleridNumber(_0x1291ee){var _0x234b82=_0x1291ee[_0x6fbe('0x30')](/<(.*?)>/);return _0x234b82?_0x234b82[0x1]:_0x1291ee;}Report[_0x6fbe('0x12')][_0x6fbe('0x31')]=function(_0x203c12){for(var _0x1112ce=0x0;_0x1112ce<Object[_0x6fbe('0x32')](this[_0x6fbe('0x10')])[_0x6fbe('0x27')];_0x1112ce++){var _0x35ef22=Object[_0x6fbe('0x32')](this['agents'])[_0x1112ce];var _0x1a18b7=this['agents'][_0x35ef22];if(_0x1a18b7[_0x6fbe('0x22')]===Number(_0x203c12))return _0x1a18b7;}return null;};Report[_0x6fbe('0x12')]['getCallType']=function(_0x4a91e6){var _0x34c509=_0x4a91e6[_0x6fbe('0x33')][_0x6fbe('0x34')]('-')[0x0];var _0x33c174=this[_0x6fbe('0x10')][_0x34c509];if(!_0x33c174)_0x33c174=this[_0x6fbe('0x31')](_0x4a91e6[_0x6fbe('0x35')]);return!_0x33c174?_0x6fbe('0x36'):_0x6fbe('0x37');};Report[_0x6fbe('0x12')]['voiceCallReport']=function(_0x55704e){_0x55704e['destination']=_0x55704e['destination']||_0x55704e[_0x6fbe('0x38')];if(_0x55704e[_0x6fbe('0x39')]=='dialer'){_0x55704e[_0x6fbe('0x3a')]=_0x6fbe('0x3b');_0x55704e['lastdata']=_0x55704e[_0x6fbe('0x3b')];if(_0x55704e[_0x6fbe('0x3c')]==_0x6fbe('0x3d')){_0x55704e[_0x6fbe('0x22')]='';_0x55704e['destination']=extractCalleridNumber(_0x55704e[_0x6fbe('0x3e')]);}else if(_0x55704e[_0x6fbe('0x3c')]==_0x6fbe('0x3f')){if(_0x55704e[_0x6fbe('0x40')]==_0x6fbe('0x41')){_0x55704e[_0x6fbe('0x40')]=extractCalleridNumber(_0x55704e[_0x6fbe('0x42')]);_0x55704e[_0x6fbe('0x35')]=_0x55704e[_0x6fbe('0x43')];_0x55704e[_0x6fbe('0x44')]=[_0x55704e[_0x6fbe('0x33')],_0x55704e[_0x6fbe('0x33')]=_0x55704e[_0x6fbe('0x44')]][0x0];_0x55704e[_0x6fbe('0x3e')]=_0x55704e[_0x6fbe('0x42')];}else{_0x55704e[_0x6fbe('0x40')]=_0x55704e[_0x6fbe('0x35')];_0x55704e[_0x6fbe('0x35')]=_0x55704e[_0x6fbe('0x43')];if(_0x55704e[_0x6fbe('0x45')]=='ANSWERED'){_0x55704e[_0x6fbe('0x22')]=_0x55704e['connectedlinenum'];}else{_0x55704e[_0x6fbe('0x22')]='';}}}}else{_0x55704e[_0x6fbe('0x3e')]=util['format'](_0x6fbe('0x46'),_0x55704e['calleridname'],_0x55704e['calleridnum']);}if(RpcVoiceTransferReport[_0x6fbe('0x47')][_0x55704e[_0x6fbe('0x48')]]){var _0x448b7d=RpcVoiceTransferReport['transfers'][_0x55704e[_0x6fbe('0x48')]];_0x448b7d[_0x6fbe('0x49')]=_0x55704e[_0x6fbe('0x4a')];RpcVoiceTransferReport[_0x6fbe('0x1d')](_0x448b7d);delete RpcVoiceTransferReport['transfers'][_0x55704e[_0x6fbe('0x48')]];}if(_[_0x6fbe('0x21')](_0x55704e[_0x6fbe('0x39')])){_0x55704e['type']=this[_0x6fbe('0x4b')](_0x55704e);}if(_[_0x6fbe('0x21')](_0x55704e[_0x6fbe('0x4c')])){var _0x480b34=_0x55704e['channel'][_0x6fbe('0x34')]('-')[0x0];var _0x46d158=this[_0x6fbe('0x10')][_0x480b34];if(!_0x46d158)_0x46d158=this['getAgentByInternal'](_0x55704e['accountcode']);if(_0x46d158){_0x55704e[_0x6fbe('0x4c')]=_0x46d158['id'];_0x55704e['membername']=_0x46d158[_0x6fbe('0x23')];}}RpcVoiceCallReport[_0x6fbe('0x2f')](_0x55704e);if(_0x55704e[_0x6fbe('0x4d')]){for(var _0x595930=0x0;_0x595930<_0x55704e['monitors']['length'];_0x595930+=0x1){_0x55704e[_0x6fbe('0x4e')]=_0x55704e['monitors'][_0x595930][_0x6fbe('0x4f')];_0x55704e[_0x6fbe('0x50')]=_0x55704e[_0x6fbe('0x51')][_0x595930][_0x6fbe('0x50')];if(_0x55704e['exten']=='xcally-motion-preview'){_0x55704e[_0x6fbe('0x35')]=_0x55704e['connectedlinenum'];_0x55704e['calleridname']=_0x55704e[_0x6fbe('0x52')];_0x55704e[_0x6fbe('0x28')]=_0x55704e[_0x6fbe('0x22')];_0x55704e[_0x6fbe('0x52')]=_0x55704e['membername'];_0x55704e[_0x6fbe('0x38')]=_0x55704e['originatecalleridnum'];}else if(_0x55704e['exten']==_0x6fbe('0x53')){_0x55704e[_0x6fbe('0x35')]=_0x55704e[_0x6fbe('0x40')];_0x55704e[_0x6fbe('0x38')]=_0x55704e[_0x6fbe('0x43')];}RpcVoiceRecording[_0x6fbe('0x2f')](_0x55704e);}}};Report[_0x6fbe('0x12')][_0x6fbe('0x54')]=function(_0x23100b){if(_['isArray'](_0x23100b)){_0x23100b[_0x6fbe('0x55')](function(_0xc95721){RpcVoiceAgentReport['create'](_0xc95721);});}else{RpcVoiceAgentReport[_0x6fbe('0x2f')](_0x23100b);}};Report[_0x6fbe('0x12')]['voiceDialReport']=function(_0x5f575c){RpcVoiceDialReport[_0x6fbe('0x2f')](_0x5f575c);var _0x106362;var _0x2c3f1c;var _0x59cf47=_0x5f575c['channel'];if(_['startsWith'](_0x59cf47,_0x6fbe('0x56'))){_0x2c3f1c=_0x59cf47['substring'](_0x59cf47[_0x6fbe('0x57')]('/')+0x1,_0x59cf47[_0x6fbe('0x57')]('@'));_0x106362=_[_0x6fbe('0x20')](this['agents'],function(_0x12e3d7){return _0x12e3d7[_0x6fbe('0x58')]==_0x2c3f1c||_0x12e3d7[_0x6fbe('0x59')]==_0x2c3f1c||_0x12e3d7[_0x6fbe('0x22')]==_0x2c3f1c;});}else{_0x2c3f1c=_0x59cf47[_0x6fbe('0x5a')](_0x59cf47[_0x6fbe('0x57')]('/')+0x1,_0x59cf47[_0x6fbe('0x5b')]('-'));_0x106362=this[_0x6fbe('0x1f')](_0x2c3f1c);}if(_0x106362){_0x5f575c[_0x6fbe('0x24')]=_[_0x6fbe('0x21')](_0x106362[_0x6fbe('0x24')])?util['format'](_0x6fbe('0x26'),_0x106362[_0x6fbe('0x23')]):_0x106362['interface'];_0x5f575c['membername']=_0x106362[_0x6fbe('0x23')];_0x5f575c[_0x6fbe('0x22')]=_0x106362[_0x6fbe('0x22')];RpcMemberReport[_0x6fbe('0x1b')](_0x5f575c);}};Report[_0x6fbe('0x12')]['blindTransfer']=function(_0x381783){RpcVoiceTransferReport[_0x6fbe('0x47')][_0x381783[_0x6fbe('0x5c')]]=_0x381783;};Report[_0x6fbe('0x12')]['attendedTransfer']=function(_0x39b43d){RpcVoiceTransferReport[_0x6fbe('0x5d')](_0x39b43d);};module[_0x6fbe('0x5e')]=Report;