c3a3c53c6927f11f44feebf8f7059e9fb53078fd
[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 _0xd194=['monitorFilename','monitors','filename','createdAt','connectedlinename','originatecalleridnum','xcally-motion-dialer','isArray','forEach','startsWith','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','agents','telephones','prototype','realtime','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','voiceCallReport','voiceAgentReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','getAgentByInternal','keys','getCallType','split','calleridnum','outbound','internal','destination','exten','dialer','queue','lastdata','from-voip-provider','callerid','context','from-sip','xcally-motion-preview','calleridpreview','destinationchannel','channel','disposition','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','type','UserId','membername','monitor'];(function(_0x3bb072,_0x34d725){var _0x11025e=function(_0x126c47){while(--_0x126c47){_0x3bb072['push'](_0x3bb072['shift']());}};_0x11025e(++_0x34d725);}(_0xd194,0x70));var _0x4d19=function(_0x2d0431,_0x293c98){_0x2d0431=_0x2d0431-0x0;var _0x3cc056=_0xd194[_0x2d0431];return _0x3cc056;};'use strict';var _=require(_0x4d19('0x0'));var moment=require(_0x4d19('0x1'));var util=require(_0x4d19('0x2'));var config=require(_0x4d19('0x3'));var ami=require(_0x4d19('0x4'));var RpcVoiceAgentReport=require(_0x4d19('0x5'));var RpcVoiceCallReport=require(_0x4d19('0x6'));var RpcVoiceDialReport=require(_0x4d19('0x7'));var RpcMemberReport=require(_0x4d19('0x8'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0x4d19('0x9'));var VoiceCallReport=require(_0x4d19('0xa'));var VoiceAgentReport=require(_0x4d19('0xb'));var VoiceDialReport=require(_0x4d19('0xc'));var UserReport=require('./userReport');function Report(_0x43bf63){this['realtime']=_0x43bf63;this[_0x4d19('0xd')]=_0x43bf63[_0x4d19('0xd')];this[_0x4d19('0xe')]=_0x43bf63['telephones'];}Report[_0x4d19('0xf')]['sync']=function(_0x407d3a){var _0x3a18ca=new VoiceQueueReport(this[_0x4d19('0x10')]);var _0x50599d=new VoiceAgentReport(this[_0x4d19('0x10')]);var _0x26ceb7=new VoiceDialReport(this['realtime']);var _0x5bbbd8=new VoiceCallReport(this['realtime']);var _0xadcf6a=new UserReport(this['realtime']);if(config[_0x4d19('0x11')]&&config[_0x4d19('0x11')][_0x4d19('0x12')]){ami['on'](_0x4d19('0x13'),this[_0x4d19('0x14')][_0x4d19('0x15')](this));ami['on']('custom:voiceCallReport',this[_0x4d19('0x16')][_0x4d19('0x15')](this));ami['on']('custom:voiceAgentReport',this[_0x4d19('0x17')][_0x4d19('0x15')](this));ami['on']('custom:voiceDialReport',this[_0x4d19('0x18')][_0x4d19('0x15')](this));ami['on'](_0x4d19('0x19'),this[_0x4d19('0x1a')][_0x4d19('0x15')](this));ami['on'](_0x4d19('0x1b'),this[_0x4d19('0x1c')]['bind'](this));}};Report[_0x4d19('0xf')][_0x4d19('0x1d')]=function(_0x4b2e40){var _0x2422fd;_0x2422fd=_[_0x4d19('0x1e')](this[_0x4d19('0xd')],function(_0xe075eb){return _0xe075eb[_0x4d19('0x1f')]==_0x4b2e40||_0xe075eb[_0x4d19('0x20')]==_0x4b2e40;});if(_[_0x4d19('0x21')](_0x2422fd)){var _0x5692b2=_[_0x4d19('0x1e')](this[_0x4d19('0xe')],function(_0x25856f){return _0x25856f['accountcode']==_0x4b2e40||_0x25856f[_0x4d19('0x20')]==_0x4b2e40;});if(_0x5692b2){_0x2422fd=_[_0x4d19('0x1e')](this[_0x4d19('0xd')],function(_0x5b58d3){return _0x5b58d3[_0x4d19('0x22')]==util[_0x4d19('0x23')](_0x4d19('0x24'),_0x5692b2[_0x4d19('0x20')]);});}}return _0x2422fd;};Report[_0x4d19('0xf')][_0x4d19('0x14')]=function(_0x241906){for(var _0x5c9152=0x0;_0x5c9152<_0x241906[_0x4d19('0x25')];_0x5c9152+=0x1){var _0x13b5a2=this[_0x4d19('0x1d')](_0x241906[_0x5c9152][_0x4d19('0x26')]);if(_0x13b5a2){_0x241906[_0x5c9152][_0x4d19('0x1f')]=_0x13b5a2[_0x4d19('0x1f')];_0x241906[_0x5c9152][_0x4d19('0x27')]=!![];_0x241906[_0x5c9152][_0x4d19('0x28')]=_0x13b5a2[_0x4d19('0x20')];_0x241906[_0x5c9152][_0x4d19('0x22')]=_[_0x4d19('0x21')](_0x13b5a2[_0x4d19('0x22')])?util[_0x4d19('0x23')](_0x4d19('0x24'),_0x13b5a2['name']):_0x13b5a2[_0x4d19('0x22')];if(_0x241906[_0x5c9152][_0x4d19('0x29')]){_0x241906[_0x5c9152][_0x4d19('0x2a')]=moment()['format'](_0x4d19('0x2b'));}if(_0x241906[_0x5c9152][_0x4d19('0x2c')]){_0x241906[_0x5c9152][_0x4d19('0x2d')]=moment()[_0x4d19('0x23')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x4d19('0x14')](_0x241906[_0x5c9152]);}RpcVoiceQueueReport[_0x4d19('0x2e')](_0x241906[_0x5c9152]);}};function extractCalleridNumber(_0x492790){var _0x26c7f3=_0x492790['match'](/<(.*?)>/);return _0x26c7f3?_0x26c7f3[0x1]:_0x492790;}Report[_0x4d19('0xf')][_0x4d19('0x2f')]=function(_0x143ff2){for(var _0x303ba0=0x0;_0x303ba0<Object[_0x4d19('0x30')](this[_0x4d19('0xd')])[_0x4d19('0x25')];_0x303ba0++){var _0x113052=Object[_0x4d19('0x30')](this[_0x4d19('0xd')])[_0x303ba0];var _0x1081c6=this[_0x4d19('0xd')][_0x113052];if(_0x1081c6[_0x4d19('0x1f')]===Number(_0x143ff2))return _0x1081c6;}return null;};Report[_0x4d19('0xf')][_0x4d19('0x31')]=function(_0x336746){var _0x1fddea=_0x336746['channel'][_0x4d19('0x32')]('-')[0x0];var _0x1fc60a=this[_0x4d19('0xd')][_0x1fddea];if(!_0x1fc60a)_0x1fc60a=this[_0x4d19('0x2f')](_0x336746[_0x4d19('0x33')]);return!_0x1fc60a?_0x4d19('0x34'):_0x4d19('0x35');};Report['prototype'][_0x4d19('0x16')]=function(_0x2ee6b3){_0x2ee6b3[_0x4d19('0x36')]=_0x2ee6b3['destination']||_0x2ee6b3[_0x4d19('0x37')];if(_0x2ee6b3['type']==_0x4d19('0x38')){_0x2ee6b3['lastapplication']=_0x4d19('0x39');_0x2ee6b3[_0x4d19('0x3a')]=_0x2ee6b3[_0x4d19('0x39')];if(_0x2ee6b3['context']==_0x4d19('0x3b')){_0x2ee6b3[_0x4d19('0x1f')]='';_0x2ee6b3['destination']=extractCalleridNumber(_0x2ee6b3[_0x4d19('0x3c')]);}else if(_0x2ee6b3[_0x4d19('0x3d')]==_0x4d19('0x3e')){if(_0x2ee6b3[_0x4d19('0x36')]==_0x4d19('0x3f')){_0x2ee6b3[_0x4d19('0x36')]=extractCalleridNumber(_0x2ee6b3[_0x4d19('0x40')]);_0x2ee6b3[_0x4d19('0x33')]=_0x2ee6b3['originatecalleridnum'];_0x2ee6b3[_0x4d19('0x41')]=[_0x2ee6b3[_0x4d19('0x42')],_0x2ee6b3[_0x4d19('0x42')]=_0x2ee6b3[_0x4d19('0x41')]][0x0];_0x2ee6b3[_0x4d19('0x3c')]=_0x2ee6b3[_0x4d19('0x40')];}else{_0x2ee6b3[_0x4d19('0x36')]=_0x2ee6b3[_0x4d19('0x33')];_0x2ee6b3[_0x4d19('0x33')]=_0x2ee6b3['originatecalleridnum'];if(_0x2ee6b3[_0x4d19('0x43')]=='ANSWERED'){_0x2ee6b3[_0x4d19('0x1f')]=_0x2ee6b3['connectedlinenum'];}else{_0x2ee6b3[_0x4d19('0x1f')]='';}}}}else{_0x2ee6b3[_0x4d19('0x3c')]=util['format'](_0x4d19('0x44'),_0x2ee6b3[_0x4d19('0x45')],_0x2ee6b3[_0x4d19('0x33')]);}if(RpcVoiceTransferReport[_0x4d19('0x46')][_0x2ee6b3['linkedid']]){var _0x5b6d91=RpcVoiceTransferReport[_0x4d19('0x46')][_0x2ee6b3[_0x4d19('0x47')]];_0x5b6d91[_0x4d19('0x48')]=_0x2ee6b3[_0x4d19('0x49')];RpcVoiceTransferReport[_0x4d19('0x1a')](_0x5b6d91);delete RpcVoiceTransferReport['transfers'][_0x2ee6b3[_0x4d19('0x47')]];}if(_['isNil'](_0x2ee6b3[_0x4d19('0x4a')])){_0x2ee6b3[_0x4d19('0x4a')]=this['getCallType'](_0x2ee6b3);}if(_[_0x4d19('0x21')](_0x2ee6b3[_0x4d19('0x4b')])){var _0x302fd4=_0x2ee6b3['channel']['split']('-')[0x0];var _0x3f6b56=this[_0x4d19('0xd')][_0x302fd4];if(!_0x3f6b56)_0x3f6b56=this['getAgentByInternal'](_0x2ee6b3[_0x4d19('0x1f')]);if(_0x3f6b56){_0x2ee6b3[_0x4d19('0x4b')]=_0x3f6b56['id'];_0x2ee6b3[_0x4d19('0x4c')]=_0x3f6b56[_0x4d19('0x20')];}}RpcVoiceCallReport['create'](_0x2ee6b3);if(_0x2ee6b3[_0x4d19('0x4d')]){for(var _0x161a69=0x0;_0x161a69<_0x2ee6b3['monitors'][_0x4d19('0x25')];_0x161a69+=0x1){_0x2ee6b3[_0x4d19('0x4e')]=_0x2ee6b3[_0x4d19('0x4f')][_0x161a69][_0x4d19('0x50')];_0x2ee6b3['createdAt']=_0x2ee6b3[_0x4d19('0x4f')][_0x161a69][_0x4d19('0x51')];if(_0x2ee6b3[_0x4d19('0x37')]==_0x4d19('0x3f')){_0x2ee6b3[_0x4d19('0x33')]=_0x2ee6b3['connectedlinenum'];_0x2ee6b3[_0x4d19('0x45')]=_0x2ee6b3['connectedlinename'];_0x2ee6b3[_0x4d19('0x26')]=_0x2ee6b3[_0x4d19('0x1f')];_0x2ee6b3[_0x4d19('0x52')]=_0x2ee6b3[_0x4d19('0x4c')];_0x2ee6b3[_0x4d19('0x37')]=_0x2ee6b3[_0x4d19('0x53')];}else if(_0x2ee6b3[_0x4d19('0x37')]==_0x4d19('0x54')){_0x2ee6b3[_0x4d19('0x33')]=_0x2ee6b3[_0x4d19('0x36')];_0x2ee6b3[_0x4d19('0x37')]=_0x2ee6b3[_0x4d19('0x53')];}RpcVoiceRecording[_0x4d19('0x2e')](_0x2ee6b3);}}};Report[_0x4d19('0xf')][_0x4d19('0x17')]=function(_0x53dcf0){if(_[_0x4d19('0x55')](_0x53dcf0)){_0x53dcf0[_0x4d19('0x56')](function(_0x391187){RpcVoiceAgentReport[_0x4d19('0x2e')](_0x391187);});}else{RpcVoiceAgentReport[_0x4d19('0x2e')](_0x53dcf0);}};Report[_0x4d19('0xf')][_0x4d19('0x18')]=function(_0x472d8e){RpcVoiceDialReport['create'](_0x472d8e);var _0xddaa9b;var _0x46ef5d;var _0x79c8cb=_0x472d8e[_0x4d19('0x42')];if(_[_0x4d19('0x57')](_0x79c8cb,'Local')){_0x46ef5d=_0x79c8cb[_0x4d19('0x58')](_0x79c8cb[_0x4d19('0x59')]('/')+0x1,_0x79c8cb[_0x4d19('0x59')]('@'));_0xddaa9b=_[_0x4d19('0x1e')](this['agents'],function(_0x1386fe){return _0x1386fe[_0x4d19('0x5a')]==_0x46ef5d||_0x1386fe[_0x4d19('0x5b')]==_0x46ef5d||_0x1386fe[_0x4d19('0x1f')]==_0x46ef5d;});}else{_0x46ef5d=_0x79c8cb[_0x4d19('0x58')](_0x79c8cb[_0x4d19('0x59')]('/')+0x1,_0x79c8cb[_0x4d19('0x5c')]('-'));_0xddaa9b=this[_0x4d19('0x1d')](_0x46ef5d);}if(_0xddaa9b){_0x472d8e[_0x4d19('0x22')]=_['isNil'](_0xddaa9b['interface'])?util[_0x4d19('0x23')]('SIP/%s',_0xddaa9b[_0x4d19('0x20')]):_0xddaa9b[_0x4d19('0x22')];_0x472d8e['membername']=_0xddaa9b[_0x4d19('0x20')];_0x472d8e[_0x4d19('0x1f')]=_0xddaa9b[_0x4d19('0x1f')];RpcMemberReport[_0x4d19('0x18')](_0x472d8e);}};Report[_0x4d19('0xf')]['blindTransfer']=function(_0x57594e){RpcVoiceTransferReport[_0x4d19('0x46')][_0x57594e[_0x4d19('0x5d')]]=_0x57594e;};Report[_0x4d19('0xf')]['attendedTransfer']=function(_0x15854a){RpcVoiceTransferReport[_0x4d19('0x1c')](_0x15854a);};module[_0x4d19('0x5e')]=Report;