e9eb564037fe9ab32d337d3720329653ef5399a5
[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 _0xf4a5=['context','callerid','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','ANSWERED','connectedlinenum','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','UserId','membername','create','monitors','monitorFilename','filename','createdAt','exten','connectedlinename','xcally-motion-dialer','isArray','startsWith','Local','substring','indexOf','transfererlinkedid','attendedTransfer','exports','lodash','moment','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedtransfer','find','name','isNil','format','SIP/%s','length','findAgent','accountcode','assigned','lastAssignedTo','interface','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','match','getAgentByInternal','keys','getCallType','channel','calleridnum','outbound','destination','type','dialer','queue','lastdata'];(function(_0xdea41a,_0x552987){var _0x15d0d8=function(_0x1e0d0b){while(--_0x1e0d0b){_0xdea41a['push'](_0xdea41a['shift']());}};_0x15d0d8(++_0x552987);}(_0xf4a5,0xd4));var _0x5f4a=function(_0xf8886b,_0x504891){_0xf8886b=_0xf8886b-0x0;var _0x321bd5=_0xf4a5[_0xf8886b];return _0x321bd5;};'use strict';var _=require(_0x5f4a('0x0'));var moment=require(_0x5f4a('0x1'));var util=require('util');var config=require(_0x5f4a('0x2'));var ami=require(_0x5f4a('0x3'));var RpcVoiceAgentReport=require(_0x5f4a('0x4'));var RpcVoiceCallReport=require(_0x5f4a('0x5'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x5f4a('0x6'));var RpcVoiceQueueReport=require(_0x5f4a('0x7'));var RpcVoiceRecording=require(_0x5f4a('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0x5f4a('0x9'));var VoiceCallReport=require(_0x5f4a('0xa'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x5f4a('0xb'));var UserReport=require(_0x5f4a('0xc'));function Report(_0x4e7511){this[_0x5f4a('0xd')]=_0x4e7511;this[_0x5f4a('0xe')]=_0x4e7511['agents'];this[_0x5f4a('0xf')]=_0x4e7511['telephones'];}Report[_0x5f4a('0x10')][_0x5f4a('0x11')]=function(_0x18f3fc){var _0x2c072f=new VoiceQueueReport(this[_0x5f4a('0xd')]);var _0x394c05=new VoiceAgentReport(this[_0x5f4a('0xd')]);var _0x35ecd9=new VoiceDialReport(this[_0x5f4a('0xd')]);var _0xa164fc=new VoiceCallReport(this['realtime']);var _0x56418c=new UserReport(this['realtime']);if(config[_0x5f4a('0x12')]&&config[_0x5f4a('0x12')][_0x5f4a('0x13')]){ami['on'](_0x5f4a('0x14'),this[_0x5f4a('0x15')][_0x5f4a('0x16')](this));ami['on'](_0x5f4a('0x17'),this[_0x5f4a('0x18')]['bind'](this));ami['on']('custom:voiceAgentReport',this[_0x5f4a('0x19')][_0x5f4a('0x16')](this));ami['on'](_0x5f4a('0x1a'),this[_0x5f4a('0x1b')][_0x5f4a('0x16')](this));ami['on'](_0x5f4a('0x1c'),this['blindTransfer'][_0x5f4a('0x16')](this));ami['on'](_0x5f4a('0x1d'),this['attendedTransfer'][_0x5f4a('0x16')](this));}};Report['prototype']['findAgent']=function(_0x481a47){var _0x3a60b6;_0x3a60b6=_[_0x5f4a('0x1e')](this[_0x5f4a('0xe')],function(_0x1ddb44){return _0x1ddb44['accountcode']==_0x481a47||_0x1ddb44[_0x5f4a('0x1f')]==_0x481a47;});if(_[_0x5f4a('0x20')](_0x3a60b6)){var _0x40b323=_[_0x5f4a('0x1e')](this[_0x5f4a('0xf')],function(_0x308ccd){return _0x308ccd['accountcode']==_0x481a47||_0x308ccd[_0x5f4a('0x1f')]==_0x481a47;});if(_0x40b323){_0x3a60b6=_[_0x5f4a('0x1e')](this['agents'],function(_0x150718){return _0x150718['interface']==util[_0x5f4a('0x21')](_0x5f4a('0x22'),_0x40b323[_0x5f4a('0x1f')]);});}}return _0x3a60b6;};Report['prototype'][_0x5f4a('0x15')]=function(_0x391411){for(var _0x5be01a=0x0;_0x5be01a<_0x391411[_0x5f4a('0x23')];_0x5be01a+=0x1){var _0x1123c1=this[_0x5f4a('0x24')](_0x391411[_0x5be01a]['connectedlinenum']);if(_0x1123c1){_0x391411[_0x5be01a][_0x5f4a('0x25')]=_0x1123c1[_0x5f4a('0x25')];_0x391411[_0x5be01a][_0x5f4a('0x26')]=!![];_0x391411[_0x5be01a][_0x5f4a('0x27')]=_0x1123c1['name'];_0x391411[_0x5be01a][_0x5f4a('0x28')]=_[_0x5f4a('0x20')](_0x1123c1[_0x5f4a('0x28')])?util[_0x5f4a('0x21')](_0x5f4a('0x22'),_0x1123c1[_0x5f4a('0x1f')]):_0x1123c1[_0x5f4a('0x28')];if(_0x391411[_0x5be01a][_0x5f4a('0x29')]){_0x391411[_0x5be01a][_0x5f4a('0x2a')]=moment()['format'](_0x5f4a('0x2b'));}if(_0x391411[_0x5be01a][_0x5f4a('0x2c')]){_0x391411[_0x5be01a][_0x5f4a('0x2d')]=moment()['format'](_0x5f4a('0x2b'));}RpcMemberReport[_0x5f4a('0x15')](_0x391411[_0x5be01a]);}RpcVoiceQueueReport['create'](_0x391411[_0x5be01a]);}};function extractCalleridNumber(_0x21e5fb){var _0xd95d21=_0x21e5fb[_0x5f4a('0x2e')](/<(.*?)>/);return _0xd95d21?_0xd95d21[0x1]:_0x21e5fb;}Report[_0x5f4a('0x10')][_0x5f4a('0x2f')]=function(_0x4c29c0){for(var _0x5c4049=0x0;_0x5c4049<Object[_0x5f4a('0x30')](this['agents'])[_0x5f4a('0x23')];_0x5c4049++){var _0x4cf81c=Object['keys'](this['agents'])[_0x5c4049];var _0x9ce1d4=this[_0x5f4a('0xe')][_0x4cf81c];if(_0x9ce1d4[_0x5f4a('0x25')]===Number(_0x4c29c0))return _0x9ce1d4;}return null;};Report[_0x5f4a('0x10')][_0x5f4a('0x31')]=function(_0x2d86f1){var _0xb3dfae=_0x2d86f1[_0x5f4a('0x32')]['split']('-')[0x0];var _0x2d6f80=this[_0x5f4a('0xe')][_0xb3dfae];if(!_0x2d6f80)_0x2d6f80=this[_0x5f4a('0x2f')](_0x2d86f1[_0x5f4a('0x33')]);return!_0x2d6f80?_0x5f4a('0x34'):'internal';};Report[_0x5f4a('0x10')][_0x5f4a('0x18')]=function(_0x3b65f4){_0x3b65f4[_0x5f4a('0x35')]=_0x3b65f4[_0x5f4a('0x35')]||_0x3b65f4['exten'];if(_0x3b65f4[_0x5f4a('0x36')]==_0x5f4a('0x37')){_0x3b65f4['lastapplication']=_0x5f4a('0x38');_0x3b65f4[_0x5f4a('0x39')]=_0x3b65f4[_0x5f4a('0x38')];if(_0x3b65f4[_0x5f4a('0x3a')]=='from-voip-provider'){_0x3b65f4[_0x5f4a('0x25')]='';_0x3b65f4['destination']=extractCalleridNumber(_0x3b65f4[_0x5f4a('0x3b')]);}else if(_0x3b65f4[_0x5f4a('0x3a')]=='from-sip'){if(_0x3b65f4[_0x5f4a('0x35')]==_0x5f4a('0x3c')){_0x3b65f4[_0x5f4a('0x35')]=extractCalleridNumber(_0x3b65f4[_0x5f4a('0x3d')]);_0x3b65f4['calleridnum']=_0x3b65f4[_0x5f4a('0x3e')];_0x3b65f4[_0x5f4a('0x3f')]=[_0x3b65f4['channel'],_0x3b65f4['channel']=_0x3b65f4['destinationchannel']][0x0];_0x3b65f4[_0x5f4a('0x3b')]=_0x3b65f4[_0x5f4a('0x3d')];}else{_0x3b65f4[_0x5f4a('0x35')]=_0x3b65f4[_0x5f4a('0x33')];_0x3b65f4[_0x5f4a('0x33')]=_0x3b65f4['originatecalleridnum'];if(_0x3b65f4['disposition']==_0x5f4a('0x40')){_0x3b65f4[_0x5f4a('0x25')]=_0x3b65f4[_0x5f4a('0x41')];}else{_0x3b65f4[_0x5f4a('0x25')]='';}}}}else{_0x3b65f4['callerid']=util[_0x5f4a('0x21')](_0x5f4a('0x42'),_0x3b65f4[_0x5f4a('0x43')],_0x3b65f4[_0x5f4a('0x33')]);}if(RpcVoiceTransferReport[_0x5f4a('0x44')][_0x3b65f4['linkedid']]){var _0x4cb64c=RpcVoiceTransferReport[_0x5f4a('0x44')][_0x3b65f4[_0x5f4a('0x45')]];_0x4cb64c[_0x5f4a('0x46')]=_0x3b65f4[_0x5f4a('0x47')];RpcVoiceTransferReport['blindTransfer'](_0x4cb64c);delete RpcVoiceTransferReport[_0x5f4a('0x44')][_0x3b65f4[_0x5f4a('0x45')]];}if(_[_0x5f4a('0x20')](_0x3b65f4[_0x5f4a('0x36')])){_0x3b65f4[_0x5f4a('0x36')]=this[_0x5f4a('0x31')](_0x3b65f4);}if(_[_0x5f4a('0x20')](_0x3b65f4['UserId'])){var _0x27120d=_0x3b65f4['channel']['split']('-')[0x0];var _0x152595=this[_0x5f4a('0xe')][_0x27120d];if(!_0x152595)_0x152595=this[_0x5f4a('0x2f')](_0x3b65f4[_0x5f4a('0x25')]);if(_0x152595){_0x3b65f4[_0x5f4a('0x48')]=_0x152595['id'];_0x3b65f4[_0x5f4a('0x49')]=_0x152595[_0x5f4a('0x1f')];}}RpcVoiceCallReport[_0x5f4a('0x4a')](_0x3b65f4);if(_0x3b65f4['monitor']){for(var _0x34b0dd=0x0;_0x34b0dd<_0x3b65f4[_0x5f4a('0x4b')][_0x5f4a('0x23')];_0x34b0dd+=0x1){_0x3b65f4[_0x5f4a('0x4c')]=_0x3b65f4[_0x5f4a('0x4b')][_0x34b0dd][_0x5f4a('0x4d')];_0x3b65f4[_0x5f4a('0x4e')]=_0x3b65f4['monitors'][_0x34b0dd][_0x5f4a('0x4e')];if(_0x3b65f4[_0x5f4a('0x4f')]==_0x5f4a('0x3c')){_0x3b65f4[_0x5f4a('0x33')]=_0x3b65f4[_0x5f4a('0x41')];_0x3b65f4['calleridname']=_0x3b65f4[_0x5f4a('0x50')];_0x3b65f4[_0x5f4a('0x41')]=_0x3b65f4[_0x5f4a('0x25')];_0x3b65f4[_0x5f4a('0x50')]=_0x3b65f4['membername'];_0x3b65f4[_0x5f4a('0x4f')]=_0x3b65f4[_0x5f4a('0x3e')];}else if(_0x3b65f4[_0x5f4a('0x4f')]==_0x5f4a('0x51')){_0x3b65f4[_0x5f4a('0x33')]=_0x3b65f4[_0x5f4a('0x35')];_0x3b65f4[_0x5f4a('0x4f')]=_0x3b65f4['originatecalleridnum'];}RpcVoiceRecording[_0x5f4a('0x4a')](_0x3b65f4);}}};Report[_0x5f4a('0x10')]['voiceAgentReport']=function(_0x193d68){if(_[_0x5f4a('0x52')](_0x193d68)){_0x193d68['forEach'](function(_0x504644){RpcVoiceAgentReport['create'](_0x504644);});}else{RpcVoiceAgentReport[_0x5f4a('0x4a')](_0x193d68);}};Report['prototype'][_0x5f4a('0x1b')]=function(_0x29f641){RpcVoiceDialReport['create'](_0x29f641);var _0x5a10f6;var _0x28c96c;var _0x457122=_0x29f641[_0x5f4a('0x32')];if(_[_0x5f4a('0x53')](_0x457122,_0x5f4a('0x54'))){_0x28c96c=_0x457122[_0x5f4a('0x55')](_0x457122[_0x5f4a('0x56')]('/')+0x1,_0x457122[_0x5f4a('0x56')]('@'));_0x5a10f6=_['find'](this[_0x5f4a('0xe')],function(_0x2226a4){return _0x2226a4['mobile']==_0x28c96c||_0x2226a4['phone']==_0x28c96c||_0x2226a4[_0x5f4a('0x25')]==_0x28c96c;});}else{_0x28c96c=_0x457122['substring'](_0x457122[_0x5f4a('0x56')]('/')+0x1,_0x457122['lastIndexOf']('-'));_0x5a10f6=this[_0x5f4a('0x24')](_0x28c96c);}if(_0x5a10f6){_0x29f641['interface']=_[_0x5f4a('0x20')](_0x5a10f6[_0x5f4a('0x28')])?util[_0x5f4a('0x21')](_0x5f4a('0x22'),_0x5a10f6[_0x5f4a('0x1f')]):_0x5a10f6['interface'];_0x29f641[_0x5f4a('0x49')]=_0x5a10f6['name'];_0x29f641[_0x5f4a('0x25')]=_0x5a10f6[_0x5f4a('0x25')];RpcMemberReport['voiceDialReport'](_0x29f641);}};Report[_0x5f4a('0x10')]['blindTransfer']=function(_0x468eb4){RpcVoiceTransferReport[_0x5f4a('0x44')][_0x468eb4[_0x5f4a('0x57')]]=_0x468eb4;};Report[_0x5f4a('0x10')][_0x5f4a('0x58')]=function(_0x247dd6){RpcVoiceTransferReport[_0x5f4a('0x58')](_0x247dd6);};module[_0x5f4a('0x59')]=Report;