Built motion from commit (unavailable).|2.5.18
[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 _0xc7e4=['destinationchannel','channel','callerid','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','transfereelinkedid','uniqueid','blindTransfer','linkedid','monitors','monitorFilename','createdAt','connectedlinename','membername','xcally-motion-dialer','voiceDialReport','startsWith','Local','substring','indexOf','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','voiceCallReport','voiceAgentReport','custom:voiceDialReport','attendedTransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','prototype','length','connectedlinenum','lastAssignedTo','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','create','destination','exten','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum'];(function(_0x5c8dfe,_0xf70fde){var _0x3a762d=function(_0x1f9e8f){while(--_0x1f9e8f){_0x5c8dfe['push'](_0x5c8dfe['shift']());}};_0x3a762d(++_0xf70fde);}(_0xc7e4,0xb7));var _0x4c7e=function(_0x10411e,_0xefc01b){_0x10411e=_0x10411e-0x0;var _0x3c710e=_0xc7e4[_0x10411e];return _0x3c710e;};'use strict';var _=require(_0x4c7e('0x0'));var moment=require(_0x4c7e('0x1'));var util=require(_0x4c7e('0x2'));var config=require('../../../config/environment');var ami=require('../ami');var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x4c7e('0x3'));var RpcVoiceDialReport=require(_0x4c7e('0x4'));var RpcMemberReport=require(_0x4c7e('0x5'));var RpcVoiceQueueReport=require(_0x4c7e('0x6'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0x4c7e('0x7'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x4c7e('0x8'));var VoiceDialReport=require(_0x4c7e('0x9'));var UserReport=require(_0x4c7e('0xa'));function Report(_0x58e4a8){this[_0x4c7e('0xb')]=_0x58e4a8;this[_0x4c7e('0xc')]=_0x58e4a8[_0x4c7e('0xc')];this[_0x4c7e('0xd')]=_0x58e4a8[_0x4c7e('0xd')];}Report['prototype'][_0x4c7e('0xe')]=function(_0x28d379){var _0x4746df=new VoiceQueueReport(this[_0x4c7e('0xb')]);var _0xac00ad=new VoiceAgentReport(this['realtime']);var _0x290231=new VoiceDialReport(this['realtime']);var _0x4c5d3d=new VoiceCallReport(this[_0x4c7e('0xb')]);var _0x36e07e=new UserReport(this[_0x4c7e('0xb')]);if(config[_0x4c7e('0xf')]&&config[_0x4c7e('0xf')][_0x4c7e('0x10')]){ami['on'](_0x4c7e('0x11'),this[_0x4c7e('0x12')][_0x4c7e('0x13')](this));ami['on']('custom:voiceCallReport',this[_0x4c7e('0x14')][_0x4c7e('0x13')](this));ami['on']('custom:voiceAgentReport',this[_0x4c7e('0x15')][_0x4c7e('0x13')](this));ami['on'](_0x4c7e('0x16'),this['voiceDialReport']['bind'](this));ami['on']('blindtransfer',this['blindTransfer'][_0x4c7e('0x13')](this));ami['on']('attendedtransfer',this[_0x4c7e('0x17')][_0x4c7e('0x13')](this));}};Report['prototype'][_0x4c7e('0x18')]=function(_0x3146e0){var _0x36b496;_0x36b496=_[_0x4c7e('0x19')](this[_0x4c7e('0xc')],function(_0xc0fb6a){return _0xc0fb6a[_0x4c7e('0x1a')]==_0x3146e0||_0xc0fb6a[_0x4c7e('0x1b')]==_0x3146e0;});if(_[_0x4c7e('0x1c')](_0x36b496)){var _0x34c831=_['find'](this[_0x4c7e('0xd')],function(_0x3e940c){return _0x3e940c['accountcode']==_0x3146e0||_0x3e940c[_0x4c7e('0x1b')]==_0x3146e0;});if(_0x34c831){_0x36b496=_[_0x4c7e('0x19')](this[_0x4c7e('0xc')],function(_0x4ec8ce){return _0x4ec8ce[_0x4c7e('0x1d')]==util[_0x4c7e('0x1e')](_0x4c7e('0x1f'),_0x34c831[_0x4c7e('0x1b')]);});}}return _0x36b496;};Report[_0x4c7e('0x20')][_0x4c7e('0x12')]=function(_0x2d540a){for(var _0x48d4ee=0x0;_0x48d4ee<_0x2d540a[_0x4c7e('0x21')];_0x48d4ee+=0x1){var _0x4c6a7b=this[_0x4c7e('0x18')](_0x2d540a[_0x48d4ee][_0x4c7e('0x22')]);if(_0x4c6a7b){_0x2d540a[_0x48d4ee][_0x4c7e('0x1a')]=_0x4c6a7b[_0x4c7e('0x1a')];_0x2d540a[_0x48d4ee]['assigned']=!![];_0x2d540a[_0x48d4ee][_0x4c7e('0x23')]=_0x4c6a7b['name'];_0x2d540a[_0x48d4ee][_0x4c7e('0x1d')]=_[_0x4c7e('0x1c')](_0x4c6a7b[_0x4c7e('0x1d')])?util[_0x4c7e('0x1e')](_0x4c7e('0x1f'),_0x4c6a7b['name']):_0x4c6a7b[_0x4c7e('0x1d')];if(_0x2d540a[_0x48d4ee][_0x4c7e('0x24')]){_0x2d540a[_0x48d4ee]['queuecallercompleteAt']=moment()[_0x4c7e('0x1e')](_0x4c7e('0x25'));}if(_0x2d540a[_0x48d4ee]['queuecallerexit']){_0x2d540a[_0x48d4ee][_0x4c7e('0x26')]=moment()[_0x4c7e('0x1e')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport['voiceQueueReport'](_0x2d540a[_0x48d4ee]);}RpcVoiceQueueReport[_0x4c7e('0x27')](_0x2d540a[_0x48d4ee]);}};function extractCalleridNumber(_0x44e8b3){var _0x97a86b=_0x44e8b3['match'](/<(.*?)>/);return _0x97a86b?_0x97a86b[0x1]:_0x44e8b3;}Report[_0x4c7e('0x20')][_0x4c7e('0x14')]=function(_0x55a8fa){_0x55a8fa[_0x4c7e('0x28')]=_0x55a8fa['destination']||_0x55a8fa[_0x4c7e('0x29')];if(_0x55a8fa[_0x4c7e('0x2a')]==_0x4c7e('0x2b')){_0x55a8fa[_0x4c7e('0x2c')]=_0x4c7e('0x2d');_0x55a8fa[_0x4c7e('0x2e')]=_0x55a8fa[_0x4c7e('0x2d')];if(_0x55a8fa[_0x4c7e('0x2f')]==_0x4c7e('0x30')){_0x55a8fa[_0x4c7e('0x1a')]='';_0x55a8fa[_0x4c7e('0x28')]=extractCalleridNumber(_0x55a8fa['callerid']);}else if(_0x55a8fa[_0x4c7e('0x2f')]==_0x4c7e('0x31')){if(_0x55a8fa[_0x4c7e('0x28')]==_0x4c7e('0x32')){_0x55a8fa[_0x4c7e('0x28')]=extractCalleridNumber(_0x55a8fa[_0x4c7e('0x33')]);_0x55a8fa[_0x4c7e('0x34')]=_0x55a8fa[_0x4c7e('0x35')];_0x55a8fa[_0x4c7e('0x36')]=[_0x55a8fa[_0x4c7e('0x37')],_0x55a8fa[_0x4c7e('0x37')]=_0x55a8fa[_0x4c7e('0x36')]][0x0];_0x55a8fa[_0x4c7e('0x38')]=_0x55a8fa[_0x4c7e('0x33')];}else{_0x55a8fa[_0x4c7e('0x28')]=_0x55a8fa[_0x4c7e('0x34')];_0x55a8fa[_0x4c7e('0x34')]=_0x55a8fa['originatecalleridnum'];if(_0x55a8fa['disposition']==_0x4c7e('0x39')){_0x55a8fa[_0x4c7e('0x1a')]=_0x55a8fa[_0x4c7e('0x22')];}else{_0x55a8fa['accountcode']='';}}}}else{_0x55a8fa[_0x4c7e('0x38')]=util['format'](_0x4c7e('0x3a'),_0x55a8fa[_0x4c7e('0x3b')],_0x55a8fa[_0x4c7e('0x34')]);}if(RpcVoiceTransferReport[_0x4c7e('0x3c')][_0x55a8fa['linkedid']]){var _0x1913ed=RpcVoiceTransferReport[_0x4c7e('0x3c')][_0x55a8fa['linkedid']];_0x1913ed[_0x4c7e('0x3d')]=_0x55a8fa[_0x4c7e('0x3e')];RpcVoiceTransferReport[_0x4c7e('0x3f')](_0x1913ed);delete RpcVoiceTransferReport[_0x4c7e('0x3c')][_0x55a8fa[_0x4c7e('0x40')]];}RpcVoiceCallReport['create'](_0x55a8fa);if(_0x55a8fa['monitor']){for(var _0x397220=0x0;_0x397220<_0x55a8fa[_0x4c7e('0x41')]['length'];_0x397220+=0x1){_0x55a8fa[_0x4c7e('0x42')]=_0x55a8fa[_0x4c7e('0x41')][_0x397220]['filename'];_0x55a8fa[_0x4c7e('0x43')]=_0x55a8fa['monitors'][_0x397220][_0x4c7e('0x43')];if(_0x55a8fa['exten']==_0x4c7e('0x32')){_0x55a8fa['calleridnum']=_0x55a8fa[_0x4c7e('0x22')];_0x55a8fa[_0x4c7e('0x3b')]=_0x55a8fa[_0x4c7e('0x44')];_0x55a8fa[_0x4c7e('0x22')]=_0x55a8fa['accountcode'];_0x55a8fa[_0x4c7e('0x44')]=_0x55a8fa[_0x4c7e('0x45')];_0x55a8fa['exten']=_0x55a8fa[_0x4c7e('0x35')];}else if(_0x55a8fa[_0x4c7e('0x29')]==_0x4c7e('0x46')){_0x55a8fa['calleridnum']=_0x55a8fa['destination'];_0x55a8fa[_0x4c7e('0x29')]=_0x55a8fa[_0x4c7e('0x35')];}RpcVoiceRecording['create'](_0x55a8fa);}}};Report[_0x4c7e('0x20')][_0x4c7e('0x15')]=function(_0x45ff6a){if(_['isArray'](_0x45ff6a)){_0x45ff6a['forEach'](function(_0x29df5d){RpcVoiceAgentReport[_0x4c7e('0x27')](_0x29df5d);});}else{RpcVoiceAgentReport[_0x4c7e('0x27')](_0x45ff6a);}};Report[_0x4c7e('0x20')][_0x4c7e('0x47')]=function(_0x1931d7){RpcVoiceDialReport[_0x4c7e('0x27')](_0x1931d7);var _0x4a01d9;var _0x540f16;var _0x33d86a=_0x1931d7[_0x4c7e('0x37')];if(_[_0x4c7e('0x48')](_0x33d86a,_0x4c7e('0x49'))){_0x540f16=_0x33d86a[_0x4c7e('0x4a')](_0x33d86a[_0x4c7e('0x4b')]('/')+0x1,_0x33d86a[_0x4c7e('0x4b')]('@'));_0x4a01d9=_['find'](this['agents'],function(_0xde335b){return _0xde335b['mobile']==_0x540f16||_0xde335b['phone']==_0x540f16||_0xde335b[_0x4c7e('0x1a')]==_0x540f16;});}else{_0x540f16=_0x33d86a[_0x4c7e('0x4a')](_0x33d86a['indexOf']('/')+0x1,_0x33d86a[_0x4c7e('0x4c')]('-'));_0x4a01d9=this[_0x4c7e('0x18')](_0x540f16);}if(_0x4a01d9){_0x1931d7['interface']=_[_0x4c7e('0x1c')](_0x4a01d9[_0x4c7e('0x1d')])?util['format']('SIP/%s',_0x4a01d9['name']):_0x4a01d9[_0x4c7e('0x1d')];_0x1931d7[_0x4c7e('0x45')]=_0x4a01d9[_0x4c7e('0x1b')];_0x1931d7['accountcode']=_0x4a01d9['accountcode'];RpcMemberReport[_0x4c7e('0x47')](_0x1931d7);}};Report[_0x4c7e('0x20')][_0x4c7e('0x3f')]=function(_0x2d2752){RpcVoiceTransferReport['transfers'][_0x2d2752[_0x4c7e('0x4d')]]=_0x2d2752;};Report[_0x4c7e('0x20')]['attendedTransfer']=function(_0x144f37){RpcVoiceTransferReport[_0x4c7e('0x17')](_0x144f37);};module[_0x4c7e('0x4e')]=Report;