9339b2a566dae2b173a94524c3a480691ec8baff
[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 _0xefe2=['linkedid','transfereelinkedid','uniqueid','UserId','membername','monitor','monitors','filename','createdAt','exten','xcally-motion-preview','forEach','startsWith','Local','substring','indexOf','lastIndexOf','blindTransfer','exports','lodash','moment','../../../config/environment','../ami','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceDialReport','./userReport','agents','prototype','realtime','custom:voiceQueueReport','voiceQueueReport','bind','voiceAgentReport','voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','find','accountcode','name','interface','SIP/%s','length','findAgent','connectedlinenum','assigned','lastAssignedTo','isNil','format','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','getAgentByInternal','keys','getCallType','channel','split','calleridnum','outbound','destination','type','dialer','lastapplication','queue','lastdata','from-voip-provider','from-sip','originatecalleridnum','destinationchannel','callerid','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers'];(function(_0x364e9f,_0x365f48){var _0x3ea57b=function(_0x28cec4){while(--_0x28cec4){_0x364e9f['push'](_0x364e9f['shift']());}};_0x3ea57b(++_0x365f48);}(_0xefe2,0x109));var _0x2efe=function(_0x24e22a,_0x2d347a){_0x24e22a=_0x24e22a-0x0;var _0x4bad6b=_0xefe2[_0x24e22a];return _0x4bad6b;};'use strict';var _=require(_0x2efe('0x0'));var moment=require(_0x2efe('0x1'));var util=require('util');var config=require(_0x2efe('0x2'));var ami=require(_0x2efe('0x3'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x2efe('0x4'));var RpcVoiceQueueReport=require(_0x2efe('0x5'));var RpcVoiceRecording=require(_0x2efe('0x6'));var RpcVoiceTransferReport=require(_0x2efe('0x7'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x2efe('0x8'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x2efe('0x9'));var UserReport=require(_0x2efe('0xa'));function Report(_0x55ad53){this['realtime']=_0x55ad53;this['agents']=_0x55ad53[_0x2efe('0xb')];this['telephones']=_0x55ad53['telephones'];}Report[_0x2efe('0xc')]['sync']=function(_0x4dae04){var _0x3062bf=new VoiceQueueReport(this['realtime']);var _0x9ffdd7=new VoiceAgentReport(this[_0x2efe('0xd')]);var _0x4e1969=new VoiceDialReport(this[_0x2efe('0xd')]);var _0x23a39d=new VoiceCallReport(this[_0x2efe('0xd')]);var _0x5cae61=new UserReport(this[_0x2efe('0xd')]);if(config['xdr']&&config['xdr']['disabled']){ami['on'](_0x2efe('0xe'),this[_0x2efe('0xf')][_0x2efe('0x10')](this));ami['on']('custom:voiceCallReport',this['voiceCallReport']['bind'](this));ami['on']('custom:voiceAgentReport',this[_0x2efe('0x11')]['bind'](this));ami['on']('custom:voiceDialReport',this[_0x2efe('0x12')][_0x2efe('0x10')](this));ami['on'](_0x2efe('0x13'),this['blindTransfer'][_0x2efe('0x10')](this));ami['on'](_0x2efe('0x14'),this[_0x2efe('0x15')][_0x2efe('0x10')](this));}};Report[_0x2efe('0xc')]['findAgent']=function(_0x35bc15){var _0x376b54;_0x376b54=_[_0x2efe('0x16')](this['agents'],function(_0xca23cd){return _0xca23cd['accountcode']==_0x35bc15||_0xca23cd['name']==_0x35bc15;});if(_['isNil'](_0x376b54)){var _0x226024=_[_0x2efe('0x16')](this['telephones'],function(_0x273336){return _0x273336[_0x2efe('0x17')]==_0x35bc15||_0x273336[_0x2efe('0x18')]==_0x35bc15;});if(_0x226024){_0x376b54=_[_0x2efe('0x16')](this['agents'],function(_0xd48853){return _0xd48853[_0x2efe('0x19')]==util['format'](_0x2efe('0x1a'),_0x226024[_0x2efe('0x18')]);});}}return _0x376b54;};Report[_0x2efe('0xc')][_0x2efe('0xf')]=function(_0x15787c){for(var _0x3cdd4d=0x0;_0x3cdd4d<_0x15787c[_0x2efe('0x1b')];_0x3cdd4d+=0x1){var _0x398fef=this[_0x2efe('0x1c')](_0x15787c[_0x3cdd4d][_0x2efe('0x1d')]);if(_0x398fef){_0x15787c[_0x3cdd4d][_0x2efe('0x17')]=_0x398fef[_0x2efe('0x17')];_0x15787c[_0x3cdd4d][_0x2efe('0x1e')]=!![];_0x15787c[_0x3cdd4d][_0x2efe('0x1f')]=_0x398fef[_0x2efe('0x18')];_0x15787c[_0x3cdd4d]['interface']=_[_0x2efe('0x20')](_0x398fef['interface'])?util[_0x2efe('0x21')](_0x2efe('0x1a'),_0x398fef['name']):_0x398fef[_0x2efe('0x19')];if(_0x15787c[_0x3cdd4d]['queuecallercomplete']){_0x15787c[_0x3cdd4d][_0x2efe('0x22')]=moment()[_0x2efe('0x21')](_0x2efe('0x23'));}if(_0x15787c[_0x3cdd4d][_0x2efe('0x24')]){_0x15787c[_0x3cdd4d][_0x2efe('0x25')]=moment()[_0x2efe('0x21')](_0x2efe('0x23'));}RpcMemberReport[_0x2efe('0xf')](_0x15787c[_0x3cdd4d]);}RpcVoiceQueueReport[_0x2efe('0x26')](_0x15787c[_0x3cdd4d]);}};function extractCalleridNumber(_0x16e8df){var _0x4572b4=_0x16e8df[_0x2efe('0x27')](/<(.*?)>/);return _0x4572b4?_0x4572b4[0x1]:_0x16e8df;}Report[_0x2efe('0xc')][_0x2efe('0x28')]=function(_0x85c0e8){for(var _0x2a606f=0x0;_0x2a606f<Object[_0x2efe('0x29')](this['agents'])[_0x2efe('0x1b')];_0x2a606f++){var _0x5128fd=Object[_0x2efe('0x29')](this[_0x2efe('0xb')])[_0x2a606f];var _0x55898c=this[_0x2efe('0xb')][_0x5128fd];if(_0x55898c[_0x2efe('0x17')]===Number(_0x85c0e8))return _0x55898c;}return null;};Report[_0x2efe('0xc')][_0x2efe('0x2a')]=function(_0x5e7000){var _0x17adcf=_0x5e7000[_0x2efe('0x2b')][_0x2efe('0x2c')]('-')[0x0];var _0x23a242=this[_0x2efe('0xb')][_0x17adcf];if(!_0x23a242)_0x23a242=this[_0x2efe('0x28')](_0x5e7000[_0x2efe('0x2d')]);return!_0x23a242?_0x2efe('0x2e'):'internal';};Report[_0x2efe('0xc')]['voiceCallReport']=function(_0x56eb44){_0x56eb44[_0x2efe('0x2f')]=_0x56eb44[_0x2efe('0x2f')]||_0x56eb44['exten'];if(_0x56eb44[_0x2efe('0x30')]==_0x2efe('0x31')){_0x56eb44[_0x2efe('0x32')]=_0x2efe('0x33');_0x56eb44[_0x2efe('0x34')]=_0x56eb44[_0x2efe('0x33')];if(_0x56eb44['context']==_0x2efe('0x35')){_0x56eb44[_0x2efe('0x17')]='';_0x56eb44[_0x2efe('0x2f')]=extractCalleridNumber(_0x56eb44['callerid']);}else if(_0x56eb44['context']==_0x2efe('0x36')){if(_0x56eb44[_0x2efe('0x2f')]=='xcally-motion-preview'){_0x56eb44[_0x2efe('0x2f')]=extractCalleridNumber(_0x56eb44['calleridpreview']);_0x56eb44[_0x2efe('0x2d')]=_0x56eb44[_0x2efe('0x37')];_0x56eb44['destinationchannel']=[_0x56eb44[_0x2efe('0x2b')],_0x56eb44['channel']=_0x56eb44[_0x2efe('0x38')]][0x0];_0x56eb44[_0x2efe('0x39')]=_0x56eb44['calleridpreview'];}else{_0x56eb44[_0x2efe('0x2f')]=_0x56eb44[_0x2efe('0x2d')];_0x56eb44['calleridnum']=_0x56eb44[_0x2efe('0x37')];if(_0x56eb44[_0x2efe('0x3a')]==_0x2efe('0x3b')){_0x56eb44[_0x2efe('0x17')]=_0x56eb44[_0x2efe('0x1d')];}else{_0x56eb44[_0x2efe('0x17')]='';}}}}else{_0x56eb44[_0x2efe('0x39')]=util[_0x2efe('0x21')](_0x2efe('0x3c'),_0x56eb44[_0x2efe('0x3d')],_0x56eb44[_0x2efe('0x2d')]);}if(RpcVoiceTransferReport[_0x2efe('0x3e')][_0x56eb44[_0x2efe('0x3f')]]){var _0x590506=RpcVoiceTransferReport[_0x2efe('0x3e')][_0x56eb44[_0x2efe('0x3f')]];_0x590506[_0x2efe('0x40')]=_0x56eb44[_0x2efe('0x41')];RpcVoiceTransferReport['blindTransfer'](_0x590506);delete RpcVoiceTransferReport[_0x2efe('0x3e')][_0x56eb44[_0x2efe('0x3f')]];}if(_[_0x2efe('0x20')](_0x56eb44[_0x2efe('0x30')])){_0x56eb44[_0x2efe('0x30')]=this[_0x2efe('0x2a')](_0x56eb44);}if(_[_0x2efe('0x20')](_0x56eb44['UserId'])){var _0x4fe28e=_0x56eb44['channel'][_0x2efe('0x2c')]('-')[0x0];var _0x1ffc47=this[_0x2efe('0xb')][_0x4fe28e];if(!_0x1ffc47)_0x1ffc47=this[_0x2efe('0x28')](_0x56eb44['accountcode']);if(_0x1ffc47){_0x56eb44[_0x2efe('0x42')]=_0x1ffc47['id'];_0x56eb44[_0x2efe('0x43')]=_0x1ffc47[_0x2efe('0x18')];}}RpcVoiceCallReport['create'](_0x56eb44);if(_0x56eb44[_0x2efe('0x44')]){for(var _0x5813c9=0x0;_0x5813c9<_0x56eb44[_0x2efe('0x45')][_0x2efe('0x1b')];_0x5813c9+=0x1){_0x56eb44['monitorFilename']=_0x56eb44[_0x2efe('0x45')][_0x5813c9][_0x2efe('0x46')];_0x56eb44['createdAt']=_0x56eb44[_0x2efe('0x45')][_0x5813c9][_0x2efe('0x47')];if(_0x56eb44[_0x2efe('0x48')]==_0x2efe('0x49')){_0x56eb44[_0x2efe('0x2d')]=_0x56eb44[_0x2efe('0x1d')];_0x56eb44[_0x2efe('0x3d')]=_0x56eb44['connectedlinename'];_0x56eb44['connectedlinenum']=_0x56eb44[_0x2efe('0x17')];_0x56eb44['connectedlinename']=_0x56eb44['membername'];_0x56eb44['exten']=_0x56eb44[_0x2efe('0x37')];}else if(_0x56eb44[_0x2efe('0x48')]=='xcally-motion-dialer'){_0x56eb44[_0x2efe('0x2d')]=_0x56eb44['destination'];_0x56eb44[_0x2efe('0x48')]=_0x56eb44[_0x2efe('0x37')];}RpcVoiceRecording[_0x2efe('0x26')](_0x56eb44);}}};Report['prototype'][_0x2efe('0x11')]=function(_0x183147){if(_['isArray'](_0x183147)){_0x183147[_0x2efe('0x4a')](function(_0x5bb20a){RpcVoiceAgentReport[_0x2efe('0x26')](_0x5bb20a);});}else{RpcVoiceAgentReport[_0x2efe('0x26')](_0x183147);}};Report['prototype'][_0x2efe('0x12')]=function(_0x14c3d7){RpcVoiceDialReport[_0x2efe('0x26')](_0x14c3d7);var _0x5ee2f3;var _0x56fbc5;var _0x17425a=_0x14c3d7[_0x2efe('0x2b')];if(_[_0x2efe('0x4b')](_0x17425a,_0x2efe('0x4c'))){_0x56fbc5=_0x17425a[_0x2efe('0x4d')](_0x17425a['indexOf']('/')+0x1,_0x17425a['indexOf']('@'));_0x5ee2f3=_[_0x2efe('0x16')](this['agents'],function(_0x48f3ca){return _0x48f3ca['mobile']==_0x56fbc5||_0x48f3ca['phone']==_0x56fbc5||_0x48f3ca['accountcode']==_0x56fbc5;});}else{_0x56fbc5=_0x17425a[_0x2efe('0x4d')](_0x17425a[_0x2efe('0x4e')]('/')+0x1,_0x17425a[_0x2efe('0x4f')]('-'));_0x5ee2f3=this[_0x2efe('0x1c')](_0x56fbc5);}if(_0x5ee2f3){_0x14c3d7[_0x2efe('0x19')]=_['isNil'](_0x5ee2f3[_0x2efe('0x19')])?util[_0x2efe('0x21')](_0x2efe('0x1a'),_0x5ee2f3['name']):_0x5ee2f3[_0x2efe('0x19')];_0x14c3d7[_0x2efe('0x43')]=_0x5ee2f3[_0x2efe('0x18')];_0x14c3d7[_0x2efe('0x17')]=_0x5ee2f3[_0x2efe('0x17')];RpcMemberReport[_0x2efe('0x12')](_0x14c3d7);}};Report[_0x2efe('0xc')][_0x2efe('0x50')]=function(_0x56cace){RpcVoiceTransferReport['transfers'][_0x56cace['transfererlinkedid']]=_0x56cace;};Report[_0x2efe('0xc')][_0x2efe('0x15')]=function(_0x566994){RpcVoiceTransferReport[_0x2efe('0x15')](_0x566994);};module[_0x2efe('0x51')]=Report;