Built motion from commit 85328c08.|2.5.50
[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 _0xedd9=['voiceDialReport','transfererlinkedid','lodash','moment','util','../../../config/environment','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','attendedtransfer','findAgent','accountcode','name','isNil','find','interface','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','match','getAgentByInternal','keys','getCallType','channel','calleridnum','outbound','internal','destination','exten','type','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','calleridpreview','originatecalleridnum','destinationchannel','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','uniqueid','blindTransfer','split','UserId','monitor','monitors','monitorFilename','filename','createdAt','xcally-motion-preview','connectedlinename','membername','xcally-motion-dialer','voiceAgentReport','isArray','forEach','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf'];(function(_0x430892,_0x30c05d){var _0xdd8af7=function(_0x35ccc9){while(--_0x35ccc9){_0x430892['push'](_0x430892['shift']());}};_0xdd8af7(++_0x30c05d);}(_0xedd9,0x1d8));var _0x9edd=function(_0x4b1ff9,_0x22f764){_0x4b1ff9=_0x4b1ff9-0x0;var _0x548df3=_0xedd9[_0x4b1ff9];return _0x548df3;};'use strict';var _=require(_0x9edd('0x0'));var moment=require(_0x9edd('0x1'));var util=require(_0x9edd('0x2'));var config=require(_0x9edd('0x3'));var ami=require('../ami');var RpcVoiceAgentReport=require(_0x9edd('0x4'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0x9edd('0x5'));var RpcMemberReport=require(_0x9edd('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x9edd('0x7'));var RpcVoiceTransferReport=require(_0x9edd('0x8'));var VoiceQueueReport=require(_0x9edd('0x9'));var VoiceCallReport=require(_0x9edd('0xa'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x9edd('0xb'));var UserReport=require(_0x9edd('0xc'));function Report(_0x33aace){this['realtime']=_0x33aace;this[_0x9edd('0xd')]=_0x33aace[_0x9edd('0xd')];this[_0x9edd('0xe')]=_0x33aace['telephones'];}Report[_0x9edd('0xf')][_0x9edd('0x10')]=function(_0x241e15){var _0x1445a7=new VoiceQueueReport(this[_0x9edd('0x11')]);var _0x4657d4=new VoiceAgentReport(this['realtime']);var _0x5f5c09=new VoiceDialReport(this['realtime']);var _0xddd307=new VoiceCallReport(this['realtime']);var _0x3e297d=new UserReport(this[_0x9edd('0x11')]);if(config[_0x9edd('0x12')]&&config[_0x9edd('0x12')][_0x9edd('0x13')]){ami['on'](_0x9edd('0x14'),this[_0x9edd('0x15')][_0x9edd('0x16')](this));ami['on'](_0x9edd('0x17'),this[_0x9edd('0x18')][_0x9edd('0x16')](this));ami['on'](_0x9edd('0x19'),this['voiceAgentReport'][_0x9edd('0x16')](this));ami['on']('custom:voiceDialReport',this['voiceDialReport'][_0x9edd('0x16')](this));ami['on']('blindtransfer',this['blindTransfer'][_0x9edd('0x16')](this));ami['on'](_0x9edd('0x1a'),this['attendedTransfer'][_0x9edd('0x16')](this));}};Report[_0x9edd('0xf')][_0x9edd('0x1b')]=function(_0x22bc0e){var _0x5ed25c;_0x5ed25c=_['find'](this['agents'],function(_0x2e5ee6){return _0x2e5ee6[_0x9edd('0x1c')]==_0x22bc0e||_0x2e5ee6[_0x9edd('0x1d')]==_0x22bc0e;});if(_[_0x9edd('0x1e')](_0x5ed25c)){var _0x5837ee=_['find'](this[_0x9edd('0xe')],function(_0x226513){return _0x226513[_0x9edd('0x1c')]==_0x22bc0e||_0x226513['name']==_0x22bc0e;});if(_0x5837ee){_0x5ed25c=_[_0x9edd('0x1f')](this[_0x9edd('0xd')],function(_0x175bb0){return _0x175bb0[_0x9edd('0x20')]==util[_0x9edd('0x21')](_0x9edd('0x22'),_0x5837ee['name']);});}}return _0x5ed25c;};Report[_0x9edd('0xf')]['voiceQueueReport']=function(_0x590ac0){for(var _0x31d664=0x0;_0x31d664<_0x590ac0[_0x9edd('0x23')];_0x31d664+=0x1){var _0x4a7e63=this[_0x9edd('0x1b')](_0x590ac0[_0x31d664][_0x9edd('0x24')]);if(_0x4a7e63){_0x590ac0[_0x31d664][_0x9edd('0x1c')]=_0x4a7e63[_0x9edd('0x1c')];_0x590ac0[_0x31d664][_0x9edd('0x25')]=!![];_0x590ac0[_0x31d664][_0x9edd('0x26')]=_0x4a7e63[_0x9edd('0x1d')];_0x590ac0[_0x31d664][_0x9edd('0x20')]=_[_0x9edd('0x1e')](_0x4a7e63[_0x9edd('0x20')])?util[_0x9edd('0x21')](_0x9edd('0x22'),_0x4a7e63[_0x9edd('0x1d')]):_0x4a7e63[_0x9edd('0x20')];if(_0x590ac0[_0x31d664][_0x9edd('0x27')]){_0x590ac0[_0x31d664]['queuecallercompleteAt']=moment()[_0x9edd('0x21')](_0x9edd('0x28'));}if(_0x590ac0[_0x31d664][_0x9edd('0x29')]){_0x590ac0[_0x31d664]['queuecallerexitAt']=moment()[_0x9edd('0x21')](_0x9edd('0x28'));}RpcMemberReport[_0x9edd('0x15')](_0x590ac0[_0x31d664]);}RpcVoiceQueueReport[_0x9edd('0x2a')](_0x590ac0[_0x31d664]);}};function extractCalleridNumber(_0x360a35){var _0x5662ad=_0x360a35[_0x9edd('0x2b')](/<(.*?)>/);return _0x5662ad?_0x5662ad[0x1]:_0x360a35;}Report[_0x9edd('0xf')][_0x9edd('0x2c')]=function(_0x1db543){for(var _0x3bc790=0x0;_0x3bc790<Object[_0x9edd('0x2d')](this[_0x9edd('0xd')])[_0x9edd('0x23')];_0x3bc790++){var _0x4edac7=Object['keys'](this['agents'])[_0x3bc790];var _0x56c966=this[_0x9edd('0xd')][_0x4edac7];if(_0x56c966[_0x9edd('0x1c')]===Number(_0x1db543))return _0x56c966;}return null;};Report['prototype'][_0x9edd('0x2e')]=function(_0xe8993f){var _0x3e1cdb=_0xe8993f[_0x9edd('0x2f')]['split']('-')[0x0];var _0x3d4f10=this[_0x9edd('0xd')][_0x3e1cdb];if(!_0x3d4f10)_0x3d4f10=this['getAgentByInternal'](_0xe8993f[_0x9edd('0x30')]);return!_0x3d4f10?_0x9edd('0x31'):_0x9edd('0x32');};Report[_0x9edd('0xf')][_0x9edd('0x18')]=function(_0x59a3f0){_0x59a3f0[_0x9edd('0x33')]=_0x59a3f0[_0x9edd('0x33')]||_0x59a3f0[_0x9edd('0x34')];if(_0x59a3f0[_0x9edd('0x35')]==_0x9edd('0x36')){_0x59a3f0['lastapplication']=_0x9edd('0x37');_0x59a3f0[_0x9edd('0x38')]=_0x59a3f0['queue'];if(_0x59a3f0[_0x9edd('0x39')]==_0x9edd('0x3a')){_0x59a3f0[_0x9edd('0x1c')]='';_0x59a3f0[_0x9edd('0x33')]=extractCalleridNumber(_0x59a3f0[_0x9edd('0x3b')]);}else if(_0x59a3f0[_0x9edd('0x39')]==_0x9edd('0x3c')){if(_0x59a3f0[_0x9edd('0x33')]=='xcally-motion-preview'){_0x59a3f0['destination']=extractCalleridNumber(_0x59a3f0[_0x9edd('0x3d')]);_0x59a3f0[_0x9edd('0x30')]=_0x59a3f0[_0x9edd('0x3e')];_0x59a3f0[_0x9edd('0x3f')]=[_0x59a3f0[_0x9edd('0x2f')],_0x59a3f0['channel']=_0x59a3f0['destinationchannel']][0x0];_0x59a3f0['callerid']=_0x59a3f0[_0x9edd('0x3d')];}else{_0x59a3f0[_0x9edd('0x33')]=_0x59a3f0[_0x9edd('0x30')];_0x59a3f0[_0x9edd('0x30')]=_0x59a3f0['originatecalleridnum'];if(_0x59a3f0['disposition']==_0x9edd('0x40')){_0x59a3f0[_0x9edd('0x1c')]=_0x59a3f0[_0x9edd('0x24')];}else{_0x59a3f0[_0x9edd('0x1c')]='';}}}}else{_0x59a3f0['callerid']=util['format'](_0x9edd('0x41'),_0x59a3f0[_0x9edd('0x42')],_0x59a3f0[_0x9edd('0x30')]);}if(RpcVoiceTransferReport[_0x9edd('0x43')][_0x59a3f0[_0x9edd('0x44')]]){var _0x4bf2ac=RpcVoiceTransferReport[_0x9edd('0x43')][_0x59a3f0[_0x9edd('0x44')]];_0x4bf2ac['transfereelinkedid']=_0x59a3f0[_0x9edd('0x45')];RpcVoiceTransferReport[_0x9edd('0x46')](_0x4bf2ac);delete RpcVoiceTransferReport[_0x9edd('0x43')][_0x59a3f0[_0x9edd('0x44')]];}if(_[_0x9edd('0x1e')](_0x59a3f0['type'])){_0x59a3f0['type']=this['getCallType'](_0x59a3f0);}if(_[_0x9edd('0x1e')](_0x59a3f0['UserId'])){var _0x2d8d27=_0x59a3f0[_0x9edd('0x2f')][_0x9edd('0x47')]('-')[0x0];var _0xb32491=this[_0x9edd('0xd')][_0x2d8d27];if(!_0xb32491)_0xb32491=this[_0x9edd('0x2c')](_0x59a3f0[_0x9edd('0x1c')]);if(_0xb32491){_0x59a3f0[_0x9edd('0x48')]=_0xb32491['id'];_0x59a3f0['membername']=_0xb32491[_0x9edd('0x1d')];}}RpcVoiceCallReport[_0x9edd('0x2a')](_0x59a3f0);if(_0x59a3f0[_0x9edd('0x49')]){for(var _0x2af254=0x0;_0x2af254<_0x59a3f0[_0x9edd('0x4a')][_0x9edd('0x23')];_0x2af254+=0x1){_0x59a3f0[_0x9edd('0x4b')]=_0x59a3f0['monitors'][_0x2af254][_0x9edd('0x4c')];_0x59a3f0['createdAt']=_0x59a3f0[_0x9edd('0x4a')][_0x2af254][_0x9edd('0x4d')];if(_0x59a3f0[_0x9edd('0x34')]==_0x9edd('0x4e')){_0x59a3f0[_0x9edd('0x30')]=_0x59a3f0['connectedlinenum'];_0x59a3f0[_0x9edd('0x42')]=_0x59a3f0['connectedlinename'];_0x59a3f0[_0x9edd('0x24')]=_0x59a3f0['accountcode'];_0x59a3f0[_0x9edd('0x4f')]=_0x59a3f0[_0x9edd('0x50')];_0x59a3f0[_0x9edd('0x34')]=_0x59a3f0['originatecalleridnum'];}else if(_0x59a3f0[_0x9edd('0x34')]==_0x9edd('0x51')){_0x59a3f0[_0x9edd('0x30')]=_0x59a3f0['destination'];_0x59a3f0['exten']=_0x59a3f0[_0x9edd('0x3e')];}RpcVoiceRecording[_0x9edd('0x2a')](_0x59a3f0);}}};Report[_0x9edd('0xf')][_0x9edd('0x52')]=function(_0x55916e){if(_[_0x9edd('0x53')](_0x55916e)){_0x55916e[_0x9edd('0x54')](function(_0x58b029){RpcVoiceAgentReport[_0x9edd('0x2a')](_0x58b029);});}else{RpcVoiceAgentReport[_0x9edd('0x2a')](_0x55916e);}};Report[_0x9edd('0xf')]['voiceDialReport']=function(_0x47e2f9){RpcVoiceDialReport[_0x9edd('0x2a')](_0x47e2f9);var _0x71a23e;var _0x3ddce7;var _0x31c5d2=_0x47e2f9[_0x9edd('0x2f')];if(_[_0x9edd('0x55')](_0x31c5d2,_0x9edd('0x56'))){_0x3ddce7=_0x31c5d2[_0x9edd('0x57')](_0x31c5d2[_0x9edd('0x58')]('/')+0x1,_0x31c5d2['indexOf']('@'));_0x71a23e=_[_0x9edd('0x1f')](this['agents'],function(_0x151fc6){return _0x151fc6[_0x9edd('0x59')]==_0x3ddce7||_0x151fc6[_0x9edd('0x5a')]==_0x3ddce7||_0x151fc6[_0x9edd('0x1c')]==_0x3ddce7;});}else{_0x3ddce7=_0x31c5d2[_0x9edd('0x57')](_0x31c5d2[_0x9edd('0x58')]('/')+0x1,_0x31c5d2[_0x9edd('0x5b')]('-'));_0x71a23e=this[_0x9edd('0x1b')](_0x3ddce7);}if(_0x71a23e){_0x47e2f9[_0x9edd('0x20')]=_[_0x9edd('0x1e')](_0x71a23e[_0x9edd('0x20')])?util[_0x9edd('0x21')](_0x9edd('0x22'),_0x71a23e[_0x9edd('0x1d')]):_0x71a23e[_0x9edd('0x20')];_0x47e2f9[_0x9edd('0x50')]=_0x71a23e[_0x9edd('0x1d')];_0x47e2f9[_0x9edd('0x1c')]=_0x71a23e[_0x9edd('0x1c')];RpcMemberReport[_0x9edd('0x5c')](_0x47e2f9);}};Report[_0x9edd('0xf')][_0x9edd('0x46')]=function(_0x5106fc){RpcVoiceTransferReport[_0x9edd('0x43')][_0x5106fc[_0x9edd('0x5d')]]=_0x5106fc;};Report[_0x9edd('0xf')]['attendedTransfer']=function(_0x56ebca){RpcVoiceTransferReport['attendedTransfer'](_0x56ebca);};module['exports']=Report;