Built motion from commit (unavailable).|2.5.25
[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 _0x85b8=['transfereelinkedid','uniqueid','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','indexOf','phone','substring','transfererlinkedid','attendedTransfer','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedtransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','length','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','queuecallerexit','create','match','exten','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','destination','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','calleridnum','disposition','ANSWERED','connectedlinenum','calleridname','transfers','linkedid'];(function(_0x220c84,_0xcb70cd){var _0x2e09cf=function(_0x20be3c){while(--_0x20be3c){_0x220c84['push'](_0x220c84['shift']());}};_0x2e09cf(++_0xcb70cd);}(_0x85b8,0xb8));var _0x885b=function(_0xa46278,_0x3e128b){_0xa46278=_0xa46278-0x0;var _0x369c26=_0x85b8[_0xa46278];return _0x369c26;};'use strict';var _=require(_0x885b('0x0'));var moment=require(_0x885b('0x1'));var util=require(_0x885b('0x2'));var config=require(_0x885b('0x3'));var ami=require(_0x885b('0x4'));var RpcVoiceAgentReport=require(_0x885b('0x5'));var RpcVoiceCallReport=require(_0x885b('0x6'));var RpcVoiceDialReport=require(_0x885b('0x7'));var RpcMemberReport=require(_0x885b('0x8'));var RpcVoiceQueueReport=require(_0x885b('0x9'));var RpcVoiceRecording=require(_0x885b('0xa'));var RpcVoiceTransferReport=require(_0x885b('0xb'));var VoiceQueueReport=require(_0x885b('0xc'));var VoiceCallReport=require(_0x885b('0xd'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x885b('0xe'));function Report(_0x499d5f){this[_0x885b('0xf')]=_0x499d5f;this[_0x885b('0x10')]=_0x499d5f[_0x885b('0x10')];this[_0x885b('0x11')]=_0x499d5f[_0x885b('0x11')];}Report[_0x885b('0x12')][_0x885b('0x13')]=function(_0x551eed){var _0x3bc188=new VoiceQueueReport(this[_0x885b('0xf')]);var _0x129295=new VoiceAgentReport(this[_0x885b('0xf')]);var _0x381984=new VoiceDialReport(this[_0x885b('0xf')]);var _0x16ea8a=new VoiceCallReport(this['realtime']);var _0x36006d=new UserReport(this[_0x885b('0xf')]);if(config[_0x885b('0x14')]&&config[_0x885b('0x14')][_0x885b('0x15')]){ami['on'](_0x885b('0x16'),this[_0x885b('0x17')][_0x885b('0x18')](this));ami['on'](_0x885b('0x19'),this[_0x885b('0x1a')]['bind'](this));ami['on']('custom:voiceAgentReport',this[_0x885b('0x1b')][_0x885b('0x18')](this));ami['on'](_0x885b('0x1c'),this[_0x885b('0x1d')][_0x885b('0x18')](this));ami['on']('blindtransfer',this[_0x885b('0x1e')][_0x885b('0x18')](this));ami['on'](_0x885b('0x1f'),this['attendedTransfer'][_0x885b('0x18')](this));}};Report['prototype'][_0x885b('0x20')]=function(_0x4f4e16){var _0xebedbe;_0xebedbe=_[_0x885b('0x21')](this[_0x885b('0x10')],function(_0x1b1033){return _0x1b1033[_0x885b('0x22')]==_0x4f4e16||_0x1b1033[_0x885b('0x23')]==_0x4f4e16;});if(_[_0x885b('0x24')](_0xebedbe)){var _0x453505=_[_0x885b('0x21')](this[_0x885b('0x11')],function(_0x2db38b){return _0x2db38b[_0x885b('0x22')]==_0x4f4e16||_0x2db38b['name']==_0x4f4e16;});if(_0x453505){_0xebedbe=_[_0x885b('0x21')](this['agents'],function(_0xe1b3c6){return _0xe1b3c6[_0x885b('0x25')]==util[_0x885b('0x26')](_0x885b('0x27'),_0x453505[_0x885b('0x23')]);});}}return _0xebedbe;};Report[_0x885b('0x12')][_0x885b('0x17')]=function(_0x1df275){for(var _0x50dedb=0x0;_0x50dedb<_0x1df275[_0x885b('0x28')];_0x50dedb+=0x1){var _0x2efcc2=this['findAgent'](_0x1df275[_0x50dedb]['connectedlinenum']);if(_0x2efcc2){_0x1df275[_0x50dedb][_0x885b('0x22')]=_0x2efcc2[_0x885b('0x22')];_0x1df275[_0x50dedb][_0x885b('0x29')]=!![];_0x1df275[_0x50dedb][_0x885b('0x2a')]=_0x2efcc2[_0x885b('0x23')];_0x1df275[_0x50dedb]['interface']=_['isNil'](_0x2efcc2['interface'])?util[_0x885b('0x26')](_0x885b('0x27'),_0x2efcc2['name']):_0x2efcc2[_0x885b('0x25')];if(_0x1df275[_0x50dedb][_0x885b('0x2b')]){_0x1df275[_0x50dedb][_0x885b('0x2c')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x1df275[_0x50dedb][_0x885b('0x2d')]){_0x1df275[_0x50dedb]['queuecallerexitAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport['voiceQueueReport'](_0x1df275[_0x50dedb]);}RpcVoiceQueueReport[_0x885b('0x2e')](_0x1df275[_0x50dedb]);}};function extractCalleridNumber(_0x252e8f){var _0x48dde5=_0x252e8f[_0x885b('0x2f')](/<(.*?)>/);return _0x48dde5?_0x48dde5[0x1]:_0x252e8f;}Report[_0x885b('0x12')][_0x885b('0x1a')]=function(_0x8a66c0){_0x8a66c0['destination']=_0x8a66c0['destination']||_0x8a66c0[_0x885b('0x30')];if(_0x8a66c0['type']==_0x885b('0x31')){_0x8a66c0['lastapplication']=_0x885b('0x32');_0x8a66c0[_0x885b('0x33')]=_0x8a66c0['queue'];if(_0x8a66c0[_0x885b('0x34')]==_0x885b('0x35')){_0x8a66c0['accountcode']='';_0x8a66c0['destination']=extractCalleridNumber(_0x8a66c0[_0x885b('0x36')]);}else if(_0x8a66c0['context']==_0x885b('0x37')){if(_0x8a66c0[_0x885b('0x38')]==_0x885b('0x39')){_0x8a66c0[_0x885b('0x38')]=extractCalleridNumber(_0x8a66c0[_0x885b('0x3a')]);_0x8a66c0['calleridnum']=_0x8a66c0[_0x885b('0x3b')];_0x8a66c0[_0x885b('0x3c')]=[_0x8a66c0['channel'],_0x8a66c0['channel']=_0x8a66c0[_0x885b('0x3c')]][0x0];_0x8a66c0[_0x885b('0x36')]=_0x8a66c0['calleridpreview'];}else{_0x8a66c0[_0x885b('0x38')]=_0x8a66c0['calleridnum'];_0x8a66c0[_0x885b('0x3d')]=_0x8a66c0['originatecalleridnum'];if(_0x8a66c0[_0x885b('0x3e')]==_0x885b('0x3f')){_0x8a66c0[_0x885b('0x22')]=_0x8a66c0[_0x885b('0x40')];}else{_0x8a66c0['accountcode']='';}}}}else{_0x8a66c0[_0x885b('0x36')]=util[_0x885b('0x26')]('\x22%s\x22\x20<%s>',_0x8a66c0[_0x885b('0x41')],_0x8a66c0[_0x885b('0x3d')]);}if(RpcVoiceTransferReport[_0x885b('0x42')][_0x8a66c0[_0x885b('0x43')]]){var _0x27dede=RpcVoiceTransferReport[_0x885b('0x42')][_0x8a66c0[_0x885b('0x43')]];_0x27dede[_0x885b('0x44')]=_0x8a66c0[_0x885b('0x45')];RpcVoiceTransferReport[_0x885b('0x1e')](_0x27dede);delete RpcVoiceTransferReport[_0x885b('0x42')][_0x8a66c0['linkedid']];}RpcVoiceCallReport[_0x885b('0x2e')](_0x8a66c0);if(_0x8a66c0[_0x885b('0x46')]){for(var _0x770ea1=0x0;_0x770ea1<_0x8a66c0[_0x885b('0x47')]['length'];_0x770ea1+=0x1){_0x8a66c0[_0x885b('0x48')]=_0x8a66c0['monitors'][_0x770ea1][_0x885b('0x49')];_0x8a66c0['createdAt']=_0x8a66c0[_0x885b('0x47')][_0x770ea1][_0x885b('0x4a')];if(_0x8a66c0[_0x885b('0x30')]==_0x885b('0x39')){_0x8a66c0['calleridnum']=_0x8a66c0[_0x885b('0x40')];_0x8a66c0[_0x885b('0x41')]=_0x8a66c0[_0x885b('0x4b')];_0x8a66c0[_0x885b('0x40')]=_0x8a66c0[_0x885b('0x22')];_0x8a66c0[_0x885b('0x4b')]=_0x8a66c0[_0x885b('0x4c')];_0x8a66c0[_0x885b('0x30')]=_0x8a66c0[_0x885b('0x3b')];}else if(_0x8a66c0[_0x885b('0x30')]==_0x885b('0x4d')){_0x8a66c0['calleridnum']=_0x8a66c0[_0x885b('0x38')];_0x8a66c0['exten']=_0x8a66c0[_0x885b('0x3b')];}RpcVoiceRecording['create'](_0x8a66c0);}}};Report[_0x885b('0x12')][_0x885b('0x1b')]=function(_0x5005bb){if(_[_0x885b('0x4e')](_0x5005bb)){_0x5005bb['forEach'](function(_0x518721){RpcVoiceAgentReport[_0x885b('0x2e')](_0x518721);});}else{RpcVoiceAgentReport[_0x885b('0x2e')](_0x5005bb);}};Report[_0x885b('0x12')][_0x885b('0x1d')]=function(_0x25588b){RpcVoiceDialReport[_0x885b('0x2e')](_0x25588b);var _0x3b9b2f;var _0x2e2ed2;var _0x2ba678=_0x25588b['channel'];if(_['startsWith'](_0x2ba678,'Local')){_0x2e2ed2=_0x2ba678['substring'](_0x2ba678['indexOf']('/')+0x1,_0x2ba678[_0x885b('0x4f')]('@'));_0x3b9b2f=_[_0x885b('0x21')](this['agents'],function(_0x40fe6e){return _0x40fe6e['mobile']==_0x2e2ed2||_0x40fe6e[_0x885b('0x50')]==_0x2e2ed2||_0x40fe6e[_0x885b('0x22')]==_0x2e2ed2;});}else{_0x2e2ed2=_0x2ba678[_0x885b('0x51')](_0x2ba678[_0x885b('0x4f')]('/')+0x1,_0x2ba678['lastIndexOf']('-'));_0x3b9b2f=this['findAgent'](_0x2e2ed2);}if(_0x3b9b2f){_0x25588b[_0x885b('0x25')]=_[_0x885b('0x24')](_0x3b9b2f['interface'])?util[_0x885b('0x26')](_0x885b('0x27'),_0x3b9b2f['name']):_0x3b9b2f[_0x885b('0x25')];_0x25588b[_0x885b('0x4c')]=_0x3b9b2f[_0x885b('0x23')];_0x25588b[_0x885b('0x22')]=_0x3b9b2f[_0x885b('0x22')];RpcMemberReport[_0x885b('0x1d')](_0x25588b);}};Report[_0x885b('0x12')][_0x885b('0x1e')]=function(_0x5de044){RpcVoiceTransferReport[_0x885b('0x42')][_0x5de044[_0x885b('0x52')]]=_0x5de044;};Report[_0x885b('0x12')][_0x885b('0x53')]=function(_0x10a73c){RpcVoiceTransferReport[_0x885b('0x53')](_0x10a73c);};module['exports']=Report;