eccdccd6df24af023bf54f9098e786fce5c95c59
[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 _0xdbbc=['SIP/%s','blindTransfer','exports','lodash','../../../config/environment','../../../config/logger','ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','./voiceQueueReport','./voiceCallReport','./voiceDialReport','realtime','agents','telephones','prototype','sync','xdr','disabled','voiceQueueReport','bind','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','findAgent','name','isNil','find','accountcode','interface','format','length','connectedlinenum','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','destination','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','callerid','calleridpreview','calleridnum','originatecalleridnum','channel','destinationchannel','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','monitor','monitors','monitorFilename','createdAt','exten','xcally-motion-preview','connectedlinename','membername','xcally-motion-dialer','forEach','startsWith','substring','indexOf','mobile','phone','lastIndexOf'];(function(_0x1c3429,_0x11d159){var _0x1609bd=function(_0x5ce42c){while(--_0x5ce42c){_0x1c3429['push'](_0x1c3429['shift']());}};_0x1609bd(++_0x11d159);}(_0xdbbc,0x147));var _0xcdbb=function(_0x442c36,_0x3dbe3c){_0x442c36=_0x442c36-0x0;var _0x7f1070=_0xdbbc[_0x442c36];return _0x7f1070;};'use strict';var BPromise=require('bluebird');var _=require(_0xcdbb('0x0'));var moment=require('moment');var util=require('util');var config=require(_0xcdbb('0x1'));var logger=require(_0xcdbb('0x2'))(_0xcdbb('0x3'));var ami=require('../ami');var RpcVoiceAgentReport=require(_0xcdbb('0x4'));var RpcVoiceCallReport=require(_0xcdbb('0x5'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0xcdbb('0x6'));var RpcVoiceQueueReport=require(_0xcdbb('0x7'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0xcdbb('0x8'));var VoiceCallReport=require(_0xcdbb('0x9'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xcdbb('0xa'));var UserReport=require('./userReport');function Report(_0x148cf2){this[_0xcdbb('0xb')]=_0x148cf2;this[_0xcdbb('0xc')]=_0x148cf2[_0xcdbb('0xc')];this[_0xcdbb('0xd')]=_0x148cf2[_0xcdbb('0xd')];}Report[_0xcdbb('0xe')][_0xcdbb('0xf')]=function(_0x2737a9){var _0x34ee6a=new VoiceQueueReport(this['realtime']);var _0x36fd76=new VoiceAgentReport(this[_0xcdbb('0xb')]);var _0x5389fc=new VoiceDialReport(this[_0xcdbb('0xb')]);var _0x308c68=new VoiceCallReport(this[_0xcdbb('0xb')]);var _0x3e31a3=new UserReport(this['realtime']);if(config[_0xcdbb('0x10')]&&config['xdr'][_0xcdbb('0x11')]){ami['on']('custom:voiceQueueReport',this[_0xcdbb('0x12')][_0xcdbb('0x13')](this));ami['on']('custom:voiceCallReport',this[_0xcdbb('0x14')]['bind'](this));ami['on'](_0xcdbb('0x15'),this[_0xcdbb('0x16')][_0xcdbb('0x13')](this));ami['on']('custom:voiceDialReport',this[_0xcdbb('0x17')][_0xcdbb('0x13')](this));ami['on'](_0xcdbb('0x18'),this['blindTransfer'][_0xcdbb('0x13')](this));ami['on'](_0xcdbb('0x19'),this[_0xcdbb('0x1a')]['bind'](this));}};Report[_0xcdbb('0xe')][_0xcdbb('0x1b')]=function(_0x44c7b5){var _0x597e4e=undefined;_0x597e4e=_['find'](this[_0xcdbb('0xc')],function(_0x52994e){return _0x52994e['accountcode']==_0x44c7b5||_0x52994e[_0xcdbb('0x1c')]==_0x44c7b5;});if(_[_0xcdbb('0x1d')](_0x597e4e)){var _0x3c37db=_[_0xcdbb('0x1e')](this[_0xcdbb('0xd')],function(_0x1997df){return _0x1997df[_0xcdbb('0x1f')]==_0x44c7b5||_0x1997df[_0xcdbb('0x1c')]==_0x44c7b5;});if(_0x3c37db){_0x597e4e=_[_0xcdbb('0x1e')](this[_0xcdbb('0xc')],function(_0x4c643f){return _0x4c643f[_0xcdbb('0x20')]==util[_0xcdbb('0x21')]('SIP/%s',_0x3c37db[_0xcdbb('0x1c')]);});}}return _0x597e4e;};Report['prototype'][_0xcdbb('0x12')]=function(_0x11fdf9){for(var _0x3e7156=0x0;_0x3e7156<_0x11fdf9[_0xcdbb('0x22')];_0x3e7156+=0x1){var _0x32eba5=this['findAgent'](_0x11fdf9[_0x3e7156][_0xcdbb('0x23')]);if(_0x32eba5){_0x11fdf9[_0x3e7156]['accountcode']=_0x32eba5[_0xcdbb('0x1f')];_0x11fdf9[_0x3e7156]['assigned']=!![];_0x11fdf9[_0x3e7156][_0xcdbb('0x24')]=_0x32eba5[_0xcdbb('0x1c')];_0x11fdf9[_0x3e7156][_0xcdbb('0x20')]=_[_0xcdbb('0x1d')](_0x32eba5[_0xcdbb('0x20')])?util[_0xcdbb('0x21')]('SIP/%s',_0x32eba5[_0xcdbb('0x1c')]):_0x32eba5[_0xcdbb('0x20')];if(_0x11fdf9[_0x3e7156][_0xcdbb('0x25')]){_0x11fdf9[_0x3e7156][_0xcdbb('0x26')]=moment()[_0xcdbb('0x21')](_0xcdbb('0x27'));}if(_0x11fdf9[_0x3e7156][_0xcdbb('0x28')]){_0x11fdf9[_0x3e7156][_0xcdbb('0x29')]=moment()['format'](_0xcdbb('0x27'));}RpcMemberReport[_0xcdbb('0x12')](_0x11fdf9[_0x3e7156]);}RpcVoiceQueueReport[_0xcdbb('0x2a')](_0x11fdf9[_0x3e7156]);}};function extractCalleridNumber(_0x155cda){var _0xab6e80=_0x155cda[_0xcdbb('0x2b')](/<(.*?)>/);return _0xab6e80?_0xab6e80[0x1]:_0x155cda;}Report['prototype'][_0xcdbb('0x14')]=function(_0x5c589b){_0x5c589b[_0xcdbb('0x2c')]=_0x5c589b[_0xcdbb('0x2c')]||_0x5c589b['exten'];if(_0x5c589b[_0xcdbb('0x2d')]==_0xcdbb('0x2e')){_0x5c589b[_0xcdbb('0x2f')]=_0xcdbb('0x30');_0x5c589b[_0xcdbb('0x31')]=_0x5c589b[_0xcdbb('0x30')];if(_0x5c589b[_0xcdbb('0x32')]==_0xcdbb('0x33')){_0x5c589b[_0xcdbb('0x1f')]='';_0x5c589b[_0xcdbb('0x2c')]=extractCalleridNumber(_0x5c589b[_0xcdbb('0x34')]);}else if(_0x5c589b[_0xcdbb('0x32')]=='from-sip'){if(_0x5c589b[_0xcdbb('0x2c')]=='xcally-motion-preview'){_0x5c589b[_0xcdbb('0x2c')]=extractCalleridNumber(_0x5c589b[_0xcdbb('0x35')]);_0x5c589b[_0xcdbb('0x36')]=_0x5c589b[_0xcdbb('0x37')];_0x5c589b['destinationchannel']=[_0x5c589b[_0xcdbb('0x38')],_0x5c589b[_0xcdbb('0x38')]=_0x5c589b[_0xcdbb('0x39')]][0x0];_0x5c589b[_0xcdbb('0x34')]=_0x5c589b[_0xcdbb('0x35')];}else{_0x5c589b[_0xcdbb('0x2c')]=_0x5c589b[_0xcdbb('0x36')];_0x5c589b[_0xcdbb('0x36')]=_0x5c589b[_0xcdbb('0x37')];if(_0x5c589b[_0xcdbb('0x3a')]==_0xcdbb('0x3b')){_0x5c589b['accountcode']=_0x5c589b['connectedlinenum'];}else{_0x5c589b[_0xcdbb('0x1f')]='';}}}}else{_0x5c589b[_0xcdbb('0x34')]=util[_0xcdbb('0x21')](_0xcdbb('0x3c'),_0x5c589b[_0xcdbb('0x3d')],_0x5c589b[_0xcdbb('0x36')]);}RpcVoiceCallReport['create'](_0x5c589b);if(_0x5c589b[_0xcdbb('0x3e')]){for(var _0x55a859=0x0;_0x55a859<_0x5c589b[_0xcdbb('0x3f')]['length'];_0x55a859+=0x1){_0x5c589b[_0xcdbb('0x40')]=_0x5c589b['monitors'][_0x55a859]['filename'];_0x5c589b[_0xcdbb('0x41')]=_0x5c589b['monitors'][_0x55a859][_0xcdbb('0x41')];if(_0x5c589b[_0xcdbb('0x42')]==_0xcdbb('0x43')){_0x5c589b[_0xcdbb('0x36')]=_0x5c589b[_0xcdbb('0x23')];_0x5c589b[_0xcdbb('0x3d')]=_0x5c589b['connectedlinename'];_0x5c589b[_0xcdbb('0x23')]=_0x5c589b[_0xcdbb('0x1f')];_0x5c589b[_0xcdbb('0x44')]=_0x5c589b[_0xcdbb('0x45')];_0x5c589b[_0xcdbb('0x42')]=_0x5c589b[_0xcdbb('0x37')];}else if(_0x5c589b[_0xcdbb('0x42')]==_0xcdbb('0x46')){_0x5c589b['calleridnum']=_0x5c589b['destination'];_0x5c589b[_0xcdbb('0x42')]=_0x5c589b[_0xcdbb('0x37')];}RpcVoiceRecording[_0xcdbb('0x2a')](_0x5c589b);}}};Report[_0xcdbb('0xe')][_0xcdbb('0x16')]=function(_0x1cc44c){if(_['isArray'](_0x1cc44c)){_0x1cc44c[_0xcdbb('0x47')](function(_0x522394){RpcVoiceAgentReport[_0xcdbb('0x2a')](_0x522394);});}else{RpcVoiceAgentReport[_0xcdbb('0x2a')](_0x1cc44c);}};Report[_0xcdbb('0xe')][_0xcdbb('0x17')]=function(_0x566e2e){RpcVoiceDialReport[_0xcdbb('0x2a')](_0x566e2e);var _0xe100e=undefined;var _0x111055=_0x566e2e[_0xcdbb('0x38')];if(_[_0xcdbb('0x48')](_0x111055,'Local')){var _0x3e8512=_0x111055[_0xcdbb('0x49')](_0x111055[_0xcdbb('0x4a')]('/')+0x1,_0x111055[_0xcdbb('0x4a')]('@'));_0xe100e=_[_0xcdbb('0x1e')](this[_0xcdbb('0xc')],function(_0x3ce96b){return _0x3ce96b[_0xcdbb('0x4b')]==_0x3e8512||_0x3ce96b[_0xcdbb('0x4c')]==_0x3e8512||_0x3ce96b[_0xcdbb('0x1f')]==_0x3e8512;});}else{var _0x3e8512=_0x111055[_0xcdbb('0x49')](_0x111055[_0xcdbb('0x4a')]('/')+0x1,_0x111055[_0xcdbb('0x4d')]('-'));_0xe100e=this[_0xcdbb('0x1b')](_0x3e8512);}if(_0xe100e){_0x566e2e[_0xcdbb('0x20')]=_[_0xcdbb('0x1d')](_0xe100e[_0xcdbb('0x20')])?util[_0xcdbb('0x21')](_0xcdbb('0x4e'),_0xe100e[_0xcdbb('0x1c')]):_0xe100e[_0xcdbb('0x20')];_0x566e2e[_0xcdbb('0x45')]=_0xe100e['name'];_0x566e2e['accountcode']=_0xe100e[_0xcdbb('0x1f')];RpcMemberReport['voiceDialReport'](_0x566e2e);}};Report[_0xcdbb('0xe')][_0xcdbb('0x4f')]=function(_0xcf12b){RpcVoiceTransferReport[_0xcdbb('0x4f')](_0xcf12b);};Report[_0xcdbb('0xe')][_0xcdbb('0x1a')]=function(_0x2c6391){RpcVoiceTransferReport[_0xcdbb('0x1a')](_0x2c6391);};module[_0xcdbb('0x50')]=Report;