Built motion from commit (unavailable).|2.5.5
[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 _0xab3a=['custom:voiceCallReport','voiceCallReport','custom:voiceDialReport','blindTransfer','attendedtransfer','findAgent','accountcode','name','find','interface','length','connectedlinenum','assigned','isNil','format','SIP/%s','queuecallercompleteAt','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','destination','exten','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','destinationchannel','channel','disposition','\x22%s\x22\x20<%s>','calleridname','monitor','monitors','filename','createdAt','connectedlinename','membername','originatecalleridnum','xcally-motion-dialer','voiceAgentReport','isArray','forEach','voiceDialReport','substring','indexOf','phone','attendedTransfer','bluebird','lodash','moment','util','../../../config/environment','../../../config/logger','ami','../ami','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','custom:voiceQueueReport','voiceQueueReport','bind'];(function(_0xe2c95e,_0x3e6545){var _0x42ce6f=function(_0x218482){while(--_0x218482){_0xe2c95e['push'](_0xe2c95e['shift']());}};_0x42ce6f(++_0x3e6545);}(_0xab3a,0x1cd));var _0xaab3=function(_0x2150d9,_0x23c4aa){_0x2150d9=_0x2150d9-0x0;var _0x54fa94=_0xab3a[_0x2150d9];return _0x54fa94;};'use strict';var BPromise=require(_0xaab3('0x0'));var _=require(_0xaab3('0x1'));var moment=require(_0xaab3('0x2'));var util=require(_0xaab3('0x3'));var config=require(_0xaab3('0x4'));var logger=require(_0xaab3('0x5'))(_0xaab3('0x6'));var ami=require(_0xaab3('0x7'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0xaab3('0x8'));var RpcMemberReport=require(_0xaab3('0x9'));var RpcVoiceQueueReport=require(_0xaab3('0xa'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0xaab3('0xb'));var VoiceQueueReport=require(_0xaab3('0xc'));var VoiceCallReport=require(_0xaab3('0xd'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xaab3('0xe'));var UserReport=require(_0xaab3('0xf'));function Report(_0x5de884){this['realtime']=_0x5de884;this[_0xaab3('0x10')]=_0x5de884[_0xaab3('0x10')];this[_0xaab3('0x11')]=_0x5de884[_0xaab3('0x11')];}Report[_0xaab3('0x12')][_0xaab3('0x13')]=function(_0x2a603e){var _0x846c1c=new VoiceQueueReport(this[_0xaab3('0x14')]);var _0x157f8e=new VoiceAgentReport(this[_0xaab3('0x14')]);var _0x295b7a=new VoiceDialReport(this[_0xaab3('0x14')]);var _0x588b80=new VoiceCallReport(this[_0xaab3('0x14')]);var _0x30bc24=new UserReport(this[_0xaab3('0x14')]);if(config[_0xaab3('0x15')]&&config[_0xaab3('0x15')]['disabled']){ami['on'](_0xaab3('0x16'),this[_0xaab3('0x17')][_0xaab3('0x18')](this));ami['on'](_0xaab3('0x19'),this[_0xaab3('0x1a')][_0xaab3('0x18')](this));ami['on']('custom:voiceAgentReport',this['voiceAgentReport'][_0xaab3('0x18')](this));ami['on'](_0xaab3('0x1b'),this['voiceDialReport']['bind'](this));ami['on']('blindtransfer',this[_0xaab3('0x1c')][_0xaab3('0x18')](this));ami['on'](_0xaab3('0x1d'),this['attendedTransfer']['bind'](this));}};Report[_0xaab3('0x12')][_0xaab3('0x1e')]=function(_0x112f2c){var _0x2e73d3=undefined;_0x2e73d3=_['find'](this[_0xaab3('0x10')],function(_0x2494d5){return _0x2494d5[_0xaab3('0x1f')]==_0x112f2c||_0x2494d5[_0xaab3('0x20')]==_0x112f2c;});if(_['isNil'](_0x2e73d3)){var _0x16b6d2=_['find'](this[_0xaab3('0x11')],function(_0x38d079){return _0x38d079[_0xaab3('0x1f')]==_0x112f2c||_0x38d079[_0xaab3('0x20')]==_0x112f2c;});if(_0x16b6d2){_0x2e73d3=_[_0xaab3('0x21')](this[_0xaab3('0x10')],function(_0x33c5e6){return _0x33c5e6[_0xaab3('0x22')]==util['format']('SIP/%s',_0x16b6d2[_0xaab3('0x20')]);});}}return _0x2e73d3;};Report[_0xaab3('0x12')][_0xaab3('0x17')]=function(_0x2fd4db){for(var _0x2fb59e=0x0;_0x2fb59e<_0x2fd4db[_0xaab3('0x23')];_0x2fb59e+=0x1){var _0x3d760c=this[_0xaab3('0x1e')](_0x2fd4db[_0x2fb59e][_0xaab3('0x24')]);if(_0x3d760c){_0x2fd4db[_0x2fb59e][_0xaab3('0x1f')]=_0x3d760c[_0xaab3('0x1f')];_0x2fd4db[_0x2fb59e][_0xaab3('0x25')]=!![];_0x2fd4db[_0x2fb59e]['lastAssignedTo']=_0x3d760c[_0xaab3('0x20')];_0x2fd4db[_0x2fb59e][_0xaab3('0x22')]=_[_0xaab3('0x26')](_0x3d760c[_0xaab3('0x22')])?util[_0xaab3('0x27')](_0xaab3('0x28'),_0x3d760c[_0xaab3('0x20')]):_0x3d760c[_0xaab3('0x22')];if(_0x2fd4db[_0x2fb59e]['queuecallercomplete']){_0x2fd4db[_0x2fb59e][_0xaab3('0x29')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x2fd4db[_0x2fb59e]['queuecallerexit']){_0x2fd4db[_0x2fb59e][_0xaab3('0x2a')]=moment()['format'](_0xaab3('0x2b'));}RpcMemberReport[_0xaab3('0x17')](_0x2fd4db[_0x2fb59e]);}RpcVoiceQueueReport[_0xaab3('0x2c')](_0x2fd4db[_0x2fb59e]);}};function extractCalleridNumber(_0x4964ba){var _0x58f127=_0x4964ba[_0xaab3('0x2d')](/<(.*?)>/);return _0x58f127?_0x58f127[0x1]:_0x4964ba;}Report[_0xaab3('0x12')]['voiceCallReport']=function(_0x34ec6d){_0x34ec6d[_0xaab3('0x2e')]=_0x34ec6d[_0xaab3('0x2e')]||_0x34ec6d[_0xaab3('0x2f')];if(_0x34ec6d[_0xaab3('0x30')]==_0xaab3('0x31')){_0x34ec6d[_0xaab3('0x32')]=_0xaab3('0x33');_0x34ec6d[_0xaab3('0x34')]=_0x34ec6d[_0xaab3('0x33')];if(_0x34ec6d[_0xaab3('0x35')]==_0xaab3('0x36')){_0x34ec6d[_0xaab3('0x1f')]='';_0x34ec6d[_0xaab3('0x2e')]=extractCalleridNumber(_0x34ec6d[_0xaab3('0x37')]);}else if(_0x34ec6d[_0xaab3('0x35')]==_0xaab3('0x38')){if(_0x34ec6d[_0xaab3('0x2e')]==_0xaab3('0x39')){_0x34ec6d['destination']=extractCalleridNumber(_0x34ec6d[_0xaab3('0x3a')]);_0x34ec6d[_0xaab3('0x3b')]=_0x34ec6d['originatecalleridnum'];_0x34ec6d[_0xaab3('0x3c')]=[_0x34ec6d[_0xaab3('0x3d')],_0x34ec6d[_0xaab3('0x3d')]=_0x34ec6d[_0xaab3('0x3c')]][0x0];_0x34ec6d[_0xaab3('0x37')]=_0x34ec6d[_0xaab3('0x3a')];}else{_0x34ec6d[_0xaab3('0x2e')]=_0x34ec6d[_0xaab3('0x3b')];_0x34ec6d[_0xaab3('0x3b')]=_0x34ec6d['originatecalleridnum'];if(_0x34ec6d[_0xaab3('0x3e')]=='ANSWERED'){_0x34ec6d[_0xaab3('0x1f')]=_0x34ec6d[_0xaab3('0x24')];}else{_0x34ec6d['accountcode']='';}}}}else{_0x34ec6d['callerid']=util[_0xaab3('0x27')](_0xaab3('0x3f'),_0x34ec6d[_0xaab3('0x40')],_0x34ec6d[_0xaab3('0x3b')]);}RpcVoiceCallReport[_0xaab3('0x2c')](_0x34ec6d);if(_0x34ec6d[_0xaab3('0x41')]){for(var _0x12dd29=0x0;_0x12dd29<_0x34ec6d[_0xaab3('0x42')][_0xaab3('0x23')];_0x12dd29+=0x1){_0x34ec6d['monitorFilename']=_0x34ec6d[_0xaab3('0x42')][_0x12dd29][_0xaab3('0x43')];_0x34ec6d['createdAt']=_0x34ec6d[_0xaab3('0x42')][_0x12dd29][_0xaab3('0x44')];if(_0x34ec6d[_0xaab3('0x2f')]=='xcally-motion-preview'){_0x34ec6d[_0xaab3('0x3b')]=_0x34ec6d['connectedlinenum'];_0x34ec6d[_0xaab3('0x40')]=_0x34ec6d[_0xaab3('0x45')];_0x34ec6d['connectedlinenum']=_0x34ec6d['accountcode'];_0x34ec6d['connectedlinename']=_0x34ec6d[_0xaab3('0x46')];_0x34ec6d['exten']=_0x34ec6d[_0xaab3('0x47')];}else if(_0x34ec6d[_0xaab3('0x2f')]==_0xaab3('0x48')){_0x34ec6d[_0xaab3('0x3b')]=_0x34ec6d[_0xaab3('0x2e')];_0x34ec6d[_0xaab3('0x2f')]=_0x34ec6d[_0xaab3('0x47')];}RpcVoiceRecording[_0xaab3('0x2c')](_0x34ec6d);}}};Report['prototype'][_0xaab3('0x49')]=function(_0x2e083d){if(_[_0xaab3('0x4a')](_0x2e083d)){_0x2e083d[_0xaab3('0x4b')](function(_0x28a12a){RpcVoiceAgentReport['create'](_0x28a12a);});}else{RpcVoiceAgentReport['create'](_0x2e083d);}};Report['prototype'][_0xaab3('0x4c')]=function(_0x309b2a){RpcVoiceDialReport['create'](_0x309b2a);var _0x95a55=undefined;var _0x5bff4a=_0x309b2a[_0xaab3('0x3d')];if(_['startsWith'](_0x5bff4a,'Local')){var _0xa35e1c=_0x5bff4a[_0xaab3('0x4d')](_0x5bff4a[_0xaab3('0x4e')]('/')+0x1,_0x5bff4a['indexOf']('@'));_0x95a55=_['find'](this[_0xaab3('0x10')],function(_0x355a6e){return _0x355a6e['mobile']==_0xa35e1c||_0x355a6e[_0xaab3('0x4f')]==_0xa35e1c||_0x355a6e[_0xaab3('0x1f')]==_0xa35e1c;});}else{var _0xa35e1c=_0x5bff4a['substring'](_0x5bff4a[_0xaab3('0x4e')]('/')+0x1,_0x5bff4a['lastIndexOf']('-'));_0x95a55=this['findAgent'](_0xa35e1c);}if(_0x95a55){_0x309b2a[_0xaab3('0x22')]=_[_0xaab3('0x26')](_0x95a55[_0xaab3('0x22')])?util[_0xaab3('0x27')](_0xaab3('0x28'),_0x95a55[_0xaab3('0x20')]):_0x95a55['interface'];_0x309b2a[_0xaab3('0x46')]=_0x95a55['name'];_0x309b2a[_0xaab3('0x1f')]=_0x95a55['accountcode'];RpcMemberReport[_0xaab3('0x4c')](_0x309b2a);}};Report[_0xaab3('0x12')][_0xaab3('0x1c')]=function(_0x361136){RpcVoiceTransferReport['blindTransfer'](_0x361136);};Report[_0xaab3('0x12')][_0xaab3('0x50')]=function(_0x230342){RpcVoiceTransferReport[_0xaab3('0x50')](_0x230342);};module['exports']=Report;