958b1a53e403b331d43088897825885ee03e2f76
[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 _0x0dc6=['util','../../../config/environment','../../../config/logger','ami','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','disabled','custom:voiceQueueReport','voiceQueueReport','custom:voiceCallReport','bind','custom:voiceAgentReport','voiceAgentReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','name','find','accountcode','interface','format','SIP/%s','length','connectedlinenum','assigned','isNil','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','voiceCallReport','destination','exten','type','dialer','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','disposition','\x22%s\x22\x20<%s>','calleridname','monitor','monitorFilename','filename','createdAt','connectedlinename','isArray','voiceDialReport','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf','membername','exports','bluebird'];(function(_0x4bfbda,_0x332198){var _0x3811c8=function(_0x3233c7){while(--_0x3233c7){_0x4bfbda['push'](_0x4bfbda['shift']());}};_0x3811c8(++_0x332198);}(_0x0dc6,0x13b));var _0x60dc=function(_0x2fd69d,_0xeb1037){_0x2fd69d=_0x2fd69d-0x0;var _0x5d5ef3=_0x0dc6[_0x2fd69d];return _0x5d5ef3;};'use strict';var BPromise=require(_0x60dc('0x0'));var _=require('lodash');var moment=require('moment');var util=require(_0x60dc('0x1'));var config=require(_0x60dc('0x2'));var logger=require(_0x60dc('0x3'))(_0x60dc('0x4'));var ami=require(_0x60dc('0x5'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x60dc('0x6'));var RpcVoiceDialReport=require(_0x60dc('0x7'));var RpcMemberReport=require(_0x60dc('0x8'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x60dc('0x9'));var VoiceQueueReport=require(_0x60dc('0xa'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x60dc('0xb'));var VoiceDialReport=require(_0x60dc('0xc'));var UserReport=require(_0x60dc('0xd'));function Report(_0x28f634){this[_0x60dc('0xe')]=_0x28f634;this[_0x60dc('0xf')]=_0x28f634[_0x60dc('0xf')];this[_0x60dc('0x10')]=_0x28f634[_0x60dc('0x10')];}Report[_0x60dc('0x11')][_0x60dc('0x12')]=function(_0x256c09){var _0xd6b1a9=new VoiceQueueReport(this[_0x60dc('0xe')]);var _0x432c8d=new VoiceAgentReport(this['realtime']);var _0x1998e9=new VoiceDialReport(this['realtime']);var _0x480726=new VoiceCallReport(this[_0x60dc('0xe')]);var _0x4de25f=new UserReport(this[_0x60dc('0xe')]);if(config['xdr']&&config['xdr'][_0x60dc('0x13')]){ami['on'](_0x60dc('0x14'),this[_0x60dc('0x15')]['bind'](this));ami['on'](_0x60dc('0x16'),this['voiceCallReport'][_0x60dc('0x17')](this));ami['on'](_0x60dc('0x18'),this[_0x60dc('0x19')]['bind'](this));ami['on']('custom:voiceDialReport',this['voiceDialReport']['bind'](this));ami['on'](_0x60dc('0x1a'),this[_0x60dc('0x1b')]['bind'](this));ami['on'](_0x60dc('0x1c'),this[_0x60dc('0x1d')][_0x60dc('0x17')](this));}};Report[_0x60dc('0x11')][_0x60dc('0x1e')]=function(_0xfbf4a5){var _0x1e117b=undefined;_0x1e117b=_['find'](this[_0x60dc('0xf')],function(_0x55c29d){return _0x55c29d['accountcode']==_0xfbf4a5||_0x55c29d[_0x60dc('0x1f')]==_0xfbf4a5;});if(_['isNil'](_0x1e117b)){var _0x90a7a7=_[_0x60dc('0x20')](this[_0x60dc('0x10')],function(_0x162f79){return _0x162f79[_0x60dc('0x21')]==_0xfbf4a5||_0x162f79[_0x60dc('0x1f')]==_0xfbf4a5;});if(_0x90a7a7){_0x1e117b=_[_0x60dc('0x20')](this['agents'],function(_0x520508){return _0x520508[_0x60dc('0x22')]==util[_0x60dc('0x23')](_0x60dc('0x24'),_0x90a7a7[_0x60dc('0x1f')]);});}}return _0x1e117b;};Report[_0x60dc('0x11')][_0x60dc('0x15')]=function(_0x517589){for(var _0x19e8e2=0x0;_0x19e8e2<_0x517589[_0x60dc('0x25')];_0x19e8e2+=0x1){var _0x1adbad=this[_0x60dc('0x1e')](_0x517589[_0x19e8e2][_0x60dc('0x26')]);if(_0x1adbad){_0x517589[_0x19e8e2][_0x60dc('0x21')]=_0x1adbad[_0x60dc('0x21')];_0x517589[_0x19e8e2][_0x60dc('0x27')]=!![];_0x517589[_0x19e8e2]['lastAssignedTo']=_0x1adbad[_0x60dc('0x1f')];_0x517589[_0x19e8e2][_0x60dc('0x22')]=_[_0x60dc('0x28')](_0x1adbad[_0x60dc('0x22')])?util[_0x60dc('0x23')](_0x60dc('0x24'),_0x1adbad[_0x60dc('0x1f')]):_0x1adbad[_0x60dc('0x22')];if(_0x517589[_0x19e8e2]['queuecallercomplete']){_0x517589[_0x19e8e2][_0x60dc('0x29')]=moment()[_0x60dc('0x23')](_0x60dc('0x2a'));}if(_0x517589[_0x19e8e2][_0x60dc('0x2b')]){_0x517589[_0x19e8e2]['queuecallerexitAt']=moment()[_0x60dc('0x23')](_0x60dc('0x2a'));}RpcMemberReport['voiceQueueReport'](_0x517589[_0x19e8e2]);}RpcVoiceQueueReport[_0x60dc('0x2c')](_0x517589[_0x19e8e2]);}};function extractCalleridNumber(_0x231237){var _0x3ecd89=_0x231237['match'](/<(.*?)>/);return _0x3ecd89?_0x3ecd89[0x1]:_0x231237;}Report[_0x60dc('0x11')][_0x60dc('0x2d')]=function(_0x55bb12){_0x55bb12[_0x60dc('0x2e')]=_0x55bb12[_0x60dc('0x2e')]||_0x55bb12[_0x60dc('0x2f')];if(_0x55bb12[_0x60dc('0x30')]==_0x60dc('0x31')){_0x55bb12['lastapplication']=_0x60dc('0x32');_0x55bb12['lastdata']=_0x55bb12[_0x60dc('0x32')];if(_0x55bb12[_0x60dc('0x33')]==_0x60dc('0x34')){_0x55bb12[_0x60dc('0x21')]='';_0x55bb12[_0x60dc('0x2e')]=extractCalleridNumber(_0x55bb12[_0x60dc('0x35')]);}else if(_0x55bb12[_0x60dc('0x33')]==_0x60dc('0x36')){if(_0x55bb12[_0x60dc('0x2e')]==_0x60dc('0x37')){_0x55bb12['destination']=extractCalleridNumber(_0x55bb12[_0x60dc('0x38')]);_0x55bb12[_0x60dc('0x39')]=_0x55bb12[_0x60dc('0x3a')];_0x55bb12[_0x60dc('0x3b')]=[_0x55bb12['channel'],_0x55bb12['channel']=_0x55bb12[_0x60dc('0x3b')]][0x0];_0x55bb12[_0x60dc('0x35')]=_0x55bb12[_0x60dc('0x38')];}else{_0x55bb12[_0x60dc('0x2e')]=_0x55bb12[_0x60dc('0x39')];_0x55bb12[_0x60dc('0x39')]=_0x55bb12[_0x60dc('0x3a')];if(_0x55bb12[_0x60dc('0x3c')]=='ANSWERED'){_0x55bb12[_0x60dc('0x21')]=_0x55bb12[_0x60dc('0x26')];}else{_0x55bb12['accountcode']='';}}}}else{_0x55bb12['callerid']=util[_0x60dc('0x23')](_0x60dc('0x3d'),_0x55bb12[_0x60dc('0x3e')],_0x55bb12['calleridnum']);}RpcVoiceCallReport[_0x60dc('0x2c')](_0x55bb12);if(_0x55bb12[_0x60dc('0x3f')]){for(var _0x417d1d=0x0;_0x417d1d<_0x55bb12['monitors'][_0x60dc('0x25')];_0x417d1d+=0x1){_0x55bb12[_0x60dc('0x40')]=_0x55bb12['monitors'][_0x417d1d][_0x60dc('0x41')];_0x55bb12['createdAt']=_0x55bb12['monitors'][_0x417d1d][_0x60dc('0x42')];if(_0x55bb12[_0x60dc('0x2f')]==_0x60dc('0x37')){_0x55bb12[_0x60dc('0x39')]=_0x55bb12[_0x60dc('0x26')];_0x55bb12[_0x60dc('0x3e')]=_0x55bb12[_0x60dc('0x43')];_0x55bb12['connectedlinenum']=_0x55bb12['accountcode'];_0x55bb12[_0x60dc('0x43')]=_0x55bb12['membername'];_0x55bb12[_0x60dc('0x2f')]=_0x55bb12[_0x60dc('0x3a')];}else if(_0x55bb12['exten']=='xcally-motion-dialer'){_0x55bb12[_0x60dc('0x39')]=_0x55bb12[_0x60dc('0x2e')];_0x55bb12[_0x60dc('0x2f')]=_0x55bb12['originatecalleridnum'];}RpcVoiceRecording[_0x60dc('0x2c')](_0x55bb12);}}};Report[_0x60dc('0x11')][_0x60dc('0x19')]=function(_0x434fbe){if(_[_0x60dc('0x44')](_0x434fbe)){_0x434fbe['forEach'](function(_0x2c3038){RpcVoiceAgentReport['create'](_0x2c3038);});}else{RpcVoiceAgentReport[_0x60dc('0x2c')](_0x434fbe);}};Report[_0x60dc('0x11')][_0x60dc('0x45')]=function(_0x4a5463){RpcVoiceDialReport['create'](_0x4a5463);var _0x509f31=undefined;var _0x23cd27=_0x4a5463['channel'];if(_[_0x60dc('0x46')](_0x23cd27,_0x60dc('0x47'))){var _0x346a72=_0x23cd27[_0x60dc('0x48')](_0x23cd27[_0x60dc('0x49')]('/')+0x1,_0x23cd27['indexOf']('@'));_0x509f31=_[_0x60dc('0x20')](this['agents'],function(_0x5bf042){return _0x5bf042[_0x60dc('0x4a')]==_0x346a72||_0x5bf042[_0x60dc('0x4b')]==_0x346a72||_0x5bf042[_0x60dc('0x21')]==_0x346a72;});}else{var _0x346a72=_0x23cd27[_0x60dc('0x48')](_0x23cd27[_0x60dc('0x49')]('/')+0x1,_0x23cd27[_0x60dc('0x4c')]('-'));_0x509f31=this[_0x60dc('0x1e')](_0x346a72);}if(_0x509f31){_0x4a5463['interface']=_[_0x60dc('0x28')](_0x509f31[_0x60dc('0x22')])?util[_0x60dc('0x23')](_0x60dc('0x24'),_0x509f31['name']):_0x509f31[_0x60dc('0x22')];_0x4a5463[_0x60dc('0x4d')]=_0x509f31[_0x60dc('0x1f')];_0x4a5463['accountcode']=_0x509f31['accountcode'];RpcMemberReport['voiceDialReport'](_0x4a5463);}};Report[_0x60dc('0x11')][_0x60dc('0x1b')]=function(_0x8d91c7){RpcVoiceTransferReport[_0x60dc('0x1b')](_0x8d91c7);};Report[_0x60dc('0x11')][_0x60dc('0x1d')]=function(_0x5ef2db){RpcVoiceTransferReport[_0x60dc('0x1d')](_0x5ef2db);};module[_0x60dc('0x4e')]=Report;