Built motion from commit 7ab0e143.|2.5.49
[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 _0xd2d8=['membername','originatecalleridnum','xcally-motion-dialer','voiceAgentReport','isArray','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceDialReport','realtime','agents','telephones','prototype','sync','xdr','custom:voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','voiceQueueReport','length','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','create','getAgentByInternal','keys','getCallType','channel','split','calleridnum','outbound','internal','destination','exten','dialer','lastapplication','queue','from-voip-provider','callerid','context','from-sip','xcally-motion-preview','calleridpreview','destinationchannel','disposition','ANSWERED','\x22%s\x22\x20<%s>','transfers','linkedid','uniqueid','type','monitors','monitorFilename','filename','createdAt','connectedlinenum','calleridname','connectedlinename'];(function(_0x4bc554,_0x53d863){var _0x20b98c=function(_0x5f54ec){while(--_0x5f54ec){_0x4bc554['push'](_0x4bc554['shift']());}};_0x20b98c(++_0x53d863);}(_0xd2d8,0x65));var _0x8d2d=function(_0x48961c,_0x280e9d){_0x48961c=_0x48961c-0x0;var _0x1d895d=_0xd2d8[_0x48961c];return _0x1d895d;};'use strict';var _=require(_0x8d2d('0x0'));var moment=require(_0x8d2d('0x1'));var util=require(_0x8d2d('0x2'));var config=require('../../../config/environment');var ami=require(_0x8d2d('0x3'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x8d2d('0x4'));var RpcVoiceDialReport=require(_0x8d2d('0x5'));var RpcMemberReport=require(_0x8d2d('0x6'));var RpcVoiceQueueReport=require(_0x8d2d('0x7'));var RpcVoiceRecording=require(_0x8d2d('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0x8d2d('0x9'));var VoiceCallReport=require(_0x8d2d('0xa'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x8d2d('0xb'));var UserReport=require('./userReport');function Report(_0x4a7d0a){this[_0x8d2d('0xc')]=_0x4a7d0a;this[_0x8d2d('0xd')]=_0x4a7d0a['agents'];this[_0x8d2d('0xe')]=_0x4a7d0a['telephones'];}Report[_0x8d2d('0xf')][_0x8d2d('0x10')]=function(_0xae55e8){var _0x2b9877=new VoiceQueueReport(this[_0x8d2d('0xc')]);var _0x17c7f0=new VoiceAgentReport(this[_0x8d2d('0xc')]);var _0x2125f6=new VoiceDialReport(this['realtime']);var _0x3ee31f=new VoiceCallReport(this['realtime']);var _0x18f1c5=new UserReport(this[_0x8d2d('0xc')]);if(config[_0x8d2d('0x11')]&&config[_0x8d2d('0x11')]['disabled']){ami['on'](_0x8d2d('0x12'),this['voiceQueueReport'][_0x8d2d('0x13')](this));ami['on'](_0x8d2d('0x14'),this[_0x8d2d('0x15')][_0x8d2d('0x13')](this));ami['on'](_0x8d2d('0x16'),this['voiceAgentReport'][_0x8d2d('0x13')](this));ami['on'](_0x8d2d('0x17'),this[_0x8d2d('0x18')][_0x8d2d('0x13')](this));ami['on']('blindtransfer',this[_0x8d2d('0x19')][_0x8d2d('0x13')](this));ami['on'](_0x8d2d('0x1a'),this[_0x8d2d('0x1b')]['bind'](this));}};Report[_0x8d2d('0xf')][_0x8d2d('0x1c')]=function(_0x4b2315){var _0xec78b2;_0xec78b2=_[_0x8d2d('0x1d')](this[_0x8d2d('0xd')],function(_0x6ce1e8){return _0x6ce1e8[_0x8d2d('0x1e')]==_0x4b2315||_0x6ce1e8[_0x8d2d('0x1f')]==_0x4b2315;});if(_[_0x8d2d('0x20')](_0xec78b2)){var _0x20c104=_[_0x8d2d('0x1d')](this[_0x8d2d('0xe')],function(_0x54f434){return _0x54f434['accountcode']==_0x4b2315||_0x54f434[_0x8d2d('0x1f')]==_0x4b2315;});if(_0x20c104){_0xec78b2=_[_0x8d2d('0x1d')](this[_0x8d2d('0xd')],function(_0xe36496){return _0xe36496[_0x8d2d('0x21')]==util[_0x8d2d('0x22')](_0x8d2d('0x23'),_0x20c104['name']);});}}return _0xec78b2;};Report[_0x8d2d('0xf')][_0x8d2d('0x24')]=function(_0x54a877){for(var _0x1e7ee2=0x0;_0x1e7ee2<_0x54a877[_0x8d2d('0x25')];_0x1e7ee2+=0x1){var _0x13f4f2=this[_0x8d2d('0x1c')](_0x54a877[_0x1e7ee2]['connectedlinenum']);if(_0x13f4f2){_0x54a877[_0x1e7ee2][_0x8d2d('0x1e')]=_0x13f4f2['accountcode'];_0x54a877[_0x1e7ee2]['assigned']=!![];_0x54a877[_0x1e7ee2][_0x8d2d('0x26')]=_0x13f4f2[_0x8d2d('0x1f')];_0x54a877[_0x1e7ee2][_0x8d2d('0x21')]=_['isNil'](_0x13f4f2[_0x8d2d('0x21')])?util[_0x8d2d('0x22')](_0x8d2d('0x23'),_0x13f4f2[_0x8d2d('0x1f')]):_0x13f4f2[_0x8d2d('0x21')];if(_0x54a877[_0x1e7ee2][_0x8d2d('0x27')]){_0x54a877[_0x1e7ee2][_0x8d2d('0x28')]=moment()[_0x8d2d('0x22')](_0x8d2d('0x29'));}if(_0x54a877[_0x1e7ee2]['queuecallerexit']){_0x54a877[_0x1e7ee2]['queuecallerexitAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x8d2d('0x24')](_0x54a877[_0x1e7ee2]);}RpcVoiceQueueReport[_0x8d2d('0x2a')](_0x54a877[_0x1e7ee2]);}};function extractCalleridNumber(_0x2af09e){var _0x1f8a5b=_0x2af09e['match'](/<(.*?)>/);return _0x1f8a5b?_0x1f8a5b[0x1]:_0x2af09e;}Report[_0x8d2d('0xf')][_0x8d2d('0x2b')]=function(_0xc2b6f9){for(var _0x1cb020=0x0;_0x1cb020<Object['keys'](this[_0x8d2d('0xd')])[_0x8d2d('0x25')];_0x1cb020++){var _0x1981ca=Object[_0x8d2d('0x2c')](this[_0x8d2d('0xd')])[_0x1cb020];var _0x442c58=this[_0x8d2d('0xd')][_0x1981ca];if(_0x442c58['accountcode']===Number(_0xc2b6f9))return _0x442c58;}return null;};Report[_0x8d2d('0xf')][_0x8d2d('0x2d')]=function(_0xf88049){var _0x159bfe=_0xf88049[_0x8d2d('0x2e')][_0x8d2d('0x2f')]('-')[0x0];var _0x47a004=this[_0x8d2d('0xd')][_0x159bfe];if(!_0x47a004)_0x47a004=this['getAgentByInternal'](_0xf88049[_0x8d2d('0x30')]);return!_0x47a004?_0x8d2d('0x31'):_0x8d2d('0x32');};Report[_0x8d2d('0xf')][_0x8d2d('0x15')]=function(_0x54baec){_0x54baec['destination']=_0x54baec[_0x8d2d('0x33')]||_0x54baec[_0x8d2d('0x34')];if(_0x54baec['type']==_0x8d2d('0x35')){_0x54baec[_0x8d2d('0x36')]=_0x8d2d('0x37');_0x54baec['lastdata']=_0x54baec[_0x8d2d('0x37')];if(_0x54baec['context']==_0x8d2d('0x38')){_0x54baec[_0x8d2d('0x1e')]='';_0x54baec['destination']=extractCalleridNumber(_0x54baec[_0x8d2d('0x39')]);}else if(_0x54baec[_0x8d2d('0x3a')]==_0x8d2d('0x3b')){if(_0x54baec[_0x8d2d('0x33')]==_0x8d2d('0x3c')){_0x54baec[_0x8d2d('0x33')]=extractCalleridNumber(_0x54baec[_0x8d2d('0x3d')]);_0x54baec[_0x8d2d('0x30')]=_0x54baec['originatecalleridnum'];_0x54baec[_0x8d2d('0x3e')]=[_0x54baec[_0x8d2d('0x2e')],_0x54baec['channel']=_0x54baec[_0x8d2d('0x3e')]][0x0];_0x54baec[_0x8d2d('0x39')]=_0x54baec[_0x8d2d('0x3d')];}else{_0x54baec[_0x8d2d('0x33')]=_0x54baec[_0x8d2d('0x30')];_0x54baec[_0x8d2d('0x30')]=_0x54baec['originatecalleridnum'];if(_0x54baec[_0x8d2d('0x3f')]==_0x8d2d('0x40')){_0x54baec[_0x8d2d('0x1e')]=_0x54baec['connectedlinenum'];}else{_0x54baec[_0x8d2d('0x1e')]='';}}}}else{_0x54baec[_0x8d2d('0x39')]=util['format'](_0x8d2d('0x41'),_0x54baec['calleridname'],_0x54baec[_0x8d2d('0x30')]);}if(RpcVoiceTransferReport[_0x8d2d('0x42')][_0x54baec[_0x8d2d('0x43')]]){var _0x29ca3d=RpcVoiceTransferReport[_0x8d2d('0x42')][_0x54baec[_0x8d2d('0x43')]];_0x29ca3d['transfereelinkedid']=_0x54baec[_0x8d2d('0x44')];RpcVoiceTransferReport['blindTransfer'](_0x29ca3d);delete RpcVoiceTransferReport[_0x8d2d('0x42')][_0x54baec['linkedid']];}if(_[_0x8d2d('0x20')](_0x54baec[_0x8d2d('0x45')])){_0x54baec['type']=this[_0x8d2d('0x2d')](_0x54baec);}if(_[_0x8d2d('0x20')](_0x54baec['UserId'])){var _0x4cb653=_0x54baec[_0x8d2d('0x2e')][_0x8d2d('0x2f')]('-')[0x0];var _0x47ed7d=this[_0x8d2d('0xd')][_0x4cb653];if(!_0x47ed7d)_0x47ed7d=this[_0x8d2d('0x2b')](_0x54baec[_0x8d2d('0x1e')]);if(_0x47ed7d){_0x54baec['UserId']=_0x47ed7d['id'];_0x54baec['membername']=_0x47ed7d[_0x8d2d('0x1f')];}}RpcVoiceCallReport[_0x8d2d('0x2a')](_0x54baec);if(_0x54baec['monitor']){for(var _0x220edf=0x0;_0x220edf<_0x54baec[_0x8d2d('0x46')][_0x8d2d('0x25')];_0x220edf+=0x1){_0x54baec[_0x8d2d('0x47')]=_0x54baec[_0x8d2d('0x46')][_0x220edf][_0x8d2d('0x48')];_0x54baec[_0x8d2d('0x49')]=_0x54baec[_0x8d2d('0x46')][_0x220edf][_0x8d2d('0x49')];if(_0x54baec['exten']==_0x8d2d('0x3c')){_0x54baec[_0x8d2d('0x30')]=_0x54baec[_0x8d2d('0x4a')];_0x54baec[_0x8d2d('0x4b')]=_0x54baec[_0x8d2d('0x4c')];_0x54baec[_0x8d2d('0x4a')]=_0x54baec[_0x8d2d('0x1e')];_0x54baec[_0x8d2d('0x4c')]=_0x54baec[_0x8d2d('0x4d')];_0x54baec[_0x8d2d('0x34')]=_0x54baec[_0x8d2d('0x4e')];}else if(_0x54baec['exten']==_0x8d2d('0x4f')){_0x54baec[_0x8d2d('0x30')]=_0x54baec[_0x8d2d('0x33')];_0x54baec[_0x8d2d('0x34')]=_0x54baec[_0x8d2d('0x4e')];}RpcVoiceRecording[_0x8d2d('0x2a')](_0x54baec);}}};Report[_0x8d2d('0xf')][_0x8d2d('0x50')]=function(_0x2acd74){if(_[_0x8d2d('0x51')](_0x2acd74)){_0x2acd74['forEach'](function(_0x240d2a){RpcVoiceAgentReport[_0x8d2d('0x2a')](_0x240d2a);});}else{RpcVoiceAgentReport[_0x8d2d('0x2a')](_0x2acd74);}};Report[_0x8d2d('0xf')][_0x8d2d('0x18')]=function(_0x10954){RpcVoiceDialReport[_0x8d2d('0x2a')](_0x10954);var _0x3c884a;var _0x35849d;var _0x1061f2=_0x10954[_0x8d2d('0x2e')];if(_['startsWith'](_0x1061f2,'Local')){_0x35849d=_0x1061f2[_0x8d2d('0x52')](_0x1061f2[_0x8d2d('0x53')]('/')+0x1,_0x1061f2['indexOf']('@'));_0x3c884a=_[_0x8d2d('0x1d')](this['agents'],function(_0x6b2308){return _0x6b2308[_0x8d2d('0x54')]==_0x35849d||_0x6b2308[_0x8d2d('0x55')]==_0x35849d||_0x6b2308[_0x8d2d('0x1e')]==_0x35849d;});}else{_0x35849d=_0x1061f2[_0x8d2d('0x52')](_0x1061f2[_0x8d2d('0x53')]('/')+0x1,_0x1061f2[_0x8d2d('0x56')]('-'));_0x3c884a=this['findAgent'](_0x35849d);}if(_0x3c884a){_0x10954[_0x8d2d('0x21')]=_['isNil'](_0x3c884a[_0x8d2d('0x21')])?util[_0x8d2d('0x22')](_0x8d2d('0x23'),_0x3c884a[_0x8d2d('0x1f')]):_0x3c884a['interface'];_0x10954[_0x8d2d('0x4d')]=_0x3c884a['name'];_0x10954['accountcode']=_0x3c884a['accountcode'];RpcMemberReport[_0x8d2d('0x18')](_0x10954);}};Report['prototype']['blindTransfer']=function(_0x23d791){RpcVoiceTransferReport[_0x8d2d('0x42')][_0x23d791[_0x8d2d('0x57')]]=_0x23d791;};Report[_0x8d2d('0xf')][_0x8d2d('0x1b')]=function(_0x32d0c2){RpcVoiceTransferReport[_0x8d2d('0x1b')](_0x32d0c2);};module[_0x8d2d('0x58')]=Report;