8c2aaf85bd9bf562dc598b9ce9df720da67d0397
[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 _0x5bb5=['keys','getCallType','channel','calleridnum','outbound','voiceCallReport','destination','exten','type','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','disposition','ANSWERED','connectedlinenum','\x22%s\x22\x20<%s>','transfers','linkedid','transfereelinkedid','UserId','split','membername','monitor','monitors','monitorFilename','filename','createdAt','calleridname','connectedlinename','voiceAgentReport','forEach','Local','substring','indexOf','mobile','phone','transfererlinkedid','exports','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceRecording','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','custom:voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceDialReport','blindtransfer','blindTransfer','attendedTransfer','findAgent','accountcode','name','isNil','find','interface','prototype','voiceQueueReport','length','assigned','lastAssignedTo','format','SIP/%s','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','create','match','getAgentByInternal'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5bb5,0x188));var _0x55bb=function(_0x3a0006,_0x2f2279){_0x3a0006=_0x3a0006-0x0;var _0x381fdd=_0x5bb5[_0x3a0006];return _0x381fdd;};'use strict';var _=require('lodash');var moment=require(_0x55bb('0x0'));var util=require(_0x55bb('0x1'));var config=require(_0x55bb('0x2'));var ami=require(_0x55bb('0x3'));var RpcVoiceAgentReport=require(_0x55bb('0x4'));var RpcVoiceCallReport=require(_0x55bb('0x5'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x55bb('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x55bb('0x7'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x55bb('0x8'));var VoiceAgentReport=require(_0x55bb('0x9'));var VoiceDialReport=require(_0x55bb('0xa'));var UserReport=require(_0x55bb('0xb'));function Report(_0x1a3212){this[_0x55bb('0xc')]=_0x1a3212;this['agents']=_0x1a3212[_0x55bb('0xd')];this[_0x55bb('0xe')]=_0x1a3212['telephones'];}Report['prototype'][_0x55bb('0xf')]=function(_0x5db0a5){var _0x5abd0c=new VoiceQueueReport(this[_0x55bb('0xc')]);var _0x58d549=new VoiceAgentReport(this['realtime']);var _0x4dcefc=new VoiceDialReport(this['realtime']);var _0xa6f371=new VoiceCallReport(this[_0x55bb('0xc')]);var _0x17e0b0=new UserReport(this[_0x55bb('0xc')]);if(config[_0x55bb('0x10')]&&config[_0x55bb('0x10')]['disabled']){ami['on'](_0x55bb('0x11'),this['voiceQueueReport'][_0x55bb('0x12')](this));ami['on'](_0x55bb('0x13'),this['voiceCallReport'][_0x55bb('0x12')](this));ami['on'](_0x55bb('0x14'),this['voiceAgentReport'][_0x55bb('0x12')](this));ami['on']('custom:voiceDialReport',this[_0x55bb('0x15')][_0x55bb('0x12')](this));ami['on'](_0x55bb('0x16'),this[_0x55bb('0x17')][_0x55bb('0x12')](this));ami['on']('attendedtransfer',this[_0x55bb('0x18')][_0x55bb('0x12')](this));}};Report['prototype'][_0x55bb('0x19')]=function(_0x25b000){var _0x350042;_0x350042=_['find'](this[_0x55bb('0xd')],function(_0x3ae0de){return _0x3ae0de[_0x55bb('0x1a')]==_0x25b000||_0x3ae0de[_0x55bb('0x1b')]==_0x25b000;});if(_[_0x55bb('0x1c')](_0x350042)){var _0x55ee12=_['find'](this[_0x55bb('0xe')],function(_0x2a19a3){return _0x2a19a3[_0x55bb('0x1a')]==_0x25b000||_0x2a19a3[_0x55bb('0x1b')]==_0x25b000;});if(_0x55ee12){_0x350042=_[_0x55bb('0x1d')](this[_0x55bb('0xd')],function(_0x1fccb4){return _0x1fccb4[_0x55bb('0x1e')]==util['format']('SIP/%s',_0x55ee12[_0x55bb('0x1b')]);});}}return _0x350042;};Report[_0x55bb('0x1f')][_0x55bb('0x20')]=function(_0x413787){for(var _0x4d9a52=0x0;_0x4d9a52<_0x413787[_0x55bb('0x21')];_0x4d9a52+=0x1){var _0x5d5f1b=this[_0x55bb('0x19')](_0x413787[_0x4d9a52]['connectedlinenum']);if(_0x5d5f1b){_0x413787[_0x4d9a52][_0x55bb('0x1a')]=_0x5d5f1b['accountcode'];_0x413787[_0x4d9a52][_0x55bb('0x22')]=!![];_0x413787[_0x4d9a52][_0x55bb('0x23')]=_0x5d5f1b[_0x55bb('0x1b')];_0x413787[_0x4d9a52]['interface']=_['isNil'](_0x5d5f1b[_0x55bb('0x1e')])?util[_0x55bb('0x24')](_0x55bb('0x25'),_0x5d5f1b[_0x55bb('0x1b')]):_0x5d5f1b[_0x55bb('0x1e')];if(_0x413787[_0x4d9a52]['queuecallercomplete']){_0x413787[_0x4d9a52][_0x55bb('0x26')]=moment()['format'](_0x55bb('0x27'));}if(_0x413787[_0x4d9a52]['queuecallerexit']){_0x413787[_0x4d9a52]['queuecallerexitAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x55bb('0x20')](_0x413787[_0x4d9a52]);}RpcVoiceQueueReport[_0x55bb('0x28')](_0x413787[_0x4d9a52]);}};function extractCalleridNumber(_0x296ae5){var _0x419154=_0x296ae5[_0x55bb('0x29')](/<(.*?)>/);return _0x419154?_0x419154[0x1]:_0x296ae5;}Report['prototype'][_0x55bb('0x2a')]=function(_0x232f1e){for(var _0x52a681=0x0;_0x52a681<Object[_0x55bb('0x2b')](this['agents'])[_0x55bb('0x21')];_0x52a681++){var _0x17f6f3=Object['keys'](this[_0x55bb('0xd')])[_0x52a681];var _0x47f632=this[_0x55bb('0xd')][_0x17f6f3];if(_0x47f632[_0x55bb('0x1a')]===Number(_0x232f1e))return _0x47f632;}return null;};Report['prototype'][_0x55bb('0x2c')]=function(_0x2e3f91){var _0x426922=_0x2e3f91[_0x55bb('0x2d')]['split']('-')[0x0];var _0x230cee=this['agents'][_0x426922];if(!_0x230cee)_0x230cee=this[_0x55bb('0x2a')](_0x2e3f91[_0x55bb('0x2e')]);return!_0x230cee?_0x55bb('0x2f'):'internal';};Report[_0x55bb('0x1f')][_0x55bb('0x30')]=function(_0x3100b5){_0x3100b5['destination']=_0x3100b5[_0x55bb('0x31')]||_0x3100b5[_0x55bb('0x32')];if(_0x3100b5[_0x55bb('0x33')]=='dialer'){_0x3100b5['lastapplication']=_0x55bb('0x34');_0x3100b5['lastdata']=_0x3100b5['queue'];if(_0x3100b5[_0x55bb('0x35')]==_0x55bb('0x36')){_0x3100b5[_0x55bb('0x1a')]='';_0x3100b5[_0x55bb('0x31')]=extractCalleridNumber(_0x3100b5[_0x55bb('0x37')]);}else if(_0x3100b5[_0x55bb('0x35')]==_0x55bb('0x38')){if(_0x3100b5['destination']==_0x55bb('0x39')){_0x3100b5[_0x55bb('0x31')]=extractCalleridNumber(_0x3100b5[_0x55bb('0x3a')]);_0x3100b5[_0x55bb('0x2e')]=_0x3100b5[_0x55bb('0x3b')];_0x3100b5[_0x55bb('0x3c')]=[_0x3100b5[_0x55bb('0x2d')],_0x3100b5['channel']=_0x3100b5[_0x55bb('0x3c')]][0x0];_0x3100b5[_0x55bb('0x37')]=_0x3100b5[_0x55bb('0x3a')];}else{_0x3100b5[_0x55bb('0x31')]=_0x3100b5[_0x55bb('0x2e')];_0x3100b5['calleridnum']=_0x3100b5[_0x55bb('0x3b')];if(_0x3100b5[_0x55bb('0x3d')]==_0x55bb('0x3e')){_0x3100b5[_0x55bb('0x1a')]=_0x3100b5[_0x55bb('0x3f')];}else{_0x3100b5[_0x55bb('0x1a')]='';}}}}else{_0x3100b5['callerid']=util[_0x55bb('0x24')](_0x55bb('0x40'),_0x3100b5['calleridname'],_0x3100b5[_0x55bb('0x2e')]);}if(RpcVoiceTransferReport[_0x55bb('0x41')][_0x3100b5[_0x55bb('0x42')]]){var _0xfafd76=RpcVoiceTransferReport[_0x55bb('0x41')][_0x3100b5[_0x55bb('0x42')]];_0xfafd76[_0x55bb('0x43')]=_0x3100b5['uniqueid'];RpcVoiceTransferReport[_0x55bb('0x17')](_0xfafd76);delete RpcVoiceTransferReport['transfers'][_0x3100b5[_0x55bb('0x42')]];}if(_[_0x55bb('0x1c')](_0x3100b5['type'])){_0x3100b5[_0x55bb('0x33')]=this['getCallType'](_0x3100b5);}if(_[_0x55bb('0x1c')](_0x3100b5[_0x55bb('0x44')])){var _0xa6a494=_0x3100b5[_0x55bb('0x2d')][_0x55bb('0x45')]('-')[0x0];var _0x2f3fb9=this[_0x55bb('0xd')][_0xa6a494];if(!_0x2f3fb9)_0x2f3fb9=this[_0x55bb('0x2a')](_0x3100b5[_0x55bb('0x1a')]);if(_0x2f3fb9){_0x3100b5[_0x55bb('0x44')]=_0x2f3fb9['id'];_0x3100b5[_0x55bb('0x46')]=_0x2f3fb9[_0x55bb('0x1b')];}}RpcVoiceCallReport[_0x55bb('0x28')](_0x3100b5);if(_0x3100b5[_0x55bb('0x47')]){for(var _0x47bf70=0x0;_0x47bf70<_0x3100b5[_0x55bb('0x48')][_0x55bb('0x21')];_0x47bf70+=0x1){_0x3100b5[_0x55bb('0x49')]=_0x3100b5[_0x55bb('0x48')][_0x47bf70][_0x55bb('0x4a')];_0x3100b5[_0x55bb('0x4b')]=_0x3100b5[_0x55bb('0x48')][_0x47bf70][_0x55bb('0x4b')];if(_0x3100b5[_0x55bb('0x32')]=='xcally-motion-preview'){_0x3100b5[_0x55bb('0x2e')]=_0x3100b5['connectedlinenum'];_0x3100b5[_0x55bb('0x4c')]=_0x3100b5['connectedlinename'];_0x3100b5[_0x55bb('0x3f')]=_0x3100b5[_0x55bb('0x1a')];_0x3100b5[_0x55bb('0x4d')]=_0x3100b5[_0x55bb('0x46')];_0x3100b5[_0x55bb('0x32')]=_0x3100b5['originatecalleridnum'];}else if(_0x3100b5[_0x55bb('0x32')]=='xcally-motion-dialer'){_0x3100b5[_0x55bb('0x2e')]=_0x3100b5[_0x55bb('0x31')];_0x3100b5[_0x55bb('0x32')]=_0x3100b5['originatecalleridnum'];}RpcVoiceRecording[_0x55bb('0x28')](_0x3100b5);}}};Report[_0x55bb('0x1f')][_0x55bb('0x4e')]=function(_0x534341){if(_['isArray'](_0x534341)){_0x534341[_0x55bb('0x4f')](function(_0x21829e){RpcVoiceAgentReport[_0x55bb('0x28')](_0x21829e);});}else{RpcVoiceAgentReport[_0x55bb('0x28')](_0x534341);}};Report['prototype'][_0x55bb('0x15')]=function(_0x375133){RpcVoiceDialReport[_0x55bb('0x28')](_0x375133);var _0xcb69ed;var _0x3f58ad;var _0x951185=_0x375133[_0x55bb('0x2d')];if(_['startsWith'](_0x951185,_0x55bb('0x50'))){_0x3f58ad=_0x951185[_0x55bb('0x51')](_0x951185[_0x55bb('0x52')]('/')+0x1,_0x951185['indexOf']('@'));_0xcb69ed=_[_0x55bb('0x1d')](this[_0x55bb('0xd')],function(_0x1ab069){return _0x1ab069[_0x55bb('0x53')]==_0x3f58ad||_0x1ab069[_0x55bb('0x54')]==_0x3f58ad||_0x1ab069['accountcode']==_0x3f58ad;});}else{_0x3f58ad=_0x951185['substring'](_0x951185[_0x55bb('0x52')]('/')+0x1,_0x951185['lastIndexOf']('-'));_0xcb69ed=this[_0x55bb('0x19')](_0x3f58ad);}if(_0xcb69ed){_0x375133['interface']=_[_0x55bb('0x1c')](_0xcb69ed[_0x55bb('0x1e')])?util['format'](_0x55bb('0x25'),_0xcb69ed[_0x55bb('0x1b')]):_0xcb69ed[_0x55bb('0x1e')];_0x375133[_0x55bb('0x46')]=_0xcb69ed[_0x55bb('0x1b')];_0x375133[_0x55bb('0x1a')]=_0xcb69ed['accountcode'];RpcMemberReport['voiceDialReport'](_0x375133);}};Report[_0x55bb('0x1f')][_0x55bb('0x17')]=function(_0x4f3f4c){RpcVoiceTransferReport[_0x55bb('0x41')][_0x4f3f4c[_0x55bb('0x55')]]=_0x4f3f4c;};Report['prototype'][_0x55bb('0x18')]=function(_0x20ea26){RpcVoiceTransferReport[_0x55bb('0x18')](_0x20ea26);};module[_0x55bb('0x56')]=Report;