9c77772defc0d9666d88292060ff4d05a9b89275
[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 _0x2cdb=['indexOf','mobile','phone','lastIndexOf','attendedTransfer','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','blindtransfer','attendedtransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','length','connectedlinenum','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','destination','exten','type','dialer','queue','context','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','blindTransfer','monitor','monitors','monitorFilename','createdAt','membername','xcally-motion-dialer','isArray','forEach','voiceDialReport','startsWith','Local','substring'];(function(_0x2b5eae,_0x55010d){var _0x5f3ac9=function(_0x397bfc){while(--_0x397bfc){_0x2b5eae['push'](_0x2b5eae['shift']());}};_0x5f3ac9(++_0x55010d);}(_0x2cdb,0x1aa));var _0xb2cd=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x2cdb[_0x4a9fb1];return _0x348672;};'use strict';var _=require(_0xb2cd('0x0'));var moment=require(_0xb2cd('0x1'));var util=require(_0xb2cd('0x2'));var config=require(_0xb2cd('0x3'));var ami=require(_0xb2cd('0x4'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xb2cd('0x5'));var RpcVoiceDialReport=require(_0xb2cd('0x6'));var RpcMemberReport=require(_0xb2cd('0x7'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xb2cd('0x8'));var RpcVoiceTransferReport=require(_0xb2cd('0x9'));var VoiceQueueReport=require(_0xb2cd('0xa'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xb2cd('0xb'));var UserReport=require(_0xb2cd('0xc'));function Report(_0x14f6e7){this[_0xb2cd('0xd')]=_0x14f6e7;this[_0xb2cd('0xe')]=_0x14f6e7[_0xb2cd('0xe')];this[_0xb2cd('0xf')]=_0x14f6e7[_0xb2cd('0xf')];}Report[_0xb2cd('0x10')][_0xb2cd('0x11')]=function(_0xa194f5){var _0x53beb1=new VoiceQueueReport(this[_0xb2cd('0xd')]);var _0x73d79e=new VoiceAgentReport(this['realtime']);var _0x4eb4b7=new VoiceDialReport(this['realtime']);var _0x294314=new VoiceCallReport(this[_0xb2cd('0xd')]);var _0x354cdd=new UserReport(this[_0xb2cd('0xd')]);if(config[_0xb2cd('0x12')]&&config[_0xb2cd('0x12')][_0xb2cd('0x13')]){ami['on']('custom:voiceQueueReport',this[_0xb2cd('0x14')][_0xb2cd('0x15')](this));ami['on'](_0xb2cd('0x16'),this['voiceCallReport'][_0xb2cd('0x15')](this));ami['on'](_0xb2cd('0x17'),this[_0xb2cd('0x18')][_0xb2cd('0x15')](this));ami['on'](_0xb2cd('0x19'),this['voiceDialReport']['bind'](this));ami['on'](_0xb2cd('0x1a'),this['blindTransfer'][_0xb2cd('0x15')](this));ami['on'](_0xb2cd('0x1b'),this['attendedTransfer'][_0xb2cd('0x15')](this));}};Report['prototype'][_0xb2cd('0x1c')]=function(_0x1f6f29){var _0x1ae52b;_0x1ae52b=_[_0xb2cd('0x1d')](this['agents'],function(_0x4b8fc8){return _0x4b8fc8[_0xb2cd('0x1e')]==_0x1f6f29||_0x4b8fc8[_0xb2cd('0x1f')]==_0x1f6f29;});if(_[_0xb2cd('0x20')](_0x1ae52b)){var _0x1b9eb6=_[_0xb2cd('0x1d')](this[_0xb2cd('0xf')],function(_0x2e95fb){return _0x2e95fb[_0xb2cd('0x1e')]==_0x1f6f29||_0x2e95fb[_0xb2cd('0x1f')]==_0x1f6f29;});if(_0x1b9eb6){_0x1ae52b=_['find'](this['agents'],function(_0x759815){return _0x759815[_0xb2cd('0x21')]==util[_0xb2cd('0x22')](_0xb2cd('0x23'),_0x1b9eb6[_0xb2cd('0x1f')]);});}}return _0x1ae52b;};Report[_0xb2cd('0x10')][_0xb2cd('0x14')]=function(_0x29892e){for(var _0x43e987=0x0;_0x43e987<_0x29892e[_0xb2cd('0x24')];_0x43e987+=0x1){var _0x59b17d=this[_0xb2cd('0x1c')](_0x29892e[_0x43e987][_0xb2cd('0x25')]);if(_0x59b17d){_0x29892e[_0x43e987]['accountcode']=_0x59b17d[_0xb2cd('0x1e')];_0x29892e[_0x43e987]['assigned']=!![];_0x29892e[_0x43e987]['lastAssignedTo']=_0x59b17d[_0xb2cd('0x1f')];_0x29892e[_0x43e987][_0xb2cd('0x21')]=_[_0xb2cd('0x20')](_0x59b17d[_0xb2cd('0x21')])?util[_0xb2cd('0x22')](_0xb2cd('0x23'),_0x59b17d[_0xb2cd('0x1f')]):_0x59b17d['interface'];if(_0x29892e[_0x43e987][_0xb2cd('0x26')]){_0x29892e[_0x43e987]['queuecallercompleteAt']=moment()[_0xb2cd('0x22')](_0xb2cd('0x27'));}if(_0x29892e[_0x43e987][_0xb2cd('0x28')]){_0x29892e[_0x43e987][_0xb2cd('0x29')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0xb2cd('0x14')](_0x29892e[_0x43e987]);}RpcVoiceQueueReport[_0xb2cd('0x2a')](_0x29892e[_0x43e987]);}};function extractCalleridNumber(_0xd8a764){var _0x2211b0=_0xd8a764[_0xb2cd('0x2b')](/<(.*?)>/);return _0x2211b0?_0x2211b0[0x1]:_0xd8a764;}Report[_0xb2cd('0x10')]['voiceCallReport']=function(_0x10b812){_0x10b812[_0xb2cd('0x2c')]=_0x10b812[_0xb2cd('0x2c')]||_0x10b812[_0xb2cd('0x2d')];if(_0x10b812[_0xb2cd('0x2e')]==_0xb2cd('0x2f')){_0x10b812['lastapplication']=_0xb2cd('0x30');_0x10b812['lastdata']=_0x10b812[_0xb2cd('0x30')];if(_0x10b812[_0xb2cd('0x31')]=='from-voip-provider'){_0x10b812['accountcode']='';_0x10b812[_0xb2cd('0x2c')]=extractCalleridNumber(_0x10b812[_0xb2cd('0x32')]);}else if(_0x10b812[_0xb2cd('0x31')]==_0xb2cd('0x33')){if(_0x10b812[_0xb2cd('0x2c')]==_0xb2cd('0x34')){_0x10b812[_0xb2cd('0x2c')]=extractCalleridNumber(_0x10b812[_0xb2cd('0x35')]);_0x10b812[_0xb2cd('0x36')]=_0x10b812[_0xb2cd('0x37')];_0x10b812[_0xb2cd('0x38')]=[_0x10b812['channel'],_0x10b812[_0xb2cd('0x39')]=_0x10b812[_0xb2cd('0x38')]][0x0];_0x10b812['callerid']=_0x10b812[_0xb2cd('0x35')];}else{_0x10b812[_0xb2cd('0x2c')]=_0x10b812[_0xb2cd('0x36')];_0x10b812['calleridnum']=_0x10b812[_0xb2cd('0x37')];if(_0x10b812['disposition']==_0xb2cd('0x3a')){_0x10b812[_0xb2cd('0x1e')]=_0x10b812[_0xb2cd('0x25')];}else{_0x10b812[_0xb2cd('0x1e')]='';}}}}else{_0x10b812[_0xb2cd('0x32')]=util['format'](_0xb2cd('0x3b'),_0x10b812[_0xb2cd('0x3c')],_0x10b812[_0xb2cd('0x36')]);}if(RpcVoiceTransferReport[_0xb2cd('0x3d')][_0x10b812[_0xb2cd('0x3e')]]){var _0x325039=RpcVoiceTransferReport[_0xb2cd('0x3d')][_0x10b812['linkedid']];_0x325039[_0xb2cd('0x3f')]=_0x10b812[_0xb2cd('0x40')];RpcVoiceTransferReport[_0xb2cd('0x41')](_0x325039);delete RpcVoiceTransferReport[_0xb2cd('0x3d')][_0x10b812[_0xb2cd('0x3e')]];}RpcVoiceCallReport[_0xb2cd('0x2a')](_0x10b812);if(_0x10b812[_0xb2cd('0x42')]){for(var _0x20cdd3=0x0;_0x20cdd3<_0x10b812[_0xb2cd('0x43')][_0xb2cd('0x24')];_0x20cdd3+=0x1){_0x10b812[_0xb2cd('0x44')]=_0x10b812[_0xb2cd('0x43')][_0x20cdd3]['filename'];_0x10b812[_0xb2cd('0x45')]=_0x10b812['monitors'][_0x20cdd3][_0xb2cd('0x45')];if(_0x10b812[_0xb2cd('0x2d')]==_0xb2cd('0x34')){_0x10b812[_0xb2cd('0x36')]=_0x10b812[_0xb2cd('0x25')];_0x10b812[_0xb2cd('0x3c')]=_0x10b812['connectedlinename'];_0x10b812[_0xb2cd('0x25')]=_0x10b812[_0xb2cd('0x1e')];_0x10b812['connectedlinename']=_0x10b812[_0xb2cd('0x46')];_0x10b812[_0xb2cd('0x2d')]=_0x10b812[_0xb2cd('0x37')];}else if(_0x10b812['exten']==_0xb2cd('0x47')){_0x10b812[_0xb2cd('0x36')]=_0x10b812[_0xb2cd('0x2c')];_0x10b812[_0xb2cd('0x2d')]=_0x10b812[_0xb2cd('0x37')];}RpcVoiceRecording[_0xb2cd('0x2a')](_0x10b812);}}};Report[_0xb2cd('0x10')][_0xb2cd('0x18')]=function(_0x2a5a0c){if(_[_0xb2cd('0x48')](_0x2a5a0c)){_0x2a5a0c[_0xb2cd('0x49')](function(_0x14f05c){RpcVoiceAgentReport[_0xb2cd('0x2a')](_0x14f05c);});}else{RpcVoiceAgentReport['create'](_0x2a5a0c);}};Report[_0xb2cd('0x10')][_0xb2cd('0x4a')]=function(_0x1d08dc){RpcVoiceDialReport[_0xb2cd('0x2a')](_0x1d08dc);var _0x476037;var _0x1e26ff;var _0x1d2601=_0x1d08dc[_0xb2cd('0x39')];if(_[_0xb2cd('0x4b')](_0x1d2601,_0xb2cd('0x4c'))){_0x1e26ff=_0x1d2601[_0xb2cd('0x4d')](_0x1d2601[_0xb2cd('0x4e')]('/')+0x1,_0x1d2601['indexOf']('@'));_0x476037=_['find'](this[_0xb2cd('0xe')],function(_0x7cd001){return _0x7cd001[_0xb2cd('0x4f')]==_0x1e26ff||_0x7cd001[_0xb2cd('0x50')]==_0x1e26ff||_0x7cd001[_0xb2cd('0x1e')]==_0x1e26ff;});}else{_0x1e26ff=_0x1d2601[_0xb2cd('0x4d')](_0x1d2601[_0xb2cd('0x4e')]('/')+0x1,_0x1d2601[_0xb2cd('0x51')]('-'));_0x476037=this['findAgent'](_0x1e26ff);}if(_0x476037){_0x1d08dc['interface']=_['isNil'](_0x476037[_0xb2cd('0x21')])?util['format'](_0xb2cd('0x23'),_0x476037['name']):_0x476037[_0xb2cd('0x21')];_0x1d08dc[_0xb2cd('0x46')]=_0x476037[_0xb2cd('0x1f')];_0x1d08dc[_0xb2cd('0x1e')]=_0x476037[_0xb2cd('0x1e')];RpcMemberReport[_0xb2cd('0x4a')](_0x1d08dc);}};Report[_0xb2cd('0x10')]['blindTransfer']=function(_0x27e52d){RpcVoiceTransferReport['transfers'][_0x27e52d['transfererlinkedid']]=_0x27e52d;};Report['prototype'][_0xb2cd('0x52')]=function(_0x231d1a){RpcVoiceTransferReport[_0xb2cd('0x52')](_0x231d1a);};module[_0xb2cd('0x53')]=Report;