Built motion from commit (unavailable).|2.5.9
[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 _0x1de8=['uniqueid','monitor','monitorFilename','monitors','filename','createdAt','connectedlinename','membername','originatecalleridnum','xcally-motion-dialer','isArray','startsWith','Local','substring','indexOf','mobile','lastIndexOf','SIP/%s','transfererlinkedid','exports','lodash','util','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','format','length','connectedlinenum','lastAssignedTo','interface','queuecallercomplete','queuecallercompleteAt','queuecallerexit','YYYY-MM-DD\x20HH:mm:ss','create','destination','exten','type','lastapplication','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','destinationchannel','channel','calleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x1de8,0x1c7));var _0x81de=function(_0x49ad79,_0x48ee93){_0x49ad79=_0x49ad79-0x0;var _0xa4e38a=_0x1de8[_0x49ad79];return _0xa4e38a;};'use strict';var _=require(_0x81de('0x0'));var moment=require('moment');var util=require(_0x81de('0x1'));var config=require('../../../config/environment');var ami=require(_0x81de('0x2'));var RpcVoiceAgentReport=require(_0x81de('0x3'));var RpcVoiceCallReport=require(_0x81de('0x4'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x81de('0x5'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x81de('0x6'));var RpcVoiceTransferReport=require(_0x81de('0x7'));var VoiceQueueReport=require(_0x81de('0x8'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x81de('0x9'));var VoiceDialReport=require(_0x81de('0xa'));var UserReport=require(_0x81de('0xb'));function Report(_0x3b8ec9){this[_0x81de('0xc')]=_0x3b8ec9;this[_0x81de('0xd')]=_0x3b8ec9[_0x81de('0xd')];this[_0x81de('0xe')]=_0x3b8ec9[_0x81de('0xe')];}Report[_0x81de('0xf')][_0x81de('0x10')]=function(_0x37b525){var _0xa810f7=new VoiceQueueReport(this[_0x81de('0xc')]);var _0xa2eed9=new VoiceAgentReport(this[_0x81de('0xc')]);var _0x23a7bc=new VoiceDialReport(this[_0x81de('0xc')]);var _0x493c17=new VoiceCallReport(this[_0x81de('0xc')]);var _0x37ba97=new UserReport(this[_0x81de('0xc')]);if(config['xdr']&&config['xdr'][_0x81de('0x11')]){ami['on'](_0x81de('0x12'),this[_0x81de('0x13')][_0x81de('0x14')](this));ami['on'](_0x81de('0x15'),this[_0x81de('0x16')][_0x81de('0x14')](this));ami['on'](_0x81de('0x17'),this[_0x81de('0x18')]['bind'](this));ami['on'](_0x81de('0x19'),this[_0x81de('0x1a')][_0x81de('0x14')](this));ami['on'](_0x81de('0x1b'),this[_0x81de('0x1c')][_0x81de('0x14')](this));ami['on'](_0x81de('0x1d'),this[_0x81de('0x1e')][_0x81de('0x14')](this));}};Report[_0x81de('0xf')][_0x81de('0x1f')]=function(_0x48fbb0){var _0x39dbb7;_0x39dbb7=_[_0x81de('0x20')](this[_0x81de('0xd')],function(_0x22ab9a){return _0x22ab9a[_0x81de('0x21')]==_0x48fbb0||_0x22ab9a[_0x81de('0x22')]==_0x48fbb0;});if(_[_0x81de('0x23')](_0x39dbb7)){var _0x2456ff=_[_0x81de('0x20')](this['telephones'],function(_0x41d4fc){return _0x41d4fc['accountcode']==_0x48fbb0||_0x41d4fc[_0x81de('0x22')]==_0x48fbb0;});if(_0x2456ff){_0x39dbb7=_['find'](this[_0x81de('0xd')],function(_0x25f38d){return _0x25f38d['interface']==util[_0x81de('0x24')]('SIP/%s',_0x2456ff['name']);});}}return _0x39dbb7;};Report[_0x81de('0xf')][_0x81de('0x13')]=function(_0x5ee4a5){for(var _0x2b8aa5=0x0;_0x2b8aa5<_0x5ee4a5[_0x81de('0x25')];_0x2b8aa5+=0x1){var _0x4f9491=this['findAgent'](_0x5ee4a5[_0x2b8aa5][_0x81de('0x26')]);if(_0x4f9491){_0x5ee4a5[_0x2b8aa5][_0x81de('0x21')]=_0x4f9491[_0x81de('0x21')];_0x5ee4a5[_0x2b8aa5]['assigned']=!![];_0x5ee4a5[_0x2b8aa5][_0x81de('0x27')]=_0x4f9491[_0x81de('0x22')];_0x5ee4a5[_0x2b8aa5][_0x81de('0x28')]=_['isNil'](_0x4f9491[_0x81de('0x28')])?util[_0x81de('0x24')]('SIP/%s',_0x4f9491[_0x81de('0x22')]):_0x4f9491[_0x81de('0x28')];if(_0x5ee4a5[_0x2b8aa5][_0x81de('0x29')]){_0x5ee4a5[_0x2b8aa5][_0x81de('0x2a')]=moment()[_0x81de('0x24')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x5ee4a5[_0x2b8aa5][_0x81de('0x2b')]){_0x5ee4a5[_0x2b8aa5]['queuecallerexitAt']=moment()['format'](_0x81de('0x2c'));}RpcMemberReport[_0x81de('0x13')](_0x5ee4a5[_0x2b8aa5]);}RpcVoiceQueueReport[_0x81de('0x2d')](_0x5ee4a5[_0x2b8aa5]);}};function extractCalleridNumber(_0x54107f){var _0x5c1239=_0x54107f['match'](/<(.*?)>/);return _0x5c1239?_0x5c1239[0x1]:_0x54107f;}Report[_0x81de('0xf')][_0x81de('0x16')]=function(_0x484fd9){_0x484fd9['destination']=_0x484fd9[_0x81de('0x2e')]||_0x484fd9[_0x81de('0x2f')];if(_0x484fd9[_0x81de('0x30')]=='dialer'){_0x484fd9[_0x81de('0x31')]=_0x81de('0x32');_0x484fd9[_0x81de('0x33')]=_0x484fd9['queue'];if(_0x484fd9[_0x81de('0x34')]==_0x81de('0x35')){_0x484fd9[_0x81de('0x21')]='';_0x484fd9['destination']=extractCalleridNumber(_0x484fd9[_0x81de('0x36')]);}else if(_0x484fd9['context']==_0x81de('0x37')){if(_0x484fd9[_0x81de('0x2e')]==_0x81de('0x38')){_0x484fd9['destination']=extractCalleridNumber(_0x484fd9[_0x81de('0x39')]);_0x484fd9['calleridnum']=_0x484fd9['originatecalleridnum'];_0x484fd9[_0x81de('0x3a')]=[_0x484fd9['channel'],_0x484fd9[_0x81de('0x3b')]=_0x484fd9['destinationchannel']][0x0];_0x484fd9[_0x81de('0x36')]=_0x484fd9[_0x81de('0x39')];}else{_0x484fd9[_0x81de('0x2e')]=_0x484fd9[_0x81de('0x3c')];_0x484fd9[_0x81de('0x3c')]=_0x484fd9['originatecalleridnum'];if(_0x484fd9[_0x81de('0x3d')]==_0x81de('0x3e')){_0x484fd9[_0x81de('0x21')]=_0x484fd9[_0x81de('0x26')];}else{_0x484fd9[_0x81de('0x21')]='';}}}}else{_0x484fd9[_0x81de('0x36')]=util[_0x81de('0x24')](_0x81de('0x3f'),_0x484fd9[_0x81de('0x40')],_0x484fd9[_0x81de('0x3c')]);}if(RpcVoiceTransferReport[_0x81de('0x41')][_0x484fd9[_0x81de('0x42')]]){var _0x1a15f3=RpcVoiceTransferReport['transfers'][_0x484fd9['linkedid']];_0x1a15f3['transfereelinkedid']=_0x484fd9[_0x81de('0x43')];RpcVoiceTransferReport['blindTransfer'](_0x1a15f3);delete RpcVoiceTransferReport['transfers'][_0x484fd9[_0x81de('0x42')]];}RpcVoiceCallReport[_0x81de('0x2d')](_0x484fd9);if(_0x484fd9[_0x81de('0x44')]){for(var _0x3027dd=0x0;_0x3027dd<_0x484fd9['monitors'][_0x81de('0x25')];_0x3027dd+=0x1){_0x484fd9[_0x81de('0x45')]=_0x484fd9[_0x81de('0x46')][_0x3027dd][_0x81de('0x47')];_0x484fd9['createdAt']=_0x484fd9[_0x81de('0x46')][_0x3027dd][_0x81de('0x48')];if(_0x484fd9[_0x81de('0x2f')]==_0x81de('0x38')){_0x484fd9[_0x81de('0x3c')]=_0x484fd9[_0x81de('0x26')];_0x484fd9[_0x81de('0x40')]=_0x484fd9[_0x81de('0x49')];_0x484fd9[_0x81de('0x26')]=_0x484fd9[_0x81de('0x21')];_0x484fd9[_0x81de('0x49')]=_0x484fd9[_0x81de('0x4a')];_0x484fd9['exten']=_0x484fd9[_0x81de('0x4b')];}else if(_0x484fd9[_0x81de('0x2f')]==_0x81de('0x4c')){_0x484fd9[_0x81de('0x3c')]=_0x484fd9[_0x81de('0x2e')];_0x484fd9[_0x81de('0x2f')]=_0x484fd9['originatecalleridnum'];}RpcVoiceRecording[_0x81de('0x2d')](_0x484fd9);}}};Report['prototype'][_0x81de('0x18')]=function(_0x56857f){if(_[_0x81de('0x4d')](_0x56857f)){_0x56857f['forEach'](function(_0x2e0488){RpcVoiceAgentReport[_0x81de('0x2d')](_0x2e0488);});}else{RpcVoiceAgentReport[_0x81de('0x2d')](_0x56857f);}};Report[_0x81de('0xf')][_0x81de('0x1a')]=function(_0x3eac93){RpcVoiceDialReport['create'](_0x3eac93);var _0xb990a4;var _0xd43a20;var _0xa1be4d=_0x3eac93[_0x81de('0x3b')];if(_[_0x81de('0x4e')](_0xa1be4d,_0x81de('0x4f'))){_0xd43a20=_0xa1be4d[_0x81de('0x50')](_0xa1be4d[_0x81de('0x51')]('/')+0x1,_0xa1be4d[_0x81de('0x51')]('@'));_0xb990a4=_[_0x81de('0x20')](this[_0x81de('0xd')],function(_0x3e3d07){return _0x3e3d07[_0x81de('0x52')]==_0xd43a20||_0x3e3d07['phone']==_0xd43a20||_0x3e3d07[_0x81de('0x21')]==_0xd43a20;});}else{_0xd43a20=_0xa1be4d[_0x81de('0x50')](_0xa1be4d['indexOf']('/')+0x1,_0xa1be4d[_0x81de('0x53')]('-'));_0xb990a4=this[_0x81de('0x1f')](_0xd43a20);}if(_0xb990a4){_0x3eac93[_0x81de('0x28')]=_[_0x81de('0x23')](_0xb990a4['interface'])?util[_0x81de('0x24')](_0x81de('0x54'),_0xb990a4[_0x81de('0x22')]):_0xb990a4[_0x81de('0x28')];_0x3eac93['membername']=_0xb990a4[_0x81de('0x22')];_0x3eac93['accountcode']=_0xb990a4[_0x81de('0x21')];RpcMemberReport[_0x81de('0x1a')](_0x3eac93);}};Report[_0x81de('0xf')][_0x81de('0x1c')]=function(_0x2f386c){RpcVoiceTransferReport['transfers'][_0x2f386c[_0x81de('0x55')]]=_0x2f386c;};Report[_0x81de('0xf')][_0x81de('0x1e')]=function(_0xc13569){RpcVoiceTransferReport['attendedTransfer'](_0xc13569);};module[_0x81de('0x56')]=Report;