Built motion from commit da617fac.|2.6.6
[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 _0x9f95=['SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','keys','getCallType','channel','split','getAgentByInternal','calleridnum','outbound','internal','destination','exten','type','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','disposition','\x22%s\x22\x20<%s>','transfers','transfereelinkedid','uniqueid','linkedid','UserId','membername','monitor','monitorFilename','monitors','filename','createdAt','calleridname','connectedlinename','xcally-motion-dialer','isArray','forEach','Local','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','attendedTransfer','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','custom:voiceCallReport','voiceCallReport','bind','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','prototype','findAgent','accountcode','name','isNil','find','interface','format'];(function(_0x46d60b,_0x36d554){var _0x171af8=function(_0x13d82c){while(--_0x13d82c){_0x46d60b['push'](_0x46d60b['shift']());}};_0x171af8(++_0x36d554);}(_0x9f95,0x1bf));var _0x59f9=function(_0x306f2a,_0x57fc16){_0x306f2a=_0x306f2a-0x0;var _0x2fe087=_0x9f95[_0x306f2a];return _0x2fe087;};'use strict';var _=require('lodash');var moment=require(_0x59f9('0x0'));var util=require(_0x59f9('0x1'));var config=require(_0x59f9('0x2'));var ami=require(_0x59f9('0x3'));var RpcVoiceAgentReport=require(_0x59f9('0x4'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0x59f9('0x5'));var RpcMemberReport=require(_0x59f9('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x59f9('0x7'));var RpcVoiceTransferReport=require(_0x59f9('0x8'));var VoiceQueueReport=require(_0x59f9('0x9'));var VoiceCallReport=require(_0x59f9('0xa'));var VoiceAgentReport=require(_0x59f9('0xb'));var VoiceDialReport=require(_0x59f9('0xc'));var UserReport=require('./userReport');function Report(_0x452eaa){this[_0x59f9('0xd')]=_0x452eaa;this[_0x59f9('0xe')]=_0x452eaa[_0x59f9('0xe')];this['telephones']=_0x452eaa[_0x59f9('0xf')];}Report['prototype'][_0x59f9('0x10')]=function(_0x29faca){var _0x88d114=new VoiceQueueReport(this[_0x59f9('0xd')]);var _0x3e520e=new VoiceAgentReport(this[_0x59f9('0xd')]);var _0x1120d3=new VoiceDialReport(this[_0x59f9('0xd')]);var _0x4c3c5c=new VoiceCallReport(this[_0x59f9('0xd')]);var _0x44d335=new UserReport(this['realtime']);if(config[_0x59f9('0x11')]&&config[_0x59f9('0x11')][_0x59f9('0x12')]){ami['on'](_0x59f9('0x13'),this[_0x59f9('0x14')]['bind'](this));ami['on'](_0x59f9('0x15'),this[_0x59f9('0x16')][_0x59f9('0x17')](this));ami['on'](_0x59f9('0x18'),this[_0x59f9('0x19')][_0x59f9('0x17')](this));ami['on'](_0x59f9('0x1a'),this[_0x59f9('0x1b')][_0x59f9('0x17')](this));ami['on'](_0x59f9('0x1c'),this[_0x59f9('0x1d')]['bind'](this));ami['on']('attendedtransfer',this['attendedTransfer'][_0x59f9('0x17')](this));}};Report[_0x59f9('0x1e')][_0x59f9('0x1f')]=function(_0x568c9d){var _0x2509d9;_0x2509d9=_['find'](this[_0x59f9('0xe')],function(_0x24f87b){return _0x24f87b[_0x59f9('0x20')]==_0x568c9d||_0x24f87b[_0x59f9('0x21')]==_0x568c9d;});if(_[_0x59f9('0x22')](_0x2509d9)){var _0x4ff24a=_[_0x59f9('0x23')](this[_0x59f9('0xf')],function(_0x552bde){return _0x552bde[_0x59f9('0x20')]==_0x568c9d||_0x552bde[_0x59f9('0x21')]==_0x568c9d;});if(_0x4ff24a){_0x2509d9=_[_0x59f9('0x23')](this[_0x59f9('0xe')],function(_0x5e4f22){return _0x5e4f22[_0x59f9('0x24')]==util[_0x59f9('0x25')](_0x59f9('0x26'),_0x4ff24a[_0x59f9('0x21')]);});}}return _0x2509d9;};Report['prototype'][_0x59f9('0x14')]=function(_0xc115da){for(var _0x2cdd5f=0x0;_0x2cdd5f<_0xc115da[_0x59f9('0x27')];_0x2cdd5f+=0x1){var _0x1067d5=this['findAgent'](_0xc115da[_0x2cdd5f][_0x59f9('0x28')]);if(_0x1067d5){_0xc115da[_0x2cdd5f]['accountcode']=_0x1067d5[_0x59f9('0x20')];_0xc115da[_0x2cdd5f][_0x59f9('0x29')]=!![];_0xc115da[_0x2cdd5f][_0x59f9('0x2a')]=_0x1067d5[_0x59f9('0x21')];_0xc115da[_0x2cdd5f][_0x59f9('0x24')]=_[_0x59f9('0x22')](_0x1067d5[_0x59f9('0x24')])?util[_0x59f9('0x25')](_0x59f9('0x26'),_0x1067d5['name']):_0x1067d5[_0x59f9('0x24')];if(_0xc115da[_0x2cdd5f][_0x59f9('0x2b')]){_0xc115da[_0x2cdd5f][_0x59f9('0x2c')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0xc115da[_0x2cdd5f][_0x59f9('0x2d')]){_0xc115da[_0x2cdd5f][_0x59f9('0x2e')]=moment()['format'](_0x59f9('0x2f'));}RpcMemberReport['voiceQueueReport'](_0xc115da[_0x2cdd5f]);}RpcVoiceQueueReport[_0x59f9('0x30')](_0xc115da[_0x2cdd5f]);}};function extractCalleridNumber(_0x4bec4b){var _0x36761f=_0x4bec4b['match'](/<(.*?)>/);return _0x36761f?_0x36761f[0x1]:_0x4bec4b;}Report[_0x59f9('0x1e')]['getAgentByInternal']=function(_0x341230){for(var _0x482295=0x0;_0x482295<Object[_0x59f9('0x31')](this[_0x59f9('0xe')])[_0x59f9('0x27')];_0x482295++){var _0x2415a1=Object['keys'](this[_0x59f9('0xe')])[_0x482295];var _0x239554=this['agents'][_0x2415a1];if(_0x239554[_0x59f9('0x20')]===Number(_0x341230))return _0x239554;}return null;};Report[_0x59f9('0x1e')][_0x59f9('0x32')]=function(_0x58f8c8){var _0x4dbe12=_0x58f8c8[_0x59f9('0x33')][_0x59f9('0x34')]('-')[0x0];var _0x291eb1=this[_0x59f9('0xe')][_0x4dbe12];if(!_0x291eb1)_0x291eb1=this[_0x59f9('0x35')](_0x58f8c8[_0x59f9('0x36')]);return!_0x291eb1?_0x59f9('0x37'):_0x59f9('0x38');};Report[_0x59f9('0x1e')][_0x59f9('0x16')]=function(_0x5d0dc6){_0x5d0dc6[_0x59f9('0x39')]=_0x5d0dc6['destination']||_0x5d0dc6[_0x59f9('0x3a')];if(_0x5d0dc6[_0x59f9('0x3b')]==_0x59f9('0x3c')){_0x5d0dc6['lastapplication']=_0x59f9('0x3d');_0x5d0dc6[_0x59f9('0x3e')]=_0x5d0dc6[_0x59f9('0x3d')];if(_0x5d0dc6[_0x59f9('0x3f')]==_0x59f9('0x40')){_0x5d0dc6[_0x59f9('0x20')]='';_0x5d0dc6[_0x59f9('0x39')]=extractCalleridNumber(_0x5d0dc6[_0x59f9('0x41')]);}else if(_0x5d0dc6[_0x59f9('0x3f')]==_0x59f9('0x42')){if(_0x5d0dc6[_0x59f9('0x39')]==_0x59f9('0x43')){_0x5d0dc6[_0x59f9('0x39')]=extractCalleridNumber(_0x5d0dc6[_0x59f9('0x44')]);_0x5d0dc6[_0x59f9('0x36')]=_0x5d0dc6[_0x59f9('0x45')];_0x5d0dc6[_0x59f9('0x46')]=[_0x5d0dc6[_0x59f9('0x33')],_0x5d0dc6[_0x59f9('0x33')]=_0x5d0dc6[_0x59f9('0x46')]][0x0];_0x5d0dc6[_0x59f9('0x41')]=_0x5d0dc6['calleridpreview'];}else{_0x5d0dc6[_0x59f9('0x39')]=_0x5d0dc6[_0x59f9('0x36')];_0x5d0dc6['calleridnum']=_0x5d0dc6[_0x59f9('0x45')];if(_0x5d0dc6[_0x59f9('0x47')]=='ANSWERED'){_0x5d0dc6[_0x59f9('0x20')]=_0x5d0dc6[_0x59f9('0x28')];}else{_0x5d0dc6['accountcode']='';}}}}else{_0x5d0dc6[_0x59f9('0x41')]=util['format'](_0x59f9('0x48'),_0x5d0dc6['calleridname'],_0x5d0dc6[_0x59f9('0x36')]);}if(RpcVoiceTransferReport[_0x59f9('0x49')][_0x5d0dc6['linkedid']]){var _0x2e2e1a=RpcVoiceTransferReport['transfers'][_0x5d0dc6['linkedid']];_0x2e2e1a[_0x59f9('0x4a')]=_0x5d0dc6[_0x59f9('0x4b')];RpcVoiceTransferReport['blindTransfer'](_0x2e2e1a);delete RpcVoiceTransferReport[_0x59f9('0x49')][_0x5d0dc6[_0x59f9('0x4c')]];}if(_['isNil'](_0x5d0dc6[_0x59f9('0x3b')])){_0x5d0dc6['type']=this[_0x59f9('0x32')](_0x5d0dc6);}if(_[_0x59f9('0x22')](_0x5d0dc6[_0x59f9('0x4d')])){var _0x505b29=_0x5d0dc6[_0x59f9('0x33')][_0x59f9('0x34')]('-')[0x0];var _0x370dfd=this[_0x59f9('0xe')][_0x505b29];if(!_0x370dfd)_0x370dfd=this[_0x59f9('0x35')](_0x5d0dc6[_0x59f9('0x20')]);if(_0x370dfd){_0x5d0dc6[_0x59f9('0x4d')]=_0x370dfd['id'];_0x5d0dc6[_0x59f9('0x4e')]=_0x370dfd[_0x59f9('0x21')];}}RpcVoiceCallReport['create'](_0x5d0dc6);if(_0x5d0dc6[_0x59f9('0x4f')]){for(var _0x5061ba=0x0;_0x5061ba<_0x5d0dc6['monitors'][_0x59f9('0x27')];_0x5061ba+=0x1){_0x5d0dc6[_0x59f9('0x50')]=_0x5d0dc6[_0x59f9('0x51')][_0x5061ba][_0x59f9('0x52')];_0x5d0dc6[_0x59f9('0x53')]=_0x5d0dc6[_0x59f9('0x51')][_0x5061ba][_0x59f9('0x53')];if(_0x5d0dc6[_0x59f9('0x3a')]==_0x59f9('0x43')){_0x5d0dc6[_0x59f9('0x36')]=_0x5d0dc6[_0x59f9('0x28')];_0x5d0dc6[_0x59f9('0x54')]=_0x5d0dc6[_0x59f9('0x55')];_0x5d0dc6['connectedlinenum']=_0x5d0dc6[_0x59f9('0x20')];_0x5d0dc6[_0x59f9('0x55')]=_0x5d0dc6[_0x59f9('0x4e')];_0x5d0dc6[_0x59f9('0x3a')]=_0x5d0dc6[_0x59f9('0x45')];}else if(_0x5d0dc6[_0x59f9('0x3a')]==_0x59f9('0x56')){_0x5d0dc6['calleridnum']=_0x5d0dc6[_0x59f9('0x39')];_0x5d0dc6[_0x59f9('0x3a')]=_0x5d0dc6[_0x59f9('0x45')];}RpcVoiceRecording['create'](_0x5d0dc6);}}};Report[_0x59f9('0x1e')][_0x59f9('0x19')]=function(_0xfdf0f){if(_[_0x59f9('0x57')](_0xfdf0f)){_0xfdf0f[_0x59f9('0x58')](function(_0x5c5b98){RpcVoiceAgentReport['create'](_0x5c5b98);});}else{RpcVoiceAgentReport[_0x59f9('0x30')](_0xfdf0f);}};Report[_0x59f9('0x1e')][_0x59f9('0x1b')]=function(_0x43a2b9){RpcVoiceDialReport[_0x59f9('0x30')](_0x43a2b9);var _0x10ee13;var _0x275188;var _0x191887=_0x43a2b9['channel'];if(_['startsWith'](_0x191887,_0x59f9('0x59'))){_0x275188=_0x191887[_0x59f9('0x5a')](_0x191887[_0x59f9('0x5b')]('/')+0x1,_0x191887['indexOf']('@'));_0x10ee13=_[_0x59f9('0x23')](this[_0x59f9('0xe')],function(_0x291672){return _0x291672[_0x59f9('0x5c')]==_0x275188||_0x291672[_0x59f9('0x5d')]==_0x275188||_0x291672[_0x59f9('0x20')]==_0x275188;});}else{_0x275188=_0x191887[_0x59f9('0x5a')](_0x191887[_0x59f9('0x5b')]('/')+0x1,_0x191887[_0x59f9('0x5e')]('-'));_0x10ee13=this[_0x59f9('0x1f')](_0x275188);}if(_0x10ee13){_0x43a2b9[_0x59f9('0x24')]=_[_0x59f9('0x22')](_0x10ee13[_0x59f9('0x24')])?util[_0x59f9('0x25')](_0x59f9('0x26'),_0x10ee13[_0x59f9('0x21')]):_0x10ee13[_0x59f9('0x24')];_0x43a2b9['membername']=_0x10ee13[_0x59f9('0x21')];_0x43a2b9[_0x59f9('0x20')]=_0x10ee13[_0x59f9('0x20')];RpcMemberReport[_0x59f9('0x1b')](_0x43a2b9);}};Report[_0x59f9('0x1e')][_0x59f9('0x1d')]=function(_0x428bd5){RpcVoiceTransferReport['transfers'][_0x428bd5[_0x59f9('0x5f')]]=_0x428bd5;};Report[_0x59f9('0x1e')][_0x59f9('0x60')]=function(_0x18a72f){RpcVoiceTransferReport[_0x59f9('0x60')](_0x18a72f);};module['exports']=Report;