Built motion from commit (unavailable).|2.5.14
[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 _0x211e=['substring','indexOf','phone','lastIndexOf','exports','lodash','moment','util','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','agents','telephones','sync','realtime','disabled','custom:voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','prototype','findAgent','find','interface','format','SIP/%s','name','voiceQueueReport','length','accountcode','assigned','lastAssignedTo','isNil','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','destination','dialer','queue','lastdata','context','from-voip-provider','callerid','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','channel','destinationchannel','disposition','ANSWERED','connectedlinenum','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','uniqueid','monitor','monitorFilename','monitors','filename','createdAt','exten','connectedlinename','membername','forEach','voiceDialReport','startsWith','Local'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x211e,0x1a9));var _0xe211=function(_0x5c646c,_0x3c5e8f){_0x5c646c=_0x5c646c-0x0;var _0x1b9917=_0x211e[_0x5c646c];return _0x1b9917;};'use strict';var _=require(_0xe211('0x0'));var moment=require(_0xe211('0x1'));var util=require(_0xe211('0x2'));var config=require('../../../config/environment');var ami=require(_0xe211('0x3'));var RpcVoiceAgentReport=require(_0xe211('0x4'));var RpcVoiceCallReport=require(_0xe211('0x5'));var RpcVoiceDialReport=require(_0xe211('0x6'));var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0xe211('0x7'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0xe211('0x8'));var VoiceQueueReport=require(_0xe211('0x9'));var VoiceCallReport=require(_0xe211('0xa'));var VoiceAgentReport=require(_0xe211('0xb'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require('./userReport');function Report(_0x4f6090){this['realtime']=_0x4f6090;this[_0xe211('0xc')]=_0x4f6090[_0xe211('0xc')];this[_0xe211('0xd')]=_0x4f6090[_0xe211('0xd')];}Report['prototype'][_0xe211('0xe')]=function(_0x3d73c2){var _0x39f186=new VoiceQueueReport(this[_0xe211('0xf')]);var _0x2efba8=new VoiceAgentReport(this[_0xe211('0xf')]);var _0x384e3f=new VoiceDialReport(this['realtime']);var _0x25af72=new VoiceCallReport(this[_0xe211('0xf')]);var _0x455e86=new UserReport(this['realtime']);if(config['xdr']&&config['xdr'][_0xe211('0x10')]){ami['on'](_0xe211('0x11'),this['voiceQueueReport'][_0xe211('0x12')](this));ami['on'](_0xe211('0x13'),this[_0xe211('0x14')][_0xe211('0x12')](this));ami['on']('custom:voiceAgentReport',this[_0xe211('0x15')][_0xe211('0x12')](this));ami['on']('custom:voiceDialReport',this['voiceDialReport'][_0xe211('0x12')](this));ami['on'](_0xe211('0x16'),this[_0xe211('0x17')][_0xe211('0x12')](this));ami['on'](_0xe211('0x18'),this[_0xe211('0x19')][_0xe211('0x12')](this));}};Report[_0xe211('0x1a')][_0xe211('0x1b')]=function(_0xf18439){var _0x152b70;_0x152b70=_[_0xe211('0x1c')](this[_0xe211('0xc')],function(_0x4ff125){return _0x4ff125['accountcode']==_0xf18439||_0x4ff125['name']==_0xf18439;});if(_['isNil'](_0x152b70)){var _0x53306d=_[_0xe211('0x1c')](this[_0xe211('0xd')],function(_0x27f2b2){return _0x27f2b2['accountcode']==_0xf18439||_0x27f2b2['name']==_0xf18439;});if(_0x53306d){_0x152b70=_['find'](this[_0xe211('0xc')],function(_0x5e9d24){return _0x5e9d24[_0xe211('0x1d')]==util[_0xe211('0x1e')](_0xe211('0x1f'),_0x53306d[_0xe211('0x20')]);});}}return _0x152b70;};Report[_0xe211('0x1a')][_0xe211('0x21')]=function(_0x33c0c9){for(var _0x241c87=0x0;_0x241c87<_0x33c0c9[_0xe211('0x22')];_0x241c87+=0x1){var _0x33ffce=this['findAgent'](_0x33c0c9[_0x241c87]['connectedlinenum']);if(_0x33ffce){_0x33c0c9[_0x241c87]['accountcode']=_0x33ffce[_0xe211('0x23')];_0x33c0c9[_0x241c87][_0xe211('0x24')]=!![];_0x33c0c9[_0x241c87][_0xe211('0x25')]=_0x33ffce[_0xe211('0x20')];_0x33c0c9[_0x241c87][_0xe211('0x1d')]=_[_0xe211('0x26')](_0x33ffce['interface'])?util[_0xe211('0x1e')](_0xe211('0x1f'),_0x33ffce['name']):_0x33ffce['interface'];if(_0x33c0c9[_0x241c87][_0xe211('0x27')]){_0x33c0c9[_0x241c87][_0xe211('0x28')]=moment()[_0xe211('0x1e')](_0xe211('0x29'));}if(_0x33c0c9[_0x241c87][_0xe211('0x2a')]){_0x33c0c9[_0x241c87][_0xe211('0x2b')]=moment()[_0xe211('0x1e')](_0xe211('0x29'));}RpcMemberReport['voiceQueueReport'](_0x33c0c9[_0x241c87]);}RpcVoiceQueueReport[_0xe211('0x2c')](_0x33c0c9[_0x241c87]);}};function extractCalleridNumber(_0x8f8a67){var _0x41e102=_0x8f8a67[_0xe211('0x2d')](/<(.*?)>/);return _0x41e102?_0x41e102[0x1]:_0x8f8a67;}Report[_0xe211('0x1a')][_0xe211('0x14')]=function(_0x1a4ca3){_0x1a4ca3[_0xe211('0x2e')]=_0x1a4ca3[_0xe211('0x2e')]||_0x1a4ca3['exten'];if(_0x1a4ca3['type']==_0xe211('0x2f')){_0x1a4ca3['lastapplication']=_0xe211('0x30');_0x1a4ca3[_0xe211('0x31')]=_0x1a4ca3[_0xe211('0x30')];if(_0x1a4ca3[_0xe211('0x32')]==_0xe211('0x33')){_0x1a4ca3[_0xe211('0x23')]='';_0x1a4ca3[_0xe211('0x2e')]=extractCalleridNumber(_0x1a4ca3[_0xe211('0x34')]);}else if(_0x1a4ca3[_0xe211('0x32')]=='from-sip'){if(_0x1a4ca3['destination']==_0xe211('0x35')){_0x1a4ca3['destination']=extractCalleridNumber(_0x1a4ca3[_0xe211('0x36')]);_0x1a4ca3[_0xe211('0x37')]=_0x1a4ca3[_0xe211('0x38')];_0x1a4ca3['destinationchannel']=[_0x1a4ca3[_0xe211('0x39')],_0x1a4ca3[_0xe211('0x39')]=_0x1a4ca3[_0xe211('0x3a')]][0x0];_0x1a4ca3[_0xe211('0x34')]=_0x1a4ca3[_0xe211('0x36')];}else{_0x1a4ca3[_0xe211('0x2e')]=_0x1a4ca3[_0xe211('0x37')];_0x1a4ca3[_0xe211('0x37')]=_0x1a4ca3[_0xe211('0x38')];if(_0x1a4ca3[_0xe211('0x3b')]==_0xe211('0x3c')){_0x1a4ca3[_0xe211('0x23')]=_0x1a4ca3[_0xe211('0x3d')];}else{_0x1a4ca3['accountcode']='';}}}}else{_0x1a4ca3[_0xe211('0x34')]=util[_0xe211('0x1e')](_0xe211('0x3e'),_0x1a4ca3[_0xe211('0x3f')],_0x1a4ca3[_0xe211('0x37')]);}if(RpcVoiceTransferReport[_0xe211('0x40')][_0x1a4ca3['linkedid']]){var _0x1fbc3c=RpcVoiceTransferReport['transfers'][_0x1a4ca3[_0xe211('0x41')]];_0x1fbc3c['transfereelinkedid']=_0x1a4ca3[_0xe211('0x42')];RpcVoiceTransferReport['blindTransfer'](_0x1fbc3c);delete RpcVoiceTransferReport['transfers'][_0x1a4ca3[_0xe211('0x41')]];}RpcVoiceCallReport[_0xe211('0x2c')](_0x1a4ca3);if(_0x1a4ca3[_0xe211('0x43')]){for(var _0x11fa44=0x0;_0x11fa44<_0x1a4ca3['monitors'][_0xe211('0x22')];_0x11fa44+=0x1){_0x1a4ca3[_0xe211('0x44')]=_0x1a4ca3[_0xe211('0x45')][_0x11fa44][_0xe211('0x46')];_0x1a4ca3[_0xe211('0x47')]=_0x1a4ca3['monitors'][_0x11fa44]['createdAt'];if(_0x1a4ca3[_0xe211('0x48')]=='xcally-motion-preview'){_0x1a4ca3[_0xe211('0x37')]=_0x1a4ca3['connectedlinenum'];_0x1a4ca3['calleridname']=_0x1a4ca3[_0xe211('0x49')];_0x1a4ca3['connectedlinenum']=_0x1a4ca3[_0xe211('0x23')];_0x1a4ca3[_0xe211('0x49')]=_0x1a4ca3[_0xe211('0x4a')];_0x1a4ca3[_0xe211('0x48')]=_0x1a4ca3[_0xe211('0x38')];}else if(_0x1a4ca3[_0xe211('0x48')]=='xcally-motion-dialer'){_0x1a4ca3[_0xe211('0x37')]=_0x1a4ca3[_0xe211('0x2e')];_0x1a4ca3[_0xe211('0x48')]=_0x1a4ca3[_0xe211('0x38')];}RpcVoiceRecording['create'](_0x1a4ca3);}}};Report[_0xe211('0x1a')]['voiceAgentReport']=function(_0x4ed473){if(_['isArray'](_0x4ed473)){_0x4ed473[_0xe211('0x4b')](function(_0x34b948){RpcVoiceAgentReport['create'](_0x34b948);});}else{RpcVoiceAgentReport['create'](_0x4ed473);}};Report[_0xe211('0x1a')][_0xe211('0x4c')]=function(_0x1a5dfc){RpcVoiceDialReport[_0xe211('0x2c')](_0x1a5dfc);var _0xd24b1b;var _0x222e79;var _0x59762b=_0x1a5dfc['channel'];if(_[_0xe211('0x4d')](_0x59762b,_0xe211('0x4e'))){_0x222e79=_0x59762b[_0xe211('0x4f')](_0x59762b[_0xe211('0x50')]('/')+0x1,_0x59762b[_0xe211('0x50')]('@'));_0xd24b1b=_[_0xe211('0x1c')](this[_0xe211('0xc')],function(_0x1c3228){return _0x1c3228['mobile']==_0x222e79||_0x1c3228[_0xe211('0x51')]==_0x222e79||_0x1c3228[_0xe211('0x23')]==_0x222e79;});}else{_0x222e79=_0x59762b[_0xe211('0x4f')](_0x59762b[_0xe211('0x50')]('/')+0x1,_0x59762b[_0xe211('0x52')]('-'));_0xd24b1b=this['findAgent'](_0x222e79);}if(_0xd24b1b){_0x1a5dfc['interface']=_[_0xe211('0x26')](_0xd24b1b[_0xe211('0x1d')])?util[_0xe211('0x1e')](_0xe211('0x1f'),_0xd24b1b['name']):_0xd24b1b[_0xe211('0x1d')];_0x1a5dfc[_0xe211('0x4a')]=_0xd24b1b[_0xe211('0x20')];_0x1a5dfc[_0xe211('0x23')]=_0xd24b1b['accountcode'];RpcMemberReport[_0xe211('0x4c')](_0x1a5dfc);}};Report[_0xe211('0x1a')][_0xe211('0x17')]=function(_0x4ada24){RpcVoiceTransferReport['transfers'][_0x4ada24['transfererlinkedid']]=_0x4ada24;};Report[_0xe211('0x1a')]['attendedTransfer']=function(_0x47bb91){RpcVoiceTransferReport[_0xe211('0x19')](_0x47bb91);};module[_0xe211('0x53')]=Report;