bd464f36e08a56d0a433aa14235387a142c3db29
[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 _0x5c05=['voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','find','agents','accountcode','name','isNil','interface','SIP/%s','findAgent','connectedlinenum','assigned','queuecallercomplete','queuecallercompleteAt','format','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','getAgentByInternal','keys','length','channel','split','calleridnum','outbound','internal','voiceCallReport','destination','type','dialer','lastapplication','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','originatecalleridnum','destinationchannel','calleridpreview','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','blindTransfer','getCallType','UserId','monitor','monitors','monitorFilename','filename','createdAt','exten','connectedlinename','membername','xcally-motion-dialer','forEach','startsWith','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','telephones','prototype','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport'];(function(_0x3ab353,_0x5d5283){var _0x1e2285=function(_0x55804f){while(--_0x55804f){_0x3ab353['push'](_0x3ab353['shift']());}};_0x1e2285(++_0x5d5283);}(_0x5c05,0x1d1));var _0x55c0=function(_0x3db39b,_0x44dc1f){_0x3db39b=_0x3db39b-0x0;var _0x441ad3=_0x5c05[_0x3db39b];return _0x441ad3;};'use strict';var _=require(_0x55c0('0x0'));var moment=require(_0x55c0('0x1'));var util=require(_0x55c0('0x2'));var config=require('../../../config/environment');var ami=require('../ami');var RpcVoiceAgentReport=require(_0x55c0('0x3'));var RpcVoiceCallReport=require(_0x55c0('0x4'));var RpcVoiceDialReport=require(_0x55c0('0x5'));var RpcMemberReport=require(_0x55c0('0x6'));var RpcVoiceQueueReport=require(_0x55c0('0x7'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0x55c0('0x8'));var VoiceCallReport=require(_0x55c0('0x9'));var VoiceAgentReport=require(_0x55c0('0xa'));var VoiceDialReport=require(_0x55c0('0xb'));var UserReport=require(_0x55c0('0xc'));function Report(_0x5d8049){this[_0x55c0('0xd')]=_0x5d8049;this['agents']=_0x5d8049['agents'];this['telephones']=_0x5d8049[_0x55c0('0xe')];}Report[_0x55c0('0xf')]['sync']=function(_0x65d699){var _0x565a70=new VoiceQueueReport(this[_0x55c0('0xd')]);var _0x1b32fc=new VoiceAgentReport(this['realtime']);var _0xe52c98=new VoiceDialReport(this[_0x55c0('0xd')]);var _0x36eedf=new VoiceCallReport(this[_0x55c0('0xd')]);var _0x198a55=new UserReport(this[_0x55c0('0xd')]);if(config[_0x55c0('0x10')]&&config[_0x55c0('0x10')][_0x55c0('0x11')]){ami['on'](_0x55c0('0x12'),this[_0x55c0('0x13')][_0x55c0('0x14')](this));ami['on'](_0x55c0('0x15'),this['voiceCallReport']['bind'](this));ami['on'](_0x55c0('0x16'),this[_0x55c0('0x17')]['bind'](this));ami['on'](_0x55c0('0x18'),this[_0x55c0('0x19')][_0x55c0('0x14')](this));ami['on'](_0x55c0('0x1a'),this['blindTransfer'][_0x55c0('0x14')](this));ami['on'](_0x55c0('0x1b'),this[_0x55c0('0x1c')][_0x55c0('0x14')](this));}};Report[_0x55c0('0xf')]['findAgent']=function(_0x36ec0a){var _0x178a3f;_0x178a3f=_[_0x55c0('0x1d')](this[_0x55c0('0x1e')],function(_0x2541f2){return _0x2541f2[_0x55c0('0x1f')]==_0x36ec0a||_0x2541f2[_0x55c0('0x20')]==_0x36ec0a;});if(_[_0x55c0('0x21')](_0x178a3f)){var _0x46d9c7=_[_0x55c0('0x1d')](this['telephones'],function(_0x24f7d3){return _0x24f7d3[_0x55c0('0x1f')]==_0x36ec0a||_0x24f7d3[_0x55c0('0x20')]==_0x36ec0a;});if(_0x46d9c7){_0x178a3f=_[_0x55c0('0x1d')](this[_0x55c0('0x1e')],function(_0x3d6047){return _0x3d6047[_0x55c0('0x22')]==util['format'](_0x55c0('0x23'),_0x46d9c7['name']);});}}return _0x178a3f;};Report[_0x55c0('0xf')][_0x55c0('0x13')]=function(_0x8dc97c){for(var _0x50599a=0x0;_0x50599a<_0x8dc97c['length'];_0x50599a+=0x1){var _0x3f0381=this[_0x55c0('0x24')](_0x8dc97c[_0x50599a][_0x55c0('0x25')]);if(_0x3f0381){_0x8dc97c[_0x50599a][_0x55c0('0x1f')]=_0x3f0381[_0x55c0('0x1f')];_0x8dc97c[_0x50599a][_0x55c0('0x26')]=!![];_0x8dc97c[_0x50599a]['lastAssignedTo']=_0x3f0381[_0x55c0('0x20')];_0x8dc97c[_0x50599a][_0x55c0('0x22')]=_[_0x55c0('0x21')](_0x3f0381[_0x55c0('0x22')])?util['format'](_0x55c0('0x23'),_0x3f0381['name']):_0x3f0381[_0x55c0('0x22')];if(_0x8dc97c[_0x50599a][_0x55c0('0x27')]){_0x8dc97c[_0x50599a][_0x55c0('0x28')]=moment()[_0x55c0('0x29')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x8dc97c[_0x50599a][_0x55c0('0x2a')]){_0x8dc97c[_0x50599a][_0x55c0('0x2b')]=moment()[_0x55c0('0x29')](_0x55c0('0x2c'));}RpcMemberReport['voiceQueueReport'](_0x8dc97c[_0x50599a]);}RpcVoiceQueueReport[_0x55c0('0x2d')](_0x8dc97c[_0x50599a]);}};function extractCalleridNumber(_0x353f34){var _0x518409=_0x353f34[_0x55c0('0x2e')](/<(.*?)>/);return _0x518409?_0x518409[0x1]:_0x353f34;}Report[_0x55c0('0xf')][_0x55c0('0x2f')]=function(_0x23ea70){for(var _0x167288=0x0;_0x167288<Object[_0x55c0('0x30')](this[_0x55c0('0x1e')])[_0x55c0('0x31')];_0x167288++){var _0x2244fe=Object[_0x55c0('0x30')](this['agents'])[_0x167288];var _0xaa84be=this['agents'][_0x2244fe];if(_0xaa84be[_0x55c0('0x1f')]===Number(_0x23ea70))return _0xaa84be;}return null;};Report[_0x55c0('0xf')]['getCallType']=function(_0x496f09){var _0x464517=_0x496f09[_0x55c0('0x32')][_0x55c0('0x33')]('-')[0x0];var _0x214c4d=this[_0x55c0('0x1e')][_0x464517];if(!_0x214c4d)_0x214c4d=this[_0x55c0('0x2f')](_0x496f09[_0x55c0('0x34')]);return!_0x214c4d?_0x55c0('0x35'):_0x55c0('0x36');};Report[_0x55c0('0xf')][_0x55c0('0x37')]=function(_0x4f121c){_0x4f121c[_0x55c0('0x38')]=_0x4f121c[_0x55c0('0x38')]||_0x4f121c['exten'];if(_0x4f121c[_0x55c0('0x39')]==_0x55c0('0x3a')){_0x4f121c[_0x55c0('0x3b')]='queue';_0x4f121c['lastdata']=_0x4f121c[_0x55c0('0x3c')];if(_0x4f121c[_0x55c0('0x3d')]==_0x55c0('0x3e')){_0x4f121c[_0x55c0('0x1f')]='';_0x4f121c[_0x55c0('0x38')]=extractCalleridNumber(_0x4f121c[_0x55c0('0x3f')]);}else if(_0x4f121c[_0x55c0('0x3d')]==_0x55c0('0x40')){if(_0x4f121c[_0x55c0('0x38')]==_0x55c0('0x41')){_0x4f121c[_0x55c0('0x38')]=extractCalleridNumber(_0x4f121c['calleridpreview']);_0x4f121c[_0x55c0('0x34')]=_0x4f121c[_0x55c0('0x42')];_0x4f121c[_0x55c0('0x43')]=[_0x4f121c[_0x55c0('0x32')],_0x4f121c[_0x55c0('0x32')]=_0x4f121c[_0x55c0('0x43')]][0x0];_0x4f121c[_0x55c0('0x3f')]=_0x4f121c[_0x55c0('0x44')];}else{_0x4f121c[_0x55c0('0x38')]=_0x4f121c[_0x55c0('0x34')];_0x4f121c[_0x55c0('0x34')]=_0x4f121c['originatecalleridnum'];if(_0x4f121c[_0x55c0('0x45')]==_0x55c0('0x46')){_0x4f121c[_0x55c0('0x1f')]=_0x4f121c[_0x55c0('0x25')];}else{_0x4f121c[_0x55c0('0x1f')]='';}}}}else{_0x4f121c[_0x55c0('0x3f')]=util[_0x55c0('0x29')](_0x55c0('0x47'),_0x4f121c[_0x55c0('0x48')],_0x4f121c[_0x55c0('0x34')]);}if(RpcVoiceTransferReport[_0x55c0('0x49')][_0x4f121c[_0x55c0('0x4a')]]){var _0x1016d0=RpcVoiceTransferReport[_0x55c0('0x49')][_0x4f121c['linkedid']];_0x1016d0[_0x55c0('0x4b')]=_0x4f121c[_0x55c0('0x4c')];RpcVoiceTransferReport[_0x55c0('0x4d')](_0x1016d0);delete RpcVoiceTransferReport[_0x55c0('0x49')][_0x4f121c[_0x55c0('0x4a')]];}if(_[_0x55c0('0x21')](_0x4f121c[_0x55c0('0x39')])){_0x4f121c[_0x55c0('0x39')]=this[_0x55c0('0x4e')](_0x4f121c);}if(_[_0x55c0('0x21')](_0x4f121c[_0x55c0('0x4f')])){var _0x9993ef=_0x4f121c[_0x55c0('0x32')][_0x55c0('0x33')]('-')[0x0];var _0x4fca80=this[_0x55c0('0x1e')][_0x9993ef];if(!_0x4fca80)_0x4fca80=this[_0x55c0('0x2f')](_0x4f121c[_0x55c0('0x1f')]);if(_0x4fca80){_0x4f121c['UserId']=_0x4fca80['id'];_0x4f121c['membername']=_0x4fca80['name'];}}RpcVoiceCallReport['create'](_0x4f121c);if(_0x4f121c[_0x55c0('0x50')]){for(var _0x3cee5e=0x0;_0x3cee5e<_0x4f121c[_0x55c0('0x51')]['length'];_0x3cee5e+=0x1){_0x4f121c[_0x55c0('0x52')]=_0x4f121c['monitors'][_0x3cee5e][_0x55c0('0x53')];_0x4f121c[_0x55c0('0x54')]=_0x4f121c[_0x55c0('0x51')][_0x3cee5e][_0x55c0('0x54')];if(_0x4f121c[_0x55c0('0x55')]==_0x55c0('0x41')){_0x4f121c['calleridnum']=_0x4f121c[_0x55c0('0x25')];_0x4f121c['calleridname']=_0x4f121c[_0x55c0('0x56')];_0x4f121c[_0x55c0('0x25')]=_0x4f121c[_0x55c0('0x1f')];_0x4f121c[_0x55c0('0x56')]=_0x4f121c[_0x55c0('0x57')];_0x4f121c[_0x55c0('0x55')]=_0x4f121c[_0x55c0('0x42')];}else if(_0x4f121c[_0x55c0('0x55')]==_0x55c0('0x58')){_0x4f121c[_0x55c0('0x34')]=_0x4f121c['destination'];_0x4f121c['exten']=_0x4f121c[_0x55c0('0x42')];}RpcVoiceRecording[_0x55c0('0x2d')](_0x4f121c);}}};Report[_0x55c0('0xf')][_0x55c0('0x17')]=function(_0x116f18){if(_['isArray'](_0x116f18)){_0x116f18[_0x55c0('0x59')](function(_0x2df965){RpcVoiceAgentReport[_0x55c0('0x2d')](_0x2df965);});}else{RpcVoiceAgentReport[_0x55c0('0x2d')](_0x116f18);}};Report[_0x55c0('0xf')][_0x55c0('0x19')]=function(_0x1f84b1){RpcVoiceDialReport[_0x55c0('0x2d')](_0x1f84b1);var _0x40e1d4;var _0x7cec05;var _0x50bddb=_0x1f84b1[_0x55c0('0x32')];if(_[_0x55c0('0x5a')](_0x50bddb,'Local')){_0x7cec05=_0x50bddb[_0x55c0('0x5b')](_0x50bddb['indexOf']('/')+0x1,_0x50bddb[_0x55c0('0x5c')]('@'));_0x40e1d4=_[_0x55c0('0x1d')](this[_0x55c0('0x1e')],function(_0x4bada0){return _0x4bada0[_0x55c0('0x5d')]==_0x7cec05||_0x4bada0[_0x55c0('0x5e')]==_0x7cec05||_0x4bada0['accountcode']==_0x7cec05;});}else{_0x7cec05=_0x50bddb[_0x55c0('0x5b')](_0x50bddb[_0x55c0('0x5c')]('/')+0x1,_0x50bddb[_0x55c0('0x5f')]('-'));_0x40e1d4=this['findAgent'](_0x7cec05);}if(_0x40e1d4){_0x1f84b1['interface']=_[_0x55c0('0x21')](_0x40e1d4[_0x55c0('0x22')])?util[_0x55c0('0x29')](_0x55c0('0x23'),_0x40e1d4['name']):_0x40e1d4[_0x55c0('0x22')];_0x1f84b1[_0x55c0('0x57')]=_0x40e1d4[_0x55c0('0x20')];_0x1f84b1['accountcode']=_0x40e1d4[_0x55c0('0x1f')];RpcMemberReport[_0x55c0('0x19')](_0x1f84b1);}};Report['prototype']['blindTransfer']=function(_0x2b828c){RpcVoiceTransferReport[_0x55c0('0x49')][_0x2b828c[_0x55c0('0x60')]]=_0x2b828c;};Report[_0x55c0('0xf')][_0x55c0('0x1c')]=function(_0x35d88d){RpcVoiceTransferReport[_0x55c0('0x1c')](_0x35d88d);};module[_0x55c0('0x61')]=Report;