Built motion from commit 936e8062.|2.5.33
[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 _0x2546=['disposition','ANSWERED','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','Local','substring','indexOf','mobile','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./userReport','realtime','agents','telephones','sync','xdr','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','interface','SIP/%s','length','connectedlinenum','lastAssignedTo','format','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','prototype','destination','exten','type','dialer','lastapplication','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','channel','destinationchannel'];(function(_0x1c2edd,_0x4b6e51){var _0x13aa6a=function(_0x4d370a){while(--_0x4d370a){_0x1c2edd['push'](_0x1c2edd['shift']());}};_0x13aa6a(++_0x4b6e51);}(_0x2546,0x174));var _0x6254=function(_0x215d76,_0x46df9e){_0x215d76=_0x215d76-0x0;var _0xdb38ff=_0x2546[_0x215d76];return _0xdb38ff;};'use strict';var _=require(_0x6254('0x0'));var moment=require(_0x6254('0x1'));var util=require(_0x6254('0x2'));var config=require(_0x6254('0x3'));var ami=require(_0x6254('0x4'));var RpcVoiceAgentReport=require(_0x6254('0x5'));var RpcVoiceCallReport=require(_0x6254('0x6'));var RpcVoiceDialReport=require(_0x6254('0x7'));var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0x6254('0x8'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x6254('0x9'));var VoiceQueueReport=require(_0x6254('0xa'));var VoiceCallReport=require(_0x6254('0xb'));var VoiceAgentReport=require(_0x6254('0xc'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x6254('0xd'));function Report(_0xed9c03){this[_0x6254('0xe')]=_0xed9c03;this[_0x6254('0xf')]=_0xed9c03[_0x6254('0xf')];this[_0x6254('0x10')]=_0xed9c03[_0x6254('0x10')];}Report['prototype'][_0x6254('0x11')]=function(_0x51539d){var _0x3684e4=new VoiceQueueReport(this[_0x6254('0xe')]);var _0x3bd20f=new VoiceAgentReport(this['realtime']);var _0x3ddea1=new VoiceDialReport(this[_0x6254('0xe')]);var _0x4cf9a9=new VoiceCallReport(this['realtime']);var _0x30f2cc=new UserReport(this[_0x6254('0xe')]);if(config['xdr']&&config[_0x6254('0x12')]['disabled']){ami['on'](_0x6254('0x13'),this[_0x6254('0x14')][_0x6254('0x15')](this));ami['on'](_0x6254('0x16'),this[_0x6254('0x17')][_0x6254('0x15')](this));ami['on']('custom:voiceAgentReport',this[_0x6254('0x18')]['bind'](this));ami['on'](_0x6254('0x19'),this[_0x6254('0x1a')][_0x6254('0x15')](this));ami['on'](_0x6254('0x1b'),this[_0x6254('0x1c')][_0x6254('0x15')](this));ami['on'](_0x6254('0x1d'),this[_0x6254('0x1e')][_0x6254('0x15')](this));}};Report['prototype'][_0x6254('0x1f')]=function(_0x2a7830){var _0x1afb3f;_0x1afb3f=_[_0x6254('0x20')](this[_0x6254('0xf')],function(_0x587bd2){return _0x587bd2[_0x6254('0x21')]==_0x2a7830||_0x587bd2[_0x6254('0x22')]==_0x2a7830;});if(_[_0x6254('0x23')](_0x1afb3f)){var _0x1ca66a=_[_0x6254('0x20')](this[_0x6254('0x10')],function(_0x2b66d9){return _0x2b66d9[_0x6254('0x21')]==_0x2a7830||_0x2b66d9[_0x6254('0x22')]==_0x2a7830;});if(_0x1ca66a){_0x1afb3f=_['find'](this['agents'],function(_0x490a99){return _0x490a99[_0x6254('0x24')]==util['format'](_0x6254('0x25'),_0x1ca66a[_0x6254('0x22')]);});}}return _0x1afb3f;};Report['prototype'][_0x6254('0x14')]=function(_0x451df6){for(var _0x2e3086=0x0;_0x2e3086<_0x451df6[_0x6254('0x26')];_0x2e3086+=0x1){var _0x2c8cfd=this['findAgent'](_0x451df6[_0x2e3086][_0x6254('0x27')]);if(_0x2c8cfd){_0x451df6[_0x2e3086]['accountcode']=_0x2c8cfd['accountcode'];_0x451df6[_0x2e3086]['assigned']=!![];_0x451df6[_0x2e3086][_0x6254('0x28')]=_0x2c8cfd[_0x6254('0x22')];_0x451df6[_0x2e3086][_0x6254('0x24')]=_[_0x6254('0x23')](_0x2c8cfd[_0x6254('0x24')])?util['format'](_0x6254('0x25'),_0x2c8cfd[_0x6254('0x22')]):_0x2c8cfd[_0x6254('0x24')];if(_0x451df6[_0x2e3086]['queuecallercomplete']){_0x451df6[_0x2e3086]['queuecallercompleteAt']=moment()[_0x6254('0x29')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x451df6[_0x2e3086]['queuecallerexit']){_0x451df6[_0x2e3086][_0x6254('0x2a')]=moment()[_0x6254('0x29')](_0x6254('0x2b'));}RpcMemberReport[_0x6254('0x14')](_0x451df6[_0x2e3086]);}RpcVoiceQueueReport[_0x6254('0x2c')](_0x451df6[_0x2e3086]);}};function extractCalleridNumber(_0x46553d){var _0x5406c8=_0x46553d[_0x6254('0x2d')](/<(.*?)>/);return _0x5406c8?_0x5406c8[0x1]:_0x46553d;}Report[_0x6254('0x2e')][_0x6254('0x17')]=function(_0x45ba12){_0x45ba12[_0x6254('0x2f')]=_0x45ba12[_0x6254('0x2f')]||_0x45ba12[_0x6254('0x30')];if(_0x45ba12[_0x6254('0x31')]==_0x6254('0x32')){_0x45ba12[_0x6254('0x33')]='queue';_0x45ba12['lastdata']=_0x45ba12[_0x6254('0x34')];if(_0x45ba12[_0x6254('0x35')]==_0x6254('0x36')){_0x45ba12[_0x6254('0x21')]='';_0x45ba12[_0x6254('0x2f')]=extractCalleridNumber(_0x45ba12[_0x6254('0x37')]);}else if(_0x45ba12[_0x6254('0x35')]==_0x6254('0x38')){if(_0x45ba12['destination']==_0x6254('0x39')){_0x45ba12[_0x6254('0x2f')]=extractCalleridNumber(_0x45ba12[_0x6254('0x3a')]);_0x45ba12[_0x6254('0x3b')]=_0x45ba12[_0x6254('0x3c')];_0x45ba12['destinationchannel']=[_0x45ba12[_0x6254('0x3d')],_0x45ba12[_0x6254('0x3d')]=_0x45ba12[_0x6254('0x3e')]][0x0];_0x45ba12['callerid']=_0x45ba12[_0x6254('0x3a')];}else{_0x45ba12[_0x6254('0x2f')]=_0x45ba12['calleridnum'];_0x45ba12['calleridnum']=_0x45ba12[_0x6254('0x3c')];if(_0x45ba12[_0x6254('0x3f')]==_0x6254('0x40')){_0x45ba12[_0x6254('0x21')]=_0x45ba12[_0x6254('0x27')];}else{_0x45ba12[_0x6254('0x21')]='';}}}}else{_0x45ba12[_0x6254('0x37')]=util['format']('\x22%s\x22\x20<%s>',_0x45ba12[_0x6254('0x41')],_0x45ba12['calleridnum']);}if(RpcVoiceTransferReport[_0x6254('0x42')][_0x45ba12[_0x6254('0x43')]]){var _0x2a27b5=RpcVoiceTransferReport[_0x6254('0x42')][_0x45ba12['linkedid']];_0x2a27b5[_0x6254('0x44')]=_0x45ba12[_0x6254('0x45')];RpcVoiceTransferReport[_0x6254('0x1c')](_0x2a27b5);delete RpcVoiceTransferReport[_0x6254('0x42')][_0x45ba12[_0x6254('0x43')]];}RpcVoiceCallReport[_0x6254('0x2c')](_0x45ba12);if(_0x45ba12[_0x6254('0x46')]){for(var _0x1b09ed=0x0;_0x1b09ed<_0x45ba12[_0x6254('0x47')][_0x6254('0x26')];_0x1b09ed+=0x1){_0x45ba12[_0x6254('0x48')]=_0x45ba12[_0x6254('0x47')][_0x1b09ed][_0x6254('0x49')];_0x45ba12['createdAt']=_0x45ba12[_0x6254('0x47')][_0x1b09ed][_0x6254('0x4a')];if(_0x45ba12[_0x6254('0x30')]==_0x6254('0x39')){_0x45ba12[_0x6254('0x3b')]=_0x45ba12[_0x6254('0x27')];_0x45ba12[_0x6254('0x41')]=_0x45ba12['connectedlinename'];_0x45ba12[_0x6254('0x27')]=_0x45ba12[_0x6254('0x21')];_0x45ba12[_0x6254('0x4b')]=_0x45ba12[_0x6254('0x4c')];_0x45ba12['exten']=_0x45ba12[_0x6254('0x3c')];}else if(_0x45ba12[_0x6254('0x30')]==_0x6254('0x4d')){_0x45ba12['calleridnum']=_0x45ba12[_0x6254('0x2f')];_0x45ba12[_0x6254('0x30')]=_0x45ba12[_0x6254('0x3c')];}RpcVoiceRecording[_0x6254('0x2c')](_0x45ba12);}}};Report['prototype'][_0x6254('0x18')]=function(_0x4890ee){if(_[_0x6254('0x4e')](_0x4890ee)){_0x4890ee[_0x6254('0x4f')](function(_0x2fc547){RpcVoiceAgentReport[_0x6254('0x2c')](_0x2fc547);});}else{RpcVoiceAgentReport[_0x6254('0x2c')](_0x4890ee);}};Report['prototype'][_0x6254('0x1a')]=function(_0x551822){RpcVoiceDialReport[_0x6254('0x2c')](_0x551822);var _0x37c261;var _0x4f00e1;var _0x1c52e9=_0x551822['channel'];if(_['startsWith'](_0x1c52e9,_0x6254('0x50'))){_0x4f00e1=_0x1c52e9[_0x6254('0x51')](_0x1c52e9[_0x6254('0x52')]('/')+0x1,_0x1c52e9[_0x6254('0x52')]('@'));_0x37c261=_['find'](this['agents'],function(_0x9df897){return _0x9df897[_0x6254('0x53')]==_0x4f00e1||_0x9df897['phone']==_0x4f00e1||_0x9df897['accountcode']==_0x4f00e1;});}else{_0x4f00e1=_0x1c52e9[_0x6254('0x51')](_0x1c52e9[_0x6254('0x52')]('/')+0x1,_0x1c52e9[_0x6254('0x54')]('-'));_0x37c261=this[_0x6254('0x1f')](_0x4f00e1);}if(_0x37c261){_0x551822[_0x6254('0x24')]=_['isNil'](_0x37c261[_0x6254('0x24')])?util['format'](_0x6254('0x25'),_0x37c261['name']):_0x37c261['interface'];_0x551822[_0x6254('0x4c')]=_0x37c261[_0x6254('0x22')];_0x551822['accountcode']=_0x37c261[_0x6254('0x21')];RpcMemberReport[_0x6254('0x1a')](_0x551822);}};Report[_0x6254('0x2e')][_0x6254('0x1c')]=function(_0xe90ae7){RpcVoiceTransferReport['transfers'][_0xe90ae7[_0x6254('0x55')]]=_0xe90ae7;};Report['prototype']['attendedTransfer']=function(_0x1577f3){RpcVoiceTransferReport[_0x6254('0x1e')](_0x1577f3);};module[_0x6254('0x56')]=Report;