c61366a9bb087764b4d952bcb39a559d4d1cae1c
[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 _0xadd9=['uniqueid','getCallType','UserId','monitor','monitors','monitorFilename','filename','connectedlinename','membername','isArray','forEach','startsWith','Local','substring','indexOf','mobile','phone','transfererlinkedid','exports','lodash','moment','util','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceAgentReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','name','isNil','accountcode','format','SIP/%s','length','connectedlinenum','assigned','interface','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','create','match','getAgentByInternal','keys','split','calleridnum','outbound','destination','exten','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','originatecalleridnum','destinationchannel','channel','calleridpreview','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid'];(function(_0x411db2,_0x35c3db){var _0x2f760a=function(_0x4464c7){while(--_0x4464c7){_0x411db2['push'](_0x411db2['shift']());}};_0x2f760a(++_0x35c3db);}(_0xadd9,0xc5));var _0x9add=function(_0x4ac007,_0x3632ae){_0x4ac007=_0x4ac007-0x0;var _0x42e227=_0xadd9[_0x4ac007];return _0x42e227;};'use strict';var _=require(_0x9add('0x0'));var moment=require(_0x9add('0x1'));var util=require(_0x9add('0x2'));var config=require('../../../config/environment');var ami=require('../ami');var RpcVoiceAgentReport=require(_0x9add('0x3'));var RpcVoiceCallReport=require(_0x9add('0x4'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x9add('0x5'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x9add('0x6'));var RpcVoiceTransferReport=require(_0x9add('0x7'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x9add('0x8'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x9add('0x9'));function Report(_0x5eb360){this[_0x9add('0xa')]=_0x5eb360;this[_0x9add('0xb')]=_0x5eb360[_0x9add('0xb')];this[_0x9add('0xc')]=_0x5eb360[_0x9add('0xc')];}Report[_0x9add('0xd')][_0x9add('0xe')]=function(_0x1b0629){var _0x488a1c=new VoiceQueueReport(this[_0x9add('0xa')]);var _0x4f30a5=new VoiceAgentReport(this[_0x9add('0xa')]);var _0x2a054c=new VoiceDialReport(this[_0x9add('0xa')]);var _0x3c5026=new VoiceCallReport(this[_0x9add('0xa')]);var _0x222031=new UserReport(this['realtime']);if(config[_0x9add('0xf')]&&config[_0x9add('0xf')]['disabled']){ami['on'](_0x9add('0x10'),this[_0x9add('0x11')][_0x9add('0x12')](this));ami['on'](_0x9add('0x13'),this[_0x9add('0x14')][_0x9add('0x12')](this));ami['on']('custom:voiceAgentReport',this[_0x9add('0x15')]['bind'](this));ami['on']('custom:voiceDialReport',this[_0x9add('0x16')]['bind'](this));ami['on'](_0x9add('0x17'),this[_0x9add('0x18')]['bind'](this));ami['on'](_0x9add('0x19'),this[_0x9add('0x1a')][_0x9add('0x12')](this));}};Report[_0x9add('0xd')][_0x9add('0x1b')]=function(_0x5e9ddf){var _0x3e76bb;_0x3e76bb=_[_0x9add('0x1c')](this[_0x9add('0xb')],function(_0x44c6d6){return _0x44c6d6['accountcode']==_0x5e9ddf||_0x44c6d6[_0x9add('0x1d')]==_0x5e9ddf;});if(_[_0x9add('0x1e')](_0x3e76bb)){var _0x4615ac=_['find'](this[_0x9add('0xc')],function(_0x2a5a12){return _0x2a5a12[_0x9add('0x1f')]==_0x5e9ddf||_0x2a5a12[_0x9add('0x1d')]==_0x5e9ddf;});if(_0x4615ac){_0x3e76bb=_[_0x9add('0x1c')](this[_0x9add('0xb')],function(_0xffaa5d){return _0xffaa5d['interface']==util[_0x9add('0x20')](_0x9add('0x21'),_0x4615ac[_0x9add('0x1d')]);});}}return _0x3e76bb;};Report['prototype'][_0x9add('0x11')]=function(_0xf58f4b){for(var _0x178236=0x0;_0x178236<_0xf58f4b[_0x9add('0x22')];_0x178236+=0x1){var _0x5af983=this[_0x9add('0x1b')](_0xf58f4b[_0x178236][_0x9add('0x23')]);if(_0x5af983){_0xf58f4b[_0x178236]['accountcode']=_0x5af983[_0x9add('0x1f')];_0xf58f4b[_0x178236][_0x9add('0x24')]=!![];_0xf58f4b[_0x178236]['lastAssignedTo']=_0x5af983['name'];_0xf58f4b[_0x178236][_0x9add('0x25')]=_['isNil'](_0x5af983[_0x9add('0x25')])?util[_0x9add('0x20')](_0x9add('0x21'),_0x5af983[_0x9add('0x1d')]):_0x5af983[_0x9add('0x25')];if(_0xf58f4b[_0x178236][_0x9add('0x26')]){_0xf58f4b[_0x178236]['queuecallercompleteAt']=moment()[_0x9add('0x20')](_0x9add('0x27'));}if(_0xf58f4b[_0x178236]['queuecallerexit']){_0xf58f4b[_0x178236]['queuecallerexitAt']=moment()[_0x9add('0x20')](_0x9add('0x27'));}RpcMemberReport['voiceQueueReport'](_0xf58f4b[_0x178236]);}RpcVoiceQueueReport[_0x9add('0x28')](_0xf58f4b[_0x178236]);}};function extractCalleridNumber(_0x5a27d1){var _0x16be0e=_0x5a27d1[_0x9add('0x29')](/<(.*?)>/);return _0x16be0e?_0x16be0e[0x1]:_0x5a27d1;}Report[_0x9add('0xd')][_0x9add('0x2a')]=function(_0x3565b2){for(var _0x1fd545=0x0;_0x1fd545<Object[_0x9add('0x2b')](this[_0x9add('0xb')])['length'];_0x1fd545++){var _0xa30b7=Object[_0x9add('0x2b')](this[_0x9add('0xb')])[_0x1fd545];var _0x99251=this[_0x9add('0xb')][_0xa30b7];if(_0x99251['accountcode']===Number(_0x3565b2))return _0x99251;}return null;};Report[_0x9add('0xd')]['getCallType']=function(_0x593504){var _0x2074b5=_0x593504['channel'][_0x9add('0x2c')]('-')[0x0];var _0x3c9f54=this[_0x9add('0xb')][_0x2074b5];if(!_0x3c9f54)_0x3c9f54=this[_0x9add('0x2a')](_0x593504[_0x9add('0x2d')]);return!_0x3c9f54?_0x9add('0x2e'):'internal';};Report['prototype'][_0x9add('0x14')]=function(_0x3988b4){_0x3988b4[_0x9add('0x2f')]=_0x3988b4['destination']||_0x3988b4[_0x9add('0x30')];if(_0x3988b4[_0x9add('0x31')]==_0x9add('0x32')){_0x3988b4[_0x9add('0x33')]=_0x9add('0x34');_0x3988b4[_0x9add('0x35')]=_0x3988b4[_0x9add('0x34')];if(_0x3988b4[_0x9add('0x36')]==_0x9add('0x37')){_0x3988b4['accountcode']='';_0x3988b4[_0x9add('0x2f')]=extractCalleridNumber(_0x3988b4[_0x9add('0x38')]);}else if(_0x3988b4['context']==_0x9add('0x39')){if(_0x3988b4[_0x9add('0x2f')]==_0x9add('0x3a')){_0x3988b4['destination']=extractCalleridNumber(_0x3988b4['calleridpreview']);_0x3988b4[_0x9add('0x2d')]=_0x3988b4[_0x9add('0x3b')];_0x3988b4[_0x9add('0x3c')]=[_0x3988b4['channel'],_0x3988b4[_0x9add('0x3d')]=_0x3988b4[_0x9add('0x3c')]][0x0];_0x3988b4['callerid']=_0x3988b4[_0x9add('0x3e')];}else{_0x3988b4[_0x9add('0x2f')]=_0x3988b4[_0x9add('0x2d')];_0x3988b4[_0x9add('0x2d')]=_0x3988b4[_0x9add('0x3b')];if(_0x3988b4[_0x9add('0x3f')]==_0x9add('0x40')){_0x3988b4[_0x9add('0x1f')]=_0x3988b4['connectedlinenum'];}else{_0x3988b4[_0x9add('0x1f')]='';}}}}else{_0x3988b4[_0x9add('0x38')]=util[_0x9add('0x20')](_0x9add('0x41'),_0x3988b4[_0x9add('0x42')],_0x3988b4['calleridnum']);}if(RpcVoiceTransferReport[_0x9add('0x43')][_0x3988b4[_0x9add('0x44')]]){var _0x5a78b5=RpcVoiceTransferReport[_0x9add('0x43')][_0x3988b4['linkedid']];_0x5a78b5[_0x9add('0x45')]=_0x3988b4[_0x9add('0x46')];RpcVoiceTransferReport[_0x9add('0x18')](_0x5a78b5);delete RpcVoiceTransferReport[_0x9add('0x43')][_0x3988b4[_0x9add('0x44')]];}if(_[_0x9add('0x1e')](_0x3988b4['type'])){_0x3988b4[_0x9add('0x31')]=this[_0x9add('0x47')](_0x3988b4);}if(_[_0x9add('0x1e')](_0x3988b4[_0x9add('0x48')])){var _0x29b9a3=_0x3988b4[_0x9add('0x3d')][_0x9add('0x2c')]('-')[0x0];var _0x3212ff=this[_0x9add('0xb')][_0x29b9a3];if(!_0x3212ff)_0x3212ff=this['getAgentByInternal'](_0x3988b4[_0x9add('0x1f')]);if(_0x3212ff){_0x3988b4[_0x9add('0x48')]=_0x3212ff['id'];_0x3988b4['membername']=_0x3212ff[_0x9add('0x1d')];}}RpcVoiceCallReport[_0x9add('0x28')](_0x3988b4);if(_0x3988b4[_0x9add('0x49')]){for(var _0xf1290b=0x0;_0xf1290b<_0x3988b4[_0x9add('0x4a')]['length'];_0xf1290b+=0x1){_0x3988b4[_0x9add('0x4b')]=_0x3988b4['monitors'][_0xf1290b][_0x9add('0x4c')];_0x3988b4['createdAt']=_0x3988b4[_0x9add('0x4a')][_0xf1290b]['createdAt'];if(_0x3988b4[_0x9add('0x30')]==_0x9add('0x3a')){_0x3988b4[_0x9add('0x2d')]=_0x3988b4[_0x9add('0x23')];_0x3988b4[_0x9add('0x42')]=_0x3988b4[_0x9add('0x4d')];_0x3988b4[_0x9add('0x23')]=_0x3988b4['accountcode'];_0x3988b4[_0x9add('0x4d')]=_0x3988b4[_0x9add('0x4e')];_0x3988b4[_0x9add('0x30')]=_0x3988b4[_0x9add('0x3b')];}else if(_0x3988b4[_0x9add('0x30')]=='xcally-motion-dialer'){_0x3988b4['calleridnum']=_0x3988b4[_0x9add('0x2f')];_0x3988b4['exten']=_0x3988b4['originatecalleridnum'];}RpcVoiceRecording[_0x9add('0x28')](_0x3988b4);}}};Report[_0x9add('0xd')]['voiceAgentReport']=function(_0x550110){if(_[_0x9add('0x4f')](_0x550110)){_0x550110[_0x9add('0x50')](function(_0x10fdb8){RpcVoiceAgentReport['create'](_0x10fdb8);});}else{RpcVoiceAgentReport[_0x9add('0x28')](_0x550110);}};Report['prototype'][_0x9add('0x16')]=function(_0x3c24ff){RpcVoiceDialReport[_0x9add('0x28')](_0x3c24ff);var _0x3b395a;var _0x3e7d3e;var _0x258880=_0x3c24ff['channel'];if(_[_0x9add('0x51')](_0x258880,_0x9add('0x52'))){_0x3e7d3e=_0x258880[_0x9add('0x53')](_0x258880[_0x9add('0x54')]('/')+0x1,_0x258880[_0x9add('0x54')]('@'));_0x3b395a=_['find'](this[_0x9add('0xb')],function(_0x4b233b){return _0x4b233b[_0x9add('0x55')]==_0x3e7d3e||_0x4b233b[_0x9add('0x56')]==_0x3e7d3e||_0x4b233b[_0x9add('0x1f')]==_0x3e7d3e;});}else{_0x3e7d3e=_0x258880[_0x9add('0x53')](_0x258880[_0x9add('0x54')]('/')+0x1,_0x258880['lastIndexOf']('-'));_0x3b395a=this['findAgent'](_0x3e7d3e);}if(_0x3b395a){_0x3c24ff['interface']=_[_0x9add('0x1e')](_0x3b395a[_0x9add('0x25')])?util[_0x9add('0x20')](_0x9add('0x21'),_0x3b395a[_0x9add('0x1d')]):_0x3b395a['interface'];_0x3c24ff[_0x9add('0x4e')]=_0x3b395a[_0x9add('0x1d')];_0x3c24ff[_0x9add('0x1f')]=_0x3b395a['accountcode'];RpcMemberReport[_0x9add('0x16')](_0x3c24ff);}};Report['prototype']['blindTransfer']=function(_0x2acaed){RpcVoiceTransferReport[_0x9add('0x43')][_0x2acaed[_0x9add('0x57')]]=_0x2acaed;};Report[_0x9add('0xd')][_0x9add('0x1a')]=function(_0x17d0ed){RpcVoiceTransferReport[_0x9add('0x1a')](_0x17d0ed);};module[_0x9add('0x58')]=Report;