Built motion from commit 82bb2304.|2.5.39
[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 _0x7b42=['startsWith','substring','indexOf','mobile','lastIndexOf','transfererlinkedid','attendedTransfer','exports','lodash','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','custom:voiceQueueReport','voiceQueueReport','bind','voiceCallReport','custom:voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','prototype','findAgent','accountcode','name','find','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','interface','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','getAgentByInternal','keys','getCallType','channel','split','calleridnum','outbound','internal','destination','exten','type','dialer','lastapplication','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','isNil','monitor','monitorFilename','monitors','createdAt','membername','xcally-motion-dialer','isArray','forEach'];(function(_0x29026c,_0x176feb){var _0x2aba2f=function(_0x40846a){while(--_0x40846a){_0x29026c['push'](_0x29026c['shift']());}};_0x2aba2f(++_0x176feb);}(_0x7b42,0xca));var _0x27b4=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x7b42[_0x6c993a];return _0x27f547;};'use strict';var _=require(_0x27b4('0x0'));var moment=require('moment');var util=require(_0x27b4('0x1'));var config=require(_0x27b4('0x2'));var ami=require(_0x27b4('0x3'));var RpcVoiceAgentReport=require(_0x27b4('0x4'));var RpcVoiceCallReport=require(_0x27b4('0x5'));var RpcVoiceDialReport=require(_0x27b4('0x6'));var RpcMemberReport=require(_0x27b4('0x7'));var RpcVoiceQueueReport=require(_0x27b4('0x8'));var RpcVoiceRecording=require(_0x27b4('0x9'));var RpcVoiceTransferReport=require(_0x27b4('0xa'));var VoiceQueueReport=require(_0x27b4('0xb'));var VoiceCallReport=require(_0x27b4('0xc'));var VoiceAgentReport=require(_0x27b4('0xd'));var VoiceDialReport=require(_0x27b4('0xe'));var UserReport=require(_0x27b4('0xf'));function Report(_0xf9effe){this[_0x27b4('0x10')]=_0xf9effe;this[_0x27b4('0x11')]=_0xf9effe['agents'];this[_0x27b4('0x12')]=_0xf9effe[_0x27b4('0x12')];}Report['prototype'][_0x27b4('0x13')]=function(_0x4728a2){var _0x5f3f2e=new VoiceQueueReport(this['realtime']);var _0xf84826=new VoiceAgentReport(this[_0x27b4('0x10')]);var _0x567cdd=new VoiceDialReport(this[_0x27b4('0x10')]);var _0x130379=new VoiceCallReport(this[_0x27b4('0x10')]);var _0x39361d=new UserReport(this[_0x27b4('0x10')]);if(config[_0x27b4('0x14')]&&config[_0x27b4('0x14')]['disabled']){ami['on'](_0x27b4('0x15'),this[_0x27b4('0x16')][_0x27b4('0x17')](this));ami['on']('custom:voiceCallReport',this[_0x27b4('0x18')][_0x27b4('0x17')](this));ami['on'](_0x27b4('0x19'),this['voiceAgentReport'][_0x27b4('0x17')](this));ami['on'](_0x27b4('0x1a'),this[_0x27b4('0x1b')][_0x27b4('0x17')](this));ami['on'](_0x27b4('0x1c'),this[_0x27b4('0x1d')]['bind'](this));ami['on'](_0x27b4('0x1e'),this['attendedTransfer'][_0x27b4('0x17')](this));}};Report[_0x27b4('0x1f')][_0x27b4('0x20')]=function(_0x557a68){var _0x54fa50;_0x54fa50=_['find'](this[_0x27b4('0x11')],function(_0x56ecfd){return _0x56ecfd[_0x27b4('0x21')]==_0x557a68||_0x56ecfd[_0x27b4('0x22')]==_0x557a68;});if(_['isNil'](_0x54fa50)){var _0x41135f=_['find'](this[_0x27b4('0x12')],function(_0x15cb21){return _0x15cb21[_0x27b4('0x21')]==_0x557a68||_0x15cb21[_0x27b4('0x22')]==_0x557a68;});if(_0x41135f){_0x54fa50=_[_0x27b4('0x23')](this[_0x27b4('0x11')],function(_0x17f4ef){return _0x17f4ef['interface']==util[_0x27b4('0x24')](_0x27b4('0x25'),_0x41135f['name']);});}}return _0x54fa50;};Report[_0x27b4('0x1f')][_0x27b4('0x16')]=function(_0x103910){for(var _0x498d23=0x0;_0x498d23<_0x103910[_0x27b4('0x26')];_0x498d23+=0x1){var _0x302d48=this['findAgent'](_0x103910[_0x498d23][_0x27b4('0x27')]);if(_0x302d48){_0x103910[_0x498d23][_0x27b4('0x21')]=_0x302d48[_0x27b4('0x21')];_0x103910[_0x498d23][_0x27b4('0x28')]=!![];_0x103910[_0x498d23][_0x27b4('0x29')]=_0x302d48[_0x27b4('0x22')];_0x103910[_0x498d23]['interface']=_['isNil'](_0x302d48[_0x27b4('0x2a')])?util[_0x27b4('0x24')]('SIP/%s',_0x302d48[_0x27b4('0x22')]):_0x302d48[_0x27b4('0x2a')];if(_0x103910[_0x498d23][_0x27b4('0x2b')]){_0x103910[_0x498d23][_0x27b4('0x2c')]=moment()[_0x27b4('0x24')](_0x27b4('0x2d'));}if(_0x103910[_0x498d23][_0x27b4('0x2e')]){_0x103910[_0x498d23][_0x27b4('0x2f')]=moment()['format'](_0x27b4('0x2d'));}RpcMemberReport[_0x27b4('0x16')](_0x103910[_0x498d23]);}RpcVoiceQueueReport[_0x27b4('0x30')](_0x103910[_0x498d23]);}};function extractCalleridNumber(_0x3d1ad2){var _0x537c57=_0x3d1ad2[_0x27b4('0x31')](/<(.*?)>/);return _0x537c57?_0x537c57[0x1]:_0x3d1ad2;}Report[_0x27b4('0x1f')][_0x27b4('0x32')]=function(_0x49e7cb){for(var _0x12b622=0x0;_0x12b622<Object['keys'](this[_0x27b4('0x11')])[_0x27b4('0x26')];_0x12b622++){var _0x28d523=Object[_0x27b4('0x33')](this['agents'])[_0x12b622];var _0x193e59=this[_0x27b4('0x11')][_0x28d523];if(_0x193e59[_0x27b4('0x21')]===Number(_0x49e7cb))return _0x193e59;}return null;};Report[_0x27b4('0x1f')][_0x27b4('0x34')]=function(_0x1c2d72){var _0x46cbeb=_0x1c2d72[_0x27b4('0x35')][_0x27b4('0x36')]('-')[0x0];var _0x5aab16=this['agents'][_0x46cbeb];if(!_0x5aab16)_0x5aab16=this['getAgentByInternal'](_0x1c2d72[_0x27b4('0x37')]);return!_0x5aab16?_0x27b4('0x38'):_0x27b4('0x39');};Report[_0x27b4('0x1f')][_0x27b4('0x18')]=function(_0x452674){_0x452674['destination']=_0x452674[_0x27b4('0x3a')]||_0x452674[_0x27b4('0x3b')];if(_0x452674[_0x27b4('0x3c')]==_0x27b4('0x3d')){_0x452674[_0x27b4('0x3e')]='queue';_0x452674[_0x27b4('0x3f')]=_0x452674['queue'];if(_0x452674[_0x27b4('0x40')]==_0x27b4('0x41')){_0x452674[_0x27b4('0x21')]='';_0x452674[_0x27b4('0x3a')]=extractCalleridNumber(_0x452674[_0x27b4('0x42')]);}else if(_0x452674[_0x27b4('0x40')]==_0x27b4('0x43')){if(_0x452674[_0x27b4('0x3a')]==_0x27b4('0x44')){_0x452674[_0x27b4('0x3a')]=extractCalleridNumber(_0x452674[_0x27b4('0x45')]);_0x452674['calleridnum']=_0x452674[_0x27b4('0x46')];_0x452674[_0x27b4('0x47')]=[_0x452674[_0x27b4('0x35')],_0x452674[_0x27b4('0x35')]=_0x452674[_0x27b4('0x47')]][0x0];_0x452674[_0x27b4('0x42')]=_0x452674[_0x27b4('0x45')];}else{_0x452674[_0x27b4('0x3a')]=_0x452674['calleridnum'];_0x452674[_0x27b4('0x37')]=_0x452674[_0x27b4('0x46')];if(_0x452674[_0x27b4('0x48')]==_0x27b4('0x49')){_0x452674[_0x27b4('0x21')]=_0x452674[_0x27b4('0x27')];}else{_0x452674[_0x27b4('0x21')]='';}}}}else{_0x452674[_0x27b4('0x42')]=util[_0x27b4('0x24')](_0x27b4('0x4a'),_0x452674[_0x27b4('0x4b')],_0x452674[_0x27b4('0x37')]);}if(RpcVoiceTransferReport[_0x27b4('0x4c')][_0x452674[_0x27b4('0x4d')]]){var _0x1874e0=RpcVoiceTransferReport['transfers'][_0x452674[_0x27b4('0x4d')]];_0x1874e0[_0x27b4('0x4e')]=_0x452674[_0x27b4('0x4f')];RpcVoiceTransferReport['blindTransfer'](_0x1874e0);delete RpcVoiceTransferReport['transfers'][_0x452674['linkedid']];}if(_[_0x27b4('0x50')](_0x452674[_0x27b4('0x3c')])){_0x452674[_0x27b4('0x3c')]=this[_0x27b4('0x34')](_0x452674);}if(_['isNil'](_0x452674['UserId'])){var _0x5e02ca=_0x452674[_0x27b4('0x35')][_0x27b4('0x36')]('-')[0x0];var _0x3bc2f1=this[_0x27b4('0x11')][_0x5e02ca];if(!_0x3bc2f1)_0x3bc2f1=this['getAgentByInternal'](_0x452674[_0x27b4('0x21')]);if(_0x3bc2f1){_0x452674['UserId']=_0x3bc2f1['id'];_0x452674['membername']=_0x3bc2f1['name'];}}RpcVoiceCallReport[_0x27b4('0x30')](_0x452674);if(_0x452674[_0x27b4('0x51')]){for(var _0x2bc9d8=0x0;_0x2bc9d8<_0x452674['monitors'][_0x27b4('0x26')];_0x2bc9d8+=0x1){_0x452674[_0x27b4('0x52')]=_0x452674[_0x27b4('0x53')][_0x2bc9d8]['filename'];_0x452674[_0x27b4('0x54')]=_0x452674[_0x27b4('0x53')][_0x2bc9d8][_0x27b4('0x54')];if(_0x452674[_0x27b4('0x3b')]=='xcally-motion-preview'){_0x452674[_0x27b4('0x37')]=_0x452674[_0x27b4('0x27')];_0x452674[_0x27b4('0x4b')]=_0x452674['connectedlinename'];_0x452674[_0x27b4('0x27')]=_0x452674[_0x27b4('0x21')];_0x452674['connectedlinename']=_0x452674[_0x27b4('0x55')];_0x452674[_0x27b4('0x3b')]=_0x452674[_0x27b4('0x46')];}else if(_0x452674[_0x27b4('0x3b')]==_0x27b4('0x56')){_0x452674[_0x27b4('0x37')]=_0x452674[_0x27b4('0x3a')];_0x452674['exten']=_0x452674[_0x27b4('0x46')];}RpcVoiceRecording[_0x27b4('0x30')](_0x452674);}}};Report[_0x27b4('0x1f')]['voiceAgentReport']=function(_0xe6c926){if(_[_0x27b4('0x57')](_0xe6c926)){_0xe6c926[_0x27b4('0x58')](function(_0x32e0b3){RpcVoiceAgentReport[_0x27b4('0x30')](_0x32e0b3);});}else{RpcVoiceAgentReport[_0x27b4('0x30')](_0xe6c926);}};Report[_0x27b4('0x1f')][_0x27b4('0x1b')]=function(_0x5c7822){RpcVoiceDialReport[_0x27b4('0x30')](_0x5c7822);var _0x4406a4;var _0x4e04d4;var _0x1af2ea=_0x5c7822[_0x27b4('0x35')];if(_[_0x27b4('0x59')](_0x1af2ea,'Local')){_0x4e04d4=_0x1af2ea[_0x27b4('0x5a')](_0x1af2ea[_0x27b4('0x5b')]('/')+0x1,_0x1af2ea[_0x27b4('0x5b')]('@'));_0x4406a4=_[_0x27b4('0x23')](this[_0x27b4('0x11')],function(_0x41018f){return _0x41018f[_0x27b4('0x5c')]==_0x4e04d4||_0x41018f['phone']==_0x4e04d4||_0x41018f[_0x27b4('0x21')]==_0x4e04d4;});}else{_0x4e04d4=_0x1af2ea[_0x27b4('0x5a')](_0x1af2ea[_0x27b4('0x5b')]('/')+0x1,_0x1af2ea[_0x27b4('0x5d')]('-'));_0x4406a4=this[_0x27b4('0x20')](_0x4e04d4);}if(_0x4406a4){_0x5c7822[_0x27b4('0x2a')]=_[_0x27b4('0x50')](_0x4406a4[_0x27b4('0x2a')])?util[_0x27b4('0x24')]('SIP/%s',_0x4406a4[_0x27b4('0x22')]):_0x4406a4[_0x27b4('0x2a')];_0x5c7822[_0x27b4('0x55')]=_0x4406a4[_0x27b4('0x22')];_0x5c7822[_0x27b4('0x21')]=_0x4406a4[_0x27b4('0x21')];RpcMemberReport['voiceDialReport'](_0x5c7822);}};Report[_0x27b4('0x1f')]['blindTransfer']=function(_0x1bc951){RpcVoiceTransferReport[_0x27b4('0x4c')][_0x1bc951[_0x27b4('0x5e')]]=_0x1bc951;};Report[_0x27b4('0x1f')][_0x27b4('0x5f')]=function(_0x626550){RpcVoiceTransferReport[_0x27b4('0x5f')](_0x626550);};module[_0x27b4('0x60')]=Report;