Built motion from commit (unavailable).|2.5.22
[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 _0x9553=['format','SIP/%s','length','connectedlinenum','accountcode','lastAssignedTo','interface','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','destination','type','lastapplication','queue','context','from-voip-provider','from-sip','calleridpreview','originatecalleridnum','destinationchannel','channel','callerid','calleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','monitors','monitorFilename','filename','exten','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','startsWith','indexOf','phone','substring','lastIndexOf','blindTransfer','transfererlinkedid','attendedTransfer','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','prototype','realtime','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','custom:voiceCallReport','voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','bind','attendedtransfer','findAgent','name','isNil','find','telephones'];(function(_0x662230,_0x760ada){var _0x3e995a=function(_0x61902){while(--_0x61902){_0x662230['push'](_0x662230['shift']());}};_0x3e995a(++_0x760ada);}(_0x9553,0x194));var _0x3955=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0x9553[_0x46e363];return _0x3fb059;};'use strict';var _=require(_0x3955('0x0'));var moment=require(_0x3955('0x1'));var util=require(_0x3955('0x2'));var config=require(_0x3955('0x3'));var ami=require(_0x3955('0x4'));var RpcVoiceAgentReport=require(_0x3955('0x5'));var RpcVoiceCallReport=require(_0x3955('0x6'));var RpcVoiceDialReport=require(_0x3955('0x7'));var RpcMemberReport=require(_0x3955('0x8'));var RpcVoiceQueueReport=require(_0x3955('0x9'));var RpcVoiceRecording=require(_0x3955('0xa'));var RpcVoiceTransferReport=require(_0x3955('0xb'));var VoiceQueueReport=require(_0x3955('0xc'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x3955('0xd'));var VoiceDialReport=require(_0x3955('0xe'));var UserReport=require(_0x3955('0xf'));function Report(_0x1fe2af){this['realtime']=_0x1fe2af;this[_0x3955('0x10')]=_0x1fe2af[_0x3955('0x10')];this['telephones']=_0x1fe2af['telephones'];}Report[_0x3955('0x11')]['sync']=function(_0x3001bf){var _0x217b4f=new VoiceQueueReport(this['realtime']);var _0x5966d9=new VoiceAgentReport(this['realtime']);var _0xf9a8c6=new VoiceDialReport(this['realtime']);var _0x4e0b21=new VoiceCallReport(this[_0x3955('0x12')]);var _0x2de689=new UserReport(this[_0x3955('0x12')]);if(config[_0x3955('0x13')]&&config[_0x3955('0x13')][_0x3955('0x14')]){ami['on'](_0x3955('0x15'),this[_0x3955('0x16')]['bind'](this));ami['on'](_0x3955('0x17'),this[_0x3955('0x18')]['bind'](this));ami['on']('custom:voiceAgentReport',this[_0x3955('0x19')]['bind'](this));ami['on'](_0x3955('0x1a'),this[_0x3955('0x1b')]['bind'](this));ami['on'](_0x3955('0x1c'),this['blindTransfer'][_0x3955('0x1d')](this));ami['on'](_0x3955('0x1e'),this['attendedTransfer'][_0x3955('0x1d')](this));}};Report[_0x3955('0x11')][_0x3955('0x1f')]=function(_0x2cfba0){var _0x4976df;_0x4976df=_['find'](this[_0x3955('0x10')],function(_0x1e2990){return _0x1e2990['accountcode']==_0x2cfba0||_0x1e2990[_0x3955('0x20')]==_0x2cfba0;});if(_[_0x3955('0x21')](_0x4976df)){var _0x301b68=_[_0x3955('0x22')](this[_0x3955('0x23')],function(_0x4943f7){return _0x4943f7['accountcode']==_0x2cfba0||_0x4943f7[_0x3955('0x20')]==_0x2cfba0;});if(_0x301b68){_0x4976df=_[_0x3955('0x22')](this[_0x3955('0x10')],function(_0x470b46){return _0x470b46['interface']==util[_0x3955('0x24')](_0x3955('0x25'),_0x301b68[_0x3955('0x20')]);});}}return _0x4976df;};Report[_0x3955('0x11')]['voiceQueueReport']=function(_0x335a72){for(var _0x4fc8a7=0x0;_0x4fc8a7<_0x335a72[_0x3955('0x26')];_0x4fc8a7+=0x1){var _0xc27f6=this[_0x3955('0x1f')](_0x335a72[_0x4fc8a7][_0x3955('0x27')]);if(_0xc27f6){_0x335a72[_0x4fc8a7]['accountcode']=_0xc27f6[_0x3955('0x28')];_0x335a72[_0x4fc8a7]['assigned']=!![];_0x335a72[_0x4fc8a7][_0x3955('0x29')]=_0xc27f6['name'];_0x335a72[_0x4fc8a7][_0x3955('0x2a')]=_[_0x3955('0x21')](_0xc27f6[_0x3955('0x2a')])?util[_0x3955('0x24')](_0x3955('0x25'),_0xc27f6[_0x3955('0x20')]):_0xc27f6[_0x3955('0x2a')];if(_0x335a72[_0x4fc8a7]['queuecallercomplete']){_0x335a72[_0x4fc8a7][_0x3955('0x2b')]=moment()['format'](_0x3955('0x2c'));}if(_0x335a72[_0x4fc8a7][_0x3955('0x2d')]){_0x335a72[_0x4fc8a7][_0x3955('0x2e')]=moment()[_0x3955('0x24')](_0x3955('0x2c'));}RpcMemberReport[_0x3955('0x16')](_0x335a72[_0x4fc8a7]);}RpcVoiceQueueReport[_0x3955('0x2f')](_0x335a72[_0x4fc8a7]);}};function extractCalleridNumber(_0x292980){var _0x161cd0=_0x292980['match'](/<(.*?)>/);return _0x161cd0?_0x161cd0[0x1]:_0x292980;}Report['prototype']['voiceCallReport']=function(_0x89b60f){_0x89b60f[_0x3955('0x30')]=_0x89b60f[_0x3955('0x30')]||_0x89b60f['exten'];if(_0x89b60f[_0x3955('0x31')]=='dialer'){_0x89b60f[_0x3955('0x32')]=_0x3955('0x33');_0x89b60f['lastdata']=_0x89b60f[_0x3955('0x33')];if(_0x89b60f[_0x3955('0x34')]==_0x3955('0x35')){_0x89b60f['accountcode']='';_0x89b60f['destination']=extractCalleridNumber(_0x89b60f['callerid']);}else if(_0x89b60f[_0x3955('0x34')]==_0x3955('0x36')){if(_0x89b60f[_0x3955('0x30')]=='xcally-motion-preview'){_0x89b60f[_0x3955('0x30')]=extractCalleridNumber(_0x89b60f[_0x3955('0x37')]);_0x89b60f['calleridnum']=_0x89b60f[_0x3955('0x38')];_0x89b60f[_0x3955('0x39')]=[_0x89b60f['channel'],_0x89b60f[_0x3955('0x3a')]=_0x89b60f[_0x3955('0x39')]][0x0];_0x89b60f[_0x3955('0x3b')]=_0x89b60f['calleridpreview'];}else{_0x89b60f[_0x3955('0x30')]=_0x89b60f[_0x3955('0x3c')];_0x89b60f[_0x3955('0x3c')]=_0x89b60f[_0x3955('0x38')];if(_0x89b60f[_0x3955('0x3d')]==_0x3955('0x3e')){_0x89b60f[_0x3955('0x28')]=_0x89b60f[_0x3955('0x27')];}else{_0x89b60f[_0x3955('0x28')]='';}}}}else{_0x89b60f[_0x3955('0x3b')]=util[_0x3955('0x24')](_0x3955('0x3f'),_0x89b60f[_0x3955('0x40')],_0x89b60f[_0x3955('0x3c')]);}if(RpcVoiceTransferReport[_0x3955('0x41')][_0x89b60f[_0x3955('0x42')]]){var _0x608fce=RpcVoiceTransferReport[_0x3955('0x41')][_0x89b60f['linkedid']];_0x608fce[_0x3955('0x43')]=_0x89b60f[_0x3955('0x44')];RpcVoiceTransferReport['blindTransfer'](_0x608fce);delete RpcVoiceTransferReport[_0x3955('0x41')][_0x89b60f['linkedid']];}RpcVoiceCallReport[_0x3955('0x2f')](_0x89b60f);if(_0x89b60f[_0x3955('0x45')]){for(var _0x2226e1=0x0;_0x2226e1<_0x89b60f[_0x3955('0x46')]['length'];_0x2226e1+=0x1){_0x89b60f[_0x3955('0x47')]=_0x89b60f[_0x3955('0x46')][_0x2226e1][_0x3955('0x48')];_0x89b60f['createdAt']=_0x89b60f[_0x3955('0x46')][_0x2226e1]['createdAt'];if(_0x89b60f[_0x3955('0x49')]=='xcally-motion-preview'){_0x89b60f[_0x3955('0x3c')]=_0x89b60f[_0x3955('0x27')];_0x89b60f[_0x3955('0x40')]=_0x89b60f['connectedlinename'];_0x89b60f[_0x3955('0x27')]=_0x89b60f[_0x3955('0x28')];_0x89b60f[_0x3955('0x4a')]=_0x89b60f[_0x3955('0x4b')];_0x89b60f[_0x3955('0x49')]=_0x89b60f[_0x3955('0x38')];}else if(_0x89b60f[_0x3955('0x49')]==_0x3955('0x4c')){_0x89b60f[_0x3955('0x3c')]=_0x89b60f['destination'];_0x89b60f[_0x3955('0x49')]=_0x89b60f[_0x3955('0x38')];}RpcVoiceRecording[_0x3955('0x2f')](_0x89b60f);}}};Report[_0x3955('0x11')][_0x3955('0x19')]=function(_0x5c9470){if(_[_0x3955('0x4d')](_0x5c9470)){_0x5c9470[_0x3955('0x4e')](function(_0x5e1472){RpcVoiceAgentReport[_0x3955('0x2f')](_0x5e1472);});}else{RpcVoiceAgentReport[_0x3955('0x2f')](_0x5c9470);}};Report[_0x3955('0x11')][_0x3955('0x1b')]=function(_0x288073){RpcVoiceDialReport[_0x3955('0x2f')](_0x288073);var _0x32b6ea;var _0x57f3e1;var _0x4d00b1=_0x288073['channel'];if(_[_0x3955('0x4f')](_0x4d00b1,'Local')){_0x57f3e1=_0x4d00b1['substring'](_0x4d00b1['indexOf']('/')+0x1,_0x4d00b1[_0x3955('0x50')]('@'));_0x32b6ea=_[_0x3955('0x22')](this['agents'],function(_0x3a4332){return _0x3a4332['mobile']==_0x57f3e1||_0x3a4332[_0x3955('0x51')]==_0x57f3e1||_0x3a4332[_0x3955('0x28')]==_0x57f3e1;});}else{_0x57f3e1=_0x4d00b1[_0x3955('0x52')](_0x4d00b1['indexOf']('/')+0x1,_0x4d00b1[_0x3955('0x53')]('-'));_0x32b6ea=this[_0x3955('0x1f')](_0x57f3e1);}if(_0x32b6ea){_0x288073[_0x3955('0x2a')]=_[_0x3955('0x21')](_0x32b6ea['interface'])?util[_0x3955('0x24')](_0x3955('0x25'),_0x32b6ea[_0x3955('0x20')]):_0x32b6ea['interface'];_0x288073['membername']=_0x32b6ea[_0x3955('0x20')];_0x288073[_0x3955('0x28')]=_0x32b6ea[_0x3955('0x28')];RpcMemberReport[_0x3955('0x1b')](_0x288073);}};Report[_0x3955('0x11')][_0x3955('0x54')]=function(_0x1d28f2){RpcVoiceTransferReport[_0x3955('0x41')][_0x1d28f2[_0x3955('0x55')]]=_0x1d28f2;};Report[_0x3955('0x11')]['attendedTransfer']=function(_0x3d1a5b){RpcVoiceTransferReport[_0x3955('0x56')](_0x3d1a5b);};module[_0x3955('0x57')]=Report;