ee73a9f06840712286956d48c09c8c0c3330c337
[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 _0x0408=['../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','realtime','xdr','disabled','custom:voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','prototype','findAgent','isNil','accountcode','name','find','interface','SIP/%s','length','assigned','lastAssignedTo','queuecallercompleteAt','format','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','create','getAgentByInternal','keys','getCallType','channel','outbound','voiceCallReport','destination','exten','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','callerid','disposition','ANSWERED','connectedlinenum','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','split','UserId','membername','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','startsWith','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','exports','lodash','../../../config/environment','../ami','../rpc/voiceAgentReport'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0408,0x178));var _0x8040=function(_0x4be8c7,_0x1b38bb){_0x4be8c7=_0x4be8c7-0x0;var _0x301fcf=_0x0408[_0x4be8c7];return _0x301fcf;};'use strict';var _=require(_0x8040('0x0'));var moment=require('moment');var util=require('util');var config=require(_0x8040('0x1'));var ami=require(_0x8040('0x2'));var RpcVoiceAgentReport=require(_0x8040('0x3'));var RpcVoiceCallReport=require(_0x8040('0x4'));var RpcVoiceDialReport=require(_0x8040('0x5'));var RpcMemberReport=require(_0x8040('0x6'));var RpcVoiceQueueReport=require(_0x8040('0x7'));var RpcVoiceRecording=require(_0x8040('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x8040('0x9'));var VoiceAgentReport=require(_0x8040('0xa'));var VoiceDialReport=require(_0x8040('0xb'));var UserReport=require(_0x8040('0xc'));function Report(_0x3ebad8){this['realtime']=_0x3ebad8;this[_0x8040('0xd')]=_0x3ebad8[_0x8040('0xd')];this[_0x8040('0xe')]=_0x3ebad8[_0x8040('0xe')];}Report['prototype']['sync']=function(_0x338a17){var _0x802221=new VoiceQueueReport(this['realtime']);var _0x28ee94=new VoiceAgentReport(this[_0x8040('0xf')]);var _0x419422=new VoiceDialReport(this[_0x8040('0xf')]);var _0x58075d=new VoiceCallReport(this[_0x8040('0xf')]);var _0x53cdf7=new UserReport(this[_0x8040('0xf')]);if(config['xdr']&&config[_0x8040('0x10')][_0x8040('0x11')]){ami['on'](_0x8040('0x12'),this['voiceQueueReport'][_0x8040('0x13')](this));ami['on'](_0x8040('0x14'),this['voiceCallReport'][_0x8040('0x13')](this));ami['on'](_0x8040('0x15'),this[_0x8040('0x16')][_0x8040('0x13')](this));ami['on'](_0x8040('0x17'),this[_0x8040('0x18')][_0x8040('0x13')](this));ami['on'](_0x8040('0x19'),this[_0x8040('0x1a')][_0x8040('0x13')](this));ami['on'](_0x8040('0x1b'),this[_0x8040('0x1c')][_0x8040('0x13')](this));}};Report[_0x8040('0x1d')][_0x8040('0x1e')]=function(_0x14c6dd){var _0x3c81d6;_0x3c81d6=_['find'](this[_0x8040('0xd')],function(_0x3d90d3){return _0x3d90d3['accountcode']==_0x14c6dd||_0x3d90d3['name']==_0x14c6dd;});if(_[_0x8040('0x1f')](_0x3c81d6)){var _0x4cf3af=_['find'](this[_0x8040('0xe')],function(_0x109f82){return _0x109f82[_0x8040('0x20')]==_0x14c6dd||_0x109f82[_0x8040('0x21')]==_0x14c6dd;});if(_0x4cf3af){_0x3c81d6=_[_0x8040('0x22')](this['agents'],function(_0x4028b9){return _0x4028b9[_0x8040('0x23')]==util['format'](_0x8040('0x24'),_0x4cf3af[_0x8040('0x21')]);});}}return _0x3c81d6;};Report[_0x8040('0x1d')]['voiceQueueReport']=function(_0x39ffef){for(var _0x5277a5=0x0;_0x5277a5<_0x39ffef[_0x8040('0x25')];_0x5277a5+=0x1){var _0x304f13=this[_0x8040('0x1e')](_0x39ffef[_0x5277a5]['connectedlinenum']);if(_0x304f13){_0x39ffef[_0x5277a5][_0x8040('0x20')]=_0x304f13['accountcode'];_0x39ffef[_0x5277a5][_0x8040('0x26')]=!![];_0x39ffef[_0x5277a5][_0x8040('0x27')]=_0x304f13[_0x8040('0x21')];_0x39ffef[_0x5277a5][_0x8040('0x23')]=_[_0x8040('0x1f')](_0x304f13[_0x8040('0x23')])?util['format'](_0x8040('0x24'),_0x304f13[_0x8040('0x21')]):_0x304f13[_0x8040('0x23')];if(_0x39ffef[_0x5277a5]['queuecallercomplete']){_0x39ffef[_0x5277a5][_0x8040('0x28')]=moment()[_0x8040('0x29')](_0x8040('0x2a'));}if(_0x39ffef[_0x5277a5]['queuecallerexit']){_0x39ffef[_0x5277a5][_0x8040('0x2b')]=moment()[_0x8040('0x29')](_0x8040('0x2a'));}RpcMemberReport['voiceQueueReport'](_0x39ffef[_0x5277a5]);}RpcVoiceQueueReport[_0x8040('0x2c')](_0x39ffef[_0x5277a5]);}};function extractCalleridNumber(_0x350eeb){var _0x2e94dc=_0x350eeb['match'](/<(.*?)>/);return _0x2e94dc?_0x2e94dc[0x1]:_0x350eeb;}Report[_0x8040('0x1d')][_0x8040('0x2d')]=function(_0x326b76){for(var _0x180081=0x0;_0x180081<Object[_0x8040('0x2e')](this['agents'])[_0x8040('0x25')];_0x180081++){var _0x30a3bb=Object['keys'](this[_0x8040('0xd')])[_0x180081];var _0x2878dd=this[_0x8040('0xd')][_0x30a3bb];if(_0x2878dd[_0x8040('0x20')]===Number(_0x326b76))return _0x2878dd;}return null;};Report[_0x8040('0x1d')][_0x8040('0x2f')]=function(_0x3e9bec){var _0x4b6b63=_0x3e9bec[_0x8040('0x30')]['split']('-')[0x0];var _0x5d75fa=this[_0x8040('0xd')][_0x4b6b63];if(!_0x5d75fa)_0x5d75fa=this['getAgentByInternal'](_0x3e9bec['calleridnum']);return!_0x5d75fa?_0x8040('0x31'):'internal';};Report[_0x8040('0x1d')][_0x8040('0x32')]=function(_0x5ce854){_0x5ce854[_0x8040('0x33')]=_0x5ce854[_0x8040('0x33')]||_0x5ce854[_0x8040('0x34')];if(_0x5ce854[_0x8040('0x35')]==_0x8040('0x36')){_0x5ce854[_0x8040('0x37')]=_0x8040('0x38');_0x5ce854[_0x8040('0x39')]=_0x5ce854['queue'];if(_0x5ce854[_0x8040('0x3a')]==_0x8040('0x3b')){_0x5ce854[_0x8040('0x20')]='';_0x5ce854[_0x8040('0x33')]=extractCalleridNumber(_0x5ce854['callerid']);}else if(_0x5ce854[_0x8040('0x3a')]==_0x8040('0x3c')){if(_0x5ce854[_0x8040('0x33')]==_0x8040('0x3d')){_0x5ce854[_0x8040('0x33')]=extractCalleridNumber(_0x5ce854[_0x8040('0x3e')]);_0x5ce854[_0x8040('0x3f')]=_0x5ce854[_0x8040('0x40')];_0x5ce854[_0x8040('0x41')]=[_0x5ce854[_0x8040('0x30')],_0x5ce854[_0x8040('0x30')]=_0x5ce854[_0x8040('0x41')]][0x0];_0x5ce854[_0x8040('0x42')]=_0x5ce854[_0x8040('0x3e')];}else{_0x5ce854[_0x8040('0x33')]=_0x5ce854[_0x8040('0x3f')];_0x5ce854[_0x8040('0x3f')]=_0x5ce854[_0x8040('0x40')];if(_0x5ce854[_0x8040('0x43')]==_0x8040('0x44')){_0x5ce854[_0x8040('0x20')]=_0x5ce854[_0x8040('0x45')];}else{_0x5ce854[_0x8040('0x20')]='';}}}}else{_0x5ce854[_0x8040('0x42')]=util[_0x8040('0x29')](_0x8040('0x46'),_0x5ce854[_0x8040('0x47')],_0x5ce854[_0x8040('0x3f')]);}if(RpcVoiceTransferReport[_0x8040('0x48')][_0x5ce854[_0x8040('0x49')]]){var _0x3a4bc9=RpcVoiceTransferReport[_0x8040('0x48')][_0x5ce854['linkedid']];_0x3a4bc9[_0x8040('0x4a')]=_0x5ce854['uniqueid'];RpcVoiceTransferReport['blindTransfer'](_0x3a4bc9);delete RpcVoiceTransferReport[_0x8040('0x48')][_0x5ce854['linkedid']];}if(_[_0x8040('0x1f')](_0x5ce854['type'])){_0x5ce854['type']=this['getCallType'](_0x5ce854);}if(_[_0x8040('0x1f')](_0x5ce854['UserId'])){var _0x5a6866=_0x5ce854['channel'][_0x8040('0x4b')]('-')[0x0];var _0x23dee3=this['agents'][_0x5a6866];if(!_0x23dee3)_0x23dee3=this[_0x8040('0x2d')](_0x5ce854[_0x8040('0x20')]);if(_0x23dee3){_0x5ce854[_0x8040('0x4c')]=_0x23dee3['id'];_0x5ce854[_0x8040('0x4d')]=_0x23dee3[_0x8040('0x21')];}}RpcVoiceCallReport[_0x8040('0x2c')](_0x5ce854);if(_0x5ce854[_0x8040('0x4e')]){for(var _0x3228c0=0x0;_0x3228c0<_0x5ce854[_0x8040('0x4f')][_0x8040('0x25')];_0x3228c0+=0x1){_0x5ce854[_0x8040('0x50')]=_0x5ce854[_0x8040('0x4f')][_0x3228c0][_0x8040('0x51')];_0x5ce854['createdAt']=_0x5ce854[_0x8040('0x4f')][_0x3228c0][_0x8040('0x52')];if(_0x5ce854[_0x8040('0x34')]=='xcally-motion-preview'){_0x5ce854[_0x8040('0x3f')]=_0x5ce854[_0x8040('0x45')];_0x5ce854['calleridname']=_0x5ce854[_0x8040('0x53')];_0x5ce854['connectedlinenum']=_0x5ce854[_0x8040('0x20')];_0x5ce854[_0x8040('0x53')]=_0x5ce854['membername'];_0x5ce854[_0x8040('0x34')]=_0x5ce854[_0x8040('0x40')];}else if(_0x5ce854[_0x8040('0x34')]==_0x8040('0x54')){_0x5ce854[_0x8040('0x3f')]=_0x5ce854[_0x8040('0x33')];_0x5ce854[_0x8040('0x34')]=_0x5ce854['originatecalleridnum'];}RpcVoiceRecording[_0x8040('0x2c')](_0x5ce854);}}};Report[_0x8040('0x1d')]['voiceAgentReport']=function(_0x24b797){if(_[_0x8040('0x55')](_0x24b797)){_0x24b797[_0x8040('0x56')](function(_0x44ad58){RpcVoiceAgentReport[_0x8040('0x2c')](_0x44ad58);});}else{RpcVoiceAgentReport['create'](_0x24b797);}};Report[_0x8040('0x1d')][_0x8040('0x18')]=function(_0x301355){RpcVoiceDialReport[_0x8040('0x2c')](_0x301355);var _0x5f4b33;var _0x18c4db;var _0xc8e202=_0x301355[_0x8040('0x30')];if(_[_0x8040('0x57')](_0xc8e202,'Local')){_0x18c4db=_0xc8e202[_0x8040('0x58')](_0xc8e202[_0x8040('0x59')]('/')+0x1,_0xc8e202[_0x8040('0x59')]('@'));_0x5f4b33=_[_0x8040('0x22')](this[_0x8040('0xd')],function(_0x2adf77){return _0x2adf77[_0x8040('0x5a')]==_0x18c4db||_0x2adf77[_0x8040('0x5b')]==_0x18c4db||_0x2adf77['accountcode']==_0x18c4db;});}else{_0x18c4db=_0xc8e202[_0x8040('0x58')](_0xc8e202['indexOf']('/')+0x1,_0xc8e202[_0x8040('0x5c')]('-'));_0x5f4b33=this[_0x8040('0x1e')](_0x18c4db);}if(_0x5f4b33){_0x301355[_0x8040('0x23')]=_['isNil'](_0x5f4b33[_0x8040('0x23')])?util[_0x8040('0x29')](_0x8040('0x24'),_0x5f4b33[_0x8040('0x21')]):_0x5f4b33[_0x8040('0x23')];_0x301355[_0x8040('0x4d')]=_0x5f4b33[_0x8040('0x21')];_0x301355[_0x8040('0x20')]=_0x5f4b33['accountcode'];RpcMemberReport[_0x8040('0x18')](_0x301355);}};Report['prototype']['blindTransfer']=function(_0x372988){RpcVoiceTransferReport[_0x8040('0x48')][_0x372988[_0x8040('0x5d')]]=_0x372988;};Report[_0x8040('0x1d')][_0x8040('0x1c')]=function(_0x49f424){RpcVoiceTransferReport['attendedTransfer'](_0x49f424);};module[_0x8040('0x5e')]=Report;