6f1ca69414315422d935a1ca5edfe367b0f9ec05
[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 _0x2349=['indexOf','mobile','substring','attendedTransfer','exports','bluebird','lodash','moment','util','../../../config/environment','../../../config/logger','ami','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','custom:voiceCallReport','voiceCallReport','bind','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','findAgent','find','accountcode','name','isNil','interface','SIP/%s','connectedlinenum','assigned','format','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','destination','type','dialer','lastapplication','queue','lastdata','context','callerid','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','channel','calleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','monitor','monitors','filename','createdAt','exten','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','startsWith','Local'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0x2349,0x1ae));var _0x9234=function(_0x5d258e,_0x4141f5){_0x5d258e=_0x5d258e-0x0;var _0x5eac06=_0x2349[_0x5d258e];return _0x5eac06;};'use strict';var BPromise=require(_0x9234('0x0'));var _=require(_0x9234('0x1'));var moment=require(_0x9234('0x2'));var util=require(_0x9234('0x3'));var config=require(_0x9234('0x4'));var logger=require(_0x9234('0x5'))(_0x9234('0x6'));var ami=require(_0x9234('0x7'));var RpcVoiceAgentReport=require(_0x9234('0x8'));var RpcVoiceCallReport=require(_0x9234('0x9'));var RpcVoiceDialReport=require(_0x9234('0xa'));var RpcMemberReport=require(_0x9234('0xb'));var RpcVoiceQueueReport=require(_0x9234('0xc'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x9234('0xd'));var VoiceQueueReport=require(_0x9234('0xe'));var VoiceCallReport=require(_0x9234('0xf'));var VoiceAgentReport=require(_0x9234('0x10'));var VoiceDialReport=require(_0x9234('0x11'));var UserReport=require(_0x9234('0x12'));function Report(_0x20c1da){this[_0x9234('0x13')]=_0x20c1da;this[_0x9234('0x14')]=_0x20c1da[_0x9234('0x14')];this[_0x9234('0x15')]=_0x20c1da[_0x9234('0x15')];}Report[_0x9234('0x16')]['sync']=function(_0x54ea3e){var _0x28ab5e=new VoiceQueueReport(this['realtime']);var _0x3325f6=new VoiceAgentReport(this[_0x9234('0x13')]);var _0x29caff=new VoiceDialReport(this[_0x9234('0x13')]);var _0x34e11f=new VoiceCallReport(this['realtime']);var _0x262348=new UserReport(this['realtime']);if(config[_0x9234('0x17')]&&config[_0x9234('0x17')][_0x9234('0x18')]){ami['on'](_0x9234('0x19'),this[_0x9234('0x1a')]['bind'](this));ami['on'](_0x9234('0x1b'),this[_0x9234('0x1c')][_0x9234('0x1d')](this));ami['on'](_0x9234('0x1e'),this[_0x9234('0x1f')][_0x9234('0x1d')](this));ami['on'](_0x9234('0x20'),this[_0x9234('0x21')]['bind'](this));ami['on'](_0x9234('0x22'),this[_0x9234('0x23')][_0x9234('0x1d')](this));ami['on']('attendedtransfer',this['attendedTransfer'][_0x9234('0x1d')](this));}};Report[_0x9234('0x16')][_0x9234('0x24')]=function(_0x2a848e){var _0x1e865b=undefined;_0x1e865b=_[_0x9234('0x25')](this[_0x9234('0x14')],function(_0x52f0bd){return _0x52f0bd[_0x9234('0x26')]==_0x2a848e||_0x52f0bd[_0x9234('0x27')]==_0x2a848e;});if(_[_0x9234('0x28')](_0x1e865b)){var _0xe02b10=_[_0x9234('0x25')](this[_0x9234('0x15')],function(_0x248ade){return _0x248ade['accountcode']==_0x2a848e||_0x248ade['name']==_0x2a848e;});if(_0xe02b10){_0x1e865b=_[_0x9234('0x25')](this[_0x9234('0x14')],function(_0x42018e){return _0x42018e[_0x9234('0x29')]==util['format'](_0x9234('0x2a'),_0xe02b10[_0x9234('0x27')]);});}}return _0x1e865b;};Report['prototype'][_0x9234('0x1a')]=function(_0x1b267e){for(var _0x58fc85=0x0;_0x58fc85<_0x1b267e['length'];_0x58fc85+=0x1){var _0x1dfd15=this[_0x9234('0x24')](_0x1b267e[_0x58fc85][_0x9234('0x2b')]);if(_0x1dfd15){_0x1b267e[_0x58fc85][_0x9234('0x26')]=_0x1dfd15['accountcode'];_0x1b267e[_0x58fc85][_0x9234('0x2c')]=!![];_0x1b267e[_0x58fc85]['lastAssignedTo']=_0x1dfd15[_0x9234('0x27')];_0x1b267e[_0x58fc85]['interface']=_[_0x9234('0x28')](_0x1dfd15['interface'])?util[_0x9234('0x2d')](_0x9234('0x2a'),_0x1dfd15[_0x9234('0x27')]):_0x1dfd15['interface'];if(_0x1b267e[_0x58fc85][_0x9234('0x2e')]){_0x1b267e[_0x58fc85]['queuecallercompleteAt']=moment()[_0x9234('0x2d')](_0x9234('0x2f'));}if(_0x1b267e[_0x58fc85][_0x9234('0x30')]){_0x1b267e[_0x58fc85]['queuecallerexitAt']=moment()[_0x9234('0x2d')](_0x9234('0x2f'));}RpcMemberReport[_0x9234('0x1a')](_0x1b267e[_0x58fc85]);}RpcVoiceQueueReport[_0x9234('0x31')](_0x1b267e[_0x58fc85]);}};function extractCalleridNumber(_0x2df2f4){var _0x434c5b=_0x2df2f4['match'](/<(.*?)>/);return _0x434c5b?_0x434c5b[0x1]:_0x2df2f4;}Report['prototype'][_0x9234('0x1c')]=function(_0x55c036){_0x55c036[_0x9234('0x32')]=_0x55c036['destination']||_0x55c036['exten'];if(_0x55c036[_0x9234('0x33')]==_0x9234('0x34')){_0x55c036[_0x9234('0x35')]=_0x9234('0x36');_0x55c036[_0x9234('0x37')]=_0x55c036[_0x9234('0x36')];if(_0x55c036[_0x9234('0x38')]=='from-voip-provider'){_0x55c036[_0x9234('0x26')]='';_0x55c036[_0x9234('0x32')]=extractCalleridNumber(_0x55c036[_0x9234('0x39')]);}else if(_0x55c036[_0x9234('0x38')]=='from-sip'){if(_0x55c036[_0x9234('0x32')]==_0x9234('0x3a')){_0x55c036[_0x9234('0x32')]=extractCalleridNumber(_0x55c036[_0x9234('0x3b')]);_0x55c036['calleridnum']=_0x55c036[_0x9234('0x3c')];_0x55c036[_0x9234('0x3d')]=[_0x55c036[_0x9234('0x3e')],_0x55c036['channel']=_0x55c036['destinationchannel']][0x0];_0x55c036['callerid']=_0x55c036[_0x9234('0x3b')];}else{_0x55c036[_0x9234('0x32')]=_0x55c036['calleridnum'];_0x55c036[_0x9234('0x3f')]=_0x55c036[_0x9234('0x3c')];if(_0x55c036[_0x9234('0x40')]==_0x9234('0x41')){_0x55c036['accountcode']=_0x55c036[_0x9234('0x2b')];}else{_0x55c036[_0x9234('0x26')]='';}}}}else{_0x55c036['callerid']=util[_0x9234('0x2d')](_0x9234('0x42'),_0x55c036[_0x9234('0x43')],_0x55c036['calleridnum']);}RpcVoiceCallReport[_0x9234('0x31')](_0x55c036);if(_0x55c036[_0x9234('0x44')]){for(var _0x2b4c55=0x0;_0x2b4c55<_0x55c036[_0x9234('0x45')]['length'];_0x2b4c55+=0x1){_0x55c036['monitorFilename']=_0x55c036[_0x9234('0x45')][_0x2b4c55][_0x9234('0x46')];_0x55c036['createdAt']=_0x55c036['monitors'][_0x2b4c55][_0x9234('0x47')];if(_0x55c036[_0x9234('0x48')]==_0x9234('0x3a')){_0x55c036[_0x9234('0x3f')]=_0x55c036[_0x9234('0x2b')];_0x55c036['calleridname']=_0x55c036[_0x9234('0x49')];_0x55c036['connectedlinenum']=_0x55c036[_0x9234('0x26')];_0x55c036[_0x9234('0x49')]=_0x55c036[_0x9234('0x4a')];_0x55c036[_0x9234('0x48')]=_0x55c036[_0x9234('0x3c')];}else if(_0x55c036[_0x9234('0x48')]==_0x9234('0x4b')){_0x55c036[_0x9234('0x3f')]=_0x55c036[_0x9234('0x32')];_0x55c036[_0x9234('0x48')]=_0x55c036[_0x9234('0x3c')];}RpcVoiceRecording['create'](_0x55c036);}}};Report[_0x9234('0x16')][_0x9234('0x1f')]=function(_0x5b3516){if(_[_0x9234('0x4c')](_0x5b3516)){_0x5b3516[_0x9234('0x4d')](function(_0x4af691){RpcVoiceAgentReport[_0x9234('0x31')](_0x4af691);});}else{RpcVoiceAgentReport['create'](_0x5b3516);}};Report[_0x9234('0x16')][_0x9234('0x21')]=function(_0x5f225a){RpcVoiceDialReport[_0x9234('0x31')](_0x5f225a);var _0x4eb8cf=undefined;var _0x12cc98=_0x5f225a[_0x9234('0x3e')];if(_[_0x9234('0x4e')](_0x12cc98,_0x9234('0x4f'))){var _0x4ec20f=_0x12cc98['substring'](_0x12cc98[_0x9234('0x50')]('/')+0x1,_0x12cc98[_0x9234('0x50')]('@'));_0x4eb8cf=_[_0x9234('0x25')](this['agents'],function(_0x1d8d0b){return _0x1d8d0b[_0x9234('0x51')]==_0x4ec20f||_0x1d8d0b['phone']==_0x4ec20f||_0x1d8d0b[_0x9234('0x26')]==_0x4ec20f;});}else{var _0x4ec20f=_0x12cc98[_0x9234('0x52')](_0x12cc98[_0x9234('0x50')]('/')+0x1,_0x12cc98['lastIndexOf']('-'));_0x4eb8cf=this['findAgent'](_0x4ec20f);}if(_0x4eb8cf){_0x5f225a[_0x9234('0x29')]=_[_0x9234('0x28')](_0x4eb8cf[_0x9234('0x29')])?util['format'](_0x9234('0x2a'),_0x4eb8cf[_0x9234('0x27')]):_0x4eb8cf[_0x9234('0x29')];_0x5f225a['membername']=_0x4eb8cf[_0x9234('0x27')];_0x5f225a['accountcode']=_0x4eb8cf[_0x9234('0x26')];RpcMemberReport[_0x9234('0x21')](_0x5f225a);}};Report[_0x9234('0x16')]['blindTransfer']=function(_0x5c5585){RpcVoiceTransferReport[_0x9234('0x23')](_0x5c5585);};Report[_0x9234('0x16')][_0x9234('0x53')]=function(_0xcb8430){RpcVoiceTransferReport[_0x9234('0x53')](_0xcb8430);};module[_0x9234('0x54')]=Report;