ce25b49c73e296f40b76064887e9fa399ab3920a
[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 _0x38e0=['destinationchannel','originatecalleridnum','disposition','ANSWERED','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','blindTransfer','create','monitor','monitorFilename','monitors','filename','createdAt','exten','connectedlinename','membername','xcally-motion-dialer','voiceAgentReport','isArray','forEach','channel','startsWith','Local','substring','indexOf','mobile','lastIndexOf','transfererlinkedid','attendedTransfer','exports','lodash','moment','util','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','voiceCallReport','custom:voiceAgentReport','bind','blindtransfer','attendedtransfer','findAgent','find','accountcode','name','isNil','length','connectedlinenum','assigned','lastAssignedTo','interface','format','SIP/%s','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','match','destination','type','dialer','lastapplication','queue','lastdata','from-voip-provider','callerid','context','from-sip','xcally-motion-preview','calleridpreview','calleridnum'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x38e0,0x18d));var _0x038e=function(_0x32d1d3,_0x100231){_0x32d1d3=_0x32d1d3-0x0;var _0xbbf112=_0x38e0[_0x32d1d3];return _0xbbf112;};'use strict';var _=require(_0x038e('0x0'));var moment=require(_0x038e('0x1'));var util=require(_0x038e('0x2'));var config=require('../../../config/environment');var ami=require(_0x038e('0x3'));var RpcVoiceAgentReport=require(_0x038e('0x4'));var RpcVoiceCallReport=require(_0x038e('0x5'));var RpcVoiceDialReport=require(_0x038e('0x6'));var RpcMemberReport=require(_0x038e('0x7'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x038e('0x8'));var RpcVoiceTransferReport=require(_0x038e('0x9'));var VoiceQueueReport=require(_0x038e('0xa'));var VoiceCallReport=require(_0x038e('0xb'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x038e('0xc'));var UserReport=require(_0x038e('0xd'));function Report(_0x845153){this['realtime']=_0x845153;this[_0x038e('0xe')]=_0x845153[_0x038e('0xe')];this['telephones']=_0x845153[_0x038e('0xf')];}Report[_0x038e('0x10')][_0x038e('0x11')]=function(_0x3aacb2){var _0x42485e=new VoiceQueueReport(this[_0x038e('0x12')]);var _0xafa52a=new VoiceAgentReport(this['realtime']);var _0x40698f=new VoiceDialReport(this['realtime']);var _0x47f9b2=new VoiceCallReport(this[_0x038e('0x12')]);var _0x2b55c7=new UserReport(this[_0x038e('0x12')]);if(config[_0x038e('0x13')]&&config[_0x038e('0x13')][_0x038e('0x14')]){ami['on'](_0x038e('0x15'),this[_0x038e('0x16')]['bind'](this));ami['on']('custom:voiceCallReport',this[_0x038e('0x17')]['bind'](this));ami['on'](_0x038e('0x18'),this['voiceAgentReport'][_0x038e('0x19')](this));ami['on']('custom:voiceDialReport',this['voiceDialReport']['bind'](this));ami['on'](_0x038e('0x1a'),this['blindTransfer']['bind'](this));ami['on'](_0x038e('0x1b'),this['attendedTransfer'][_0x038e('0x19')](this));}};Report[_0x038e('0x10')][_0x038e('0x1c')]=function(_0x23479e){var _0x24c135;_0x24c135=_[_0x038e('0x1d')](this[_0x038e('0xe')],function(_0x4bf570){return _0x4bf570[_0x038e('0x1e')]==_0x23479e||_0x4bf570[_0x038e('0x1f')]==_0x23479e;});if(_[_0x038e('0x20')](_0x24c135)){var _0x2bf585=_[_0x038e('0x1d')](this[_0x038e('0xf')],function(_0xde3beb){return _0xde3beb[_0x038e('0x1e')]==_0x23479e||_0xde3beb[_0x038e('0x1f')]==_0x23479e;});if(_0x2bf585){_0x24c135=_[_0x038e('0x1d')](this[_0x038e('0xe')],function(_0x403c5d){return _0x403c5d['interface']==util['format']('SIP/%s',_0x2bf585[_0x038e('0x1f')]);});}}return _0x24c135;};Report['prototype'][_0x038e('0x16')]=function(_0x2c458a){for(var _0x22e074=0x0;_0x22e074<_0x2c458a[_0x038e('0x21')];_0x22e074+=0x1){var _0x2a20d8=this[_0x038e('0x1c')](_0x2c458a[_0x22e074][_0x038e('0x22')]);if(_0x2a20d8){_0x2c458a[_0x22e074][_0x038e('0x1e')]=_0x2a20d8[_0x038e('0x1e')];_0x2c458a[_0x22e074][_0x038e('0x23')]=!![];_0x2c458a[_0x22e074][_0x038e('0x24')]=_0x2a20d8['name'];_0x2c458a[_0x22e074]['interface']=_[_0x038e('0x20')](_0x2a20d8[_0x038e('0x25')])?util[_0x038e('0x26')](_0x038e('0x27'),_0x2a20d8['name']):_0x2a20d8['interface'];if(_0x2c458a[_0x22e074][_0x038e('0x28')]){_0x2c458a[_0x22e074][_0x038e('0x29')]=moment()['format'](_0x038e('0x2a'));}if(_0x2c458a[_0x22e074][_0x038e('0x2b')]){_0x2c458a[_0x22e074]['queuecallerexitAt']=moment()['format'](_0x038e('0x2a'));}RpcMemberReport[_0x038e('0x16')](_0x2c458a[_0x22e074]);}RpcVoiceQueueReport['create'](_0x2c458a[_0x22e074]);}};function extractCalleridNumber(_0x1fb1d1){var _0x5ceac0=_0x1fb1d1[_0x038e('0x2c')](/<(.*?)>/);return _0x5ceac0?_0x5ceac0[0x1]:_0x1fb1d1;}Report[_0x038e('0x10')]['voiceCallReport']=function(_0x178b0f){_0x178b0f[_0x038e('0x2d')]=_0x178b0f[_0x038e('0x2d')]||_0x178b0f['exten'];if(_0x178b0f[_0x038e('0x2e')]==_0x038e('0x2f')){_0x178b0f[_0x038e('0x30')]=_0x038e('0x31');_0x178b0f[_0x038e('0x32')]=_0x178b0f[_0x038e('0x31')];if(_0x178b0f['context']==_0x038e('0x33')){_0x178b0f['accountcode']='';_0x178b0f[_0x038e('0x2d')]=extractCalleridNumber(_0x178b0f[_0x038e('0x34')]);}else if(_0x178b0f[_0x038e('0x35')]==_0x038e('0x36')){if(_0x178b0f[_0x038e('0x2d')]==_0x038e('0x37')){_0x178b0f[_0x038e('0x2d')]=extractCalleridNumber(_0x178b0f[_0x038e('0x38')]);_0x178b0f[_0x038e('0x39')]=_0x178b0f['originatecalleridnum'];_0x178b0f[_0x038e('0x3a')]=[_0x178b0f['channel'],_0x178b0f['channel']=_0x178b0f[_0x038e('0x3a')]][0x0];_0x178b0f[_0x038e('0x34')]=_0x178b0f['calleridpreview'];}else{_0x178b0f[_0x038e('0x2d')]=_0x178b0f['calleridnum'];_0x178b0f[_0x038e('0x39')]=_0x178b0f[_0x038e('0x3b')];if(_0x178b0f[_0x038e('0x3c')]==_0x038e('0x3d')){_0x178b0f[_0x038e('0x1e')]=_0x178b0f[_0x038e('0x22')];}else{_0x178b0f[_0x038e('0x1e')]='';}}}}else{_0x178b0f[_0x038e('0x34')]=util[_0x038e('0x26')]('\x22%s\x22\x20<%s>',_0x178b0f[_0x038e('0x3e')],_0x178b0f[_0x038e('0x39')]);}if(RpcVoiceTransferReport[_0x038e('0x3f')][_0x178b0f['linkedid']]){var _0x3eea0a=RpcVoiceTransferReport[_0x038e('0x3f')][_0x178b0f[_0x038e('0x40')]];_0x3eea0a[_0x038e('0x41')]=_0x178b0f[_0x038e('0x42')];RpcVoiceTransferReport[_0x038e('0x43')](_0x3eea0a);delete RpcVoiceTransferReport[_0x038e('0x3f')][_0x178b0f['linkedid']];}RpcVoiceCallReport[_0x038e('0x44')](_0x178b0f);if(_0x178b0f[_0x038e('0x45')]){for(var _0x3a1c76=0x0;_0x3a1c76<_0x178b0f['monitors'][_0x038e('0x21')];_0x3a1c76+=0x1){_0x178b0f[_0x038e('0x46')]=_0x178b0f[_0x038e('0x47')][_0x3a1c76][_0x038e('0x48')];_0x178b0f[_0x038e('0x49')]=_0x178b0f[_0x038e('0x47')][_0x3a1c76][_0x038e('0x49')];if(_0x178b0f[_0x038e('0x4a')]=='xcally-motion-preview'){_0x178b0f['calleridnum']=_0x178b0f[_0x038e('0x22')];_0x178b0f[_0x038e('0x3e')]=_0x178b0f[_0x038e('0x4b')];_0x178b0f[_0x038e('0x22')]=_0x178b0f[_0x038e('0x1e')];_0x178b0f[_0x038e('0x4b')]=_0x178b0f[_0x038e('0x4c')];_0x178b0f[_0x038e('0x4a')]=_0x178b0f[_0x038e('0x3b')];}else if(_0x178b0f[_0x038e('0x4a')]==_0x038e('0x4d')){_0x178b0f[_0x038e('0x39')]=_0x178b0f[_0x038e('0x2d')];_0x178b0f[_0x038e('0x4a')]=_0x178b0f['originatecalleridnum'];}RpcVoiceRecording[_0x038e('0x44')](_0x178b0f);}}};Report[_0x038e('0x10')][_0x038e('0x4e')]=function(_0x2ffbec){if(_[_0x038e('0x4f')](_0x2ffbec)){_0x2ffbec[_0x038e('0x50')](function(_0x460052){RpcVoiceAgentReport['create'](_0x460052);});}else{RpcVoiceAgentReport[_0x038e('0x44')](_0x2ffbec);}};Report[_0x038e('0x10')]['voiceDialReport']=function(_0x16ce0c){RpcVoiceDialReport[_0x038e('0x44')](_0x16ce0c);var _0x1388b4;var _0x3108c1;var _0x11645e=_0x16ce0c[_0x038e('0x51')];if(_[_0x038e('0x52')](_0x11645e,_0x038e('0x53'))){_0x3108c1=_0x11645e[_0x038e('0x54')](_0x11645e[_0x038e('0x55')]('/')+0x1,_0x11645e[_0x038e('0x55')]('@'));_0x1388b4=_[_0x038e('0x1d')](this['agents'],function(_0x4c10d1){return _0x4c10d1[_0x038e('0x56')]==_0x3108c1||_0x4c10d1['phone']==_0x3108c1||_0x4c10d1[_0x038e('0x1e')]==_0x3108c1;});}else{_0x3108c1=_0x11645e[_0x038e('0x54')](_0x11645e[_0x038e('0x55')]('/')+0x1,_0x11645e[_0x038e('0x57')]('-'));_0x1388b4=this[_0x038e('0x1c')](_0x3108c1);}if(_0x1388b4){_0x16ce0c[_0x038e('0x25')]=_[_0x038e('0x20')](_0x1388b4[_0x038e('0x25')])?util['format']('SIP/%s',_0x1388b4[_0x038e('0x1f')]):_0x1388b4[_0x038e('0x25')];_0x16ce0c[_0x038e('0x4c')]=_0x1388b4[_0x038e('0x1f')];_0x16ce0c[_0x038e('0x1e')]=_0x1388b4[_0x038e('0x1e')];RpcMemberReport['voiceDialReport'](_0x16ce0c);}};Report[_0x038e('0x10')][_0x038e('0x43')]=function(_0x16d14d){RpcVoiceTransferReport[_0x038e('0x3f')][_0x16d14d[_0x038e('0x58')]]=_0x16d14d;};Report[_0x038e('0x10')][_0x038e('0x59')]=function(_0x45d848){RpcVoiceTransferReport[_0x038e('0x59')](_0x45d848);};module[_0x038e('0x5a')]=Report;