65fcfc62572a8521b14cb3777cc42e0cbea0bed1
[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 _0x7c19=['calleridname','linkedid','transfers','transfereelinkedid','uniqueid','monitor','monitorFilename','monitors','connectedlinename','membername','xcally-motion-dialer','isArray','voiceDialReport','channel','startsWith','indexOf','mobile','phone','substring','lastIndexOf','isNil','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','prototype','sync','disabled','voiceQueueReport','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','bind','custom:voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','find','accountcode','telephones','interface','format','SIP/%s','name','length','findAgent','connectedlinenum','assigned','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','destination','exten','dialer','lastapplication','queue','lastdata','callerid','context','from-sip','xcally-motion-preview','destinationchannel','calleridpreview','calleridnum','originatecalleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>'];(function(_0x40fa3f,_0x3f3a11){var _0x5cc845=function(_0x5d0db0){while(--_0x5d0db0){_0x40fa3f['push'](_0x40fa3f['shift']());}};_0x5cc845(++_0x3f3a11);}(_0x7c19,0x11e));var _0x97c1=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0x7c19[_0x209941];return _0x1e8729;};'use strict';var _=require(_0x97c1('0x0'));var moment=require(_0x97c1('0x1'));var util=require(_0x97c1('0x2'));var config=require(_0x97c1('0x3'));var ami=require(_0x97c1('0x4'));var RpcVoiceAgentReport=require(_0x97c1('0x5'));var RpcVoiceCallReport=require(_0x97c1('0x6'));var RpcVoiceDialReport=require(_0x97c1('0x7'));var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0x97c1('0x8'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x97c1('0x9'));var VoiceQueueReport=require(_0x97c1('0xa'));var VoiceCallReport=require(_0x97c1('0xb'));var VoiceAgentReport=require(_0x97c1('0xc'));var VoiceDialReport=require(_0x97c1('0xd'));var UserReport=require(_0x97c1('0xe'));function Report(_0x346286){this[_0x97c1('0xf')]=_0x346286;this[_0x97c1('0x10')]=_0x346286[_0x97c1('0x10')];this['telephones']=_0x346286['telephones'];}Report[_0x97c1('0x11')][_0x97c1('0x12')]=function(_0x2bef0e){var _0x4f929a=new VoiceQueueReport(this[_0x97c1('0xf')]);var _0x37a813=new VoiceAgentReport(this[_0x97c1('0xf')]);var _0x2424db=new VoiceDialReport(this[_0x97c1('0xf')]);var _0x44fc54=new VoiceCallReport(this['realtime']);var _0x4476b4=new UserReport(this[_0x97c1('0xf')]);if(config['xdr']&&config['xdr'][_0x97c1('0x13')]){ami['on']('custom:voiceQueueReport',this[_0x97c1('0x14')]['bind'](this));ami['on'](_0x97c1('0x15'),this[_0x97c1('0x16')]['bind'](this));ami['on'](_0x97c1('0x17'),this[_0x97c1('0x18')][_0x97c1('0x19')](this));ami['on'](_0x97c1('0x1a'),this['voiceDialReport'][_0x97c1('0x19')](this));ami['on'](_0x97c1('0x1b'),this[_0x97c1('0x1c')][_0x97c1('0x19')](this));ami['on'](_0x97c1('0x1d'),this[_0x97c1('0x1e')][_0x97c1('0x19')](this));}};Report[_0x97c1('0x11')]['findAgent']=function(_0x5927c6){var _0x332dc2;_0x332dc2=_[_0x97c1('0x1f')](this[_0x97c1('0x10')],function(_0x24631c){return _0x24631c[_0x97c1('0x20')]==_0x5927c6||_0x24631c['name']==_0x5927c6;});if(_['isNil'](_0x332dc2)){var _0x27b144=_[_0x97c1('0x1f')](this[_0x97c1('0x21')],function(_0x4f2d55){return _0x4f2d55[_0x97c1('0x20')]==_0x5927c6||_0x4f2d55['name']==_0x5927c6;});if(_0x27b144){_0x332dc2=_[_0x97c1('0x1f')](this[_0x97c1('0x10')],function(_0x1b8887){return _0x1b8887[_0x97c1('0x22')]==util[_0x97c1('0x23')](_0x97c1('0x24'),_0x27b144[_0x97c1('0x25')]);});}}return _0x332dc2;};Report[_0x97c1('0x11')][_0x97c1('0x14')]=function(_0x247dde){for(var _0x8d4347=0x0;_0x8d4347<_0x247dde[_0x97c1('0x26')];_0x8d4347+=0x1){var _0x3eaed0=this[_0x97c1('0x27')](_0x247dde[_0x8d4347][_0x97c1('0x28')]);if(_0x3eaed0){_0x247dde[_0x8d4347]['accountcode']=_0x3eaed0[_0x97c1('0x20')];_0x247dde[_0x8d4347][_0x97c1('0x29')]=!![];_0x247dde[_0x8d4347]['lastAssignedTo']=_0x3eaed0[_0x97c1('0x25')];_0x247dde[_0x8d4347][_0x97c1('0x22')]=_['isNil'](_0x3eaed0[_0x97c1('0x22')])?util[_0x97c1('0x23')](_0x97c1('0x24'),_0x3eaed0[_0x97c1('0x25')]):_0x3eaed0[_0x97c1('0x22')];if(_0x247dde[_0x8d4347][_0x97c1('0x2a')]){_0x247dde[_0x8d4347][_0x97c1('0x2b')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x247dde[_0x8d4347][_0x97c1('0x2c')]){_0x247dde[_0x8d4347][_0x97c1('0x2d')]=moment()['format'](_0x97c1('0x2e'));}RpcMemberReport[_0x97c1('0x14')](_0x247dde[_0x8d4347]);}RpcVoiceQueueReport[_0x97c1('0x2f')](_0x247dde[_0x8d4347]);}};function extractCalleridNumber(_0x3b3fdf){var _0x2b592f=_0x3b3fdf[_0x97c1('0x30')](/<(.*?)>/);return _0x2b592f?_0x2b592f[0x1]:_0x3b3fdf;}Report['prototype'][_0x97c1('0x16')]=function(_0x11d448){_0x11d448[_0x97c1('0x31')]=_0x11d448[_0x97c1('0x31')]||_0x11d448[_0x97c1('0x32')];if(_0x11d448['type']==_0x97c1('0x33')){_0x11d448[_0x97c1('0x34')]=_0x97c1('0x35');_0x11d448[_0x97c1('0x36')]=_0x11d448[_0x97c1('0x35')];if(_0x11d448['context']=='from-voip-provider'){_0x11d448[_0x97c1('0x20')]='';_0x11d448[_0x97c1('0x31')]=extractCalleridNumber(_0x11d448[_0x97c1('0x37')]);}else if(_0x11d448[_0x97c1('0x38')]==_0x97c1('0x39')){if(_0x11d448[_0x97c1('0x31')]==_0x97c1('0x3a')){_0x11d448[_0x97c1('0x31')]=extractCalleridNumber(_0x11d448['calleridpreview']);_0x11d448['calleridnum']=_0x11d448['originatecalleridnum'];_0x11d448[_0x97c1('0x3b')]=[_0x11d448['channel'],_0x11d448['channel']=_0x11d448[_0x97c1('0x3b')]][0x0];_0x11d448[_0x97c1('0x37')]=_0x11d448[_0x97c1('0x3c')];}else{_0x11d448[_0x97c1('0x31')]=_0x11d448[_0x97c1('0x3d')];_0x11d448[_0x97c1('0x3d')]=_0x11d448[_0x97c1('0x3e')];if(_0x11d448[_0x97c1('0x3f')]==_0x97c1('0x40')){_0x11d448['accountcode']=_0x11d448[_0x97c1('0x28')];}else{_0x11d448['accountcode']='';}}}}else{_0x11d448['callerid']=util[_0x97c1('0x23')](_0x97c1('0x41'),_0x11d448[_0x97c1('0x42')],_0x11d448[_0x97c1('0x3d')]);}if(RpcVoiceTransferReport['transfers'][_0x11d448[_0x97c1('0x43')]]){var _0x5e433a=RpcVoiceTransferReport[_0x97c1('0x44')][_0x11d448['linkedid']];_0x5e433a[_0x97c1('0x45')]=_0x11d448[_0x97c1('0x46')];RpcVoiceTransferReport[_0x97c1('0x1c')](_0x5e433a);delete RpcVoiceTransferReport[_0x97c1('0x44')][_0x11d448[_0x97c1('0x43')]];}RpcVoiceCallReport[_0x97c1('0x2f')](_0x11d448);if(_0x11d448[_0x97c1('0x47')]){for(var _0x3cf7b9=0x0;_0x3cf7b9<_0x11d448['monitors'][_0x97c1('0x26')];_0x3cf7b9+=0x1){_0x11d448[_0x97c1('0x48')]=_0x11d448[_0x97c1('0x49')][_0x3cf7b9]['filename'];_0x11d448['createdAt']=_0x11d448[_0x97c1('0x49')][_0x3cf7b9]['createdAt'];if(_0x11d448[_0x97c1('0x32')]==_0x97c1('0x3a')){_0x11d448['calleridnum']=_0x11d448[_0x97c1('0x28')];_0x11d448[_0x97c1('0x42')]=_0x11d448[_0x97c1('0x4a')];_0x11d448[_0x97c1('0x28')]=_0x11d448[_0x97c1('0x20')];_0x11d448[_0x97c1('0x4a')]=_0x11d448[_0x97c1('0x4b')];_0x11d448[_0x97c1('0x32')]=_0x11d448[_0x97c1('0x3e')];}else if(_0x11d448[_0x97c1('0x32')]==_0x97c1('0x4c')){_0x11d448[_0x97c1('0x3d')]=_0x11d448[_0x97c1('0x31')];_0x11d448['exten']=_0x11d448['originatecalleridnum'];}RpcVoiceRecording[_0x97c1('0x2f')](_0x11d448);}}};Report[_0x97c1('0x11')][_0x97c1('0x18')]=function(_0x5688f9){if(_[_0x97c1('0x4d')](_0x5688f9)){_0x5688f9['forEach'](function(_0x5f0c60){RpcVoiceAgentReport[_0x97c1('0x2f')](_0x5f0c60);});}else{RpcVoiceAgentReport['create'](_0x5688f9);}};Report['prototype'][_0x97c1('0x4e')]=function(_0x17b941){RpcVoiceDialReport[_0x97c1('0x2f')](_0x17b941);var _0x2441b2;var _0x36fdf8;var _0x4635ef=_0x17b941[_0x97c1('0x4f')];if(_[_0x97c1('0x50')](_0x4635ef,'Local')){_0x36fdf8=_0x4635ef['substring'](_0x4635ef[_0x97c1('0x51')]('/')+0x1,_0x4635ef[_0x97c1('0x51')]('@'));_0x2441b2=_[_0x97c1('0x1f')](this[_0x97c1('0x10')],function(_0xdd2c8c){return _0xdd2c8c[_0x97c1('0x52')]==_0x36fdf8||_0xdd2c8c[_0x97c1('0x53')]==_0x36fdf8||_0xdd2c8c[_0x97c1('0x20')]==_0x36fdf8;});}else{_0x36fdf8=_0x4635ef[_0x97c1('0x54')](_0x4635ef[_0x97c1('0x51')]('/')+0x1,_0x4635ef[_0x97c1('0x55')]('-'));_0x2441b2=this[_0x97c1('0x27')](_0x36fdf8);}if(_0x2441b2){_0x17b941[_0x97c1('0x22')]=_[_0x97c1('0x56')](_0x2441b2[_0x97c1('0x22')])?util[_0x97c1('0x23')](_0x97c1('0x24'),_0x2441b2['name']):_0x2441b2['interface'];_0x17b941[_0x97c1('0x4b')]=_0x2441b2['name'];_0x17b941[_0x97c1('0x20')]=_0x2441b2[_0x97c1('0x20')];RpcMemberReport[_0x97c1('0x4e')](_0x17b941);}};Report[_0x97c1('0x11')][_0x97c1('0x1c')]=function(_0x291670){RpcVoiceTransferReport[_0x97c1('0x44')][_0x291670['transfererlinkedid']]=_0x291670;};Report['prototype'][_0x97c1('0x1e')]=function(_0x559d0c){RpcVoiceTransferReport[_0x97c1('0x1e')](_0x559d0c);};module[_0x97c1('0x57')]=Report;