0beb413c1227c878786fa9e7a2f84e4e6ab85dd9
[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 _0xd0b9=['channel','destinationchannel','disposition','ANSWERED','calleridname','transfers','linkedid','uniqueid','create','monitor','monitors','monitorFilename','filename','createdAt','membername','xcally-motion-dialer','isArray','forEach','voiceDialReport','substring','indexOf','phone','lastIndexOf','prototype','transfererlinkedid','attendedTransfer','exports','lodash','moment','util','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','custom:voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','custom:voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','findAgent','accountcode','name','isNil','find','interface','format','SIP/%s','voiceQueueReport','length','connectedlinenum','assigned','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','match','destination','exten','dialer','lastapplication','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum'];(function(_0x4e9823,_0x14ed7a){var _0x467bed=function(_0x5c75f0){while(--_0x5c75f0){_0x4e9823['push'](_0x4e9823['shift']());}};_0x467bed(++_0x14ed7a);}(_0xd0b9,0x1ce));var _0x9d0b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd0b9[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x9d0b('0x0'));var moment=require(_0x9d0b('0x1'));var util=require(_0x9d0b('0x2'));var config=require('../../../config/environment');var ami=require(_0x9d0b('0x3'));var RpcVoiceAgentReport=require(_0x9d0b('0x4'));var RpcVoiceCallReport=require(_0x9d0b('0x5'));var RpcVoiceDialReport=require(_0x9d0b('0x6'));var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0x9d0b('0x7'));var RpcVoiceRecording=require(_0x9d0b('0x8'));var RpcVoiceTransferReport=require(_0x9d0b('0x9'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x9d0b('0xa'));var VoiceAgentReport=require(_0x9d0b('0xb'));var VoiceDialReport=require(_0x9d0b('0xc'));var UserReport=require(_0x9d0b('0xd'));function Report(_0x44f780){this[_0x9d0b('0xe')]=_0x44f780;this[_0x9d0b('0xf')]=_0x44f780[_0x9d0b('0xf')];this[_0x9d0b('0x10')]=_0x44f780['telephones'];}Report['prototype'][_0x9d0b('0x11')]=function(_0x5ac011){var _0xe527bd=new VoiceQueueReport(this[_0x9d0b('0xe')]);var _0x435640=new VoiceAgentReport(this[_0x9d0b('0xe')]);var _0x48a6fa=new VoiceDialReport(this[_0x9d0b('0xe')]);var _0x265075=new VoiceCallReport(this[_0x9d0b('0xe')]);var _0x46f2f5=new UserReport(this[_0x9d0b('0xe')]);if(config[_0x9d0b('0x12')]&&config['xdr']['disabled']){ami['on'](_0x9d0b('0x13'),this['voiceQueueReport'][_0x9d0b('0x14')](this));ami['on'](_0x9d0b('0x15'),this[_0x9d0b('0x16')][_0x9d0b('0x14')](this));ami['on']('custom:voiceAgentReport',this[_0x9d0b('0x17')][_0x9d0b('0x14')](this));ami['on'](_0x9d0b('0x18'),this['voiceDialReport'][_0x9d0b('0x14')](this));ami['on'](_0x9d0b('0x19'),this[_0x9d0b('0x1a')][_0x9d0b('0x14')](this));ami['on'](_0x9d0b('0x1b'),this['attendedTransfer'][_0x9d0b('0x14')](this));}};Report['prototype'][_0x9d0b('0x1c')]=function(_0x1829da){var _0x159582;_0x159582=_['find'](this[_0x9d0b('0xf')],function(_0x3fcfbd){return _0x3fcfbd[_0x9d0b('0x1d')]==_0x1829da||_0x3fcfbd[_0x9d0b('0x1e')]==_0x1829da;});if(_[_0x9d0b('0x1f')](_0x159582)){var _0x39f8d4=_[_0x9d0b('0x20')](this['telephones'],function(_0x43a4e4){return _0x43a4e4[_0x9d0b('0x1d')]==_0x1829da||_0x43a4e4['name']==_0x1829da;});if(_0x39f8d4){_0x159582=_['find'](this[_0x9d0b('0xf')],function(_0x2e72f0){return _0x2e72f0[_0x9d0b('0x21')]==util[_0x9d0b('0x22')](_0x9d0b('0x23'),_0x39f8d4['name']);});}}return _0x159582;};Report['prototype'][_0x9d0b('0x24')]=function(_0x1aa975){for(var _0x837ad6=0x0;_0x837ad6<_0x1aa975[_0x9d0b('0x25')];_0x837ad6+=0x1){var _0x16d6d7=this[_0x9d0b('0x1c')](_0x1aa975[_0x837ad6][_0x9d0b('0x26')]);if(_0x16d6d7){_0x1aa975[_0x837ad6][_0x9d0b('0x1d')]=_0x16d6d7['accountcode'];_0x1aa975[_0x837ad6][_0x9d0b('0x27')]=!![];_0x1aa975[_0x837ad6]['lastAssignedTo']=_0x16d6d7[_0x9d0b('0x1e')];_0x1aa975[_0x837ad6][_0x9d0b('0x21')]=_[_0x9d0b('0x1f')](_0x16d6d7[_0x9d0b('0x21')])?util['format']('SIP/%s',_0x16d6d7[_0x9d0b('0x1e')]):_0x16d6d7[_0x9d0b('0x21')];if(_0x1aa975[_0x837ad6][_0x9d0b('0x28')]){_0x1aa975[_0x837ad6][_0x9d0b('0x29')]=moment()[_0x9d0b('0x22')](_0x9d0b('0x2a'));}if(_0x1aa975[_0x837ad6][_0x9d0b('0x2b')]){_0x1aa975[_0x837ad6][_0x9d0b('0x2c')]=moment()['format'](_0x9d0b('0x2a'));}RpcMemberReport[_0x9d0b('0x24')](_0x1aa975[_0x837ad6]);}RpcVoiceQueueReport['create'](_0x1aa975[_0x837ad6]);}};function extractCalleridNumber(_0x3d5cc7){var _0x166991=_0x3d5cc7[_0x9d0b('0x2d')](/<(.*?)>/);return _0x166991?_0x166991[0x1]:_0x3d5cc7;}Report['prototype'][_0x9d0b('0x16')]=function(_0x3141a2){_0x3141a2[_0x9d0b('0x2e')]=_0x3141a2[_0x9d0b('0x2e')]||_0x3141a2[_0x9d0b('0x2f')];if(_0x3141a2['type']==_0x9d0b('0x30')){_0x3141a2[_0x9d0b('0x31')]=_0x9d0b('0x32');_0x3141a2[_0x9d0b('0x33')]=_0x3141a2[_0x9d0b('0x32')];if(_0x3141a2[_0x9d0b('0x34')]==_0x9d0b('0x35')){_0x3141a2[_0x9d0b('0x1d')]='';_0x3141a2['destination']=extractCalleridNumber(_0x3141a2[_0x9d0b('0x36')]);}else if(_0x3141a2[_0x9d0b('0x34')]==_0x9d0b('0x37')){if(_0x3141a2['destination']==_0x9d0b('0x38')){_0x3141a2[_0x9d0b('0x2e')]=extractCalleridNumber(_0x3141a2[_0x9d0b('0x39')]);_0x3141a2[_0x9d0b('0x3a')]=_0x3141a2[_0x9d0b('0x3b')];_0x3141a2['destinationchannel']=[_0x3141a2[_0x9d0b('0x3c')],_0x3141a2[_0x9d0b('0x3c')]=_0x3141a2[_0x9d0b('0x3d')]][0x0];_0x3141a2[_0x9d0b('0x36')]=_0x3141a2[_0x9d0b('0x39')];}else{_0x3141a2[_0x9d0b('0x2e')]=_0x3141a2[_0x9d0b('0x3a')];_0x3141a2[_0x9d0b('0x3a')]=_0x3141a2[_0x9d0b('0x3b')];if(_0x3141a2[_0x9d0b('0x3e')]==_0x9d0b('0x3f')){_0x3141a2[_0x9d0b('0x1d')]=_0x3141a2[_0x9d0b('0x26')];}else{_0x3141a2[_0x9d0b('0x1d')]='';}}}}else{_0x3141a2[_0x9d0b('0x36')]=util[_0x9d0b('0x22')]('\x22%s\x22\x20<%s>',_0x3141a2[_0x9d0b('0x40')],_0x3141a2[_0x9d0b('0x3a')]);}if(RpcVoiceTransferReport[_0x9d0b('0x41')][_0x3141a2[_0x9d0b('0x42')]]){var _0x468ecd=RpcVoiceTransferReport[_0x9d0b('0x41')][_0x3141a2['linkedid']];_0x468ecd['transfereelinkedid']=_0x3141a2[_0x9d0b('0x43')];RpcVoiceTransferReport['blindTransfer'](_0x468ecd);delete RpcVoiceTransferReport[_0x9d0b('0x41')][_0x3141a2[_0x9d0b('0x42')]];}RpcVoiceCallReport[_0x9d0b('0x44')](_0x3141a2);if(_0x3141a2[_0x9d0b('0x45')]){for(var _0x329861=0x0;_0x329861<_0x3141a2[_0x9d0b('0x46')][_0x9d0b('0x25')];_0x329861+=0x1){_0x3141a2[_0x9d0b('0x47')]=_0x3141a2[_0x9d0b('0x46')][_0x329861][_0x9d0b('0x48')];_0x3141a2[_0x9d0b('0x49')]=_0x3141a2[_0x9d0b('0x46')][_0x329861][_0x9d0b('0x49')];if(_0x3141a2[_0x9d0b('0x2f')]==_0x9d0b('0x38')){_0x3141a2[_0x9d0b('0x3a')]=_0x3141a2['connectedlinenum'];_0x3141a2[_0x9d0b('0x40')]=_0x3141a2['connectedlinename'];_0x3141a2[_0x9d0b('0x26')]=_0x3141a2[_0x9d0b('0x1d')];_0x3141a2['connectedlinename']=_0x3141a2[_0x9d0b('0x4a')];_0x3141a2[_0x9d0b('0x2f')]=_0x3141a2[_0x9d0b('0x3b')];}else if(_0x3141a2[_0x9d0b('0x2f')]==_0x9d0b('0x4b')){_0x3141a2[_0x9d0b('0x3a')]=_0x3141a2[_0x9d0b('0x2e')];_0x3141a2['exten']=_0x3141a2[_0x9d0b('0x3b')];}RpcVoiceRecording['create'](_0x3141a2);}}};Report['prototype'][_0x9d0b('0x17')]=function(_0x4bd0fc){if(_[_0x9d0b('0x4c')](_0x4bd0fc)){_0x4bd0fc[_0x9d0b('0x4d')](function(_0x365a4d){RpcVoiceAgentReport[_0x9d0b('0x44')](_0x365a4d);});}else{RpcVoiceAgentReport[_0x9d0b('0x44')](_0x4bd0fc);}};Report['prototype'][_0x9d0b('0x4e')]=function(_0x25cb06){RpcVoiceDialReport[_0x9d0b('0x44')](_0x25cb06);var _0x1f1a31;var _0x375f07;var _0x21436d=_0x25cb06['channel'];if(_['startsWith'](_0x21436d,'Local')){_0x375f07=_0x21436d[_0x9d0b('0x4f')](_0x21436d[_0x9d0b('0x50')]('/')+0x1,_0x21436d[_0x9d0b('0x50')]('@'));_0x1f1a31=_[_0x9d0b('0x20')](this[_0x9d0b('0xf')],function(_0x563f2a){return _0x563f2a['mobile']==_0x375f07||_0x563f2a[_0x9d0b('0x51')]==_0x375f07||_0x563f2a[_0x9d0b('0x1d')]==_0x375f07;});}else{_0x375f07=_0x21436d[_0x9d0b('0x4f')](_0x21436d[_0x9d0b('0x50')]('/')+0x1,_0x21436d[_0x9d0b('0x52')]('-'));_0x1f1a31=this['findAgent'](_0x375f07);}if(_0x1f1a31){_0x25cb06[_0x9d0b('0x21')]=_[_0x9d0b('0x1f')](_0x1f1a31[_0x9d0b('0x21')])?util['format'](_0x9d0b('0x23'),_0x1f1a31[_0x9d0b('0x1e')]):_0x1f1a31[_0x9d0b('0x21')];_0x25cb06[_0x9d0b('0x4a')]=_0x1f1a31[_0x9d0b('0x1e')];_0x25cb06[_0x9d0b('0x1d')]=_0x1f1a31['accountcode'];RpcMemberReport[_0x9d0b('0x4e')](_0x25cb06);}};Report[_0x9d0b('0x53')]['blindTransfer']=function(_0x27387a){RpcVoiceTransferReport[_0x9d0b('0x41')][_0x27387a[_0x9d0b('0x54')]]=_0x27387a;};Report[_0x9d0b('0x53')][_0x9d0b('0x55')]=function(_0x3cd1e8){RpcVoiceTransferReport[_0x9d0b('0x55')](_0x3cd1e8);};module[_0x9d0b('0x56')]=Report;