4056aaca71e9993687d554407e15dbe1a93f15d7
[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 _0x1400=['startsWith','Local','substring','indexOf','phone','transfererlinkedid','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','name','interface','format','length','connectedlinenum','accountcode','assigned','lastAssignedTo','isNil','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','create','match','voiceCallReport','destination','type','queue','lastdata','context','callerid','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','disposition','ANSWERED','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','monitors','monitorFilename','filename','createdAt','exten','connectedlinename','membername','xcally-motion-dialer','isArray','forEach'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x1400,0xb5));var _0x0140=function(_0x2d8d69,_0x8e47ff){_0x2d8d69=_0x2d8d69-0x0;var _0x39ae22=_0x1400[_0x2d8d69];return _0x39ae22;};'use strict';var _=require(_0x0140('0x0'));var moment=require(_0x0140('0x1'));var util=require(_0x0140('0x2'));var config=require(_0x0140('0x3'));var ami=require(_0x0140('0x4'));var RpcVoiceAgentReport=require(_0x0140('0x5'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0x0140('0x6'));var RpcMemberReport=require(_0x0140('0x7'));var RpcVoiceQueueReport=require(_0x0140('0x8'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x0140('0x9'));var VoiceQueueReport=require(_0x0140('0xa'));var VoiceCallReport=require(_0x0140('0xb'));var VoiceAgentReport=require(_0x0140('0xc'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x0140('0xd'));function Report(_0x233f36){this[_0x0140('0xe')]=_0x233f36;this[_0x0140('0xf')]=_0x233f36[_0x0140('0xf')];this[_0x0140('0x10')]=_0x233f36[_0x0140('0x10')];}Report[_0x0140('0x11')][_0x0140('0x12')]=function(_0x34aa2d){var _0x3ad12a=new VoiceQueueReport(this[_0x0140('0xe')]);var _0xb93ef4=new VoiceAgentReport(this[_0x0140('0xe')]);var _0x25bf7d=new VoiceDialReport(this[_0x0140('0xe')]);var _0x392294=new VoiceCallReport(this['realtime']);var _0x4ef2ab=new UserReport(this['realtime']);if(config[_0x0140('0x13')]&&config[_0x0140('0x13')][_0x0140('0x14')]){ami['on'](_0x0140('0x15'),this[_0x0140('0x16')]['bind'](this));ami['on']('custom:voiceCallReport',this['voiceCallReport'][_0x0140('0x17')](this));ami['on'](_0x0140('0x18'),this[_0x0140('0x19')][_0x0140('0x17')](this));ami['on'](_0x0140('0x1a'),this[_0x0140('0x1b')][_0x0140('0x17')](this));ami['on'](_0x0140('0x1c'),this[_0x0140('0x1d')][_0x0140('0x17')](this));ami['on'](_0x0140('0x1e'),this[_0x0140('0x1f')][_0x0140('0x17')](this));}};Report['prototype'][_0x0140('0x20')]=function(_0x5efd33){var _0x2ba4e9;_0x2ba4e9=_[_0x0140('0x21')](this[_0x0140('0xf')],function(_0xa04de7){return _0xa04de7['accountcode']==_0x5efd33||_0xa04de7['name']==_0x5efd33;});if(_['isNil'](_0x2ba4e9)){var _0x1b49a4=_[_0x0140('0x21')](this[_0x0140('0x10')],function(_0x6bfa7f){return _0x6bfa7f['accountcode']==_0x5efd33||_0x6bfa7f[_0x0140('0x22')]==_0x5efd33;});if(_0x1b49a4){_0x2ba4e9=_[_0x0140('0x21')](this[_0x0140('0xf')],function(_0x8cfa82){return _0x8cfa82[_0x0140('0x23')]==util[_0x0140('0x24')]('SIP/%s',_0x1b49a4[_0x0140('0x22')]);});}}return _0x2ba4e9;};Report[_0x0140('0x11')][_0x0140('0x16')]=function(_0x177e30){for(var _0x3f386a=0x0;_0x3f386a<_0x177e30[_0x0140('0x25')];_0x3f386a+=0x1){var _0x5d39da=this[_0x0140('0x20')](_0x177e30[_0x3f386a][_0x0140('0x26')]);if(_0x5d39da){_0x177e30[_0x3f386a]['accountcode']=_0x5d39da[_0x0140('0x27')];_0x177e30[_0x3f386a][_0x0140('0x28')]=!![];_0x177e30[_0x3f386a][_0x0140('0x29')]=_0x5d39da[_0x0140('0x22')];_0x177e30[_0x3f386a][_0x0140('0x23')]=_[_0x0140('0x2a')](_0x5d39da[_0x0140('0x23')])?util[_0x0140('0x24')]('SIP/%s',_0x5d39da[_0x0140('0x22')]):_0x5d39da['interface'];if(_0x177e30[_0x3f386a][_0x0140('0x2b')]){_0x177e30[_0x3f386a][_0x0140('0x2c')]=moment()[_0x0140('0x24')](_0x0140('0x2d'));}if(_0x177e30[_0x3f386a]['queuecallerexit']){_0x177e30[_0x3f386a][_0x0140('0x2e')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x0140('0x16')](_0x177e30[_0x3f386a]);}RpcVoiceQueueReport[_0x0140('0x2f')](_0x177e30[_0x3f386a]);}};function extractCalleridNumber(_0x351df1){var _0xd19058=_0x351df1[_0x0140('0x30')](/<(.*?)>/);return _0xd19058?_0xd19058[0x1]:_0x351df1;}Report['prototype'][_0x0140('0x31')]=function(_0x229ef4){_0x229ef4['destination']=_0x229ef4[_0x0140('0x32')]||_0x229ef4['exten'];if(_0x229ef4[_0x0140('0x33')]=='dialer'){_0x229ef4['lastapplication']=_0x0140('0x34');_0x229ef4[_0x0140('0x35')]=_0x229ef4[_0x0140('0x34')];if(_0x229ef4[_0x0140('0x36')]=='from-voip-provider'){_0x229ef4[_0x0140('0x27')]='';_0x229ef4[_0x0140('0x32')]=extractCalleridNumber(_0x229ef4[_0x0140('0x37')]);}else if(_0x229ef4[_0x0140('0x36')]=='from-sip'){if(_0x229ef4[_0x0140('0x32')]==_0x0140('0x38')){_0x229ef4['destination']=extractCalleridNumber(_0x229ef4[_0x0140('0x39')]);_0x229ef4[_0x0140('0x3a')]=_0x229ef4[_0x0140('0x3b')];_0x229ef4[_0x0140('0x3c')]=[_0x229ef4[_0x0140('0x3d')],_0x229ef4['channel']=_0x229ef4['destinationchannel']][0x0];_0x229ef4[_0x0140('0x37')]=_0x229ef4['calleridpreview'];}else{_0x229ef4[_0x0140('0x32')]=_0x229ef4[_0x0140('0x3a')];_0x229ef4[_0x0140('0x3a')]=_0x229ef4[_0x0140('0x3b')];if(_0x229ef4[_0x0140('0x3e')]==_0x0140('0x3f')){_0x229ef4[_0x0140('0x27')]=_0x229ef4[_0x0140('0x26')];}else{_0x229ef4[_0x0140('0x27')]='';}}}}else{_0x229ef4[_0x0140('0x37')]=util[_0x0140('0x24')]('\x22%s\x22\x20<%s>',_0x229ef4[_0x0140('0x40')],_0x229ef4[_0x0140('0x3a')]);}if(RpcVoiceTransferReport[_0x0140('0x41')][_0x229ef4[_0x0140('0x42')]]){var _0x54a721=RpcVoiceTransferReport['transfers'][_0x229ef4[_0x0140('0x42')]];_0x54a721[_0x0140('0x43')]=_0x229ef4[_0x0140('0x44')];RpcVoiceTransferReport['blindTransfer'](_0x54a721);delete RpcVoiceTransferReport[_0x0140('0x41')][_0x229ef4[_0x0140('0x42')]];}RpcVoiceCallReport[_0x0140('0x2f')](_0x229ef4);if(_0x229ef4[_0x0140('0x45')]){for(var _0x29030b=0x0;_0x29030b<_0x229ef4[_0x0140('0x46')][_0x0140('0x25')];_0x29030b+=0x1){_0x229ef4[_0x0140('0x47')]=_0x229ef4['monitors'][_0x29030b][_0x0140('0x48')];_0x229ef4[_0x0140('0x49')]=_0x229ef4[_0x0140('0x46')][_0x29030b]['createdAt'];if(_0x229ef4[_0x0140('0x4a')]==_0x0140('0x38')){_0x229ef4[_0x0140('0x3a')]=_0x229ef4['connectedlinenum'];_0x229ef4[_0x0140('0x40')]=_0x229ef4[_0x0140('0x4b')];_0x229ef4[_0x0140('0x26')]=_0x229ef4[_0x0140('0x27')];_0x229ef4['connectedlinename']=_0x229ef4[_0x0140('0x4c')];_0x229ef4['exten']=_0x229ef4[_0x0140('0x3b')];}else if(_0x229ef4[_0x0140('0x4a')]==_0x0140('0x4d')){_0x229ef4['calleridnum']=_0x229ef4[_0x0140('0x32')];_0x229ef4[_0x0140('0x4a')]=_0x229ef4['originatecalleridnum'];}RpcVoiceRecording[_0x0140('0x2f')](_0x229ef4);}}};Report[_0x0140('0x11')][_0x0140('0x19')]=function(_0x59e022){if(_[_0x0140('0x4e')](_0x59e022)){_0x59e022[_0x0140('0x4f')](function(_0x48178f){RpcVoiceAgentReport[_0x0140('0x2f')](_0x48178f);});}else{RpcVoiceAgentReport[_0x0140('0x2f')](_0x59e022);}};Report['prototype'][_0x0140('0x1b')]=function(_0x46018b){RpcVoiceDialReport['create'](_0x46018b);var _0x1992db;var _0x449154;var _0x1b491c=_0x46018b['channel'];if(_[_0x0140('0x50')](_0x1b491c,_0x0140('0x51'))){_0x449154=_0x1b491c[_0x0140('0x52')](_0x1b491c[_0x0140('0x53')]('/')+0x1,_0x1b491c[_0x0140('0x53')]('@'));_0x1992db=_[_0x0140('0x21')](this[_0x0140('0xf')],function(_0x190d48){return _0x190d48['mobile']==_0x449154||_0x190d48[_0x0140('0x54')]==_0x449154||_0x190d48['accountcode']==_0x449154;});}else{_0x449154=_0x1b491c['substring'](_0x1b491c[_0x0140('0x53')]('/')+0x1,_0x1b491c['lastIndexOf']('-'));_0x1992db=this['findAgent'](_0x449154);}if(_0x1992db){_0x46018b['interface']=_['isNil'](_0x1992db['interface'])?util['format']('SIP/%s',_0x1992db[_0x0140('0x22')]):_0x1992db[_0x0140('0x23')];_0x46018b[_0x0140('0x4c')]=_0x1992db[_0x0140('0x22')];_0x46018b[_0x0140('0x27')]=_0x1992db['accountcode'];RpcMemberReport[_0x0140('0x1b')](_0x46018b);}};Report[_0x0140('0x11')][_0x0140('0x1d')]=function(_0xd904f0){RpcVoiceTransferReport[_0x0140('0x41')][_0xd904f0[_0x0140('0x55')]]=_0xd904f0;};Report[_0x0140('0x11')][_0x0140('0x1f')]=function(_0x3c5b9e){RpcVoiceTransferReport[_0x0140('0x1f')](_0x3c5b9e);};module[_0x0140('0x56')]=Report;