Built motion from commit ddca4d0d.|2.5.47
[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 _0x1bc7=['../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','accountcode','name','isNil','find','interface','SIP/%s','length','connectedlinenum','lastAssignedTo','format','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','getAgentByInternal','keys','getCallType','channel','calleridnum','outbound','internal','destination','exten','type','dialer','lastapplication','lastdata','queue','context','from-voip-provider','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','callerid','disposition','ANSWERED','transfers','transfereelinkedid','uniqueid','UserId','split','membername','monitors','filename','connectedlinename','xcally-motion-dialer','voiceAgentReport','isArray','forEach','startsWith','Local','substring','indexOf','mobile','findAgent','transfererlinkedid','lodash','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/memberReport'];(function(_0x28f2bc,_0x280137){var _0x804351=function(_0x4fb0f1){while(--_0x4fb0f1){_0x28f2bc['push'](_0x28f2bc['shift']());}};_0x804351(++_0x280137);}(_0x1bc7,0x10d));var _0x71bc=function(_0x648314,_0x220a27){_0x648314=_0x648314-0x0;var _0x271c4a=_0x1bc7[_0x648314];return _0x271c4a;};'use strict';var _=require(_0x71bc('0x0'));var moment=require('moment');var util=require(_0x71bc('0x1'));var config=require(_0x71bc('0x2'));var ami=require(_0x71bc('0x3'));var RpcVoiceAgentReport=require(_0x71bc('0x4'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0x71bc('0x5'));var RpcMemberReport=require(_0x71bc('0x6'));var RpcVoiceQueueReport=require(_0x71bc('0x7'));var RpcVoiceRecording=require(_0x71bc('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0x71bc('0x9'));var VoiceCallReport=require(_0x71bc('0xa'));var VoiceAgentReport=require(_0x71bc('0xb'));var VoiceDialReport=require(_0x71bc('0xc'));var UserReport=require(_0x71bc('0xd'));function Report(_0x45929f){this[_0x71bc('0xe')]=_0x45929f;this[_0x71bc('0xf')]=_0x45929f[_0x71bc('0xf')];this[_0x71bc('0x10')]=_0x45929f['telephones'];}Report[_0x71bc('0x11')][_0x71bc('0x12')]=function(_0x1fe63e){var _0x2622ef=new VoiceQueueReport(this[_0x71bc('0xe')]);var _0x5553b8=new VoiceAgentReport(this[_0x71bc('0xe')]);var _0x4d8b74=new VoiceDialReport(this[_0x71bc('0xe')]);var _0x51b1bf=new VoiceCallReport(this[_0x71bc('0xe')]);var _0x50fb09=new UserReport(this[_0x71bc('0xe')]);if(config[_0x71bc('0x13')]&&config[_0x71bc('0x13')]['disabled']){ami['on']('custom:voiceQueueReport',this[_0x71bc('0x14')][_0x71bc('0x15')](this));ami['on'](_0x71bc('0x16'),this[_0x71bc('0x17')][_0x71bc('0x15')](this));ami['on'](_0x71bc('0x18'),this['voiceAgentReport']['bind'](this));ami['on'](_0x71bc('0x19'),this[_0x71bc('0x1a')][_0x71bc('0x15')](this));ami['on'](_0x71bc('0x1b'),this[_0x71bc('0x1c')]['bind'](this));ami['on'](_0x71bc('0x1d'),this[_0x71bc('0x1e')]['bind'](this));}};Report[_0x71bc('0x11')]['findAgent']=function(_0x26939a){var _0x549ecf;_0x549ecf=_['find'](this[_0x71bc('0xf')],function(_0x29d16a){return _0x29d16a[_0x71bc('0x1f')]==_0x26939a||_0x29d16a[_0x71bc('0x20')]==_0x26939a;});if(_[_0x71bc('0x21')](_0x549ecf)){var _0x1d605f=_[_0x71bc('0x22')](this[_0x71bc('0x10')],function(_0x122ce1){return _0x122ce1[_0x71bc('0x1f')]==_0x26939a||_0x122ce1[_0x71bc('0x20')]==_0x26939a;});if(_0x1d605f){_0x549ecf=_[_0x71bc('0x22')](this[_0x71bc('0xf')],function(_0x1e02b4){return _0x1e02b4[_0x71bc('0x23')]==util['format'](_0x71bc('0x24'),_0x1d605f['name']);});}}return _0x549ecf;};Report['prototype']['voiceQueueReport']=function(_0x13850d){for(var _0x1b3233=0x0;_0x1b3233<_0x13850d[_0x71bc('0x25')];_0x1b3233+=0x1){var _0xcf93b1=this['findAgent'](_0x13850d[_0x1b3233][_0x71bc('0x26')]);if(_0xcf93b1){_0x13850d[_0x1b3233][_0x71bc('0x1f')]=_0xcf93b1[_0x71bc('0x1f')];_0x13850d[_0x1b3233]['assigned']=!![];_0x13850d[_0x1b3233][_0x71bc('0x27')]=_0xcf93b1['name'];_0x13850d[_0x1b3233]['interface']=_[_0x71bc('0x21')](_0xcf93b1[_0x71bc('0x23')])?util[_0x71bc('0x28')](_0x71bc('0x24'),_0xcf93b1[_0x71bc('0x20')]):_0xcf93b1[_0x71bc('0x23')];if(_0x13850d[_0x1b3233][_0x71bc('0x29')]){_0x13850d[_0x1b3233][_0x71bc('0x2a')]=moment()[_0x71bc('0x28')](_0x71bc('0x2b'));}if(_0x13850d[_0x1b3233][_0x71bc('0x2c')]){_0x13850d[_0x1b3233][_0x71bc('0x2d')]=moment()[_0x71bc('0x28')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x71bc('0x14')](_0x13850d[_0x1b3233]);}RpcVoiceQueueReport[_0x71bc('0x2e')](_0x13850d[_0x1b3233]);}};function extractCalleridNumber(_0x4a207a){var _0x2dbb54=_0x4a207a[_0x71bc('0x2f')](/<(.*?)>/);return _0x2dbb54?_0x2dbb54[0x1]:_0x4a207a;}Report[_0x71bc('0x11')][_0x71bc('0x30')]=function(_0x361225){for(var _0x217668=0x0;_0x217668<Object[_0x71bc('0x31')](this[_0x71bc('0xf')])[_0x71bc('0x25')];_0x217668++){var _0x441171=Object[_0x71bc('0x31')](this[_0x71bc('0xf')])[_0x217668];var _0xf50da5=this[_0x71bc('0xf')][_0x441171];if(_0xf50da5[_0x71bc('0x1f')]===Number(_0x361225))return _0xf50da5;}return null;};Report[_0x71bc('0x11')][_0x71bc('0x32')]=function(_0x2bcf04){var _0x453888=_0x2bcf04[_0x71bc('0x33')]['split']('-')[0x0];var _0x4ab5a7=this[_0x71bc('0xf')][_0x453888];if(!_0x4ab5a7)_0x4ab5a7=this['getAgentByInternal'](_0x2bcf04[_0x71bc('0x34')]);return!_0x4ab5a7?_0x71bc('0x35'):_0x71bc('0x36');};Report[_0x71bc('0x11')][_0x71bc('0x17')]=function(_0x4a5de1){_0x4a5de1[_0x71bc('0x37')]=_0x4a5de1[_0x71bc('0x37')]||_0x4a5de1[_0x71bc('0x38')];if(_0x4a5de1[_0x71bc('0x39')]==_0x71bc('0x3a')){_0x4a5de1[_0x71bc('0x3b')]='queue';_0x4a5de1[_0x71bc('0x3c')]=_0x4a5de1[_0x71bc('0x3d')];if(_0x4a5de1[_0x71bc('0x3e')]==_0x71bc('0x3f')){_0x4a5de1['accountcode']='';_0x4a5de1[_0x71bc('0x37')]=extractCalleridNumber(_0x4a5de1['callerid']);}else if(_0x4a5de1['context']==_0x71bc('0x40')){if(_0x4a5de1[_0x71bc('0x37')]==_0x71bc('0x41')){_0x4a5de1[_0x71bc('0x37')]=extractCalleridNumber(_0x4a5de1[_0x71bc('0x42')]);_0x4a5de1[_0x71bc('0x34')]=_0x4a5de1[_0x71bc('0x43')];_0x4a5de1[_0x71bc('0x44')]=[_0x4a5de1[_0x71bc('0x33')],_0x4a5de1[_0x71bc('0x33')]=_0x4a5de1[_0x71bc('0x44')]][0x0];_0x4a5de1[_0x71bc('0x45')]=_0x4a5de1['calleridpreview'];}else{_0x4a5de1[_0x71bc('0x37')]=_0x4a5de1[_0x71bc('0x34')];_0x4a5de1['calleridnum']=_0x4a5de1[_0x71bc('0x43')];if(_0x4a5de1[_0x71bc('0x46')]==_0x71bc('0x47')){_0x4a5de1['accountcode']=_0x4a5de1['connectedlinenum'];}else{_0x4a5de1[_0x71bc('0x1f')]='';}}}}else{_0x4a5de1[_0x71bc('0x45')]=util[_0x71bc('0x28')]('\x22%s\x22\x20<%s>',_0x4a5de1['calleridname'],_0x4a5de1['calleridnum']);}if(RpcVoiceTransferReport[_0x71bc('0x48')][_0x4a5de1['linkedid']]){var _0x20dd71=RpcVoiceTransferReport[_0x71bc('0x48')][_0x4a5de1['linkedid']];_0x20dd71[_0x71bc('0x49')]=_0x4a5de1[_0x71bc('0x4a')];RpcVoiceTransferReport['blindTransfer'](_0x20dd71);delete RpcVoiceTransferReport[_0x71bc('0x48')][_0x4a5de1['linkedid']];}if(_['isNil'](_0x4a5de1[_0x71bc('0x39')])){_0x4a5de1[_0x71bc('0x39')]=this[_0x71bc('0x32')](_0x4a5de1);}if(_[_0x71bc('0x21')](_0x4a5de1[_0x71bc('0x4b')])){var _0x2138c1=_0x4a5de1['channel'][_0x71bc('0x4c')]('-')[0x0];var _0x43d7b3=this['agents'][_0x2138c1];if(!_0x43d7b3)_0x43d7b3=this[_0x71bc('0x30')](_0x4a5de1[_0x71bc('0x1f')]);if(_0x43d7b3){_0x4a5de1[_0x71bc('0x4b')]=_0x43d7b3['id'];_0x4a5de1[_0x71bc('0x4d')]=_0x43d7b3[_0x71bc('0x20')];}}RpcVoiceCallReport[_0x71bc('0x2e')](_0x4a5de1);if(_0x4a5de1['monitor']){for(var _0x5862e1=0x0;_0x5862e1<_0x4a5de1['monitors']['length'];_0x5862e1+=0x1){_0x4a5de1['monitorFilename']=_0x4a5de1[_0x71bc('0x4e')][_0x5862e1][_0x71bc('0x4f')];_0x4a5de1['createdAt']=_0x4a5de1[_0x71bc('0x4e')][_0x5862e1]['createdAt'];if(_0x4a5de1[_0x71bc('0x38')]==_0x71bc('0x41')){_0x4a5de1['calleridnum']=_0x4a5de1[_0x71bc('0x26')];_0x4a5de1['calleridname']=_0x4a5de1[_0x71bc('0x50')];_0x4a5de1[_0x71bc('0x26')]=_0x4a5de1[_0x71bc('0x1f')];_0x4a5de1[_0x71bc('0x50')]=_0x4a5de1[_0x71bc('0x4d')];_0x4a5de1[_0x71bc('0x38')]=_0x4a5de1[_0x71bc('0x43')];}else if(_0x4a5de1[_0x71bc('0x38')]==_0x71bc('0x51')){_0x4a5de1[_0x71bc('0x34')]=_0x4a5de1[_0x71bc('0x37')];_0x4a5de1['exten']=_0x4a5de1['originatecalleridnum'];}RpcVoiceRecording[_0x71bc('0x2e')](_0x4a5de1);}}};Report[_0x71bc('0x11')][_0x71bc('0x52')]=function(_0x289742){if(_[_0x71bc('0x53')](_0x289742)){_0x289742[_0x71bc('0x54')](function(_0x475f05){RpcVoiceAgentReport[_0x71bc('0x2e')](_0x475f05);});}else{RpcVoiceAgentReport[_0x71bc('0x2e')](_0x289742);}};Report['prototype']['voiceDialReport']=function(_0x2abf18){RpcVoiceDialReport[_0x71bc('0x2e')](_0x2abf18);var _0x433edf;var _0x9c9eef;var _0x371a37=_0x2abf18[_0x71bc('0x33')];if(_[_0x71bc('0x55')](_0x371a37,_0x71bc('0x56'))){_0x9c9eef=_0x371a37[_0x71bc('0x57')](_0x371a37[_0x71bc('0x58')]('/')+0x1,_0x371a37[_0x71bc('0x58')]('@'));_0x433edf=_[_0x71bc('0x22')](this[_0x71bc('0xf')],function(_0x140dcc){return _0x140dcc[_0x71bc('0x59')]==_0x9c9eef||_0x140dcc['phone']==_0x9c9eef||_0x140dcc[_0x71bc('0x1f')]==_0x9c9eef;});}else{_0x9c9eef=_0x371a37[_0x71bc('0x57')](_0x371a37['indexOf']('/')+0x1,_0x371a37['lastIndexOf']('-'));_0x433edf=this[_0x71bc('0x5a')](_0x9c9eef);}if(_0x433edf){_0x2abf18[_0x71bc('0x23')]=_['isNil'](_0x433edf[_0x71bc('0x23')])?util[_0x71bc('0x28')](_0x71bc('0x24'),_0x433edf[_0x71bc('0x20')]):_0x433edf[_0x71bc('0x23')];_0x2abf18[_0x71bc('0x4d')]=_0x433edf[_0x71bc('0x20')];_0x2abf18[_0x71bc('0x1f')]=_0x433edf[_0x71bc('0x1f')];RpcMemberReport['voiceDialReport'](_0x2abf18);}};Report[_0x71bc('0x11')]['blindTransfer']=function(_0x476795){RpcVoiceTransferReport['transfers'][_0x476795[_0x71bc('0x5b')]]=_0x476795;};Report[_0x71bc('0x11')][_0x71bc('0x1e')]=function(_0xb26fdf){RpcVoiceTransferReport[_0x71bc('0x1e')](_0xb26fdf);};module['exports']=Report;