Built motion from commit ffdca78c.|2.6.24
[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 _0xa8ff=['xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','destination','disposition','ANSWERED','callerid','calleridname','linkedid','transfers','transfereelinkedid','uniqueid','blindTransfer','getCallType','UserId','membername','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','isArray','forEach','startsWith','Local','indexOf','mobile','interface','transfererlinkedid','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceDialReport','agents','telephones','prototype','realtime','xdr','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','getAgentByInternal','channel','split','calleridnum','outbound','internal','exten','type','dialer','lastapplication','queue','lastdata','from-voip-provider','from-sip'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xa8ff,0x131));var _0xfa8f=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0xa8ff[_0x178e48];return _0x440d7e;};'use strict';var _=require(_0xfa8f('0x0'));var moment=require(_0xfa8f('0x1'));var util=require(_0xfa8f('0x2'));var config=require(_0xfa8f('0x3'));var ami=require(_0xfa8f('0x4'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xfa8f('0x5'));var RpcVoiceDialReport=require(_0xfa8f('0x6'));var RpcMemberReport=require(_0xfa8f('0x7'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xfa8f('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0xfa8f('0x9'));var VoiceCallReport=require(_0xfa8f('0xa'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xfa8f('0xb'));var UserReport=require('./userReport');function Report(_0x4b1e31){this['realtime']=_0x4b1e31;this[_0xfa8f('0xc')]=_0x4b1e31[_0xfa8f('0xc')];this['telephones']=_0x4b1e31[_0xfa8f('0xd')];}Report[_0xfa8f('0xe')]['sync']=function(_0x46e25c){var _0x4f03c2=new VoiceQueueReport(this[_0xfa8f('0xf')]);var _0x468659=new VoiceAgentReport(this['realtime']);var _0x55c38d=new VoiceDialReport(this[_0xfa8f('0xf')]);var _0x3411e7=new VoiceCallReport(this[_0xfa8f('0xf')]);var _0xa3645f=new UserReport(this[_0xfa8f('0xf')]);if(config[_0xfa8f('0x10')]&&config[_0xfa8f('0x10')]['disabled']){ami['on']('custom:voiceQueueReport',this[_0xfa8f('0x11')][_0xfa8f('0x12')](this));ami['on'](_0xfa8f('0x13'),this[_0xfa8f('0x14')]['bind'](this));ami['on'](_0xfa8f('0x15'),this[_0xfa8f('0x16')]['bind'](this));ami['on'](_0xfa8f('0x17'),this[_0xfa8f('0x18')][_0xfa8f('0x12')](this));ami['on'](_0xfa8f('0x19'),this['blindTransfer'][_0xfa8f('0x12')](this));ami['on'](_0xfa8f('0x1a'),this[_0xfa8f('0x1b')]['bind'](this));}};Report['prototype'][_0xfa8f('0x1c')]=function(_0x1cc9e0){var _0x50c97e;_0x50c97e=_[_0xfa8f('0x1d')](this['agents'],function(_0x554f0c){return _0x554f0c[_0xfa8f('0x1e')]==_0x1cc9e0||_0x554f0c[_0xfa8f('0x1f')]==_0x1cc9e0;});if(_[_0xfa8f('0x20')](_0x50c97e)){var _0x3ef794=_[_0xfa8f('0x1d')](this[_0xfa8f('0xd')],function(_0x2f0f7c){return _0x2f0f7c['accountcode']==_0x1cc9e0||_0x2f0f7c[_0xfa8f('0x1f')]==_0x1cc9e0;});if(_0x3ef794){_0x50c97e=_['find'](this[_0xfa8f('0xc')],function(_0x51c6d3){return _0x51c6d3['interface']==util[_0xfa8f('0x21')](_0xfa8f('0x22'),_0x3ef794[_0xfa8f('0x1f')]);});}}return _0x50c97e;};Report[_0xfa8f('0xe')][_0xfa8f('0x11')]=function(_0x48d6ce){for(var _0x1d1b18=0x0;_0x1d1b18<_0x48d6ce[_0xfa8f('0x23')];_0x1d1b18+=0x1){var _0x515af6=this[_0xfa8f('0x1c')](_0x48d6ce[_0x1d1b18][_0xfa8f('0x24')]);if(_0x515af6){_0x48d6ce[_0x1d1b18]['accountcode']=_0x515af6[_0xfa8f('0x1e')];_0x48d6ce[_0x1d1b18][_0xfa8f('0x25')]=!![];_0x48d6ce[_0x1d1b18][_0xfa8f('0x26')]=_0x515af6[_0xfa8f('0x1f')];_0x48d6ce[_0x1d1b18]['interface']=_[_0xfa8f('0x20')](_0x515af6['interface'])?util[_0xfa8f('0x21')]('SIP/%s',_0x515af6[_0xfa8f('0x1f')]):_0x515af6['interface'];if(_0x48d6ce[_0x1d1b18][_0xfa8f('0x27')]){_0x48d6ce[_0x1d1b18][_0xfa8f('0x28')]=moment()[_0xfa8f('0x21')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x48d6ce[_0x1d1b18][_0xfa8f('0x29')]){_0x48d6ce[_0x1d1b18][_0xfa8f('0x2a')]=moment()[_0xfa8f('0x21')](_0xfa8f('0x2b'));}RpcMemberReport[_0xfa8f('0x11')](_0x48d6ce[_0x1d1b18]);}RpcVoiceQueueReport[_0xfa8f('0x2c')](_0x48d6ce[_0x1d1b18]);}};function extractCalleridNumber(_0x1152ff){var _0x55c3af=_0x1152ff['match'](/<(.*?)>/);return _0x55c3af?_0x55c3af[0x1]:_0x1152ff;}Report[_0xfa8f('0xe')][_0xfa8f('0x2d')]=function(_0x42e250){for(var _0x2c5642=0x0;_0x2c5642<Object['keys'](this[_0xfa8f('0xc')])['length'];_0x2c5642++){var _0x235fef=Object['keys'](this[_0xfa8f('0xc')])[_0x2c5642];var _0x1b484c=this['agents'][_0x235fef];if(_0x1b484c['accountcode']===Number(_0x42e250))return _0x1b484c;}return null;};Report['prototype']['getCallType']=function(_0x15c370){var _0x1bff80=_0x15c370[_0xfa8f('0x2e')][_0xfa8f('0x2f')]('-')[0x0];var _0x4b75c1=this[_0xfa8f('0xc')][_0x1bff80];if(!_0x4b75c1)_0x4b75c1=this[_0xfa8f('0x2d')](_0x15c370[_0xfa8f('0x30')]);return!_0x4b75c1?_0xfa8f('0x31'):_0xfa8f('0x32');};Report[_0xfa8f('0xe')][_0xfa8f('0x14')]=function(_0x903684){_0x903684['destination']=_0x903684['destination']||_0x903684[_0xfa8f('0x33')];if(_0x903684[_0xfa8f('0x34')]==_0xfa8f('0x35')){_0x903684[_0xfa8f('0x36')]=_0xfa8f('0x37');_0x903684[_0xfa8f('0x38')]=_0x903684[_0xfa8f('0x37')];if(_0x903684['context']==_0xfa8f('0x39')){_0x903684[_0xfa8f('0x1e')]='';_0x903684['destination']=extractCalleridNumber(_0x903684['callerid']);}else if(_0x903684['context']==_0xfa8f('0x3a')){if(_0x903684['destination']==_0xfa8f('0x3b')){_0x903684['destination']=extractCalleridNumber(_0x903684[_0xfa8f('0x3c')]);_0x903684[_0xfa8f('0x30')]=_0x903684[_0xfa8f('0x3d')];_0x903684['destinationchannel']=[_0x903684[_0xfa8f('0x2e')],_0x903684[_0xfa8f('0x2e')]=_0x903684[_0xfa8f('0x3e')]][0x0];_0x903684['callerid']=_0x903684[_0xfa8f('0x3c')];}else{_0x903684[_0xfa8f('0x3f')]=_0x903684[_0xfa8f('0x30')];_0x903684['calleridnum']=_0x903684['originatecalleridnum'];if(_0x903684[_0xfa8f('0x40')]==_0xfa8f('0x41')){_0x903684[_0xfa8f('0x1e')]=_0x903684[_0xfa8f('0x24')];}else{_0x903684[_0xfa8f('0x1e')]='';}}}}else{_0x903684[_0xfa8f('0x42')]=util['format']('\x22%s\x22\x20<%s>',_0x903684[_0xfa8f('0x43')],_0x903684[_0xfa8f('0x30')]);}if(RpcVoiceTransferReport['transfers'][_0x903684[_0xfa8f('0x44')]]){var _0x44c382=RpcVoiceTransferReport[_0xfa8f('0x45')][_0x903684[_0xfa8f('0x44')]];_0x44c382[_0xfa8f('0x46')]=_0x903684[_0xfa8f('0x47')];RpcVoiceTransferReport[_0xfa8f('0x48')](_0x44c382);delete RpcVoiceTransferReport[_0xfa8f('0x45')][_0x903684[_0xfa8f('0x44')]];}if(_[_0xfa8f('0x20')](_0x903684[_0xfa8f('0x34')])){_0x903684[_0xfa8f('0x34')]=this[_0xfa8f('0x49')](_0x903684);}if(_['isNil'](_0x903684[_0xfa8f('0x4a')])){var _0x29d2d0=_0x903684['channel'][_0xfa8f('0x2f')]('-')[0x0];var _0x280de0=this['agents'][_0x29d2d0];if(!_0x280de0)_0x280de0=this[_0xfa8f('0x2d')](_0x903684[_0xfa8f('0x1e')]);if(_0x280de0){_0x903684['UserId']=_0x280de0['id'];_0x903684[_0xfa8f('0x4b')]=_0x280de0['name'];}}RpcVoiceCallReport[_0xfa8f('0x2c')](_0x903684);if(_0x903684[_0xfa8f('0x4c')]){for(var _0x9d680a=0x0;_0x9d680a<_0x903684[_0xfa8f('0x4d')]['length'];_0x9d680a+=0x1){_0x903684[_0xfa8f('0x4e')]=_0x903684[_0xfa8f('0x4d')][_0x9d680a][_0xfa8f('0x4f')];_0x903684['createdAt']=_0x903684['monitors'][_0x9d680a][_0xfa8f('0x50')];if(_0x903684[_0xfa8f('0x33')]==_0xfa8f('0x3b')){_0x903684[_0xfa8f('0x30')]=_0x903684[_0xfa8f('0x24')];_0x903684[_0xfa8f('0x43')]=_0x903684['connectedlinename'];_0x903684[_0xfa8f('0x24')]=_0x903684[_0xfa8f('0x1e')];_0x903684[_0xfa8f('0x51')]=_0x903684['membername'];_0x903684[_0xfa8f('0x33')]=_0x903684['originatecalleridnum'];}else if(_0x903684['exten']=='xcally-motion-dialer'){_0x903684['calleridnum']=_0x903684[_0xfa8f('0x3f')];_0x903684[_0xfa8f('0x33')]=_0x903684[_0xfa8f('0x3d')];}RpcVoiceRecording[_0xfa8f('0x2c')](_0x903684);}}};Report[_0xfa8f('0xe')]['voiceAgentReport']=function(_0x1bdcfc){if(_[_0xfa8f('0x52')](_0x1bdcfc)){_0x1bdcfc[_0xfa8f('0x53')](function(_0x5858b0){RpcVoiceAgentReport[_0xfa8f('0x2c')](_0x5858b0);});}else{RpcVoiceAgentReport[_0xfa8f('0x2c')](_0x1bdcfc);}};Report['prototype'][_0xfa8f('0x18')]=function(_0x575250){RpcVoiceDialReport['create'](_0x575250);var _0x5f1a86;var _0x402b38;var _0x2569f1=_0x575250[_0xfa8f('0x2e')];if(_[_0xfa8f('0x54')](_0x2569f1,_0xfa8f('0x55'))){_0x402b38=_0x2569f1['substring'](_0x2569f1[_0xfa8f('0x56')]('/')+0x1,_0x2569f1['indexOf']('@'));_0x5f1a86=_[_0xfa8f('0x1d')](this[_0xfa8f('0xc')],function(_0x1fce1f){return _0x1fce1f[_0xfa8f('0x57')]==_0x402b38||_0x1fce1f['phone']==_0x402b38||_0x1fce1f['accountcode']==_0x402b38;});}else{_0x402b38=_0x2569f1['substring'](_0x2569f1[_0xfa8f('0x56')]('/')+0x1,_0x2569f1['lastIndexOf']('-'));_0x5f1a86=this[_0xfa8f('0x1c')](_0x402b38);}if(_0x5f1a86){_0x575250[_0xfa8f('0x58')]=_['isNil'](_0x5f1a86['interface'])?util[_0xfa8f('0x21')](_0xfa8f('0x22'),_0x5f1a86[_0xfa8f('0x1f')]):_0x5f1a86['interface'];_0x575250[_0xfa8f('0x4b')]=_0x5f1a86[_0xfa8f('0x1f')];_0x575250['accountcode']=_0x5f1a86[_0xfa8f('0x1e')];RpcMemberReport['voiceDialReport'](_0x575250);}};Report['prototype'][_0xfa8f('0x48')]=function(_0x4fc1ca){RpcVoiceTransferReport[_0xfa8f('0x45')][_0x4fc1ca[_0xfa8f('0x59')]]=_0x4fc1ca;};Report[_0xfa8f('0xe')][_0xfa8f('0x1b')]=function(_0x366b76){RpcVoiceTransferReport[_0xfa8f('0x1b')](_0x366b76);};module[_0xfa8f('0x5a')]=Report;