Built motion from commit (unavailable).|2.5.4
[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 _0x7790=['originatecalleridnum','destinationchannel','channel','callerid','calleridpreview','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','create','monitors','monitorFilename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','startsWith','Local','substring','mobile','lastIndexOf','findAgent','attendedTransfer','exports','bluebird','lodash','moment','util','../../../config/environment','../../../config/logger','ami','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','find','accountcode','name','isNil','interface','format','SIP/%s','length','connectedlinenum','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','match','destination','exten','dialer','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','xcally-motion-preview','calleridnum'];(function(_0x1cfc39,_0x15adef){var _0x1ae59b=function(_0x153274){while(--_0x153274){_0x1cfc39['push'](_0x1cfc39['shift']());}};_0x1ae59b(++_0x15adef);}(_0x7790,0x128));var _0x0779=function(_0x515c94,_0x2ffc71){_0x515c94=_0x515c94-0x0;var _0x47fe80=_0x7790[_0x515c94];return _0x47fe80;};'use strict';var BPromise=require(_0x0779('0x0'));var _=require(_0x0779('0x1'));var moment=require(_0x0779('0x2'));var util=require(_0x0779('0x3'));var config=require(_0x0779('0x4'));var logger=require(_0x0779('0x5'))(_0x0779('0x6'));var ami=require(_0x0779('0x7'));var RpcVoiceAgentReport=require(_0x0779('0x8'));var RpcVoiceCallReport=require(_0x0779('0x9'));var RpcVoiceDialReport=require(_0x0779('0xa'));var RpcMemberReport=require(_0x0779('0xb'));var RpcVoiceQueueReport=require(_0x0779('0xc'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x0779('0xd'));var VoiceQueueReport=require(_0x0779('0xe'));var VoiceCallReport=require(_0x0779('0xf'));var VoiceAgentReport=require(_0x0779('0x10'));var VoiceDialReport=require(_0x0779('0x11'));var UserReport=require(_0x0779('0x12'));function Report(_0x4ff278){this['realtime']=_0x4ff278;this['agents']=_0x4ff278[_0x0779('0x13')];this[_0x0779('0x14')]=_0x4ff278['telephones'];}Report[_0x0779('0x15')][_0x0779('0x16')]=function(_0x111b77){var _0x2ab68e=new VoiceQueueReport(this['realtime']);var _0x4835db=new VoiceAgentReport(this['realtime']);var _0x55c11d=new VoiceDialReport(this[_0x0779('0x17')]);var _0x58ce7b=new VoiceCallReport(this[_0x0779('0x17')]);var _0x2a6a62=new UserReport(this[_0x0779('0x17')]);if(config[_0x0779('0x18')]&&config['xdr'][_0x0779('0x19')]){ami['on'](_0x0779('0x1a'),this[_0x0779('0x1b')][_0x0779('0x1c')](this));ami['on'](_0x0779('0x1d'),this[_0x0779('0x1e')]['bind'](this));ami['on']('custom:voiceAgentReport',this[_0x0779('0x1f')][_0x0779('0x1c')](this));ami['on'](_0x0779('0x20'),this[_0x0779('0x21')][_0x0779('0x1c')](this));ami['on'](_0x0779('0x22'),this[_0x0779('0x23')]['bind'](this));ami['on'](_0x0779('0x24'),this['attendedTransfer'][_0x0779('0x1c')](this));}};Report[_0x0779('0x15')]['findAgent']=function(_0x43e2b5){var _0xbfc1f7=undefined;_0xbfc1f7=_[_0x0779('0x25')](this[_0x0779('0x13')],function(_0x42adee){return _0x42adee[_0x0779('0x26')]==_0x43e2b5||_0x42adee[_0x0779('0x27')]==_0x43e2b5;});if(_[_0x0779('0x28')](_0xbfc1f7)){var _0x41f6b8=_[_0x0779('0x25')](this[_0x0779('0x14')],function(_0x56af4d){return _0x56af4d[_0x0779('0x26')]==_0x43e2b5||_0x56af4d[_0x0779('0x27')]==_0x43e2b5;});if(_0x41f6b8){_0xbfc1f7=_[_0x0779('0x25')](this[_0x0779('0x13')],function(_0x2caf34){return _0x2caf34[_0x0779('0x29')]==util[_0x0779('0x2a')](_0x0779('0x2b'),_0x41f6b8[_0x0779('0x27')]);});}}return _0xbfc1f7;};Report[_0x0779('0x15')]['voiceQueueReport']=function(_0x23aea2){for(var _0x37240c=0x0;_0x37240c<_0x23aea2[_0x0779('0x2c')];_0x37240c+=0x1){var _0x1a326d=this['findAgent'](_0x23aea2[_0x37240c][_0x0779('0x2d')]);if(_0x1a326d){_0x23aea2[_0x37240c][_0x0779('0x26')]=_0x1a326d[_0x0779('0x26')];_0x23aea2[_0x37240c]['assigned']=!![];_0x23aea2[_0x37240c][_0x0779('0x2e')]=_0x1a326d[_0x0779('0x27')];_0x23aea2[_0x37240c][_0x0779('0x29')]=_[_0x0779('0x28')](_0x1a326d['interface'])?util['format'](_0x0779('0x2b'),_0x1a326d['name']):_0x1a326d[_0x0779('0x29')];if(_0x23aea2[_0x37240c][_0x0779('0x2f')]){_0x23aea2[_0x37240c][_0x0779('0x30')]=moment()[_0x0779('0x2a')](_0x0779('0x31'));}if(_0x23aea2[_0x37240c][_0x0779('0x32')]){_0x23aea2[_0x37240c][_0x0779('0x33')]=moment()['format'](_0x0779('0x31'));}RpcMemberReport['voiceQueueReport'](_0x23aea2[_0x37240c]);}RpcVoiceQueueReport['create'](_0x23aea2[_0x37240c]);}};function extractCalleridNumber(_0x328938){var _0x3c8e0b=_0x328938[_0x0779('0x34')](/<(.*?)>/);return _0x3c8e0b?_0x3c8e0b[0x1]:_0x328938;}Report['prototype'][_0x0779('0x1e')]=function(_0x583ef5){_0x583ef5['destination']=_0x583ef5[_0x0779('0x35')]||_0x583ef5[_0x0779('0x36')];if(_0x583ef5['type']==_0x0779('0x37')){_0x583ef5[_0x0779('0x38')]=_0x0779('0x39');_0x583ef5[_0x0779('0x3a')]=_0x583ef5[_0x0779('0x39')];if(_0x583ef5[_0x0779('0x3b')]==_0x0779('0x3c')){_0x583ef5[_0x0779('0x26')]='';_0x583ef5['destination']=extractCalleridNumber(_0x583ef5['callerid']);}else if(_0x583ef5[_0x0779('0x3b')]==_0x0779('0x3d')){if(_0x583ef5[_0x0779('0x35')]==_0x0779('0x3e')){_0x583ef5[_0x0779('0x35')]=extractCalleridNumber(_0x583ef5['calleridpreview']);_0x583ef5[_0x0779('0x3f')]=_0x583ef5[_0x0779('0x40')];_0x583ef5[_0x0779('0x41')]=[_0x583ef5[_0x0779('0x42')],_0x583ef5[_0x0779('0x42')]=_0x583ef5[_0x0779('0x41')]][0x0];_0x583ef5[_0x0779('0x43')]=_0x583ef5[_0x0779('0x44')];}else{_0x583ef5[_0x0779('0x35')]=_0x583ef5[_0x0779('0x3f')];_0x583ef5[_0x0779('0x3f')]=_0x583ef5[_0x0779('0x40')];if(_0x583ef5[_0x0779('0x45')]==_0x0779('0x46')){_0x583ef5[_0x0779('0x26')]=_0x583ef5['connectedlinenum'];}else{_0x583ef5[_0x0779('0x26')]='';}}}}else{_0x583ef5['callerid']=util[_0x0779('0x2a')](_0x0779('0x47'),_0x583ef5[_0x0779('0x48')],_0x583ef5['calleridnum']);}RpcVoiceCallReport[_0x0779('0x49')](_0x583ef5);if(_0x583ef5['monitor']){for(var _0x213a86=0x0;_0x213a86<_0x583ef5[_0x0779('0x4a')][_0x0779('0x2c')];_0x213a86+=0x1){_0x583ef5[_0x0779('0x4b')]=_0x583ef5['monitors'][_0x213a86]['filename'];_0x583ef5[_0x0779('0x4c')]=_0x583ef5[_0x0779('0x4a')][_0x213a86]['createdAt'];if(_0x583ef5[_0x0779('0x36')]==_0x0779('0x3e')){_0x583ef5[_0x0779('0x3f')]=_0x583ef5['connectedlinenum'];_0x583ef5[_0x0779('0x48')]=_0x583ef5[_0x0779('0x4d')];_0x583ef5[_0x0779('0x2d')]=_0x583ef5[_0x0779('0x26')];_0x583ef5['connectedlinename']=_0x583ef5[_0x0779('0x4e')];_0x583ef5[_0x0779('0x36')]=_0x583ef5[_0x0779('0x40')];}else if(_0x583ef5['exten']==_0x0779('0x4f')){_0x583ef5[_0x0779('0x3f')]=_0x583ef5['destination'];_0x583ef5[_0x0779('0x36')]=_0x583ef5[_0x0779('0x40')];}RpcVoiceRecording[_0x0779('0x49')](_0x583ef5);}}};Report[_0x0779('0x15')]['voiceAgentReport']=function(_0x2313ed){if(_[_0x0779('0x50')](_0x2313ed)){_0x2313ed[_0x0779('0x51')](function(_0x4b1b1c){RpcVoiceAgentReport[_0x0779('0x49')](_0x4b1b1c);});}else{RpcVoiceAgentReport[_0x0779('0x49')](_0x2313ed);}};Report[_0x0779('0x15')][_0x0779('0x21')]=function(_0x9cdbb7){RpcVoiceDialReport['create'](_0x9cdbb7);var _0x4cd20f=undefined;var _0x4e853b=_0x9cdbb7[_0x0779('0x42')];if(_[_0x0779('0x52')](_0x4e853b,_0x0779('0x53'))){var _0x2f88f4=_0x4e853b[_0x0779('0x54')](_0x4e853b['indexOf']('/')+0x1,_0x4e853b['indexOf']('@'));_0x4cd20f=_[_0x0779('0x25')](this[_0x0779('0x13')],function(_0x3b33b4){return _0x3b33b4[_0x0779('0x55')]==_0x2f88f4||_0x3b33b4['phone']==_0x2f88f4||_0x3b33b4[_0x0779('0x26')]==_0x2f88f4;});}else{var _0x2f88f4=_0x4e853b['substring'](_0x4e853b['indexOf']('/')+0x1,_0x4e853b[_0x0779('0x56')]('-'));_0x4cd20f=this[_0x0779('0x57')](_0x2f88f4);}if(_0x4cd20f){_0x9cdbb7['interface']=_[_0x0779('0x28')](_0x4cd20f[_0x0779('0x29')])?util['format'](_0x0779('0x2b'),_0x4cd20f[_0x0779('0x27')]):_0x4cd20f[_0x0779('0x29')];_0x9cdbb7[_0x0779('0x4e')]=_0x4cd20f[_0x0779('0x27')];_0x9cdbb7[_0x0779('0x26')]=_0x4cd20f[_0x0779('0x26')];RpcMemberReport[_0x0779('0x21')](_0x9cdbb7);}};Report[_0x0779('0x15')][_0x0779('0x23')]=function(_0x18c617){RpcVoiceTransferReport['blindTransfer'](_0x18c617);};Report['prototype']['attendedTransfer']=function(_0x5612e6){RpcVoiceTransferReport[_0x0779('0x58')](_0x5612e6);};module[_0x0779('0x59')]=Report;