6d9d8a4dff66c5a04fb189b9355c3340aa28e96a
[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 _0x1081=['destinationchannel','channel','callerid','originatecalleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','monitorFilename','monitors','filename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','startsWith','substring','indexOf','phone','lastIndexOf','bluebird','util','../../../config/logger','ami','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceDialReport','realtime','agents','telephones','sync','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','prototype','findAgent','find','accountcode','name','isNil','SIP/%s','length','connectedlinenum','assigned','interface','format','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','create','destination','exten','type','dialer','queue','lastdata','context','from-voip-provider','from-sip','calleridpreview','calleridnum'];(function(_0x4d7edc,_0x592d05){var _0x4bcb6c=function(_0x3c74b0){while(--_0x3c74b0){_0x4d7edc['push'](_0x4d7edc['shift']());}};_0x4bcb6c(++_0x592d05);}(_0x1081,0x64));var _0x1108=function(_0x414df1,_0x29817e){_0x414df1=_0x414df1-0x0;var _0x26cf37=_0x1081[_0x414df1];return _0x26cf37;};'use strict';var BPromise=require(_0x1108('0x0'));var _=require('lodash');var moment=require('moment');var util=require(_0x1108('0x1'));var config=require('../../../config/environment');var logger=require(_0x1108('0x2'))(_0x1108('0x3'));var ami=require(_0x1108('0x4'));var RpcVoiceAgentReport=require(_0x1108('0x5'));var RpcVoiceCallReport=require(_0x1108('0x6'));var RpcVoiceDialReport=require(_0x1108('0x7'));var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x1108('0x8'));var RpcVoiceTransferReport=require(_0x1108('0x9'));var VoiceQueueReport=require(_0x1108('0xa'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x1108('0xb'));var UserReport=require('./userReport');function Report(_0x49905e){this[_0x1108('0xc')]=_0x49905e;this[_0x1108('0xd')]=_0x49905e['agents'];this[_0x1108('0xe')]=_0x49905e[_0x1108('0xe')];}Report['prototype'][_0x1108('0xf')]=function(_0x337461){var _0x4f061d=new VoiceQueueReport(this[_0x1108('0xc')]);var _0x252f2e=new VoiceAgentReport(this['realtime']);var _0x5f1731=new VoiceDialReport(this[_0x1108('0xc')]);var _0x33a365=new VoiceCallReport(this[_0x1108('0xc')]);var _0x25025e=new UserReport(this[_0x1108('0xc')]);if(config[_0x1108('0x10')]&&config[_0x1108('0x10')][_0x1108('0x11')]){ami['on']('custom:voiceQueueReport',this[_0x1108('0x12')][_0x1108('0x13')](this));ami['on'](_0x1108('0x14'),this[_0x1108('0x15')][_0x1108('0x13')](this));ami['on'](_0x1108('0x16'),this[_0x1108('0x17')][_0x1108('0x13')](this));ami['on'](_0x1108('0x18'),this[_0x1108('0x19')]['bind'](this));ami['on'](_0x1108('0x1a'),this[_0x1108('0x1b')]['bind'](this));ami['on'](_0x1108('0x1c'),this[_0x1108('0x1d')][_0x1108('0x13')](this));}};Report[_0x1108('0x1e')][_0x1108('0x1f')]=function(_0x14a273){var _0x26f03c=undefined;_0x26f03c=_[_0x1108('0x20')](this[_0x1108('0xd')],function(_0x27fe1f){return _0x27fe1f[_0x1108('0x21')]==_0x14a273||_0x27fe1f[_0x1108('0x22')]==_0x14a273;});if(_[_0x1108('0x23')](_0x26f03c)){var _0x364fdb=_[_0x1108('0x20')](this[_0x1108('0xe')],function(_0xb8f73c){return _0xb8f73c[_0x1108('0x21')]==_0x14a273||_0xb8f73c['name']==_0x14a273;});if(_0x364fdb){_0x26f03c=_[_0x1108('0x20')](this['agents'],function(_0x2e7c9c){return _0x2e7c9c['interface']==util['format'](_0x1108('0x24'),_0x364fdb[_0x1108('0x22')]);});}}return _0x26f03c;};Report['prototype']['voiceQueueReport']=function(_0x1d4d13){for(var _0x16d86c=0x0;_0x16d86c<_0x1d4d13[_0x1108('0x25')];_0x16d86c+=0x1){var _0x3c2b73=this['findAgent'](_0x1d4d13[_0x16d86c][_0x1108('0x26')]);if(_0x3c2b73){_0x1d4d13[_0x16d86c][_0x1108('0x21')]=_0x3c2b73[_0x1108('0x21')];_0x1d4d13[_0x16d86c][_0x1108('0x27')]=!![];_0x1d4d13[_0x16d86c]['lastAssignedTo']=_0x3c2b73[_0x1108('0x22')];_0x1d4d13[_0x16d86c][_0x1108('0x28')]=_[_0x1108('0x23')](_0x3c2b73[_0x1108('0x28')])?util[_0x1108('0x29')](_0x1108('0x24'),_0x3c2b73['name']):_0x3c2b73[_0x1108('0x28')];if(_0x1d4d13[_0x16d86c][_0x1108('0x2a')]){_0x1d4d13[_0x16d86c][_0x1108('0x2b')]=moment()[_0x1108('0x29')](_0x1108('0x2c'));}if(_0x1d4d13[_0x16d86c]['queuecallerexit']){_0x1d4d13[_0x16d86c][_0x1108('0x2d')]=moment()[_0x1108('0x29')](_0x1108('0x2c'));}RpcMemberReport[_0x1108('0x12')](_0x1d4d13[_0x16d86c]);}RpcVoiceQueueReport[_0x1108('0x2e')](_0x1d4d13[_0x16d86c]);}};function extractCalleridNumber(_0x1e340e){var _0x552887=_0x1e340e['match'](/<(.*?)>/);return _0x552887?_0x552887[0x1]:_0x1e340e;}Report['prototype'][_0x1108('0x15')]=function(_0x1bbb53){_0x1bbb53['destination']=_0x1bbb53[_0x1108('0x2f')]||_0x1bbb53[_0x1108('0x30')];if(_0x1bbb53[_0x1108('0x31')]==_0x1108('0x32')){_0x1bbb53['lastapplication']=_0x1108('0x33');_0x1bbb53[_0x1108('0x34')]=_0x1bbb53['queue'];if(_0x1bbb53[_0x1108('0x35')]==_0x1108('0x36')){_0x1bbb53[_0x1108('0x21')]='';_0x1bbb53['destination']=extractCalleridNumber(_0x1bbb53['callerid']);}else if(_0x1bbb53[_0x1108('0x35')]==_0x1108('0x37')){if(_0x1bbb53['destination']=='xcally-motion-preview'){_0x1bbb53['destination']=extractCalleridNumber(_0x1bbb53[_0x1108('0x38')]);_0x1bbb53[_0x1108('0x39')]=_0x1bbb53['originatecalleridnum'];_0x1bbb53[_0x1108('0x3a')]=[_0x1bbb53[_0x1108('0x3b')],_0x1bbb53[_0x1108('0x3b')]=_0x1bbb53['destinationchannel']][0x0];_0x1bbb53[_0x1108('0x3c')]=_0x1bbb53[_0x1108('0x38')];}else{_0x1bbb53['destination']=_0x1bbb53[_0x1108('0x39')];_0x1bbb53['calleridnum']=_0x1bbb53[_0x1108('0x3d')];if(_0x1bbb53[_0x1108('0x3e')]==_0x1108('0x3f')){_0x1bbb53[_0x1108('0x21')]=_0x1bbb53[_0x1108('0x26')];}else{_0x1bbb53['accountcode']='';}}}}else{_0x1bbb53[_0x1108('0x3c')]=util[_0x1108('0x29')](_0x1108('0x40'),_0x1bbb53[_0x1108('0x41')],_0x1bbb53[_0x1108('0x39')]);}RpcVoiceCallReport[_0x1108('0x2e')](_0x1bbb53);if(_0x1bbb53['monitor']){for(var _0x5dd792=0x0;_0x5dd792<_0x1bbb53['monitors']['length'];_0x5dd792+=0x1){_0x1bbb53[_0x1108('0x42')]=_0x1bbb53[_0x1108('0x43')][_0x5dd792][_0x1108('0x44')];_0x1bbb53[_0x1108('0x45')]=_0x1bbb53['monitors'][_0x5dd792][_0x1108('0x45')];if(_0x1bbb53['exten']=='xcally-motion-preview'){_0x1bbb53['calleridnum']=_0x1bbb53[_0x1108('0x26')];_0x1bbb53[_0x1108('0x41')]=_0x1bbb53['connectedlinename'];_0x1bbb53[_0x1108('0x26')]=_0x1bbb53[_0x1108('0x21')];_0x1bbb53[_0x1108('0x46')]=_0x1bbb53[_0x1108('0x47')];_0x1bbb53[_0x1108('0x30')]=_0x1bbb53[_0x1108('0x3d')];}else if(_0x1bbb53[_0x1108('0x30')]==_0x1108('0x48')){_0x1bbb53['calleridnum']=_0x1bbb53[_0x1108('0x2f')];_0x1bbb53['exten']=_0x1bbb53['originatecalleridnum'];}RpcVoiceRecording['create'](_0x1bbb53);}}};Report[_0x1108('0x1e')]['voiceAgentReport']=function(_0x2e91df){if(_[_0x1108('0x49')](_0x2e91df)){_0x2e91df['forEach'](function(_0x9fefa3){RpcVoiceAgentReport['create'](_0x9fefa3);});}else{RpcVoiceAgentReport[_0x1108('0x2e')](_0x2e91df);}};Report[_0x1108('0x1e')][_0x1108('0x19')]=function(_0x3a49d9){RpcVoiceDialReport[_0x1108('0x2e')](_0x3a49d9);var _0x8f139b=undefined;var _0x17b9a0=_0x3a49d9[_0x1108('0x3b')];if(_[_0x1108('0x4a')](_0x17b9a0,'Local')){var _0x50ddc1=_0x17b9a0[_0x1108('0x4b')](_0x17b9a0['indexOf']('/')+0x1,_0x17b9a0[_0x1108('0x4c')]('@'));_0x8f139b=_[_0x1108('0x20')](this[_0x1108('0xd')],function(_0x5af37b){return _0x5af37b['mobile']==_0x50ddc1||_0x5af37b[_0x1108('0x4d')]==_0x50ddc1||_0x5af37b[_0x1108('0x21')]==_0x50ddc1;});}else{var _0x50ddc1=_0x17b9a0['substring'](_0x17b9a0[_0x1108('0x4c')]('/')+0x1,_0x17b9a0[_0x1108('0x4e')]('-'));_0x8f139b=this['findAgent'](_0x50ddc1);}if(_0x8f139b){_0x3a49d9['interface']=_[_0x1108('0x23')](_0x8f139b[_0x1108('0x28')])?util[_0x1108('0x29')](_0x1108('0x24'),_0x8f139b[_0x1108('0x22')]):_0x8f139b[_0x1108('0x28')];_0x3a49d9[_0x1108('0x47')]=_0x8f139b[_0x1108('0x22')];_0x3a49d9[_0x1108('0x21')]=_0x8f139b[_0x1108('0x21')];RpcMemberReport[_0x1108('0x19')](_0x3a49d9);}};Report['prototype'][_0x1108('0x1b')]=function(_0x2e44e6){RpcVoiceTransferReport[_0x1108('0x1b')](_0x2e44e6);};Report['prototype'][_0x1108('0x1d')]=function(_0x2449af){RpcVoiceTransferReport[_0x1108('0x1d')](_0x2449af);};module['exports']=Report;