Built motion from commit (unavailable).|2.5.7
[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 _0x67b1=['dialer','lastapplication','queue','lastdata','context','callerid','from-sip','calleridpreview','originatecalleridnum','destinationchannel','channel','calleridnum','disposition','calleridname','transfers','linkedid','uniqueid','blindTransfer','monitor','monitors','monitorFilename','filename','createdAt','xcally-motion-preview','connectedlinename','forEach','startsWith','Local','indexOf','mobile','phone','substring','membername','transfererlinkedid','exports','lodash','moment','util','../../../config/environment','../../../config/logger','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','interface','SIP/%s','length','connectedlinenum','assigned','isNil','format','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','voiceQueueReport','create','match','destination','exten','type'];(function(_0x3cf377,_0x526663){var _0x5db6f2=function(_0x33ea00){while(--_0x33ea00){_0x3cf377['push'](_0x3cf377['shift']());}};_0x5db6f2(++_0x526663);}(_0x67b1,0x1db));var _0x167b=function(_0x919445,_0x5467dc){_0x919445=_0x919445-0x0;var _0x511b3e=_0x67b1[_0x919445];return _0x511b3e;};'use strict';var BPromise=require('bluebird');var _=require(_0x167b('0x0'));var moment=require(_0x167b('0x1'));var util=require(_0x167b('0x2'));var config=require(_0x167b('0x3'));var logger=require(_0x167b('0x4'))('ami');var ami=require(_0x167b('0x5'));var RpcVoiceAgentReport=require(_0x167b('0x6'));var RpcVoiceCallReport=require(_0x167b('0x7'));var RpcVoiceDialReport=require(_0x167b('0x8'));var RpcMemberReport=require(_0x167b('0x9'));var RpcVoiceQueueReport=require(_0x167b('0xa'));var RpcVoiceRecording=require(_0x167b('0xb'));var RpcVoiceTransferReport=require(_0x167b('0xc'));var VoiceQueueReport=require(_0x167b('0xd'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x167b('0xe'));function Report(_0x33969c){this[_0x167b('0xf')]=_0x33969c;this['agents']=_0x33969c[_0x167b('0x10')];this[_0x167b('0x11')]=_0x33969c[_0x167b('0x11')];}Report[_0x167b('0x12')][_0x167b('0x13')]=function(_0x232153){var _0x5a61df=new VoiceQueueReport(this['realtime']);var _0x5c7145=new VoiceAgentReport(this[_0x167b('0xf')]);var _0x306ed2=new VoiceDialReport(this['realtime']);var _0x107683=new VoiceCallReport(this[_0x167b('0xf')]);var _0x5a6383=new UserReport(this[_0x167b('0xf')]);if(config[_0x167b('0x14')]&&config['xdr'][_0x167b('0x15')]){ami['on'](_0x167b('0x16'),this['voiceQueueReport'][_0x167b('0x17')](this));ami['on'](_0x167b('0x18'),this[_0x167b('0x19')][_0x167b('0x17')](this));ami['on'](_0x167b('0x1a'),this[_0x167b('0x1b')][_0x167b('0x17')](this));ami['on'](_0x167b('0x1c'),this[_0x167b('0x1d')][_0x167b('0x17')](this));ami['on'](_0x167b('0x1e'),this['blindTransfer'][_0x167b('0x17')](this));ami['on'](_0x167b('0x1f'),this[_0x167b('0x20')][_0x167b('0x17')](this));}};Report[_0x167b('0x12')][_0x167b('0x21')]=function(_0x34c14e){var _0xfdadbe=undefined;_0xfdadbe=_[_0x167b('0x22')](this[_0x167b('0x10')],function(_0x47c72f){return _0x47c72f['accountcode']==_0x34c14e||_0x47c72f['name']==_0x34c14e;});if(_['isNil'](_0xfdadbe)){var _0x40dac3=_[_0x167b('0x22')](this[_0x167b('0x11')],function(_0xe6941){return _0xe6941[_0x167b('0x23')]==_0x34c14e||_0xe6941[_0x167b('0x24')]==_0x34c14e;});if(_0x40dac3){_0xfdadbe=_[_0x167b('0x22')](this[_0x167b('0x10')],function(_0x3bd0e6){return _0x3bd0e6[_0x167b('0x25')]==util['format'](_0x167b('0x26'),_0x40dac3[_0x167b('0x24')]);});}}return _0xfdadbe;};Report[_0x167b('0x12')]['voiceQueueReport']=function(_0xbace2b){for(var _0x3976f8=0x0;_0x3976f8<_0xbace2b[_0x167b('0x27')];_0x3976f8+=0x1){var _0x52c0f0=this[_0x167b('0x21')](_0xbace2b[_0x3976f8][_0x167b('0x28')]);if(_0x52c0f0){_0xbace2b[_0x3976f8][_0x167b('0x23')]=_0x52c0f0[_0x167b('0x23')];_0xbace2b[_0x3976f8][_0x167b('0x29')]=!![];_0xbace2b[_0x3976f8]['lastAssignedTo']=_0x52c0f0[_0x167b('0x24')];_0xbace2b[_0x3976f8][_0x167b('0x25')]=_[_0x167b('0x2a')](_0x52c0f0[_0x167b('0x25')])?util[_0x167b('0x2b')](_0x167b('0x26'),_0x52c0f0[_0x167b('0x24')]):_0x52c0f0[_0x167b('0x25')];if(_0xbace2b[_0x3976f8]['queuecallercomplete']){_0xbace2b[_0x3976f8][_0x167b('0x2c')]=moment()['format'](_0x167b('0x2d'));}if(_0xbace2b[_0x3976f8]['queuecallerexit']){_0xbace2b[_0x3976f8][_0x167b('0x2e')]=moment()[_0x167b('0x2b')](_0x167b('0x2d'));}RpcMemberReport[_0x167b('0x2f')](_0xbace2b[_0x3976f8]);}RpcVoiceQueueReport[_0x167b('0x30')](_0xbace2b[_0x3976f8]);}};function extractCalleridNumber(_0x459914){var _0x1f49c2=_0x459914[_0x167b('0x31')](/<(.*?)>/);return _0x1f49c2?_0x1f49c2[0x1]:_0x459914;}Report['prototype']['voiceCallReport']=function(_0x9b5242){_0x9b5242[_0x167b('0x32')]=_0x9b5242[_0x167b('0x32')]||_0x9b5242[_0x167b('0x33')];if(_0x9b5242[_0x167b('0x34')]==_0x167b('0x35')){_0x9b5242[_0x167b('0x36')]=_0x167b('0x37');_0x9b5242[_0x167b('0x38')]=_0x9b5242[_0x167b('0x37')];if(_0x9b5242[_0x167b('0x39')]=='from-voip-provider'){_0x9b5242[_0x167b('0x23')]='';_0x9b5242['destination']=extractCalleridNumber(_0x9b5242[_0x167b('0x3a')]);}else if(_0x9b5242[_0x167b('0x39')]==_0x167b('0x3b')){if(_0x9b5242[_0x167b('0x32')]=='xcally-motion-preview'){_0x9b5242[_0x167b('0x32')]=extractCalleridNumber(_0x9b5242[_0x167b('0x3c')]);_0x9b5242['calleridnum']=_0x9b5242[_0x167b('0x3d')];_0x9b5242[_0x167b('0x3e')]=[_0x9b5242[_0x167b('0x3f')],_0x9b5242[_0x167b('0x3f')]=_0x9b5242[_0x167b('0x3e')]][0x0];_0x9b5242['callerid']=_0x9b5242[_0x167b('0x3c')];}else{_0x9b5242['destination']=_0x9b5242[_0x167b('0x40')];_0x9b5242['calleridnum']=_0x9b5242[_0x167b('0x3d')];if(_0x9b5242[_0x167b('0x41')]=='ANSWERED'){_0x9b5242['accountcode']=_0x9b5242['connectedlinenum'];}else{_0x9b5242[_0x167b('0x23')]='';}}}}else{_0x9b5242[_0x167b('0x3a')]=util[_0x167b('0x2b')]('\x22%s\x22\x20<%s>',_0x9b5242[_0x167b('0x42')],_0x9b5242[_0x167b('0x40')]);}if(RpcVoiceTransferReport['transfers'][_0x9b5242['linkedid']]){var _0x5c082e=RpcVoiceTransferReport[_0x167b('0x43')][_0x9b5242[_0x167b('0x44')]];_0x5c082e['transfereelinkedid']=_0x9b5242[_0x167b('0x45')];RpcVoiceTransferReport[_0x167b('0x46')](_0x5c082e);delete RpcVoiceTransferReport['transfers'][_0x9b5242[_0x167b('0x44')]];}RpcVoiceCallReport[_0x167b('0x30')](_0x9b5242);if(_0x9b5242[_0x167b('0x47')]){for(var _0x48b862=0x0;_0x48b862<_0x9b5242[_0x167b('0x48')][_0x167b('0x27')];_0x48b862+=0x1){_0x9b5242[_0x167b('0x49')]=_0x9b5242[_0x167b('0x48')][_0x48b862][_0x167b('0x4a')];_0x9b5242[_0x167b('0x4b')]=_0x9b5242[_0x167b('0x48')][_0x48b862][_0x167b('0x4b')];if(_0x9b5242['exten']==_0x167b('0x4c')){_0x9b5242['calleridnum']=_0x9b5242[_0x167b('0x28')];_0x9b5242[_0x167b('0x42')]=_0x9b5242[_0x167b('0x4d')];_0x9b5242[_0x167b('0x28')]=_0x9b5242[_0x167b('0x23')];_0x9b5242['connectedlinename']=_0x9b5242['membername'];_0x9b5242[_0x167b('0x33')]=_0x9b5242[_0x167b('0x3d')];}else if(_0x9b5242[_0x167b('0x33')]=='xcally-motion-dialer'){_0x9b5242[_0x167b('0x40')]=_0x9b5242[_0x167b('0x32')];_0x9b5242['exten']=_0x9b5242[_0x167b('0x3d')];}RpcVoiceRecording[_0x167b('0x30')](_0x9b5242);}}};Report[_0x167b('0x12')][_0x167b('0x1b')]=function(_0x44c2d6){if(_['isArray'](_0x44c2d6)){_0x44c2d6[_0x167b('0x4e')](function(_0x52d469){RpcVoiceAgentReport['create'](_0x52d469);});}else{RpcVoiceAgentReport[_0x167b('0x30')](_0x44c2d6);}};Report[_0x167b('0x12')]['voiceDialReport']=function(_0x59b57c){RpcVoiceDialReport[_0x167b('0x30')](_0x59b57c);var _0x16f2aa=undefined;var _0x263831=_0x59b57c[_0x167b('0x3f')];if(_[_0x167b('0x4f')](_0x263831,_0x167b('0x50'))){var _0x2ba976=_0x263831['substring'](_0x263831['indexOf']('/')+0x1,_0x263831[_0x167b('0x51')]('@'));_0x16f2aa=_[_0x167b('0x22')](this[_0x167b('0x10')],function(_0x20f37c){return _0x20f37c[_0x167b('0x52')]==_0x2ba976||_0x20f37c[_0x167b('0x53')]==_0x2ba976||_0x20f37c[_0x167b('0x23')]==_0x2ba976;});}else{var _0x2ba976=_0x263831[_0x167b('0x54')](_0x263831[_0x167b('0x51')]('/')+0x1,_0x263831['lastIndexOf']('-'));_0x16f2aa=this[_0x167b('0x21')](_0x2ba976);}if(_0x16f2aa){_0x59b57c[_0x167b('0x25')]=_[_0x167b('0x2a')](_0x16f2aa[_0x167b('0x25')])?util[_0x167b('0x2b')](_0x167b('0x26'),_0x16f2aa['name']):_0x16f2aa[_0x167b('0x25')];_0x59b57c[_0x167b('0x55')]=_0x16f2aa['name'];_0x59b57c[_0x167b('0x23')]=_0x16f2aa[_0x167b('0x23')];RpcMemberReport['voiceDialReport'](_0x59b57c);}};Report['prototype']['blindTransfer']=function(_0x3b466a){RpcVoiceTransferReport[_0x167b('0x43')][_0x3b466a[_0x167b('0x56')]]=_0x3b466a;};Report[_0x167b('0x12')][_0x167b('0x20')]=function(_0x36002c){RpcVoiceTransferReport[_0x167b('0x20')](_0x36002c);};module[_0x167b('0x57')]=Report;