5728fc5402e9aa29234df2cae833e9445d560295
[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 _0xd8fb=['xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','disposition','ANSWERED','calleridname','transfers','transfereelinkedid','uniqueid','blindTransfer','linkedid','type','UserId','getAgentByInternal','membername','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','voiceAgentReport','isArray','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','attendedTransfer','lodash','util','../ami','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./userReport','realtime','agents','telephones','prototype','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedtransfer','findAgent','find','name','isNil','interface','format','SIP/%s','length','connectedlinenum','accountcode','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','match','keys','getCallType','channel','split','outbound','internal','destination','exten','dialer','lastapplication','queue','lastdata','context','from-voip-provider','callerid','from-sip'];(function(_0x1aba25,_0x1faed1){var _0x47d997=function(_0x4f9e11){while(--_0x4f9e11){_0x1aba25['push'](_0x1aba25['shift']());}};_0x47d997(++_0x1faed1);}(_0xd8fb,0xda));var _0xbd8f=function(_0x54ca32,_0x3bf5c1){_0x54ca32=_0x54ca32-0x0;var _0x131046=_0xd8fb[_0x54ca32];return _0x131046;};'use strict';var _=require(_0xbd8f('0x0'));var moment=require('moment');var util=require(_0xbd8f('0x1'));var config=require('../../../config/environment');var ami=require(_0xbd8f('0x2'));var RpcVoiceAgentReport=require(_0xbd8f('0x3'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0xbd8f('0x4'));var RpcMemberReport=require(_0xbd8f('0x5'));var RpcVoiceQueueReport=require(_0xbd8f('0x6'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0xbd8f('0x7'));var VoiceQueueReport=require(_0xbd8f('0x8'));var VoiceCallReport=require(_0xbd8f('0x9'));var VoiceAgentReport=require(_0xbd8f('0xa'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0xbd8f('0xb'));function Report(_0x35fd16){this[_0xbd8f('0xc')]=_0x35fd16;this[_0xbd8f('0xd')]=_0x35fd16['agents'];this[_0xbd8f('0xe')]=_0x35fd16[_0xbd8f('0xe')];}Report[_0xbd8f('0xf')]['sync']=function(_0x42d5bb){var _0x3b8b82=new VoiceQueueReport(this['realtime']);var _0x55ac20=new VoiceAgentReport(this[_0xbd8f('0xc')]);var _0x89ec9d=new VoiceDialReport(this[_0xbd8f('0xc')]);var _0x3e6cb7=new VoiceCallReport(this[_0xbd8f('0xc')]);var _0x592d9a=new UserReport(this[_0xbd8f('0xc')]);if(config[_0xbd8f('0x10')]&&config['xdr'][_0xbd8f('0x11')]){ami['on'](_0xbd8f('0x12'),this[_0xbd8f('0x13')][_0xbd8f('0x14')](this));ami['on'](_0xbd8f('0x15'),this[_0xbd8f('0x16')][_0xbd8f('0x14')](this));ami['on']('custom:voiceAgentReport',this['voiceAgentReport'][_0xbd8f('0x14')](this));ami['on'](_0xbd8f('0x17'),this[_0xbd8f('0x18')][_0xbd8f('0x14')](this));ami['on'](_0xbd8f('0x19'),this['blindTransfer'][_0xbd8f('0x14')](this));ami['on'](_0xbd8f('0x1a'),this['attendedTransfer']['bind'](this));}};Report[_0xbd8f('0xf')][_0xbd8f('0x1b')]=function(_0x56beac){var _0x42c519;_0x42c519=_[_0xbd8f('0x1c')](this['agents'],function(_0x126b2d){return _0x126b2d['accountcode']==_0x56beac||_0x126b2d[_0xbd8f('0x1d')]==_0x56beac;});if(_[_0xbd8f('0x1e')](_0x42c519)){var _0x1a581f=_['find'](this[_0xbd8f('0xe')],function(_0x2b3f28){return _0x2b3f28['accountcode']==_0x56beac||_0x2b3f28[_0xbd8f('0x1d')]==_0x56beac;});if(_0x1a581f){_0x42c519=_[_0xbd8f('0x1c')](this[_0xbd8f('0xd')],function(_0x499f9a){return _0x499f9a[_0xbd8f('0x1f')]==util[_0xbd8f('0x20')](_0xbd8f('0x21'),_0x1a581f[_0xbd8f('0x1d')]);});}}return _0x42c519;};Report[_0xbd8f('0xf')][_0xbd8f('0x13')]=function(_0x5d1dc2){for(var _0x233358=0x0;_0x233358<_0x5d1dc2[_0xbd8f('0x22')];_0x233358+=0x1){var _0x4af79a=this[_0xbd8f('0x1b')](_0x5d1dc2[_0x233358][_0xbd8f('0x23')]);if(_0x4af79a){_0x5d1dc2[_0x233358][_0xbd8f('0x24')]=_0x4af79a[_0xbd8f('0x24')];_0x5d1dc2[_0x233358]['assigned']=!![];_0x5d1dc2[_0x233358]['lastAssignedTo']=_0x4af79a['name'];_0x5d1dc2[_0x233358][_0xbd8f('0x1f')]=_['isNil'](_0x4af79a[_0xbd8f('0x1f')])?util[_0xbd8f('0x20')](_0xbd8f('0x21'),_0x4af79a['name']):_0x4af79a[_0xbd8f('0x1f')];if(_0x5d1dc2[_0x233358]['queuecallercomplete']){_0x5d1dc2[_0x233358][_0xbd8f('0x25')]=moment()['format'](_0xbd8f('0x26'));}if(_0x5d1dc2[_0x233358][_0xbd8f('0x27')]){_0x5d1dc2[_0x233358]['queuecallerexitAt']=moment()[_0xbd8f('0x20')](_0xbd8f('0x26'));}RpcMemberReport[_0xbd8f('0x13')](_0x5d1dc2[_0x233358]);}RpcVoiceQueueReport[_0xbd8f('0x28')](_0x5d1dc2[_0x233358]);}};function extractCalleridNumber(_0xda34e8){var _0x1adef3=_0xda34e8[_0xbd8f('0x29')](/<(.*?)>/);return _0x1adef3?_0x1adef3[0x1]:_0xda34e8;}Report[_0xbd8f('0xf')]['getAgentByInternal']=function(_0x14e963){for(var _0x59e4ed=0x0;_0x59e4ed<Object[_0xbd8f('0x2a')](this[_0xbd8f('0xd')])[_0xbd8f('0x22')];_0x59e4ed++){var _0x511393=Object[_0xbd8f('0x2a')](this[_0xbd8f('0xd')])[_0x59e4ed];var _0x36c9aa=this[_0xbd8f('0xd')][_0x511393];if(_0x36c9aa['accountcode']===Number(_0x14e963))return _0x36c9aa;}return null;};Report['prototype'][_0xbd8f('0x2b')]=function(_0x5cdae2){var _0x475a3e=_0x5cdae2[_0xbd8f('0x2c')][_0xbd8f('0x2d')]('-')[0x0];var _0x4bbbce=this['agents'][_0x475a3e];if(!_0x4bbbce)_0x4bbbce=this['getAgentByInternal'](_0x5cdae2['calleridnum']);return!_0x4bbbce?_0xbd8f('0x2e'):_0xbd8f('0x2f');};Report[_0xbd8f('0xf')]['voiceCallReport']=function(_0x193e1c){_0x193e1c[_0xbd8f('0x30')]=_0x193e1c['destination']||_0x193e1c[_0xbd8f('0x31')];if(_0x193e1c['type']==_0xbd8f('0x32')){_0x193e1c[_0xbd8f('0x33')]=_0xbd8f('0x34');_0x193e1c[_0xbd8f('0x35')]=_0x193e1c[_0xbd8f('0x34')];if(_0x193e1c[_0xbd8f('0x36')]==_0xbd8f('0x37')){_0x193e1c[_0xbd8f('0x24')]='';_0x193e1c[_0xbd8f('0x30')]=extractCalleridNumber(_0x193e1c[_0xbd8f('0x38')]);}else if(_0x193e1c[_0xbd8f('0x36')]==_0xbd8f('0x39')){if(_0x193e1c[_0xbd8f('0x30')]==_0xbd8f('0x3a')){_0x193e1c['destination']=extractCalleridNumber(_0x193e1c[_0xbd8f('0x3b')]);_0x193e1c[_0xbd8f('0x3c')]=_0x193e1c[_0xbd8f('0x3d')];_0x193e1c[_0xbd8f('0x3e')]=[_0x193e1c[_0xbd8f('0x2c')],_0x193e1c['channel']=_0x193e1c[_0xbd8f('0x3e')]][0x0];_0x193e1c['callerid']=_0x193e1c[_0xbd8f('0x3b')];}else{_0x193e1c[_0xbd8f('0x30')]=_0x193e1c[_0xbd8f('0x3c')];_0x193e1c[_0xbd8f('0x3c')]=_0x193e1c['originatecalleridnum'];if(_0x193e1c[_0xbd8f('0x3f')]==_0xbd8f('0x40')){_0x193e1c[_0xbd8f('0x24')]=_0x193e1c['connectedlinenum'];}else{_0x193e1c['accountcode']='';}}}}else{_0x193e1c['callerid']=util[_0xbd8f('0x20')]('\x22%s\x22\x20<%s>',_0x193e1c[_0xbd8f('0x41')],_0x193e1c[_0xbd8f('0x3c')]);}if(RpcVoiceTransferReport[_0xbd8f('0x42')][_0x193e1c['linkedid']]){var _0x2ea836=RpcVoiceTransferReport[_0xbd8f('0x42')][_0x193e1c['linkedid']];_0x2ea836[_0xbd8f('0x43')]=_0x193e1c[_0xbd8f('0x44')];RpcVoiceTransferReport[_0xbd8f('0x45')](_0x2ea836);delete RpcVoiceTransferReport['transfers'][_0x193e1c[_0xbd8f('0x46')]];}if(_[_0xbd8f('0x1e')](_0x193e1c[_0xbd8f('0x47')])){_0x193e1c[_0xbd8f('0x47')]=this[_0xbd8f('0x2b')](_0x193e1c);}if(_['isNil'](_0x193e1c[_0xbd8f('0x48')])){var _0x3a1474=_0x193e1c[_0xbd8f('0x2c')][_0xbd8f('0x2d')]('-')[0x0];var _0x10a5a5=this[_0xbd8f('0xd')][_0x3a1474];if(!_0x10a5a5)_0x10a5a5=this[_0xbd8f('0x49')](_0x193e1c[_0xbd8f('0x24')]);if(_0x10a5a5){_0x193e1c[_0xbd8f('0x48')]=_0x10a5a5['id'];_0x193e1c[_0xbd8f('0x4a')]=_0x10a5a5[_0xbd8f('0x1d')];}}RpcVoiceCallReport[_0xbd8f('0x28')](_0x193e1c);if(_0x193e1c[_0xbd8f('0x4b')]){for(var _0x496148=0x0;_0x496148<_0x193e1c[_0xbd8f('0x4c')]['length'];_0x496148+=0x1){_0x193e1c[_0xbd8f('0x4d')]=_0x193e1c[_0xbd8f('0x4c')][_0x496148][_0xbd8f('0x4e')];_0x193e1c[_0xbd8f('0x4f')]=_0x193e1c[_0xbd8f('0x4c')][_0x496148][_0xbd8f('0x4f')];if(_0x193e1c[_0xbd8f('0x31')]==_0xbd8f('0x3a')){_0x193e1c['calleridnum']=_0x193e1c['connectedlinenum'];_0x193e1c[_0xbd8f('0x41')]=_0x193e1c[_0xbd8f('0x50')];_0x193e1c[_0xbd8f('0x23')]=_0x193e1c['accountcode'];_0x193e1c[_0xbd8f('0x50')]=_0x193e1c[_0xbd8f('0x4a')];_0x193e1c[_0xbd8f('0x31')]=_0x193e1c[_0xbd8f('0x3d')];}else if(_0x193e1c[_0xbd8f('0x31')]=='xcally-motion-dialer'){_0x193e1c['calleridnum']=_0x193e1c[_0xbd8f('0x30')];_0x193e1c['exten']=_0x193e1c[_0xbd8f('0x3d')];}RpcVoiceRecording['create'](_0x193e1c);}}};Report['prototype'][_0xbd8f('0x51')]=function(_0x53bd65){if(_[_0xbd8f('0x52')](_0x53bd65)){_0x53bd65['forEach'](function(_0x2da24f){RpcVoiceAgentReport[_0xbd8f('0x28')](_0x2da24f);});}else{RpcVoiceAgentReport[_0xbd8f('0x28')](_0x53bd65);}};Report[_0xbd8f('0xf')][_0xbd8f('0x18')]=function(_0x4f12e4){RpcVoiceDialReport[_0xbd8f('0x28')](_0x4f12e4);var _0x2a75ef;var _0x402603;var _0x1bc0bd=_0x4f12e4['channel'];if(_[_0xbd8f('0x53')](_0x1bc0bd,_0xbd8f('0x54'))){_0x402603=_0x1bc0bd[_0xbd8f('0x55')](_0x1bc0bd['indexOf']('/')+0x1,_0x1bc0bd[_0xbd8f('0x56')]('@'));_0x2a75ef=_[_0xbd8f('0x1c')](this[_0xbd8f('0xd')],function(_0x242256){return _0x242256[_0xbd8f('0x57')]==_0x402603||_0x242256[_0xbd8f('0x58')]==_0x402603||_0x242256['accountcode']==_0x402603;});}else{_0x402603=_0x1bc0bd[_0xbd8f('0x55')](_0x1bc0bd['indexOf']('/')+0x1,_0x1bc0bd[_0xbd8f('0x59')]('-'));_0x2a75ef=this[_0xbd8f('0x1b')](_0x402603);}if(_0x2a75ef){_0x4f12e4['interface']=_[_0xbd8f('0x1e')](_0x2a75ef[_0xbd8f('0x1f')])?util[_0xbd8f('0x20')]('SIP/%s',_0x2a75ef[_0xbd8f('0x1d')]):_0x2a75ef[_0xbd8f('0x1f')];_0x4f12e4[_0xbd8f('0x4a')]=_0x2a75ef['name'];_0x4f12e4[_0xbd8f('0x24')]=_0x2a75ef[_0xbd8f('0x24')];RpcMemberReport['voiceDialReport'](_0x4f12e4);}};Report['prototype'][_0xbd8f('0x45')]=function(_0x264f43){RpcVoiceTransferReport['transfers'][_0x264f43[_0xbd8f('0x5a')]]=_0x264f43;};Report[_0xbd8f('0xf')][_0xbd8f('0x5b')]=function(_0x3ba022){RpcVoiceTransferReport[_0xbd8f('0x5b')](_0x3ba022);};module['exports']=Report;