Built motion from commit (unavailable).|2.5.1
[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 _0x2d3c=['voiceCallReport','voiceAgentReport','bind','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','name','isNil','find','accountcode','interface','SIP/%s','length','connectedlinenum','assigned','format','queuecallercomplete','queuecallercompleteAt','queuecallerexit','YYYY-MM-DD\x20HH:mm:ss','create','match','destination','exten','dialer','lastapplication','queue','from-voip-provider','callerid','context','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','channel','calleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','monitor','monitors','monitorFilename','createdAt','calleridname','connectedlinename','membername','xcally-motion-dialer','isArray','substring','indexOf','mobile','phone','lastIndexOf','exports','bluebird','lodash','moment','../../../config/logger','ami','../ami','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','custom:voiceQueueReport','voiceQueueReport','custom:voiceCallReport'];(function(_0x7aeee4,_0x4c888c){var _0xcebaeb=function(_0xfca287){while(--_0xfca287){_0x7aeee4['push'](_0x7aeee4['shift']());}};_0xcebaeb(++_0x4c888c);}(_0x2d3c,0x12d));var _0xc2d3=function(_0x4449a9,_0x41cc91){_0x4449a9=_0x4449a9-0x0;var _0x304748=_0x2d3c[_0x4449a9];return _0x304748;};'use strict';var BPromise=require(_0xc2d3('0x0'));var _=require(_0xc2d3('0x1'));var moment=require(_0xc2d3('0x2'));var util=require('util');var config=require('../../../config/environment');var logger=require(_0xc2d3('0x3'))(_0xc2d3('0x4'));var ami=require(_0xc2d3('0x5'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0xc2d3('0x6'));var RpcVoiceRecording=require(_0xc2d3('0x7'));var RpcVoiceTransferReport=require(_0xc2d3('0x8'));var VoiceQueueReport=require(_0xc2d3('0x9'));var VoiceCallReport=require(_0xc2d3('0xa'));var VoiceAgentReport=require(_0xc2d3('0xb'));var VoiceDialReport=require(_0xc2d3('0xc'));var UserReport=require(_0xc2d3('0xd'));function Report(_0x27894a){this[_0xc2d3('0xe')]=_0x27894a;this[_0xc2d3('0xf')]=_0x27894a[_0xc2d3('0xf')];this['telephones']=_0x27894a[_0xc2d3('0x10')];}Report[_0xc2d3('0x11')][_0xc2d3('0x12')]=function(_0x72268d){var _0x3626e4=new VoiceQueueReport(this['realtime']);var _0x236d7a=new VoiceAgentReport(this[_0xc2d3('0xe')]);var _0x323a4e=new VoiceDialReport(this['realtime']);var _0x443966=new VoiceCallReport(this['realtime']);var _0x449793=new UserReport(this['realtime']);if(config[_0xc2d3('0x13')]&&config[_0xc2d3('0x13')]['disabled']){ami['on'](_0xc2d3('0x14'),this[_0xc2d3('0x15')]['bind'](this));ami['on'](_0xc2d3('0x16'),this[_0xc2d3('0x17')]['bind'](this));ami['on']('custom:voiceAgentReport',this[_0xc2d3('0x18')][_0xc2d3('0x19')](this));ami['on']('custom:voiceDialReport',this[_0xc2d3('0x1a')]['bind'](this));ami['on'](_0xc2d3('0x1b'),this[_0xc2d3('0x1c')][_0xc2d3('0x19')](this));ami['on'](_0xc2d3('0x1d'),this[_0xc2d3('0x1e')]['bind'](this));}};Report['prototype'][_0xc2d3('0x1f')]=function(_0x2702d3){var _0x2487fa=undefined;_0x2487fa=_['find'](this['agents'],function(_0x402b15){return _0x402b15['accountcode']==_0x2702d3||_0x402b15[_0xc2d3('0x20')]==_0x2702d3;});if(_[_0xc2d3('0x21')](_0x2487fa)){var _0x12ac3e=_[_0xc2d3('0x22')](this[_0xc2d3('0x10')],function(_0x385b1e){return _0x385b1e[_0xc2d3('0x23')]==_0x2702d3||_0x385b1e[_0xc2d3('0x20')]==_0x2702d3;});if(_0x12ac3e){_0x2487fa=_[_0xc2d3('0x22')](this[_0xc2d3('0xf')],function(_0x22dee4){return _0x22dee4[_0xc2d3('0x24')]==util['format'](_0xc2d3('0x25'),_0x12ac3e[_0xc2d3('0x20')]);});}}return _0x2487fa;};Report[_0xc2d3('0x11')][_0xc2d3('0x15')]=function(_0x13da2f){for(var _0x5b9733=0x0;_0x5b9733<_0x13da2f[_0xc2d3('0x26')];_0x5b9733+=0x1){var _0x27d5d2=this[_0xc2d3('0x1f')](_0x13da2f[_0x5b9733][_0xc2d3('0x27')]);if(_0x27d5d2){_0x13da2f[_0x5b9733][_0xc2d3('0x23')]=_0x27d5d2['accountcode'];_0x13da2f[_0x5b9733][_0xc2d3('0x28')]=!![];_0x13da2f[_0x5b9733]['lastAssignedTo']=_0x27d5d2[_0xc2d3('0x20')];_0x13da2f[_0x5b9733][_0xc2d3('0x24')]=_['isNil'](_0x27d5d2['interface'])?util[_0xc2d3('0x29')](_0xc2d3('0x25'),_0x27d5d2[_0xc2d3('0x20')]):_0x27d5d2[_0xc2d3('0x24')];if(_0x13da2f[_0x5b9733][_0xc2d3('0x2a')]){_0x13da2f[_0x5b9733][_0xc2d3('0x2b')]=moment()[_0xc2d3('0x29')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x13da2f[_0x5b9733][_0xc2d3('0x2c')]){_0x13da2f[_0x5b9733]['queuecallerexitAt']=moment()['format'](_0xc2d3('0x2d'));}RpcMemberReport[_0xc2d3('0x15')](_0x13da2f[_0x5b9733]);}RpcVoiceQueueReport[_0xc2d3('0x2e')](_0x13da2f[_0x5b9733]);}};function extractCalleridNumber(_0x53124d){var _0x91a602=_0x53124d[_0xc2d3('0x2f')](/<(.*?)>/);return _0x91a602?_0x91a602[0x1]:_0x53124d;}Report['prototype'][_0xc2d3('0x17')]=function(_0x1a3d73){_0x1a3d73[_0xc2d3('0x30')]=_0x1a3d73[_0xc2d3('0x30')]||_0x1a3d73[_0xc2d3('0x31')];if(_0x1a3d73['type']==_0xc2d3('0x32')){_0x1a3d73[_0xc2d3('0x33')]=_0xc2d3('0x34');_0x1a3d73['lastdata']=_0x1a3d73[_0xc2d3('0x34')];if(_0x1a3d73['context']==_0xc2d3('0x35')){_0x1a3d73[_0xc2d3('0x23')]='';_0x1a3d73[_0xc2d3('0x30')]=extractCalleridNumber(_0x1a3d73[_0xc2d3('0x36')]);}else if(_0x1a3d73[_0xc2d3('0x37')]==_0xc2d3('0x38')){if(_0x1a3d73['destination']==_0xc2d3('0x39')){_0x1a3d73[_0xc2d3('0x30')]=extractCalleridNumber(_0x1a3d73[_0xc2d3('0x3a')]);_0x1a3d73['calleridnum']=_0x1a3d73[_0xc2d3('0x3b')];_0x1a3d73[_0xc2d3('0x3c')]=[_0x1a3d73[_0xc2d3('0x3d')],_0x1a3d73[_0xc2d3('0x3d')]=_0x1a3d73[_0xc2d3('0x3c')]][0x0];_0x1a3d73[_0xc2d3('0x36')]=_0x1a3d73[_0xc2d3('0x3a')];}else{_0x1a3d73['destination']=_0x1a3d73['calleridnum'];_0x1a3d73[_0xc2d3('0x3e')]=_0x1a3d73['originatecalleridnum'];if(_0x1a3d73[_0xc2d3('0x3f')]==_0xc2d3('0x40')){_0x1a3d73[_0xc2d3('0x23')]=_0x1a3d73[_0xc2d3('0x27')];}else{_0x1a3d73['accountcode']='';}}}}else{_0x1a3d73[_0xc2d3('0x36')]=util[_0xc2d3('0x29')](_0xc2d3('0x41'),_0x1a3d73['calleridname'],_0x1a3d73['calleridnum']);}RpcVoiceCallReport[_0xc2d3('0x2e')](_0x1a3d73);if(_0x1a3d73[_0xc2d3('0x42')]){for(var _0x3e4fe0=0x0;_0x3e4fe0<_0x1a3d73[_0xc2d3('0x43')][_0xc2d3('0x26')];_0x3e4fe0+=0x1){_0x1a3d73[_0xc2d3('0x44')]=_0x1a3d73[_0xc2d3('0x43')][_0x3e4fe0]['filename'];_0x1a3d73['createdAt']=_0x1a3d73[_0xc2d3('0x43')][_0x3e4fe0][_0xc2d3('0x45')];if(_0x1a3d73['exten']==_0xc2d3('0x39')){_0x1a3d73[_0xc2d3('0x3e')]=_0x1a3d73[_0xc2d3('0x27')];_0x1a3d73[_0xc2d3('0x46')]=_0x1a3d73[_0xc2d3('0x47')];_0x1a3d73['connectedlinenum']=_0x1a3d73[_0xc2d3('0x23')];_0x1a3d73[_0xc2d3('0x47')]=_0x1a3d73[_0xc2d3('0x48')];_0x1a3d73['exten']=_0x1a3d73[_0xc2d3('0x3b')];}else if(_0x1a3d73['exten']==_0xc2d3('0x49')){_0x1a3d73['calleridnum']=_0x1a3d73[_0xc2d3('0x30')];_0x1a3d73[_0xc2d3('0x31')]=_0x1a3d73['originatecalleridnum'];}RpcVoiceRecording[_0xc2d3('0x2e')](_0x1a3d73);}}};Report['prototype'][_0xc2d3('0x18')]=function(_0x35fe57){if(_[_0xc2d3('0x4a')](_0x35fe57)){_0x35fe57['forEach'](function(_0x3a9a5c){RpcVoiceAgentReport[_0xc2d3('0x2e')](_0x3a9a5c);});}else{RpcVoiceAgentReport[_0xc2d3('0x2e')](_0x35fe57);}};Report[_0xc2d3('0x11')]['voiceDialReport']=function(_0x2e20d9){RpcVoiceDialReport['create'](_0x2e20d9);var _0x500d62=undefined;var _0x521337=_0x2e20d9[_0xc2d3('0x3d')];if(_['startsWith'](_0x521337,'Local')){var _0x9e02cf=_0x521337[_0xc2d3('0x4b')](_0x521337['indexOf']('/')+0x1,_0x521337[_0xc2d3('0x4c')]('@'));_0x500d62=_[_0xc2d3('0x22')](this['agents'],function(_0x1cfb75){return _0x1cfb75[_0xc2d3('0x4d')]==_0x9e02cf||_0x1cfb75[_0xc2d3('0x4e')]==_0x9e02cf||_0x1cfb75[_0xc2d3('0x23')]==_0x9e02cf;});}else{var _0x9e02cf=_0x521337[_0xc2d3('0x4b')](_0x521337[_0xc2d3('0x4c')]('/')+0x1,_0x521337[_0xc2d3('0x4f')]('-'));_0x500d62=this['findAgent'](_0x9e02cf);}if(_0x500d62){_0x2e20d9[_0xc2d3('0x24')]=_[_0xc2d3('0x21')](_0x500d62[_0xc2d3('0x24')])?util['format'](_0xc2d3('0x25'),_0x500d62[_0xc2d3('0x20')]):_0x500d62[_0xc2d3('0x24')];_0x2e20d9[_0xc2d3('0x48')]=_0x500d62['name'];_0x2e20d9['accountcode']=_0x500d62[_0xc2d3('0x23')];RpcMemberReport['voiceDialReport'](_0x2e20d9);}};Report[_0xc2d3('0x11')][_0xc2d3('0x1c')]=function(_0x18ad6b){RpcVoiceTransferReport[_0xc2d3('0x1c')](_0x18ad6b);};Report['prototype'][_0xc2d3('0x1e')]=function(_0x36ef6d){RpcVoiceTransferReport[_0xc2d3('0x1e')](_0x36ef6d);};module[_0xc2d3('0x50')]=Report;