Built motion from commit 1fa89557.|2.6.10
[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 _0x3514=['transfererlinkedid','attendedTransfer','exports','lodash','moment','util','../../../config/environment','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','sync','xdr','custom:voiceQueueReport','voiceQueueReport','bind','voiceCallReport','custom:voiceAgentReport','blindTransfer','attendedtransfer','prototype','findAgent','accountcode','name','isNil','find','interface','format','connectedlinenum','assigned','SIP/%s','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','getAgentByInternal','keys','length','getCallType','channel','split','calleridnum','outbound','internal','destination','dialer','lastapplication','queue','context','from-voip-provider','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','callerid','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','linkedid','transfers','uniqueid','type','UserId','membername','monitor','monitors','monitorFilename','createdAt','exten','connectedlinename','xcally-motion-dialer','voiceAgentReport','isArray','Local','indexOf','mobile','phone','substring','lastIndexOf','voiceDialReport'];(function(_0x1d7ec6,_0x9590d2){var _0xf7f6b7=function(_0x4a060d){while(--_0x4a060d){_0x1d7ec6['push'](_0x1d7ec6['shift']());}};_0xf7f6b7(++_0x9590d2);}(_0x3514,0x111));var _0x4351=function(_0x38f7f4,_0x4d8926){_0x38f7f4=_0x38f7f4-0x0;var _0x369a96=_0x3514[_0x38f7f4];return _0x369a96;};'use strict';var _=require(_0x4351('0x0'));var moment=require(_0x4351('0x1'));var util=require(_0x4351('0x2'));var config=require(_0x4351('0x3'));var ami=require('../ami');var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x4351('0x4'));var RpcVoiceDialReport=require(_0x4351('0x5'));var RpcMemberReport=require(_0x4351('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x4351('0x7'));var RpcVoiceTransferReport=require(_0x4351('0x8'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x4351('0x9'));var VoiceAgentReport=require(_0x4351('0xa'));var VoiceDialReport=require(_0x4351('0xb'));var UserReport=require('./userReport');function Report(_0x3835ea){this[_0x4351('0xc')]=_0x3835ea;this[_0x4351('0xd')]=_0x3835ea[_0x4351('0xd')];this[_0x4351('0xe')]=_0x3835ea['telephones'];}Report['prototype'][_0x4351('0xf')]=function(_0x32d538){var _0x29ebbb=new VoiceQueueReport(this[_0x4351('0xc')]);var _0xfe22be=new VoiceAgentReport(this[_0x4351('0xc')]);var _0x40218b=new VoiceDialReport(this[_0x4351('0xc')]);var _0x535bd3=new VoiceCallReport(this[_0x4351('0xc')]);var _0x50f608=new UserReport(this['realtime']);if(config['xdr']&&config[_0x4351('0x10')]['disabled']){ami['on'](_0x4351('0x11'),this[_0x4351('0x12')][_0x4351('0x13')](this));ami['on']('custom:voiceCallReport',this[_0x4351('0x14')][_0x4351('0x13')](this));ami['on'](_0x4351('0x15'),this['voiceAgentReport'][_0x4351('0x13')](this));ami['on']('custom:voiceDialReport',this['voiceDialReport']['bind'](this));ami['on']('blindtransfer',this[_0x4351('0x16')]['bind'](this));ami['on'](_0x4351('0x17'),this['attendedTransfer'][_0x4351('0x13')](this));}};Report[_0x4351('0x18')][_0x4351('0x19')]=function(_0x79e952){var _0x1a09b6;_0x1a09b6=_['find'](this[_0x4351('0xd')],function(_0x4c52c9){return _0x4c52c9[_0x4351('0x1a')]==_0x79e952||_0x4c52c9[_0x4351('0x1b')]==_0x79e952;});if(_[_0x4351('0x1c')](_0x1a09b6)){var _0x37a6b1=_[_0x4351('0x1d')](this[_0x4351('0xe')],function(_0x457089){return _0x457089[_0x4351('0x1a')]==_0x79e952||_0x457089[_0x4351('0x1b')]==_0x79e952;});if(_0x37a6b1){_0x1a09b6=_[_0x4351('0x1d')](this[_0x4351('0xd')],function(_0x51bf72){return _0x51bf72[_0x4351('0x1e')]==util[_0x4351('0x1f')]('SIP/%s',_0x37a6b1[_0x4351('0x1b')]);});}}return _0x1a09b6;};Report[_0x4351('0x18')]['voiceQueueReport']=function(_0x3c88a9){for(var _0x2055db=0x0;_0x2055db<_0x3c88a9['length'];_0x2055db+=0x1){var _0x478e6a=this[_0x4351('0x19')](_0x3c88a9[_0x2055db][_0x4351('0x20')]);if(_0x478e6a){_0x3c88a9[_0x2055db][_0x4351('0x1a')]=_0x478e6a[_0x4351('0x1a')];_0x3c88a9[_0x2055db][_0x4351('0x21')]=!![];_0x3c88a9[_0x2055db]['lastAssignedTo']=_0x478e6a[_0x4351('0x1b')];_0x3c88a9[_0x2055db]['interface']=_['isNil'](_0x478e6a[_0x4351('0x1e')])?util[_0x4351('0x1f')](_0x4351('0x22'),_0x478e6a[_0x4351('0x1b')]):_0x478e6a[_0x4351('0x1e')];if(_0x3c88a9[_0x2055db][_0x4351('0x23')]){_0x3c88a9[_0x2055db][_0x4351('0x24')]=moment()['format'](_0x4351('0x25'));}if(_0x3c88a9[_0x2055db][_0x4351('0x26')]){_0x3c88a9[_0x2055db][_0x4351('0x27')]=moment()[_0x4351('0x1f')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x4351('0x12')](_0x3c88a9[_0x2055db]);}RpcVoiceQueueReport[_0x4351('0x28')](_0x3c88a9[_0x2055db]);}};function extractCalleridNumber(_0x346ae5){var _0x10bf6e=_0x346ae5['match'](/<(.*?)>/);return _0x10bf6e?_0x10bf6e[0x1]:_0x346ae5;}Report[_0x4351('0x18')][_0x4351('0x29')]=function(_0x30a1b9){for(var _0x3b2d3c=0x0;_0x3b2d3c<Object[_0x4351('0x2a')](this['agents'])[_0x4351('0x2b')];_0x3b2d3c++){var _0x31a634=Object[_0x4351('0x2a')](this[_0x4351('0xd')])[_0x3b2d3c];var _0x90cdce=this[_0x4351('0xd')][_0x31a634];if(_0x90cdce[_0x4351('0x1a')]===Number(_0x30a1b9))return _0x90cdce;}return null;};Report['prototype'][_0x4351('0x2c')]=function(_0x39e6eb){var _0x310804=_0x39e6eb[_0x4351('0x2d')][_0x4351('0x2e')]('-')[0x0];var _0x182b72=this[_0x4351('0xd')][_0x310804];if(!_0x182b72)_0x182b72=this['getAgentByInternal'](_0x39e6eb[_0x4351('0x2f')]);return!_0x182b72?_0x4351('0x30'):_0x4351('0x31');};Report['prototype'][_0x4351('0x14')]=function(_0x1da46e){_0x1da46e[_0x4351('0x32')]=_0x1da46e[_0x4351('0x32')]||_0x1da46e['exten'];if(_0x1da46e['type']==_0x4351('0x33')){_0x1da46e[_0x4351('0x34')]=_0x4351('0x35');_0x1da46e['lastdata']=_0x1da46e['queue'];if(_0x1da46e[_0x4351('0x36')]==_0x4351('0x37')){_0x1da46e[_0x4351('0x1a')]='';_0x1da46e[_0x4351('0x32')]=extractCalleridNumber(_0x1da46e['callerid']);}else if(_0x1da46e[_0x4351('0x36')]=='from-sip'){if(_0x1da46e['destination']==_0x4351('0x38')){_0x1da46e[_0x4351('0x32')]=extractCalleridNumber(_0x1da46e[_0x4351('0x39')]);_0x1da46e['calleridnum']=_0x1da46e[_0x4351('0x3a')];_0x1da46e[_0x4351('0x3b')]=[_0x1da46e[_0x4351('0x2d')],_0x1da46e[_0x4351('0x2d')]=_0x1da46e[_0x4351('0x3b')]][0x0];_0x1da46e[_0x4351('0x3c')]=_0x1da46e['calleridpreview'];}else{_0x1da46e[_0x4351('0x32')]=_0x1da46e['calleridnum'];_0x1da46e[_0x4351('0x2f')]=_0x1da46e[_0x4351('0x3a')];if(_0x1da46e[_0x4351('0x3d')]==_0x4351('0x3e')){_0x1da46e[_0x4351('0x1a')]=_0x1da46e[_0x4351('0x20')];}else{_0x1da46e[_0x4351('0x1a')]='';}}}}else{_0x1da46e[_0x4351('0x3c')]=util[_0x4351('0x1f')](_0x4351('0x3f'),_0x1da46e[_0x4351('0x40')],_0x1da46e[_0x4351('0x2f')]);}if(RpcVoiceTransferReport['transfers'][_0x1da46e[_0x4351('0x41')]]){var _0xce7c62=RpcVoiceTransferReport[_0x4351('0x42')][_0x1da46e[_0x4351('0x41')]];_0xce7c62['transfereelinkedid']=_0x1da46e[_0x4351('0x43')];RpcVoiceTransferReport[_0x4351('0x16')](_0xce7c62);delete RpcVoiceTransferReport[_0x4351('0x42')][_0x1da46e[_0x4351('0x41')]];}if(_['isNil'](_0x1da46e['type'])){_0x1da46e[_0x4351('0x44')]=this[_0x4351('0x2c')](_0x1da46e);}if(_['isNil'](_0x1da46e['UserId'])){var _0x29032d=_0x1da46e[_0x4351('0x2d')][_0x4351('0x2e')]('-')[0x0];var _0x19a822=this[_0x4351('0xd')][_0x29032d];if(!_0x19a822)_0x19a822=this['getAgentByInternal'](_0x1da46e[_0x4351('0x1a')]);if(_0x19a822){_0x1da46e[_0x4351('0x45')]=_0x19a822['id'];_0x1da46e[_0x4351('0x46')]=_0x19a822[_0x4351('0x1b')];}}RpcVoiceCallReport[_0x4351('0x28')](_0x1da46e);if(_0x1da46e[_0x4351('0x47')]){for(var _0x11ecae=0x0;_0x11ecae<_0x1da46e[_0x4351('0x48')][_0x4351('0x2b')];_0x11ecae+=0x1){_0x1da46e[_0x4351('0x49')]=_0x1da46e[_0x4351('0x48')][_0x11ecae]['filename'];_0x1da46e['createdAt']=_0x1da46e[_0x4351('0x48')][_0x11ecae][_0x4351('0x4a')];if(_0x1da46e[_0x4351('0x4b')]==_0x4351('0x38')){_0x1da46e[_0x4351('0x2f')]=_0x1da46e[_0x4351('0x20')];_0x1da46e['calleridname']=_0x1da46e[_0x4351('0x4c')];_0x1da46e[_0x4351('0x20')]=_0x1da46e['accountcode'];_0x1da46e['connectedlinename']=_0x1da46e['membername'];_0x1da46e[_0x4351('0x4b')]=_0x1da46e['originatecalleridnum'];}else if(_0x1da46e[_0x4351('0x4b')]==_0x4351('0x4d')){_0x1da46e[_0x4351('0x2f')]=_0x1da46e[_0x4351('0x32')];_0x1da46e[_0x4351('0x4b')]=_0x1da46e[_0x4351('0x3a')];}RpcVoiceRecording['create'](_0x1da46e);}}};Report[_0x4351('0x18')][_0x4351('0x4e')]=function(_0x1e4c28){if(_[_0x4351('0x4f')](_0x1e4c28)){_0x1e4c28['forEach'](function(_0xcf709d){RpcVoiceAgentReport[_0x4351('0x28')](_0xcf709d);});}else{RpcVoiceAgentReport['create'](_0x1e4c28);}};Report['prototype']['voiceDialReport']=function(_0x3a0a92){RpcVoiceDialReport[_0x4351('0x28')](_0x3a0a92);var _0x5bc002;var _0x205632;var _0x5c198c=_0x3a0a92[_0x4351('0x2d')];if(_['startsWith'](_0x5c198c,_0x4351('0x50'))){_0x205632=_0x5c198c['substring'](_0x5c198c[_0x4351('0x51')]('/')+0x1,_0x5c198c['indexOf']('@'));_0x5bc002=_[_0x4351('0x1d')](this[_0x4351('0xd')],function(_0x344b83){return _0x344b83[_0x4351('0x52')]==_0x205632||_0x344b83[_0x4351('0x53')]==_0x205632||_0x344b83['accountcode']==_0x205632;});}else{_0x205632=_0x5c198c[_0x4351('0x54')](_0x5c198c[_0x4351('0x51')]('/')+0x1,_0x5c198c[_0x4351('0x55')]('-'));_0x5bc002=this[_0x4351('0x19')](_0x205632);}if(_0x5bc002){_0x3a0a92[_0x4351('0x1e')]=_[_0x4351('0x1c')](_0x5bc002['interface'])?util['format'](_0x4351('0x22'),_0x5bc002['name']):_0x5bc002[_0x4351('0x1e')];_0x3a0a92['membername']=_0x5bc002['name'];_0x3a0a92[_0x4351('0x1a')]=_0x5bc002[_0x4351('0x1a')];RpcMemberReport[_0x4351('0x56')](_0x3a0a92);}};Report[_0x4351('0x18')][_0x4351('0x16')]=function(_0x3e98ed){RpcVoiceTransferReport[_0x4351('0x42')][_0x3e98ed[_0x4351('0x57')]]=_0x3e98ed;};Report['prototype'][_0x4351('0x58')]=function(_0x29c57b){RpcVoiceTransferReport[_0x4351('0x58')](_0x29c57b);};module[_0x4351('0x59')]=Report;