Built motion from commit (unavailable).|2.4.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 _0x597d=['length','connectedlinenum','lastAssignedTo','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','match','destination','exten','dialer','lastapplication','queue','lastdata','from-voip-provider','callerid','context','calleridpreview','originatecalleridnum','destinationchannel','channel','calleridnum','disposition','ANSWERED','create','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','membername','voiceAgentReport','isArray','forEach','Local','substring','indexOf','mobile','lastIndexOf','exports','bluebird','lodash','util','../../../config/environment','../../../config/logger','ami','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','bind','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','voiceQueueReport'];(function(_0xd8fde7,_0x14173a){var _0x594397=function(_0x7cc272){while(--_0x7cc272){_0xd8fde7['push'](_0xd8fde7['shift']());}};_0x594397(++_0x14173a);}(_0x597d,0x11b));var _0xd597=function(_0x2e3163,_0x19308d){_0x2e3163=_0x2e3163-0x0;var _0x14863b=_0x597d[_0x2e3163];return _0x14863b;};'use strict';var BPromise=require(_0xd597('0x0'));var _=require(_0xd597('0x1'));var moment=require('moment');var util=require(_0xd597('0x2'));var config=require(_0xd597('0x3'));var logger=require(_0xd597('0x4'))(_0xd597('0x5'));var ami=require(_0xd597('0x6'));var RpcVoiceAgentReport=require(_0xd597('0x7'));var RpcVoiceCallReport=require(_0xd597('0x8'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0xd597('0x9'));var RpcVoiceQueueReport=require(_0xd597('0xa'));var RpcVoiceRecording=require(_0xd597('0xb'));var RpcVoiceTransferReport=require(_0xd597('0xc'));var VoiceQueueReport=require(_0xd597('0xd'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0xd597('0xe'));var VoiceDialReport=require(_0xd597('0xf'));var UserReport=require('./userReport');function Report(_0xc868c){this[_0xd597('0x10')]=_0xc868c;this[_0xd597('0x11')]=_0xc868c['agents'];this[_0xd597('0x12')]=_0xc868c[_0xd597('0x12')];}Report[_0xd597('0x13')][_0xd597('0x14')]=function(_0x325f11){var _0x1c9f2a=new VoiceQueueReport(this['realtime']);var _0x1a9399=new VoiceAgentReport(this[_0xd597('0x10')]);var _0x13ece1=new VoiceDialReport(this[_0xd597('0x10')]);var _0x131f19=new VoiceCallReport(this[_0xd597('0x10')]);var _0x1d837c=new UserReport(this[_0xd597('0x10')]);if(config['xdr']&&config[_0xd597('0x15')][_0xd597('0x16')]){ami['on'](_0xd597('0x17'),this['voiceQueueReport']['bind'](this));ami['on'](_0xd597('0x18'),this[_0xd597('0x19')]['bind'](this));ami['on'](_0xd597('0x1a'),this['voiceAgentReport'][_0xd597('0x1b')](this));ami['on'](_0xd597('0x1c'),this[_0xd597('0x1d')]['bind'](this));ami['on']('blindtransfer',this[_0xd597('0x1e')][_0xd597('0x1b')](this));ami['on']('attendedtransfer',this[_0xd597('0x1f')][_0xd597('0x1b')](this));}};Report[_0xd597('0x13')][_0xd597('0x20')]=function(_0x2068f0){var _0x4a318a=undefined;_0x4a318a=_[_0xd597('0x21')](this[_0xd597('0x11')],function(_0x138e7f){return _0x138e7f[_0xd597('0x22')]==_0x2068f0||_0x138e7f[_0xd597('0x23')]==_0x2068f0;});if(_[_0xd597('0x24')](_0x4a318a)){var _0x16425f=_[_0xd597('0x21')](this[_0xd597('0x12')],function(_0x1833d4){return _0x1833d4['accountcode']==_0x2068f0||_0x1833d4[_0xd597('0x23')]==_0x2068f0;});if(_0x16425f){_0x4a318a=_[_0xd597('0x21')](this[_0xd597('0x11')],function(_0x2b0a20){return _0x2b0a20[_0xd597('0x25')]==util[_0xd597('0x26')](_0xd597('0x27'),_0x16425f['name']);});}}return _0x4a318a;};Report[_0xd597('0x13')][_0xd597('0x28')]=function(_0x5975f0){for(var _0x53c496=0x0;_0x53c496<_0x5975f0[_0xd597('0x29')];_0x53c496+=0x1){var _0x346429=this[_0xd597('0x20')](_0x5975f0[_0x53c496][_0xd597('0x2a')]);if(_0x346429){_0x5975f0[_0x53c496][_0xd597('0x22')]=_0x346429[_0xd597('0x22')];_0x5975f0[_0x53c496]['assigned']=!![];_0x5975f0[_0x53c496][_0xd597('0x2b')]=_0x346429['name'];_0x5975f0[_0x53c496][_0xd597('0x25')]=_[_0xd597('0x24')](_0x346429['interface'])?util[_0xd597('0x26')]('SIP/%s',_0x346429[_0xd597('0x23')]):_0x346429[_0xd597('0x25')];if(_0x5975f0[_0x53c496]['queuecallercomplete']){_0x5975f0[_0x53c496][_0xd597('0x2c')]=moment()[_0xd597('0x26')](_0xd597('0x2d'));}if(_0x5975f0[_0x53c496]['queuecallerexit']){_0x5975f0[_0x53c496][_0xd597('0x2e')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0xd597('0x28')](_0x5975f0[_0x53c496]);}RpcVoiceQueueReport['create'](_0x5975f0[_0x53c496]);}};function extractCalleridNumber(_0x1a735c){var _0x582134=_0x1a735c[_0xd597('0x2f')](/<(.*?)>/);return _0x582134?_0x582134[0x1]:_0x1a735c;}Report[_0xd597('0x13')][_0xd597('0x19')]=function(_0x21ffae){_0x21ffae[_0xd597('0x30')]=_0x21ffae[_0xd597('0x30')]||_0x21ffae[_0xd597('0x31')];if(_0x21ffae['type']==_0xd597('0x32')){_0x21ffae[_0xd597('0x33')]=_0xd597('0x34');_0x21ffae[_0xd597('0x35')]=_0x21ffae['queue'];if(_0x21ffae['context']==_0xd597('0x36')){_0x21ffae[_0xd597('0x22')]='';_0x21ffae[_0xd597('0x30')]=extractCalleridNumber(_0x21ffae[_0xd597('0x37')]);}else if(_0x21ffae[_0xd597('0x38')]=='from-sip'){if(_0x21ffae['destination']=='xcally-motion-preview'){_0x21ffae[_0xd597('0x30')]=extractCalleridNumber(_0x21ffae[_0xd597('0x39')]);_0x21ffae['calleridnum']=_0x21ffae[_0xd597('0x3a')];_0x21ffae[_0xd597('0x3b')]=[_0x21ffae[_0xd597('0x3c')],_0x21ffae[_0xd597('0x3c')]=_0x21ffae['destinationchannel']][0x0];_0x21ffae[_0xd597('0x37')]=_0x21ffae['calleridpreview'];}else{_0x21ffae[_0xd597('0x30')]=_0x21ffae[_0xd597('0x3d')];_0x21ffae['calleridnum']=_0x21ffae[_0xd597('0x3a')];if(_0x21ffae[_0xd597('0x3e')]==_0xd597('0x3f')){_0x21ffae['accountcode']=_0x21ffae[_0xd597('0x2a')];}else{_0x21ffae['accountcode']='';}}}}else{_0x21ffae[_0xd597('0x37')]=util[_0xd597('0x26')]('\x22%s\x22\x20<%s>',_0x21ffae['calleridname'],_0x21ffae[_0xd597('0x3d')]);}RpcVoiceCallReport[_0xd597('0x40')](_0x21ffae);if(_0x21ffae[_0xd597('0x41')]){for(var _0x556831=0x0;_0x556831<_0x21ffae[_0xd597('0x42')][_0xd597('0x29')];_0x556831+=0x1){_0x21ffae[_0xd597('0x43')]=_0x21ffae[_0xd597('0x42')][_0x556831][_0xd597('0x44')];_0x21ffae[_0xd597('0x45')]=_0x21ffae['monitors'][_0x556831][_0xd597('0x45')];if(_0x21ffae['exten']=='xcally-motion-preview'){_0x21ffae['calleridnum']=_0x21ffae['connectedlinenum'];_0x21ffae['calleridname']=_0x21ffae['connectedlinename'];_0x21ffae[_0xd597('0x2a')]=_0x21ffae[_0xd597('0x22')];_0x21ffae[_0xd597('0x46')]=_0x21ffae[_0xd597('0x47')];_0x21ffae[_0xd597('0x31')]=_0x21ffae[_0xd597('0x3a')];}else if(_0x21ffae[_0xd597('0x31')]=='xcally-motion-dialer'){_0x21ffae[_0xd597('0x3d')]=_0x21ffae['destination'];_0x21ffae[_0xd597('0x31')]=_0x21ffae[_0xd597('0x3a')];}RpcVoiceRecording['create'](_0x21ffae);}}};Report[_0xd597('0x13')][_0xd597('0x48')]=function(_0x5af7ba){if(_[_0xd597('0x49')](_0x5af7ba)){_0x5af7ba[_0xd597('0x4a')](function(_0x21a3c9){RpcVoiceAgentReport['create'](_0x21a3c9);});}else{RpcVoiceAgentReport[_0xd597('0x40')](_0x5af7ba);}};Report[_0xd597('0x13')]['voiceDialReport']=function(_0x5bd4cc){RpcVoiceDialReport[_0xd597('0x40')](_0x5bd4cc);var _0x300b03=undefined;var _0x4bf93b=_0x5bd4cc['channel'];if(_['startsWith'](_0x4bf93b,_0xd597('0x4b'))){var _0x2e155e=_0x4bf93b[_0xd597('0x4c')](_0x4bf93b[_0xd597('0x4d')]('/')+0x1,_0x4bf93b[_0xd597('0x4d')]('@'));_0x300b03=_['find'](this[_0xd597('0x11')],function(_0xcad085){return _0xcad085[_0xd597('0x4e')]==_0x2e155e||_0xcad085['phone']==_0x2e155e||_0xcad085[_0xd597('0x22')]==_0x2e155e;});}else{var _0x2e155e=_0x4bf93b[_0xd597('0x4c')](_0x4bf93b[_0xd597('0x4d')]('/')+0x1,_0x4bf93b[_0xd597('0x4f')]('-'));_0x300b03=this[_0xd597('0x20')](_0x2e155e);}if(_0x300b03){_0x5bd4cc[_0xd597('0x25')]=_['isNil'](_0x300b03[_0xd597('0x25')])?util[_0xd597('0x26')]('SIP/%s',_0x300b03[_0xd597('0x23')]):_0x300b03[_0xd597('0x25')];_0x5bd4cc[_0xd597('0x47')]=_0x300b03[_0xd597('0x23')];_0x5bd4cc[_0xd597('0x22')]=_0x300b03[_0xd597('0x22')];RpcMemberReport[_0xd597('0x1d')](_0x5bd4cc);}};Report[_0xd597('0x13')][_0xd597('0x1e')]=function(_0x5253d1){RpcVoiceTransferReport[_0xd597('0x1e')](_0x5253d1);};Report['prototype'][_0xd597('0x1f')]=function(_0x71ed68){RpcVoiceTransferReport[_0xd597('0x1f')](_0x71ed68);};module[_0xd597('0x50')]=Report;