Built motion from commit (unavailable).|2.5.11
[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 _0xadae=['length','connectedlinenum','assigned','lastAssignedTo','SIP/%s','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','voiceCallReport','destination','exten','type','dialer','lastapplication','queue','lastdata','context','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','channel','destinationchannel','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','linkedid','transfereelinkedid','uniqueid','transfers','monitors','monitorFilename','filename','createdAt','connectedlinename','membername','isArray','forEach','indexOf','mobile','phone','substring','lastIndexOf','transfererlinkedid','lodash','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceQueueReport','./voiceAgentReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceAgentReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','accountcode','name','isNil','find','interface','format'];(function(_0x24413f,_0xc92728){var _0x4067d8=function(_0x1439c6){while(--_0x1439c6){_0x24413f['push'](_0x24413f['shift']());}};_0x4067d8(++_0xc92728);}(_0xadae,0x137));var _0xeada=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0xadae[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0xeada('0x0'));var moment=require('moment');var util=require(_0xeada('0x1'));var config=require(_0xeada('0x2'));var ami=require(_0xeada('0x3'));var RpcVoiceAgentReport=require(_0xeada('0x4'));var RpcVoiceCallReport=require(_0xeada('0x5'));var RpcVoiceDialReport=require(_0xeada('0x6'));var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0xeada('0x7'));var RpcVoiceRecording=require(_0xeada('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0xeada('0x9'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0xeada('0xa'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0xeada('0xb'));function Report(_0x159050){this[_0xeada('0xc')]=_0x159050;this[_0xeada('0xd')]=_0x159050[_0xeada('0xd')];this[_0xeada('0xe')]=_0x159050[_0xeada('0xe')];}Report[_0xeada('0xf')][_0xeada('0x10')]=function(_0x382014){var _0x21a928=new VoiceQueueReport(this[_0xeada('0xc')]);var _0xaa5caf=new VoiceAgentReport(this[_0xeada('0xc')]);var _0x5f0e01=new VoiceDialReport(this[_0xeada('0xc')]);var _0xf6d0bd=new VoiceCallReport(this[_0xeada('0xc')]);var _0x82c712=new UserReport(this[_0xeada('0xc')]);if(config[_0xeada('0x11')]&&config[_0xeada('0x11')][_0xeada('0x12')]){ami['on'](_0xeada('0x13'),this[_0xeada('0x14')][_0xeada('0x15')](this));ami['on'](_0xeada('0x16'),this['voiceCallReport']['bind'](this));ami['on'](_0xeada('0x17'),this[_0xeada('0x18')][_0xeada('0x15')](this));ami['on']('custom:voiceDialReport',this[_0xeada('0x19')][_0xeada('0x15')](this));ami['on'](_0xeada('0x1a'),this[_0xeada('0x1b')][_0xeada('0x15')](this));ami['on'](_0xeada('0x1c'),this[_0xeada('0x1d')][_0xeada('0x15')](this));}};Report[_0xeada('0xf')][_0xeada('0x1e')]=function(_0x3b82e9){var _0x38d75a;_0x38d75a=_['find'](this[_0xeada('0xd')],function(_0x585afa){return _0x585afa[_0xeada('0x1f')]==_0x3b82e9||_0x585afa[_0xeada('0x20')]==_0x3b82e9;});if(_[_0xeada('0x21')](_0x38d75a)){var _0x1ce8c3=_[_0xeada('0x22')](this[_0xeada('0xe')],function(_0x15a61d){return _0x15a61d[_0xeada('0x1f')]==_0x3b82e9||_0x15a61d[_0xeada('0x20')]==_0x3b82e9;});if(_0x1ce8c3){_0x38d75a=_[_0xeada('0x22')](this[_0xeada('0xd')],function(_0x49e7de){return _0x49e7de[_0xeada('0x23')]==util[_0xeada('0x24')]('SIP/%s',_0x1ce8c3[_0xeada('0x20')]);});}}return _0x38d75a;};Report[_0xeada('0xf')][_0xeada('0x14')]=function(_0x40736c){for(var _0x54ddec=0x0;_0x54ddec<_0x40736c[_0xeada('0x25')];_0x54ddec+=0x1){var _0x52d211=this[_0xeada('0x1e')](_0x40736c[_0x54ddec][_0xeada('0x26')]);if(_0x52d211){_0x40736c[_0x54ddec][_0xeada('0x1f')]=_0x52d211[_0xeada('0x1f')];_0x40736c[_0x54ddec][_0xeada('0x27')]=!![];_0x40736c[_0x54ddec][_0xeada('0x28')]=_0x52d211[_0xeada('0x20')];_0x40736c[_0x54ddec][_0xeada('0x23')]=_['isNil'](_0x52d211['interface'])?util[_0xeada('0x24')](_0xeada('0x29'),_0x52d211[_0xeada('0x20')]):_0x52d211['interface'];if(_0x40736c[_0x54ddec]['queuecallercomplete']){_0x40736c[_0x54ddec][_0xeada('0x2a')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x40736c[_0x54ddec][_0xeada('0x2b')]){_0x40736c[_0x54ddec][_0xeada('0x2c')]=moment()[_0xeada('0x24')](_0xeada('0x2d'));}RpcMemberReport[_0xeada('0x14')](_0x40736c[_0x54ddec]);}RpcVoiceQueueReport[_0xeada('0x2e')](_0x40736c[_0x54ddec]);}};function extractCalleridNumber(_0x4fc327){var _0x3829ff=_0x4fc327[_0xeada('0x2f')](/<(.*?)>/);return _0x3829ff?_0x3829ff[0x1]:_0x4fc327;}Report[_0xeada('0xf')][_0xeada('0x30')]=function(_0x2b4db0){_0x2b4db0[_0xeada('0x31')]=_0x2b4db0[_0xeada('0x31')]||_0x2b4db0[_0xeada('0x32')];if(_0x2b4db0[_0xeada('0x33')]==_0xeada('0x34')){_0x2b4db0[_0xeada('0x35')]=_0xeada('0x36');_0x2b4db0[_0xeada('0x37')]=_0x2b4db0[_0xeada('0x36')];if(_0x2b4db0[_0xeada('0x38')]=='from-voip-provider'){_0x2b4db0[_0xeada('0x1f')]='';_0x2b4db0[_0xeada('0x31')]=extractCalleridNumber(_0x2b4db0[_0xeada('0x39')]);}else if(_0x2b4db0[_0xeada('0x38')]==_0xeada('0x3a')){if(_0x2b4db0['destination']==_0xeada('0x3b')){_0x2b4db0[_0xeada('0x31')]=extractCalleridNumber(_0x2b4db0[_0xeada('0x3c')]);_0x2b4db0[_0xeada('0x3d')]=_0x2b4db0[_0xeada('0x3e')];_0x2b4db0['destinationchannel']=[_0x2b4db0['channel'],_0x2b4db0[_0xeada('0x3f')]=_0x2b4db0[_0xeada('0x40')]][0x0];_0x2b4db0[_0xeada('0x39')]=_0x2b4db0['calleridpreview'];}else{_0x2b4db0[_0xeada('0x31')]=_0x2b4db0[_0xeada('0x3d')];_0x2b4db0[_0xeada('0x3d')]=_0x2b4db0[_0xeada('0x3e')];if(_0x2b4db0[_0xeada('0x41')]==_0xeada('0x42')){_0x2b4db0[_0xeada('0x1f')]=_0x2b4db0[_0xeada('0x26')];}else{_0x2b4db0[_0xeada('0x1f')]='';}}}}else{_0x2b4db0[_0xeada('0x39')]=util[_0xeada('0x24')](_0xeada('0x43'),_0x2b4db0[_0xeada('0x44')],_0x2b4db0[_0xeada('0x3d')]);}if(RpcVoiceTransferReport['transfers'][_0x2b4db0['linkedid']]){var _0x395e7e=RpcVoiceTransferReport['transfers'][_0x2b4db0[_0xeada('0x45')]];_0x395e7e[_0xeada('0x46')]=_0x2b4db0[_0xeada('0x47')];RpcVoiceTransferReport[_0xeada('0x1b')](_0x395e7e);delete RpcVoiceTransferReport[_0xeada('0x48')][_0x2b4db0['linkedid']];}RpcVoiceCallReport['create'](_0x2b4db0);if(_0x2b4db0['monitor']){for(var _0x4441ec=0x0;_0x4441ec<_0x2b4db0[_0xeada('0x49')]['length'];_0x4441ec+=0x1){_0x2b4db0[_0xeada('0x4a')]=_0x2b4db0[_0xeada('0x49')][_0x4441ec][_0xeada('0x4b')];_0x2b4db0[_0xeada('0x4c')]=_0x2b4db0[_0xeada('0x49')][_0x4441ec][_0xeada('0x4c')];if(_0x2b4db0[_0xeada('0x32')]==_0xeada('0x3b')){_0x2b4db0[_0xeada('0x3d')]=_0x2b4db0['connectedlinenum'];_0x2b4db0['calleridname']=_0x2b4db0[_0xeada('0x4d')];_0x2b4db0[_0xeada('0x26')]=_0x2b4db0['accountcode'];_0x2b4db0[_0xeada('0x4d')]=_0x2b4db0[_0xeada('0x4e')];_0x2b4db0['exten']=_0x2b4db0[_0xeada('0x3e')];}else if(_0x2b4db0[_0xeada('0x32')]=='xcally-motion-dialer'){_0x2b4db0[_0xeada('0x3d')]=_0x2b4db0[_0xeada('0x31')];_0x2b4db0['exten']=_0x2b4db0[_0xeada('0x3e')];}RpcVoiceRecording[_0xeada('0x2e')](_0x2b4db0);}}};Report[_0xeada('0xf')][_0xeada('0x18')]=function(_0xbb417d){if(_[_0xeada('0x4f')](_0xbb417d)){_0xbb417d[_0xeada('0x50')](function(_0x57aa6f){RpcVoiceAgentReport['create'](_0x57aa6f);});}else{RpcVoiceAgentReport[_0xeada('0x2e')](_0xbb417d);}};Report['prototype'][_0xeada('0x19')]=function(_0x31302d){RpcVoiceDialReport['create'](_0x31302d);var _0x1ec648;var _0x50c2aa;var _0x5290ab=_0x31302d[_0xeada('0x3f')];if(_['startsWith'](_0x5290ab,'Local')){_0x50c2aa=_0x5290ab['substring'](_0x5290ab[_0xeada('0x51')]('/')+0x1,_0x5290ab[_0xeada('0x51')]('@'));_0x1ec648=_[_0xeada('0x22')](this['agents'],function(_0x186a26){return _0x186a26[_0xeada('0x52')]==_0x50c2aa||_0x186a26[_0xeada('0x53')]==_0x50c2aa||_0x186a26[_0xeada('0x1f')]==_0x50c2aa;});}else{_0x50c2aa=_0x5290ab[_0xeada('0x54')](_0x5290ab['indexOf']('/')+0x1,_0x5290ab[_0xeada('0x55')]('-'));_0x1ec648=this[_0xeada('0x1e')](_0x50c2aa);}if(_0x1ec648){_0x31302d[_0xeada('0x23')]=_[_0xeada('0x21')](_0x1ec648[_0xeada('0x23')])?util[_0xeada('0x24')](_0xeada('0x29'),_0x1ec648[_0xeada('0x20')]):_0x1ec648[_0xeada('0x23')];_0x31302d['membername']=_0x1ec648[_0xeada('0x20')];_0x31302d[_0xeada('0x1f')]=_0x1ec648[_0xeada('0x1f')];RpcMemberReport[_0xeada('0x19')](_0x31302d);}};Report['prototype'][_0xeada('0x1b')]=function(_0x4f3646){RpcVoiceTransferReport['transfers'][_0x4f3646[_0xeada('0x56')]]=_0x4f3646;};Report[_0xeada('0xf')][_0xeada('0x1d')]=function(_0xd96c25){RpcVoiceTransferReport[_0xeada('0x1d')](_0xd96c25);};module['exports']=Report;