9bf8cb77b861bd65af9638c92194501987fb54c0
[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 _0x9f4c=['originatecalleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','isNil','UserId','membername','monitor','monitors','connectedlinename','xcally-motion-dialer','isArray','forEach','indexOf','mobile','phone','substring','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../ami','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','accountcode','name','find','SIP/%s','voiceQueueReport','length','connectedlinenum','assigned','interface','format','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','match','getAgentByInternal','keys','getCallType','channel','split','outbound','internal','voiceCallReport','destination','exten','type','dialer','lastapplication','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridnum','destinationchannel'];(function(_0x1035c1,_0x2d8583){var _0x308d67=function(_0x58ddb6){while(--_0x58ddb6){_0x1035c1['push'](_0x1035c1['shift']());}};_0x308d67(++_0x2d8583);}(_0x9f4c,0x73));var _0xc9f4=function(_0x44cedc,_0x163d20){_0x44cedc=_0x44cedc-0x0;var _0x5a16e7=_0x9f4c[_0x44cedc];return _0x5a16e7;};'use strict';var _=require(_0xc9f4('0x0'));var moment=require(_0xc9f4('0x1'));var util=require(_0xc9f4('0x2'));var config=require('../../../config/environment');var ami=require(_0xc9f4('0x3'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0xc9f4('0x4'));var RpcMemberReport=require(_0xc9f4('0x5'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xc9f4('0x6'));var RpcVoiceTransferReport=require(_0xc9f4('0x7'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0xc9f4('0x8'));var VoiceAgentReport=require(_0xc9f4('0x9'));var VoiceDialReport=require(_0xc9f4('0xa'));var UserReport=require('./userReport');function Report(_0xe4b501){this[_0xc9f4('0xb')]=_0xe4b501;this[_0xc9f4('0xc')]=_0xe4b501[_0xc9f4('0xc')];this[_0xc9f4('0xd')]=_0xe4b501[_0xc9f4('0xd')];}Report[_0xc9f4('0xe')][_0xc9f4('0xf')]=function(_0x14e12b){var _0x2f6878=new VoiceQueueReport(this[_0xc9f4('0xb')]);var _0x3e0308=new VoiceAgentReport(this[_0xc9f4('0xb')]);var _0x58ce79=new VoiceDialReport(this['realtime']);var _0x277521=new VoiceCallReport(this[_0xc9f4('0xb')]);var _0xd19f2a=new UserReport(this[_0xc9f4('0xb')]);if(config[_0xc9f4('0x10')]&&config[_0xc9f4('0x10')][_0xc9f4('0x11')]){ami['on'](_0xc9f4('0x12'),this['voiceQueueReport'][_0xc9f4('0x13')](this));ami['on'](_0xc9f4('0x14'),this['voiceCallReport'][_0xc9f4('0x13')](this));ami['on'](_0xc9f4('0x15'),this[_0xc9f4('0x16')][_0xc9f4('0x13')](this));ami['on'](_0xc9f4('0x17'),this[_0xc9f4('0x18')][_0xc9f4('0x13')](this));ami['on'](_0xc9f4('0x19'),this[_0xc9f4('0x1a')]['bind'](this));ami['on'](_0xc9f4('0x1b'),this[_0xc9f4('0x1c')]['bind'](this));}};Report[_0xc9f4('0xe')][_0xc9f4('0x1d')]=function(_0x455c89){var _0x4ca18c;_0x4ca18c=_['find'](this['agents'],function(_0x18c1af){return _0x18c1af[_0xc9f4('0x1e')]==_0x455c89||_0x18c1af[_0xc9f4('0x1f')]==_0x455c89;});if(_['isNil'](_0x4ca18c)){var _0x383184=_[_0xc9f4('0x20')](this['telephones'],function(_0x3e55be){return _0x3e55be[_0xc9f4('0x1e')]==_0x455c89||_0x3e55be['name']==_0x455c89;});if(_0x383184){_0x4ca18c=_['find'](this['agents'],function(_0x3456fd){return _0x3456fd['interface']==util['format'](_0xc9f4('0x21'),_0x383184[_0xc9f4('0x1f')]);});}}return _0x4ca18c;};Report[_0xc9f4('0xe')][_0xc9f4('0x22')]=function(_0x37ea04){for(var _0x5c47e7=0x0;_0x5c47e7<_0x37ea04[_0xc9f4('0x23')];_0x5c47e7+=0x1){var _0xba55ad=this[_0xc9f4('0x1d')](_0x37ea04[_0x5c47e7][_0xc9f4('0x24')]);if(_0xba55ad){_0x37ea04[_0x5c47e7][_0xc9f4('0x1e')]=_0xba55ad['accountcode'];_0x37ea04[_0x5c47e7][_0xc9f4('0x25')]=!![];_0x37ea04[_0x5c47e7]['lastAssignedTo']=_0xba55ad['name'];_0x37ea04[_0x5c47e7][_0xc9f4('0x26')]=_['isNil'](_0xba55ad[_0xc9f4('0x26')])?util[_0xc9f4('0x27')]('SIP/%s',_0xba55ad['name']):_0xba55ad[_0xc9f4('0x26')];if(_0x37ea04[_0x5c47e7][_0xc9f4('0x28')]){_0x37ea04[_0x5c47e7][_0xc9f4('0x29')]=moment()[_0xc9f4('0x27')](_0xc9f4('0x2a'));}if(_0x37ea04[_0x5c47e7][_0xc9f4('0x2b')]){_0x37ea04[_0x5c47e7]['queuecallerexitAt']=moment()[_0xc9f4('0x27')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0xc9f4('0x22')](_0x37ea04[_0x5c47e7]);}RpcVoiceQueueReport[_0xc9f4('0x2c')](_0x37ea04[_0x5c47e7]);}};function extractCalleridNumber(_0x58e6f3){var _0x5a96a4=_0x58e6f3[_0xc9f4('0x2d')](/<(.*?)>/);return _0x5a96a4?_0x5a96a4[0x1]:_0x58e6f3;}Report['prototype'][_0xc9f4('0x2e')]=function(_0x58e5ca){for(var _0xeaaf4b=0x0;_0xeaaf4b<Object[_0xc9f4('0x2f')](this['agents'])[_0xc9f4('0x23')];_0xeaaf4b++){var _0x2926a1=Object[_0xc9f4('0x2f')](this['agents'])[_0xeaaf4b];var _0x1bc358=this[_0xc9f4('0xc')][_0x2926a1];if(_0x1bc358['accountcode']===Number(_0x58e5ca))return _0x1bc358;}return null;};Report[_0xc9f4('0xe')][_0xc9f4('0x30')]=function(_0x28330a){var _0x2db44a=_0x28330a[_0xc9f4('0x31')][_0xc9f4('0x32')]('-')[0x0];var _0x573b3a=this[_0xc9f4('0xc')][_0x2db44a];if(!_0x573b3a)_0x573b3a=this[_0xc9f4('0x2e')](_0x28330a['calleridnum']);return!_0x573b3a?_0xc9f4('0x33'):_0xc9f4('0x34');};Report[_0xc9f4('0xe')][_0xc9f4('0x35')]=function(_0x4511cb){_0x4511cb[_0xc9f4('0x36')]=_0x4511cb['destination']||_0x4511cb[_0xc9f4('0x37')];if(_0x4511cb[_0xc9f4('0x38')]==_0xc9f4('0x39')){_0x4511cb[_0xc9f4('0x3a')]=_0xc9f4('0x3b');_0x4511cb['lastdata']=_0x4511cb[_0xc9f4('0x3b')];if(_0x4511cb[_0xc9f4('0x3c')]==_0xc9f4('0x3d')){_0x4511cb[_0xc9f4('0x1e')]='';_0x4511cb[_0xc9f4('0x36')]=extractCalleridNumber(_0x4511cb[_0xc9f4('0x3e')]);}else if(_0x4511cb[_0xc9f4('0x3c')]==_0xc9f4('0x3f')){if(_0x4511cb[_0xc9f4('0x36')]==_0xc9f4('0x40')){_0x4511cb[_0xc9f4('0x36')]=extractCalleridNumber(_0x4511cb['calleridpreview']);_0x4511cb[_0xc9f4('0x41')]=_0x4511cb['originatecalleridnum'];_0x4511cb['destinationchannel']=[_0x4511cb['channel'],_0x4511cb['channel']=_0x4511cb[_0xc9f4('0x42')]][0x0];_0x4511cb[_0xc9f4('0x3e')]=_0x4511cb['calleridpreview'];}else{_0x4511cb[_0xc9f4('0x36')]=_0x4511cb[_0xc9f4('0x41')];_0x4511cb[_0xc9f4('0x41')]=_0x4511cb[_0xc9f4('0x43')];if(_0x4511cb[_0xc9f4('0x44')]==_0xc9f4('0x45')){_0x4511cb[_0xc9f4('0x1e')]=_0x4511cb['connectedlinenum'];}else{_0x4511cb['accountcode']='';}}}}else{_0x4511cb['callerid']=util[_0xc9f4('0x27')](_0xc9f4('0x46'),_0x4511cb[_0xc9f4('0x47')],_0x4511cb['calleridnum']);}if(RpcVoiceTransferReport[_0xc9f4('0x48')][_0x4511cb[_0xc9f4('0x49')]]){var _0xea37e1=RpcVoiceTransferReport['transfers'][_0x4511cb['linkedid']];_0xea37e1[_0xc9f4('0x4a')]=_0x4511cb['uniqueid'];RpcVoiceTransferReport[_0xc9f4('0x1a')](_0xea37e1);delete RpcVoiceTransferReport[_0xc9f4('0x48')][_0x4511cb[_0xc9f4('0x49')]];}if(_[_0xc9f4('0x4b')](_0x4511cb[_0xc9f4('0x38')])){_0x4511cb['type']=this['getCallType'](_0x4511cb);}if(_[_0xc9f4('0x4b')](_0x4511cb[_0xc9f4('0x4c')])){var _0x314f87=_0x4511cb[_0xc9f4('0x31')][_0xc9f4('0x32')]('-')[0x0];var _0x383740=this['agents'][_0x314f87];if(!_0x383740)_0x383740=this[_0xc9f4('0x2e')](_0x4511cb[_0xc9f4('0x1e')]);if(_0x383740){_0x4511cb['UserId']=_0x383740['id'];_0x4511cb[_0xc9f4('0x4d')]=_0x383740['name'];}}RpcVoiceCallReport[_0xc9f4('0x2c')](_0x4511cb);if(_0x4511cb[_0xc9f4('0x4e')]){for(var _0x4921f1=0x0;_0x4921f1<_0x4511cb[_0xc9f4('0x4f')][_0xc9f4('0x23')];_0x4921f1+=0x1){_0x4511cb['monitorFilename']=_0x4511cb[_0xc9f4('0x4f')][_0x4921f1]['filename'];_0x4511cb['createdAt']=_0x4511cb[_0xc9f4('0x4f')][_0x4921f1]['createdAt'];if(_0x4511cb[_0xc9f4('0x37')]==_0xc9f4('0x40')){_0x4511cb[_0xc9f4('0x41')]=_0x4511cb[_0xc9f4('0x24')];_0x4511cb['calleridname']=_0x4511cb[_0xc9f4('0x50')];_0x4511cb[_0xc9f4('0x24')]=_0x4511cb[_0xc9f4('0x1e')];_0x4511cb[_0xc9f4('0x50')]=_0x4511cb[_0xc9f4('0x4d')];_0x4511cb[_0xc9f4('0x37')]=_0x4511cb[_0xc9f4('0x43')];}else if(_0x4511cb[_0xc9f4('0x37')]==_0xc9f4('0x51')){_0x4511cb[_0xc9f4('0x41')]=_0x4511cb[_0xc9f4('0x36')];_0x4511cb[_0xc9f4('0x37')]=_0x4511cb[_0xc9f4('0x43')];}RpcVoiceRecording[_0xc9f4('0x2c')](_0x4511cb);}}};Report[_0xc9f4('0xe')][_0xc9f4('0x16')]=function(_0xa09d09){if(_[_0xc9f4('0x52')](_0xa09d09)){_0xa09d09[_0xc9f4('0x53')](function(_0x24fcc0){RpcVoiceAgentReport[_0xc9f4('0x2c')](_0x24fcc0);});}else{RpcVoiceAgentReport[_0xc9f4('0x2c')](_0xa09d09);}};Report['prototype']['voiceDialReport']=function(_0x467fc3){RpcVoiceDialReport[_0xc9f4('0x2c')](_0x467fc3);var _0x19b14;var _0x23ea8f;var _0x155b8a=_0x467fc3[_0xc9f4('0x31')];if(_['startsWith'](_0x155b8a,'Local')){_0x23ea8f=_0x155b8a['substring'](_0x155b8a['indexOf']('/')+0x1,_0x155b8a[_0xc9f4('0x54')]('@'));_0x19b14=_['find'](this[_0xc9f4('0xc')],function(_0x2d9c9f){return _0x2d9c9f[_0xc9f4('0x55')]==_0x23ea8f||_0x2d9c9f[_0xc9f4('0x56')]==_0x23ea8f||_0x2d9c9f['accountcode']==_0x23ea8f;});}else{_0x23ea8f=_0x155b8a[_0xc9f4('0x57')](_0x155b8a[_0xc9f4('0x54')]('/')+0x1,_0x155b8a[_0xc9f4('0x58')]('-'));_0x19b14=this[_0xc9f4('0x1d')](_0x23ea8f);}if(_0x19b14){_0x467fc3['interface']=_[_0xc9f4('0x4b')](_0x19b14[_0xc9f4('0x26')])?util[_0xc9f4('0x27')](_0xc9f4('0x21'),_0x19b14['name']):_0x19b14['interface'];_0x467fc3[_0xc9f4('0x4d')]=_0x19b14['name'];_0x467fc3[_0xc9f4('0x1e')]=_0x19b14['accountcode'];RpcMemberReport['voiceDialReport'](_0x467fc3);}};Report[_0xc9f4('0xe')]['blindTransfer']=function(_0xacad15){RpcVoiceTransferReport['transfers'][_0xacad15[_0xc9f4('0x59')]]=_0xacad15;};Report['prototype'][_0xc9f4('0x1c')]=function(_0x48d740){RpcVoiceTransferReport[_0xc9f4('0x1c')](_0x48d740);};module[_0xc9f4('0x5a')]=Report;