Built motion from commit (unavailable).|2.5.13
[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 _0x1587=['dialer','lastapplication','lastdata','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','destination','originatecalleridnum','channel','calleridpreview','calleridnum','disposition','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','monitors','monitorFilename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','startsWith','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','custom:voiceCallReport','voiceCallReport','bind','custom:voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','interface','format','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','voiceQueueReport','create','match','exten','type'];(function(_0x255ac0,_0x3f6645){var _0x437bf1=function(_0x5baff0){while(--_0x5baff0){_0x255ac0['push'](_0x255ac0['shift']());}};_0x437bf1(++_0x3f6645);}(_0x1587,0xdd));var _0x7158=function(_0x1db8db,_0x2417a9){_0x1db8db=_0x1db8db-0x0;var _0x2e87bd=_0x1587[_0x1db8db];return _0x2e87bd;};'use strict';var _=require(_0x7158('0x0'));var moment=require(_0x7158('0x1'));var util=require(_0x7158('0x2'));var config=require(_0x7158('0x3'));var ami=require(_0x7158('0x4'));var RpcVoiceAgentReport=require(_0x7158('0x5'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0x7158('0x6'));var RpcMemberReport=require(_0x7158('0x7'));var RpcVoiceQueueReport=require(_0x7158('0x8'));var RpcVoiceRecording=require(_0x7158('0x9'));var RpcVoiceTransferReport=require(_0x7158('0xa'));var VoiceQueueReport=require(_0x7158('0xb'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x7158('0xc'));var VoiceDialReport=require(_0x7158('0xd'));var UserReport=require(_0x7158('0xe'));function Report(_0x144016){this[_0x7158('0xf')]=_0x144016;this[_0x7158('0x10')]=_0x144016[_0x7158('0x10')];this[_0x7158('0x11')]=_0x144016[_0x7158('0x11')];}Report[_0x7158('0x12')][_0x7158('0x13')]=function(_0x3ababd){var _0x1558ed=new VoiceQueueReport(this[_0x7158('0xf')]);var _0x3e9bb8=new VoiceAgentReport(this[_0x7158('0xf')]);var _0x508daf=new VoiceDialReport(this[_0x7158('0xf')]);var _0x3cdc81=new VoiceCallReport(this[_0x7158('0xf')]);var _0x5520c5=new UserReport(this[_0x7158('0xf')]);if(config[_0x7158('0x14')]&&config[_0x7158('0x14')][_0x7158('0x15')]){ami['on'](_0x7158('0x16'),this['voiceQueueReport']['bind'](this));ami['on'](_0x7158('0x17'),this[_0x7158('0x18')][_0x7158('0x19')](this));ami['on'](_0x7158('0x1a'),this['voiceAgentReport'][_0x7158('0x19')](this));ami['on'](_0x7158('0x1b'),this[_0x7158('0x1c')][_0x7158('0x19')](this));ami['on'](_0x7158('0x1d'),this[_0x7158('0x1e')][_0x7158('0x19')](this));ami['on'](_0x7158('0x1f'),this[_0x7158('0x20')]['bind'](this));}};Report[_0x7158('0x12')][_0x7158('0x21')]=function(_0x26ac29){var _0x430027;_0x430027=_[_0x7158('0x22')](this[_0x7158('0x10')],function(_0xa74e7a){return _0xa74e7a[_0x7158('0x23')]==_0x26ac29||_0xa74e7a[_0x7158('0x24')]==_0x26ac29;});if(_[_0x7158('0x25')](_0x430027)){var _0x20a9a4=_['find'](this['telephones'],function(_0x1a4c98){return _0x1a4c98[_0x7158('0x23')]==_0x26ac29||_0x1a4c98['name']==_0x26ac29;});if(_0x20a9a4){_0x430027=_[_0x7158('0x22')](this['agents'],function(_0x2e6219){return _0x2e6219['interface']==util['format'](_0x7158('0x26'),_0x20a9a4[_0x7158('0x24')]);});}}return _0x430027;};Report['prototype']['voiceQueueReport']=function(_0x26197e){for(var _0x343759=0x0;_0x343759<_0x26197e[_0x7158('0x27')];_0x343759+=0x1){var _0x5e43cd=this['findAgent'](_0x26197e[_0x343759][_0x7158('0x28')]);if(_0x5e43cd){_0x26197e[_0x343759]['accountcode']=_0x5e43cd['accountcode'];_0x26197e[_0x343759][_0x7158('0x29')]=!![];_0x26197e[_0x343759][_0x7158('0x2a')]=_0x5e43cd['name'];_0x26197e[_0x343759]['interface']=_[_0x7158('0x25')](_0x5e43cd[_0x7158('0x2b')])?util[_0x7158('0x2c')]('SIP/%s',_0x5e43cd[_0x7158('0x24')]):_0x5e43cd[_0x7158('0x2b')];if(_0x26197e[_0x343759][_0x7158('0x2d')]){_0x26197e[_0x343759][_0x7158('0x2e')]=moment()[_0x7158('0x2c')](_0x7158('0x2f'));}if(_0x26197e[_0x343759][_0x7158('0x30')]){_0x26197e[_0x343759][_0x7158('0x31')]=moment()[_0x7158('0x2c')](_0x7158('0x2f'));}RpcMemberReport[_0x7158('0x32')](_0x26197e[_0x343759]);}RpcVoiceQueueReport[_0x7158('0x33')](_0x26197e[_0x343759]);}};function extractCalleridNumber(_0x219289){var _0x26946a=_0x219289[_0x7158('0x34')](/<(.*?)>/);return _0x26946a?_0x26946a[0x1]:_0x219289;}Report['prototype']['voiceCallReport']=function(_0x3055da){_0x3055da['destination']=_0x3055da['destination']||_0x3055da[_0x7158('0x35')];if(_0x3055da[_0x7158('0x36')]==_0x7158('0x37')){_0x3055da[_0x7158('0x38')]='queue';_0x3055da[_0x7158('0x39')]=_0x3055da[_0x7158('0x3a')];if(_0x3055da[_0x7158('0x3b')]==_0x7158('0x3c')){_0x3055da[_0x7158('0x23')]='';_0x3055da['destination']=extractCalleridNumber(_0x3055da[_0x7158('0x3d')]);}else if(_0x3055da['context']==_0x7158('0x3e')){if(_0x3055da['destination']==_0x7158('0x3f')){_0x3055da[_0x7158('0x40')]=extractCalleridNumber(_0x3055da['calleridpreview']);_0x3055da['calleridnum']=_0x3055da[_0x7158('0x41')];_0x3055da['destinationchannel']=[_0x3055da[_0x7158('0x42')],_0x3055da[_0x7158('0x42')]=_0x3055da['destinationchannel']][0x0];_0x3055da[_0x7158('0x3d')]=_0x3055da[_0x7158('0x43')];}else{_0x3055da[_0x7158('0x40')]=_0x3055da[_0x7158('0x44')];_0x3055da['calleridnum']=_0x3055da[_0x7158('0x41')];if(_0x3055da[_0x7158('0x45')]=='ANSWERED'){_0x3055da[_0x7158('0x23')]=_0x3055da['connectedlinenum'];}else{_0x3055da[_0x7158('0x23')]='';}}}}else{_0x3055da[_0x7158('0x3d')]=util[_0x7158('0x2c')](_0x7158('0x46'),_0x3055da[_0x7158('0x47')],_0x3055da[_0x7158('0x44')]);}if(RpcVoiceTransferReport[_0x7158('0x48')][_0x3055da['linkedid']]){var _0x57ca97=RpcVoiceTransferReport[_0x7158('0x48')][_0x3055da[_0x7158('0x49')]];_0x57ca97[_0x7158('0x4a')]=_0x3055da[_0x7158('0x4b')];RpcVoiceTransferReport['blindTransfer'](_0x57ca97);delete RpcVoiceTransferReport[_0x7158('0x48')][_0x3055da['linkedid']];}RpcVoiceCallReport[_0x7158('0x33')](_0x3055da);if(_0x3055da[_0x7158('0x4c')]){for(var _0x337848=0x0;_0x337848<_0x3055da[_0x7158('0x4d')]['length'];_0x337848+=0x1){_0x3055da[_0x7158('0x4e')]=_0x3055da[_0x7158('0x4d')][_0x337848]['filename'];_0x3055da[_0x7158('0x4f')]=_0x3055da['monitors'][_0x337848]['createdAt'];if(_0x3055da['exten']==_0x7158('0x3f')){_0x3055da[_0x7158('0x44')]=_0x3055da[_0x7158('0x28')];_0x3055da[_0x7158('0x47')]=_0x3055da[_0x7158('0x50')];_0x3055da[_0x7158('0x28')]=_0x3055da[_0x7158('0x23')];_0x3055da[_0x7158('0x50')]=_0x3055da[_0x7158('0x51')];_0x3055da[_0x7158('0x35')]=_0x3055da[_0x7158('0x41')];}else if(_0x3055da[_0x7158('0x35')]==_0x7158('0x52')){_0x3055da[_0x7158('0x44')]=_0x3055da[_0x7158('0x40')];_0x3055da['exten']=_0x3055da['originatecalleridnum'];}RpcVoiceRecording[_0x7158('0x33')](_0x3055da);}}};Report[_0x7158('0x12')]['voiceAgentReport']=function(_0x201298){if(_[_0x7158('0x53')](_0x201298)){_0x201298[_0x7158('0x54')](function(_0x3e8f75){RpcVoiceAgentReport[_0x7158('0x33')](_0x3e8f75);});}else{RpcVoiceAgentReport[_0x7158('0x33')](_0x201298);}};Report[_0x7158('0x12')][_0x7158('0x1c')]=function(_0x2e9755){RpcVoiceDialReport[_0x7158('0x33')](_0x2e9755);var _0xb6b86b;var _0x2d54ac;var _0x49e45f=_0x2e9755[_0x7158('0x42')];if(_[_0x7158('0x55')](_0x49e45f,'Local')){_0x2d54ac=_0x49e45f[_0x7158('0x56')](_0x49e45f[_0x7158('0x57')]('/')+0x1,_0x49e45f['indexOf']('@'));_0xb6b86b=_[_0x7158('0x22')](this[_0x7158('0x10')],function(_0x188d0f){return _0x188d0f[_0x7158('0x58')]==_0x2d54ac||_0x188d0f[_0x7158('0x59')]==_0x2d54ac||_0x188d0f[_0x7158('0x23')]==_0x2d54ac;});}else{_0x2d54ac=_0x49e45f['substring'](_0x49e45f['indexOf']('/')+0x1,_0x49e45f[_0x7158('0x5a')]('-'));_0xb6b86b=this['findAgent'](_0x2d54ac);}if(_0xb6b86b){_0x2e9755['interface']=_[_0x7158('0x25')](_0xb6b86b['interface'])?util[_0x7158('0x2c')](_0x7158('0x26'),_0xb6b86b[_0x7158('0x24')]):_0xb6b86b['interface'];_0x2e9755[_0x7158('0x51')]=_0xb6b86b[_0x7158('0x24')];_0x2e9755[_0x7158('0x23')]=_0xb6b86b[_0x7158('0x23')];RpcMemberReport[_0x7158('0x1c')](_0x2e9755);}};Report[_0x7158('0x12')][_0x7158('0x1e')]=function(_0x3ae097){RpcVoiceTransferReport[_0x7158('0x48')][_0x3ae097[_0x7158('0x5b')]]=_0x3ae097;};Report[_0x7158('0x12')][_0x7158('0x20')]=function(_0x38a641){RpcVoiceTransferReport[_0x7158('0x20')](_0x38a641);};module['exports']=Report;