513af3dedefadd5c64f81e2a227e1b4e1555bad7
[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 _0x8e54=['callerid','from-sip','calleridpreview','calleridnum','channel','destinationchannel','originatecalleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitors','filename','createdAt','xcally-motion-preview','membername','isArray','forEach','Local','substring','mobile','phone','indexOf','transfererlinkedid','exports','lodash','moment','util','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceAgentReport','voiceDialReport','blindtransfer','blindTransfer','attendedTransfer','findAgent','find','isNil','accountcode','interface','format','length','connectedlinenum','assigned','name','SIP/%s','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','create','match','destination','exten','dialer','lastapplication','queue','context','from-voip-provider'];(function(_0x3047f5,_0x343c4c){var _0x588e35=function(_0x436e9b){while(--_0x436e9b){_0x3047f5['push'](_0x3047f5['shift']());}};_0x588e35(++_0x343c4c);}(_0x8e54,0x113));var _0x48e5=function(_0x2a22a2,_0x33c0fd){_0x2a22a2=_0x2a22a2-0x0;var _0x479e37=_0x8e54[_0x2a22a2];return _0x479e37;};'use strict';var _=require(_0x48e5('0x0'));var moment=require(_0x48e5('0x1'));var util=require(_0x48e5('0x2'));var config=require('../../../config/environment');var ami=require(_0x48e5('0x3'));var RpcVoiceAgentReport=require(_0x48e5('0x4'));var RpcVoiceCallReport=require(_0x48e5('0x5'));var RpcVoiceDialReport=require(_0x48e5('0x6'));var RpcMemberReport=require(_0x48e5('0x7'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x48e5('0x8'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x48e5('0x9'));var VoiceAgentReport=require(_0x48e5('0xa'));var VoiceDialReport=require(_0x48e5('0xb'));var UserReport=require(_0x48e5('0xc'));function Report(_0x1febdf){this['realtime']=_0x1febdf;this[_0x48e5('0xd')]=_0x1febdf[_0x48e5('0xd')];this[_0x48e5('0xe')]=_0x1febdf[_0x48e5('0xe')];}Report[_0x48e5('0xf')][_0x48e5('0x10')]=function(_0x202ae6){var _0x1f9a64=new VoiceQueueReport(this[_0x48e5('0x11')]);var _0x901b3e=new VoiceAgentReport(this[_0x48e5('0x11')]);var _0x312ad0=new VoiceDialReport(this['realtime']);var _0xae5031=new VoiceCallReport(this[_0x48e5('0x11')]);var _0x4a891b=new UserReport(this[_0x48e5('0x11')]);if(config[_0x48e5('0x12')]&&config[_0x48e5('0x12')][_0x48e5('0x13')]){ami['on']('custom:voiceQueueReport',this[_0x48e5('0x14')][_0x48e5('0x15')](this));ami['on'](_0x48e5('0x16'),this['voiceCallReport'][_0x48e5('0x15')](this));ami['on'](_0x48e5('0x17'),this[_0x48e5('0x18')][_0x48e5('0x15')](this));ami['on']('custom:voiceDialReport',this[_0x48e5('0x19')][_0x48e5('0x15')](this));ami['on'](_0x48e5('0x1a'),this[_0x48e5('0x1b')][_0x48e5('0x15')](this));ami['on']('attendedtransfer',this[_0x48e5('0x1c')]['bind'](this));}};Report['prototype'][_0x48e5('0x1d')]=function(_0x47b4f2){var _0x1f4c3f;_0x1f4c3f=_[_0x48e5('0x1e')](this['agents'],function(_0x54d930){return _0x54d930['accountcode']==_0x47b4f2||_0x54d930['name']==_0x47b4f2;});if(_[_0x48e5('0x1f')](_0x1f4c3f)){var _0x216ba0=_[_0x48e5('0x1e')](this[_0x48e5('0xe')],function(_0x1422bb){return _0x1422bb[_0x48e5('0x20')]==_0x47b4f2||_0x1422bb['name']==_0x47b4f2;});if(_0x216ba0){_0x1f4c3f=_['find'](this[_0x48e5('0xd')],function(_0x427368){return _0x427368[_0x48e5('0x21')]==util[_0x48e5('0x22')]('SIP/%s',_0x216ba0['name']);});}}return _0x1f4c3f;};Report[_0x48e5('0xf')]['voiceQueueReport']=function(_0x8fb0d0){for(var _0x839690=0x0;_0x839690<_0x8fb0d0[_0x48e5('0x23')];_0x839690+=0x1){var _0x583903=this[_0x48e5('0x1d')](_0x8fb0d0[_0x839690][_0x48e5('0x24')]);if(_0x583903){_0x8fb0d0[_0x839690][_0x48e5('0x20')]=_0x583903[_0x48e5('0x20')];_0x8fb0d0[_0x839690][_0x48e5('0x25')]=!![];_0x8fb0d0[_0x839690]['lastAssignedTo']=_0x583903[_0x48e5('0x26')];_0x8fb0d0[_0x839690][_0x48e5('0x21')]=_[_0x48e5('0x1f')](_0x583903['interface'])?util[_0x48e5('0x22')](_0x48e5('0x27'),_0x583903[_0x48e5('0x26')]):_0x583903[_0x48e5('0x21')];if(_0x8fb0d0[_0x839690][_0x48e5('0x28')]){_0x8fb0d0[_0x839690][_0x48e5('0x29')]=moment()[_0x48e5('0x22')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x8fb0d0[_0x839690][_0x48e5('0x2a')]){_0x8fb0d0[_0x839690][_0x48e5('0x2b')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x48e5('0x14')](_0x8fb0d0[_0x839690]);}RpcVoiceQueueReport[_0x48e5('0x2c')](_0x8fb0d0[_0x839690]);}};function extractCalleridNumber(_0x5979f3){var _0x34fbed=_0x5979f3[_0x48e5('0x2d')](/<(.*?)>/);return _0x34fbed?_0x34fbed[0x1]:_0x5979f3;}Report[_0x48e5('0xf')]['voiceCallReport']=function(_0x2c5d71){_0x2c5d71['destination']=_0x2c5d71[_0x48e5('0x2e')]||_0x2c5d71[_0x48e5('0x2f')];if(_0x2c5d71['type']==_0x48e5('0x30')){_0x2c5d71[_0x48e5('0x31')]=_0x48e5('0x32');_0x2c5d71['lastdata']=_0x2c5d71[_0x48e5('0x32')];if(_0x2c5d71[_0x48e5('0x33')]==_0x48e5('0x34')){_0x2c5d71['accountcode']='';_0x2c5d71[_0x48e5('0x2e')]=extractCalleridNumber(_0x2c5d71[_0x48e5('0x35')]);}else if(_0x2c5d71[_0x48e5('0x33')]==_0x48e5('0x36')){if(_0x2c5d71[_0x48e5('0x2e')]=='xcally-motion-preview'){_0x2c5d71['destination']=extractCalleridNumber(_0x2c5d71[_0x48e5('0x37')]);_0x2c5d71[_0x48e5('0x38')]=_0x2c5d71['originatecalleridnum'];_0x2c5d71['destinationchannel']=[_0x2c5d71[_0x48e5('0x39')],_0x2c5d71['channel']=_0x2c5d71[_0x48e5('0x3a')]][0x0];_0x2c5d71['callerid']=_0x2c5d71[_0x48e5('0x37')];}else{_0x2c5d71[_0x48e5('0x2e')]=_0x2c5d71[_0x48e5('0x38')];_0x2c5d71[_0x48e5('0x38')]=_0x2c5d71[_0x48e5('0x3b')];if(_0x2c5d71[_0x48e5('0x3c')]==_0x48e5('0x3d')){_0x2c5d71[_0x48e5('0x20')]=_0x2c5d71[_0x48e5('0x24')];}else{_0x2c5d71['accountcode']='';}}}}else{_0x2c5d71[_0x48e5('0x35')]=util[_0x48e5('0x22')](_0x48e5('0x3e'),_0x2c5d71[_0x48e5('0x3f')],_0x2c5d71[_0x48e5('0x38')]);}if(RpcVoiceTransferReport[_0x48e5('0x40')][_0x2c5d71[_0x48e5('0x41')]]){var _0x259f02=RpcVoiceTransferReport[_0x48e5('0x40')][_0x2c5d71['linkedid']];_0x259f02[_0x48e5('0x42')]=_0x2c5d71[_0x48e5('0x43')];RpcVoiceTransferReport[_0x48e5('0x1b')](_0x259f02);delete RpcVoiceTransferReport[_0x48e5('0x40')][_0x2c5d71[_0x48e5('0x41')]];}RpcVoiceCallReport['create'](_0x2c5d71);if(_0x2c5d71['monitor']){for(var _0x216a1f=0x0;_0x216a1f<_0x2c5d71[_0x48e5('0x44')]['length'];_0x216a1f+=0x1){_0x2c5d71['monitorFilename']=_0x2c5d71[_0x48e5('0x44')][_0x216a1f][_0x48e5('0x45')];_0x2c5d71[_0x48e5('0x46')]=_0x2c5d71[_0x48e5('0x44')][_0x216a1f][_0x48e5('0x46')];if(_0x2c5d71[_0x48e5('0x2f')]==_0x48e5('0x47')){_0x2c5d71[_0x48e5('0x38')]=_0x2c5d71['connectedlinenum'];_0x2c5d71[_0x48e5('0x3f')]=_0x2c5d71['connectedlinename'];_0x2c5d71['connectedlinenum']=_0x2c5d71[_0x48e5('0x20')];_0x2c5d71['connectedlinename']=_0x2c5d71[_0x48e5('0x48')];_0x2c5d71[_0x48e5('0x2f')]=_0x2c5d71[_0x48e5('0x3b')];}else if(_0x2c5d71[_0x48e5('0x2f')]=='xcally-motion-dialer'){_0x2c5d71[_0x48e5('0x38')]=_0x2c5d71[_0x48e5('0x2e')];_0x2c5d71[_0x48e5('0x2f')]=_0x2c5d71[_0x48e5('0x3b')];}RpcVoiceRecording[_0x48e5('0x2c')](_0x2c5d71);}}};Report[_0x48e5('0xf')]['voiceAgentReport']=function(_0x1f8e10){if(_[_0x48e5('0x49')](_0x1f8e10)){_0x1f8e10[_0x48e5('0x4a')](function(_0x5175fc){RpcVoiceAgentReport['create'](_0x5175fc);});}else{RpcVoiceAgentReport[_0x48e5('0x2c')](_0x1f8e10);}};Report[_0x48e5('0xf')][_0x48e5('0x19')]=function(_0x3a6475){RpcVoiceDialReport[_0x48e5('0x2c')](_0x3a6475);var _0x24d1b4;var _0x2464c2;var _0x2ef515=_0x3a6475[_0x48e5('0x39')];if(_['startsWith'](_0x2ef515,_0x48e5('0x4b'))){_0x2464c2=_0x2ef515[_0x48e5('0x4c')](_0x2ef515['indexOf']('/')+0x1,_0x2ef515['indexOf']('@'));_0x24d1b4=_[_0x48e5('0x1e')](this[_0x48e5('0xd')],function(_0x138866){return _0x138866[_0x48e5('0x4d')]==_0x2464c2||_0x138866[_0x48e5('0x4e')]==_0x2464c2||_0x138866[_0x48e5('0x20')]==_0x2464c2;});}else{_0x2464c2=_0x2ef515[_0x48e5('0x4c')](_0x2ef515[_0x48e5('0x4f')]('/')+0x1,_0x2ef515['lastIndexOf']('-'));_0x24d1b4=this[_0x48e5('0x1d')](_0x2464c2);}if(_0x24d1b4){_0x3a6475[_0x48e5('0x21')]=_[_0x48e5('0x1f')](_0x24d1b4[_0x48e5('0x21')])?util[_0x48e5('0x22')](_0x48e5('0x27'),_0x24d1b4['name']):_0x24d1b4['interface'];_0x3a6475['membername']=_0x24d1b4[_0x48e5('0x26')];_0x3a6475[_0x48e5('0x20')]=_0x24d1b4[_0x48e5('0x20')];RpcMemberReport['voiceDialReport'](_0x3a6475);}};Report['prototype'][_0x48e5('0x1b')]=function(_0x5bca47){RpcVoiceTransferReport['transfers'][_0x5bca47[_0x48e5('0x50')]]=_0x5bca47;};Report['prototype']['attendedTransfer']=function(_0x2adcfb){RpcVoiceTransferReport[_0x48e5('0x1c')](_0x2adcfb);};module[_0x48e5('0x51')]=Report;