Built motion from commit (unavailable).|2.5.29
[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 _0x8ff3=['exports','lodash','moment','util','../../../config/environment','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','prototype','findAgent','name','isNil','find','interface','SIP/%s','connectedlinenum','accountcode','assigned','lastAssignedTo','queuecallercomplete','queuecallerexit','queuecallerexitAt','format','create','match','destination','exten','type','dialer','lastapplication','lastdata','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','disposition','linkedid','transfers','transfereelinkedid','uniqueid','length','monitors','filename','createdAt','calleridname','connectedlinename','xcally-motion-dialer','isArray','forEach','channel','indexOf','mobile','phone','membername','transfererlinkedid'];(function(_0x1afa7f,_0x4f1740){var _0x6a8d4b=function(_0x5143f1){while(--_0x5143f1){_0x1afa7f['push'](_0x1afa7f['shift']());}};_0x6a8d4b(++_0x4f1740);}(_0x8ff3,0x15d));var _0x38ff=function(_0x523d5b,_0x1808f0){_0x523d5b=_0x523d5b-0x0;var _0x4d5b4c=_0x8ff3[_0x523d5b];return _0x4d5b4c;};'use strict';var _=require(_0x38ff('0x0'));var moment=require(_0x38ff('0x1'));var util=require(_0x38ff('0x2'));var config=require(_0x38ff('0x3'));var ami=require('../ami');var RpcVoiceAgentReport=require(_0x38ff('0x4'));var RpcVoiceCallReport=require(_0x38ff('0x5'));var RpcVoiceDialReport=require(_0x38ff('0x6'));var RpcMemberReport=require(_0x38ff('0x7'));var RpcVoiceQueueReport=require(_0x38ff('0x8'));var RpcVoiceRecording=require(_0x38ff('0x9'));var RpcVoiceTransferReport=require(_0x38ff('0xa'));var VoiceQueueReport=require(_0x38ff('0xb'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x38ff('0xc'));var VoiceDialReport=require(_0x38ff('0xd'));var UserReport=require(_0x38ff('0xe'));function Report(_0x466d1b){this[_0x38ff('0xf')]=_0x466d1b;this[_0x38ff('0x10')]=_0x466d1b[_0x38ff('0x10')];this[_0x38ff('0x11')]=_0x466d1b[_0x38ff('0x11')];}Report['prototype'][_0x38ff('0x12')]=function(_0x3bcc83){var _0xe3fe0c=new VoiceQueueReport(this[_0x38ff('0xf')]);var _0x10b950=new VoiceAgentReport(this['realtime']);var _0x5f1d85=new VoiceDialReport(this[_0x38ff('0xf')]);var _0x276c06=new VoiceCallReport(this[_0x38ff('0xf')]);var _0x2d3895=new UserReport(this['realtime']);if(config['xdr']&&config[_0x38ff('0x13')][_0x38ff('0x14')]){ami['on'](_0x38ff('0x15'),this[_0x38ff('0x16')][_0x38ff('0x17')](this));ami['on'](_0x38ff('0x18'),this[_0x38ff('0x19')][_0x38ff('0x17')](this));ami['on']('custom:voiceAgentReport',this[_0x38ff('0x1a')][_0x38ff('0x17')](this));ami['on'](_0x38ff('0x1b'),this[_0x38ff('0x1c')][_0x38ff('0x17')](this));ami['on'](_0x38ff('0x1d'),this[_0x38ff('0x1e')][_0x38ff('0x17')](this));ami['on'](_0x38ff('0x1f'),this[_0x38ff('0x20')]['bind'](this));}};Report[_0x38ff('0x21')][_0x38ff('0x22')]=function(_0x4cdc4f){var _0x2c6405;_0x2c6405=_['find'](this[_0x38ff('0x10')],function(_0x1b632b){return _0x1b632b['accountcode']==_0x4cdc4f||_0x1b632b[_0x38ff('0x23')]==_0x4cdc4f;});if(_[_0x38ff('0x24')](_0x2c6405)){var _0x55983f=_[_0x38ff('0x25')](this[_0x38ff('0x11')],function(_0x8c1302){return _0x8c1302['accountcode']==_0x4cdc4f||_0x8c1302[_0x38ff('0x23')]==_0x4cdc4f;});if(_0x55983f){_0x2c6405=_[_0x38ff('0x25')](this[_0x38ff('0x10')],function(_0x4307a9){return _0x4307a9[_0x38ff('0x26')]==util['format'](_0x38ff('0x27'),_0x55983f[_0x38ff('0x23')]);});}}return _0x2c6405;};Report[_0x38ff('0x21')][_0x38ff('0x16')]=function(_0x10e7f5){for(var _0x60782f=0x0;_0x60782f<_0x10e7f5['length'];_0x60782f+=0x1){var _0x3c879a=this[_0x38ff('0x22')](_0x10e7f5[_0x60782f][_0x38ff('0x28')]);if(_0x3c879a){_0x10e7f5[_0x60782f][_0x38ff('0x29')]=_0x3c879a[_0x38ff('0x29')];_0x10e7f5[_0x60782f][_0x38ff('0x2a')]=!![];_0x10e7f5[_0x60782f][_0x38ff('0x2b')]=_0x3c879a['name'];_0x10e7f5[_0x60782f][_0x38ff('0x26')]=_[_0x38ff('0x24')](_0x3c879a['interface'])?util['format']('SIP/%s',_0x3c879a[_0x38ff('0x23')]):_0x3c879a[_0x38ff('0x26')];if(_0x10e7f5[_0x60782f][_0x38ff('0x2c')]){_0x10e7f5[_0x60782f]['queuecallercompleteAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x10e7f5[_0x60782f][_0x38ff('0x2d')]){_0x10e7f5[_0x60782f][_0x38ff('0x2e')]=moment()[_0x38ff('0x2f')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x38ff('0x16')](_0x10e7f5[_0x60782f]);}RpcVoiceQueueReport[_0x38ff('0x30')](_0x10e7f5[_0x60782f]);}};function extractCalleridNumber(_0xf61fab){var _0x331ea6=_0xf61fab[_0x38ff('0x31')](/<(.*?)>/);return _0x331ea6?_0x331ea6[0x1]:_0xf61fab;}Report[_0x38ff('0x21')][_0x38ff('0x19')]=function(_0x111900){_0x111900[_0x38ff('0x32')]=_0x111900[_0x38ff('0x32')]||_0x111900[_0x38ff('0x33')];if(_0x111900[_0x38ff('0x34')]==_0x38ff('0x35')){_0x111900[_0x38ff('0x36')]='queue';_0x111900[_0x38ff('0x37')]=_0x111900[_0x38ff('0x38')];if(_0x111900[_0x38ff('0x39')]==_0x38ff('0x3a')){_0x111900[_0x38ff('0x29')]='';_0x111900['destination']=extractCalleridNumber(_0x111900[_0x38ff('0x3b')]);}else if(_0x111900[_0x38ff('0x39')]==_0x38ff('0x3c')){if(_0x111900[_0x38ff('0x32')]==_0x38ff('0x3d')){_0x111900[_0x38ff('0x32')]=extractCalleridNumber(_0x111900[_0x38ff('0x3e')]);_0x111900[_0x38ff('0x3f')]=_0x111900[_0x38ff('0x40')];_0x111900[_0x38ff('0x41')]=[_0x111900['channel'],_0x111900['channel']=_0x111900[_0x38ff('0x41')]][0x0];_0x111900[_0x38ff('0x3b')]=_0x111900[_0x38ff('0x3e')];}else{_0x111900['destination']=_0x111900['calleridnum'];_0x111900[_0x38ff('0x3f')]=_0x111900['originatecalleridnum'];if(_0x111900[_0x38ff('0x42')]=='ANSWERED'){_0x111900[_0x38ff('0x29')]=_0x111900[_0x38ff('0x28')];}else{_0x111900[_0x38ff('0x29')]='';}}}}else{_0x111900[_0x38ff('0x3b')]=util[_0x38ff('0x2f')]('\x22%s\x22\x20<%s>',_0x111900['calleridname'],_0x111900[_0x38ff('0x3f')]);}if(RpcVoiceTransferReport['transfers'][_0x111900[_0x38ff('0x43')]]){var _0x2df2ae=RpcVoiceTransferReport[_0x38ff('0x44')][_0x111900['linkedid']];_0x2df2ae[_0x38ff('0x45')]=_0x111900[_0x38ff('0x46')];RpcVoiceTransferReport[_0x38ff('0x1e')](_0x2df2ae);delete RpcVoiceTransferReport[_0x38ff('0x44')][_0x111900[_0x38ff('0x43')]];}RpcVoiceCallReport[_0x38ff('0x30')](_0x111900);if(_0x111900['monitor']){for(var _0x56b2f3=0x0;_0x56b2f3<_0x111900['monitors'][_0x38ff('0x47')];_0x56b2f3+=0x1){_0x111900['monitorFilename']=_0x111900[_0x38ff('0x48')][_0x56b2f3][_0x38ff('0x49')];_0x111900[_0x38ff('0x4a')]=_0x111900[_0x38ff('0x48')][_0x56b2f3][_0x38ff('0x4a')];if(_0x111900[_0x38ff('0x33')]==_0x38ff('0x3d')){_0x111900[_0x38ff('0x3f')]=_0x111900['connectedlinenum'];_0x111900[_0x38ff('0x4b')]=_0x111900[_0x38ff('0x4c')];_0x111900['connectedlinenum']=_0x111900['accountcode'];_0x111900['connectedlinename']=_0x111900['membername'];_0x111900['exten']=_0x111900[_0x38ff('0x40')];}else if(_0x111900[_0x38ff('0x33')]==_0x38ff('0x4d')){_0x111900[_0x38ff('0x3f')]=_0x111900[_0x38ff('0x32')];_0x111900[_0x38ff('0x33')]=_0x111900[_0x38ff('0x40')];}RpcVoiceRecording[_0x38ff('0x30')](_0x111900);}}};Report[_0x38ff('0x21')][_0x38ff('0x1a')]=function(_0x53c77b){if(_[_0x38ff('0x4e')](_0x53c77b)){_0x53c77b[_0x38ff('0x4f')](function(_0x3a528f){RpcVoiceAgentReport['create'](_0x3a528f);});}else{RpcVoiceAgentReport['create'](_0x53c77b);}};Report[_0x38ff('0x21')][_0x38ff('0x1c')]=function(_0x395427){RpcVoiceDialReport[_0x38ff('0x30')](_0x395427);var _0x2874a8;var _0x1aff66;var _0x4ea4cc=_0x395427[_0x38ff('0x50')];if(_['startsWith'](_0x4ea4cc,'Local')){_0x1aff66=_0x4ea4cc['substring'](_0x4ea4cc[_0x38ff('0x51')]('/')+0x1,_0x4ea4cc[_0x38ff('0x51')]('@'));_0x2874a8=_[_0x38ff('0x25')](this[_0x38ff('0x10')],function(_0x42bf29){return _0x42bf29[_0x38ff('0x52')]==_0x1aff66||_0x42bf29[_0x38ff('0x53')]==_0x1aff66||_0x42bf29[_0x38ff('0x29')]==_0x1aff66;});}else{_0x1aff66=_0x4ea4cc['substring'](_0x4ea4cc[_0x38ff('0x51')]('/')+0x1,_0x4ea4cc['lastIndexOf']('-'));_0x2874a8=this[_0x38ff('0x22')](_0x1aff66);}if(_0x2874a8){_0x395427['interface']=_[_0x38ff('0x24')](_0x2874a8[_0x38ff('0x26')])?util['format'](_0x38ff('0x27'),_0x2874a8['name']):_0x2874a8[_0x38ff('0x26')];_0x395427[_0x38ff('0x54')]=_0x2874a8[_0x38ff('0x23')];_0x395427['accountcode']=_0x2874a8[_0x38ff('0x29')];RpcMemberReport[_0x38ff('0x1c')](_0x395427);}};Report[_0x38ff('0x21')][_0x38ff('0x1e')]=function(_0x4ede29){RpcVoiceTransferReport[_0x38ff('0x44')][_0x4ede29[_0x38ff('0x55')]]=_0x4ede29;};Report[_0x38ff('0x21')][_0x38ff('0x20')]=function(_0x4a17d5){RpcVoiceTransferReport[_0x38ff('0x20')](_0x4a17d5);};module[_0x38ff('0x56')]=Report;