94fa754aae4818997f7e72f38fcca6fdd7c29194
[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 _0x218e=['./voiceDialReport','./userReport','realtime','agents','telephones','prototype','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','accountcode','isNil','find','name','SIP/%s','assigned','lastAssignedTo','interface','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','format','match','length','channel','split','getAgentByInternal','calleridnum','outbound','internal','voiceCallReport','destination','exten','type','dialer','queue','lastdata','context','callerid','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','connectedlinenum','transfers','transfereelinkedid','linkedid','getCallType','UserId','membername','create','monitor','monitors','monitorFilename','filename','createdAt','calleridname','connectedlinename','isArray','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../../../config/environment','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport'];(function(_0x5b84df,_0x170403){var _0x162d59=function(_0x4d50f6){while(--_0x4d50f6){_0x5b84df['push'](_0x5b84df['shift']());}};_0x162d59(++_0x170403);}(_0x218e,0x15f));var _0xe218=function(_0x33d2af,_0x9fbbe){_0x33d2af=_0x33d2af-0x0;var _0xb5ae32=_0x218e[_0x33d2af];return _0xb5ae32;};'use strict';var _=require(_0xe218('0x0'));var moment=require(_0xe218('0x1'));var util=require(_0xe218('0x2'));var config=require(_0xe218('0x3'));var ami=require('../ami');var RpcVoiceAgentReport=require(_0xe218('0x4'));var RpcVoiceCallReport=require(_0xe218('0x5'));var RpcVoiceDialReport=require(_0xe218('0x6'));var RpcMemberReport=require(_0xe218('0x7'));var RpcVoiceQueueReport=require(_0xe218('0x8'));var RpcVoiceRecording=require(_0xe218('0x9'));var RpcVoiceTransferReport=require(_0xe218('0xa'));var VoiceQueueReport=require(_0xe218('0xb'));var VoiceCallReport=require(_0xe218('0xc'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xe218('0xd'));var UserReport=require(_0xe218('0xe'));function Report(_0x3946dc){this[_0xe218('0xf')]=_0x3946dc;this[_0xe218('0x10')]=_0x3946dc[_0xe218('0x10')];this[_0xe218('0x11')]=_0x3946dc['telephones'];}Report[_0xe218('0x12')]['sync']=function(_0x419488){var _0x111851=new VoiceQueueReport(this[_0xe218('0xf')]);var _0x45c433=new VoiceAgentReport(this[_0xe218('0xf')]);var _0x4308a2=new VoiceDialReport(this[_0xe218('0xf')]);var _0x269ac4=new VoiceCallReport(this[_0xe218('0xf')]);var _0x2843bc=new UserReport(this[_0xe218('0xf')]);if(config['xdr']&&config[_0xe218('0x13')][_0xe218('0x14')]){ami['on'](_0xe218('0x15'),this[_0xe218('0x16')]['bind'](this));ami['on']('custom:voiceCallReport',this['voiceCallReport'][_0xe218('0x17')](this));ami['on'](_0xe218('0x18'),this[_0xe218('0x19')]['bind'](this));ami['on'](_0xe218('0x1a'),this[_0xe218('0x1b')]['bind'](this));ami['on'](_0xe218('0x1c'),this[_0xe218('0x1d')]['bind'](this));ami['on'](_0xe218('0x1e'),this[_0xe218('0x1f')][_0xe218('0x17')](this));}};Report['prototype'][_0xe218('0x20')]=function(_0x2ab6ff){var _0x3afb1f;_0x3afb1f=_['find'](this[_0xe218('0x10')],function(_0x436265){return _0x436265[_0xe218('0x21')]==_0x2ab6ff||_0x436265['name']==_0x2ab6ff;});if(_[_0xe218('0x22')](_0x3afb1f)){var _0x4c62a6=_[_0xe218('0x23')](this[_0xe218('0x11')],function(_0x5e2699){return _0x5e2699[_0xe218('0x21')]==_0x2ab6ff||_0x5e2699[_0xe218('0x24')]==_0x2ab6ff;});if(_0x4c62a6){_0x3afb1f=_[_0xe218('0x23')](this[_0xe218('0x10')],function(_0x4137d7){return _0x4137d7['interface']==util['format'](_0xe218('0x25'),_0x4c62a6[_0xe218('0x24')]);});}}return _0x3afb1f;};Report[_0xe218('0x12')]['voiceQueueReport']=function(_0x1f7044){for(var _0x4bff0c=0x0;_0x4bff0c<_0x1f7044['length'];_0x4bff0c+=0x1){var _0x543c90=this[_0xe218('0x20')](_0x1f7044[_0x4bff0c]['connectedlinenum']);if(_0x543c90){_0x1f7044[_0x4bff0c]['accountcode']=_0x543c90[_0xe218('0x21')];_0x1f7044[_0x4bff0c][_0xe218('0x26')]=!![];_0x1f7044[_0x4bff0c][_0xe218('0x27')]=_0x543c90['name'];_0x1f7044[_0x4bff0c][_0xe218('0x28')]=_[_0xe218('0x22')](_0x543c90[_0xe218('0x28')])?util['format']('SIP/%s',_0x543c90['name']):_0x543c90['interface'];if(_0x1f7044[_0x4bff0c]['queuecallercomplete']){_0x1f7044[_0x4bff0c][_0xe218('0x29')]=moment()['format'](_0xe218('0x2a'));}if(_0x1f7044[_0x4bff0c]['queuecallerexit']){_0x1f7044[_0x4bff0c][_0xe218('0x2b')]=moment()[_0xe218('0x2c')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0xe218('0x16')](_0x1f7044[_0x4bff0c]);}RpcVoiceQueueReport['create'](_0x1f7044[_0x4bff0c]);}};function extractCalleridNumber(_0x55eda8){var _0x5967a8=_0x55eda8[_0xe218('0x2d')](/<(.*?)>/);return _0x5967a8?_0x5967a8[0x1]:_0x55eda8;}Report['prototype']['getAgentByInternal']=function(_0x3425c4){for(var _0xc182a2=0x0;_0xc182a2<Object['keys'](this[_0xe218('0x10')])[_0xe218('0x2e')];_0xc182a2++){var _0x5de9d9=Object['keys'](this[_0xe218('0x10')])[_0xc182a2];var _0x25a6b7=this['agents'][_0x5de9d9];if(_0x25a6b7['accountcode']===Number(_0x3425c4))return _0x25a6b7;}return null;};Report['prototype']['getCallType']=function(_0x335623){var _0x42d2f4=_0x335623[_0xe218('0x2f')][_0xe218('0x30')]('-')[0x0];var _0x26f259=this[_0xe218('0x10')][_0x42d2f4];if(!_0x26f259)_0x26f259=this[_0xe218('0x31')](_0x335623[_0xe218('0x32')]);return!_0x26f259?_0xe218('0x33'):_0xe218('0x34');};Report[_0xe218('0x12')][_0xe218('0x35')]=function(_0x326518){_0x326518[_0xe218('0x36')]=_0x326518[_0xe218('0x36')]||_0x326518[_0xe218('0x37')];if(_0x326518[_0xe218('0x38')]==_0xe218('0x39')){_0x326518['lastapplication']=_0xe218('0x3a');_0x326518[_0xe218('0x3b')]=_0x326518['queue'];if(_0x326518[_0xe218('0x3c')]=='from-voip-provider'){_0x326518[_0xe218('0x21')]='';_0x326518['destination']=extractCalleridNumber(_0x326518[_0xe218('0x3d')]);}else if(_0x326518[_0xe218('0x3c')]=='from-sip'){if(_0x326518[_0xe218('0x36')]==_0xe218('0x3e')){_0x326518['destination']=extractCalleridNumber(_0x326518[_0xe218('0x3f')]);_0x326518[_0xe218('0x32')]=_0x326518[_0xe218('0x40')];_0x326518[_0xe218('0x41')]=[_0x326518[_0xe218('0x2f')],_0x326518[_0xe218('0x2f')]=_0x326518[_0xe218('0x41')]][0x0];_0x326518[_0xe218('0x3d')]=_0x326518[_0xe218('0x3f')];}else{_0x326518[_0xe218('0x36')]=_0x326518['calleridnum'];_0x326518['calleridnum']=_0x326518[_0xe218('0x40')];if(_0x326518['disposition']=='ANSWERED'){_0x326518[_0xe218('0x21')]=_0x326518[_0xe218('0x42')];}else{_0x326518[_0xe218('0x21')]='';}}}}else{_0x326518['callerid']=util[_0xe218('0x2c')]('\x22%s\x22\x20<%s>',_0x326518['calleridname'],_0x326518[_0xe218('0x32')]);}if(RpcVoiceTransferReport[_0xe218('0x43')][_0x326518['linkedid']]){var _0x4c9dfd=RpcVoiceTransferReport[_0xe218('0x43')][_0x326518['linkedid']];_0x4c9dfd[_0xe218('0x44')]=_0x326518['uniqueid'];RpcVoiceTransferReport[_0xe218('0x1d')](_0x4c9dfd);delete RpcVoiceTransferReport[_0xe218('0x43')][_0x326518[_0xe218('0x45')]];}if(_[_0xe218('0x22')](_0x326518[_0xe218('0x38')])){_0x326518['type']=this[_0xe218('0x46')](_0x326518);}if(_[_0xe218('0x22')](_0x326518[_0xe218('0x47')])){var _0x363451=_0x326518['channel'][_0xe218('0x30')]('-')[0x0];var _0x484713=this[_0xe218('0x10')][_0x363451];if(!_0x484713)_0x484713=this[_0xe218('0x31')](_0x326518[_0xe218('0x21')]);if(_0x484713){_0x326518['UserId']=_0x484713['id'];_0x326518[_0xe218('0x48')]=_0x484713[_0xe218('0x24')];}}RpcVoiceCallReport[_0xe218('0x49')](_0x326518);if(_0x326518[_0xe218('0x4a')]){for(var _0x15e4c9=0x0;_0x15e4c9<_0x326518[_0xe218('0x4b')][_0xe218('0x2e')];_0x15e4c9+=0x1){_0x326518[_0xe218('0x4c')]=_0x326518[_0xe218('0x4b')][_0x15e4c9][_0xe218('0x4d')];_0x326518[_0xe218('0x4e')]=_0x326518[_0xe218('0x4b')][_0x15e4c9][_0xe218('0x4e')];if(_0x326518[_0xe218('0x37')]=='xcally-motion-preview'){_0x326518[_0xe218('0x32')]=_0x326518[_0xe218('0x42')];_0x326518[_0xe218('0x4f')]=_0x326518[_0xe218('0x50')];_0x326518['connectedlinenum']=_0x326518[_0xe218('0x21')];_0x326518[_0xe218('0x50')]=_0x326518[_0xe218('0x48')];_0x326518[_0xe218('0x37')]=_0x326518[_0xe218('0x40')];}else if(_0x326518[_0xe218('0x37')]=='xcally-motion-dialer'){_0x326518[_0xe218('0x32')]=_0x326518[_0xe218('0x36')];_0x326518[_0xe218('0x37')]=_0x326518[_0xe218('0x40')];}RpcVoiceRecording[_0xe218('0x49')](_0x326518);}}};Report['prototype']['voiceAgentReport']=function(_0x3eeab9){if(_[_0xe218('0x51')](_0x3eeab9)){_0x3eeab9['forEach'](function(_0x28e10d){RpcVoiceAgentReport['create'](_0x28e10d);});}else{RpcVoiceAgentReport['create'](_0x3eeab9);}};Report[_0xe218('0x12')]['voiceDialReport']=function(_0x3a9257){RpcVoiceDialReport[_0xe218('0x49')](_0x3a9257);var _0x32570e;var _0x36b5aa;var _0x31d02e=_0x3a9257['channel'];if(_[_0xe218('0x52')](_0x31d02e,_0xe218('0x53'))){_0x36b5aa=_0x31d02e[_0xe218('0x54')](_0x31d02e[_0xe218('0x55')]('/')+0x1,_0x31d02e[_0xe218('0x55')]('@'));_0x32570e=_['find'](this[_0xe218('0x10')],function(_0x479e83){return _0x479e83[_0xe218('0x56')]==_0x36b5aa||_0x479e83[_0xe218('0x57')]==_0x36b5aa||_0x479e83[_0xe218('0x21')]==_0x36b5aa;});}else{_0x36b5aa=_0x31d02e[_0xe218('0x54')](_0x31d02e[_0xe218('0x55')]('/')+0x1,_0x31d02e[_0xe218('0x58')]('-'));_0x32570e=this[_0xe218('0x20')](_0x36b5aa);}if(_0x32570e){_0x3a9257[_0xe218('0x28')]=_[_0xe218('0x22')](_0x32570e[_0xe218('0x28')])?util[_0xe218('0x2c')](_0xe218('0x25'),_0x32570e[_0xe218('0x24')]):_0x32570e[_0xe218('0x28')];_0x3a9257[_0xe218('0x48')]=_0x32570e[_0xe218('0x24')];_0x3a9257[_0xe218('0x21')]=_0x32570e[_0xe218('0x21')];RpcMemberReport[_0xe218('0x1b')](_0x3a9257);}};Report[_0xe218('0x12')][_0xe218('0x1d')]=function(_0x5cfe99){RpcVoiceTransferReport[_0xe218('0x43')][_0x5cfe99[_0xe218('0x59')]]=_0x5cfe99;};Report[_0xe218('0x12')]['attendedTransfer']=function(_0x5a5a85){RpcVoiceTransferReport[_0xe218('0x1f')](_0x5a5a85);};module[_0xe218('0x5a')]=Report;