362ad0ccbb16baef2b745cb04704188a14a1f91c
[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 _0x011f=['voiceAgentReport','custom:voiceDialReport','blindtransfer','blindTransfer','attendedTransfer','accountcode','name','interface','format','SIP/%s','findAgent','connectedlinenum','assigned','lastAssignedTo','isNil','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','destination','exten','type','queue','lastdata','context','from-voip-provider','callerid','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','channel','destinationchannel','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','length','monitorFilename','monitors','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','Local','substring','indexOf','find','mobile','phone','lastIndexOf','voiceDialReport','transfererlinkedid','exports','lodash','util','../../../config/environment','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport'];(function(_0x138adb,_0x193fee){var _0x1b27f2=function(_0x5e97a2){while(--_0x5e97a2){_0x138adb['push'](_0x138adb['shift']());}};_0x1b27f2(++_0x193fee);}(_0x011f,0x187));var _0xf011=function(_0x4d2263,_0x3fbf0d){_0x4d2263=_0x4d2263-0x0;var _0x24aba0=_0x011f[_0x4d2263];return _0x24aba0;};'use strict';var _=require(_0xf011('0x0'));var moment=require('moment');var util=require(_0xf011('0x1'));var config=require(_0xf011('0x2'));var ami=require('../ami');var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xf011('0x3'));var RpcVoiceDialReport=require(_0xf011('0x4'));var RpcMemberReport=require(_0xf011('0x5'));var RpcVoiceQueueReport=require(_0xf011('0x6'));var RpcVoiceRecording=require(_0xf011('0x7'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0xf011('0x8'));var VoiceDialReport=require(_0xf011('0x9'));var UserReport=require(_0xf011('0xa'));function Report(_0x1a262e){this[_0xf011('0xb')]=_0x1a262e;this[_0xf011('0xc')]=_0x1a262e['agents'];this['telephones']=_0x1a262e[_0xf011('0xd')];}Report[_0xf011('0xe')][_0xf011('0xf')]=function(_0x22e749){var _0x48853c=new VoiceQueueReport(this['realtime']);var _0x160505=new VoiceAgentReport(this[_0xf011('0xb')]);var _0x2c0b42=new VoiceDialReport(this[_0xf011('0xb')]);var _0x11b832=new VoiceCallReport(this['realtime']);var _0x55e51d=new UserReport(this[_0xf011('0xb')]);if(config[_0xf011('0x10')]&&config[_0xf011('0x10')][_0xf011('0x11')]){ami['on'](_0xf011('0x12'),this[_0xf011('0x13')][_0xf011('0x14')](this));ami['on'](_0xf011('0x15'),this[_0xf011('0x16')][_0xf011('0x14')](this));ami['on'](_0xf011('0x17'),this[_0xf011('0x18')][_0xf011('0x14')](this));ami['on'](_0xf011('0x19'),this['voiceDialReport'][_0xf011('0x14')](this));ami['on'](_0xf011('0x1a'),this[_0xf011('0x1b')][_0xf011('0x14')](this));ami['on']('attendedtransfer',this[_0xf011('0x1c')]['bind'](this));}};Report[_0xf011('0xe')]['findAgent']=function(_0x26da13){var _0x5a57b8;_0x5a57b8=_['find'](this[_0xf011('0xc')],function(_0x43eee6){return _0x43eee6['accountcode']==_0x26da13||_0x43eee6['name']==_0x26da13;});if(_['isNil'](_0x5a57b8)){var _0x89f323=_['find'](this[_0xf011('0xd')],function(_0x4d42f1){return _0x4d42f1[_0xf011('0x1d')]==_0x26da13||_0x4d42f1[_0xf011('0x1e')]==_0x26da13;});if(_0x89f323){_0x5a57b8=_['find'](this[_0xf011('0xc')],function(_0x5e4c5b){return _0x5e4c5b[_0xf011('0x1f')]==util[_0xf011('0x20')](_0xf011('0x21'),_0x89f323[_0xf011('0x1e')]);});}}return _0x5a57b8;};Report['prototype'][_0xf011('0x13')]=function(_0x2acd8b){for(var _0x5c6485=0x0;_0x5c6485<_0x2acd8b['length'];_0x5c6485+=0x1){var _0x2c49aa=this[_0xf011('0x22')](_0x2acd8b[_0x5c6485][_0xf011('0x23')]);if(_0x2c49aa){_0x2acd8b[_0x5c6485][_0xf011('0x1d')]=_0x2c49aa['accountcode'];_0x2acd8b[_0x5c6485][_0xf011('0x24')]=!![];_0x2acd8b[_0x5c6485][_0xf011('0x25')]=_0x2c49aa[_0xf011('0x1e')];_0x2acd8b[_0x5c6485][_0xf011('0x1f')]=_[_0xf011('0x26')](_0x2c49aa[_0xf011('0x1f')])?util[_0xf011('0x20')](_0xf011('0x21'),_0x2c49aa[_0xf011('0x1e')]):_0x2c49aa['interface'];if(_0x2acd8b[_0x5c6485][_0xf011('0x27')]){_0x2acd8b[_0x5c6485]['queuecallercompleteAt']=moment()[_0xf011('0x20')](_0xf011('0x28'));}if(_0x2acd8b[_0x5c6485][_0xf011('0x29')]){_0x2acd8b[_0x5c6485][_0xf011('0x2a')]=moment()[_0xf011('0x20')](_0xf011('0x28'));}RpcMemberReport[_0xf011('0x13')](_0x2acd8b[_0x5c6485]);}RpcVoiceQueueReport[_0xf011('0x2b')](_0x2acd8b[_0x5c6485]);}};function extractCalleridNumber(_0x496bd1){var _0x38a065=_0x496bd1['match'](/<(.*?)>/);return _0x38a065?_0x38a065[0x1]:_0x496bd1;}Report[_0xf011('0xe')]['voiceCallReport']=function(_0x442701){_0x442701[_0xf011('0x2c')]=_0x442701[_0xf011('0x2c')]||_0x442701[_0xf011('0x2d')];if(_0x442701[_0xf011('0x2e')]=='dialer'){_0x442701['lastapplication']=_0xf011('0x2f');_0x442701[_0xf011('0x30')]=_0x442701[_0xf011('0x2f')];if(_0x442701[_0xf011('0x31')]==_0xf011('0x32')){_0x442701['accountcode']='';_0x442701['destination']=extractCalleridNumber(_0x442701[_0xf011('0x33')]);}else if(_0x442701[_0xf011('0x31')]=='from-sip'){if(_0x442701[_0xf011('0x2c')]==_0xf011('0x34')){_0x442701[_0xf011('0x2c')]=extractCalleridNumber(_0x442701[_0xf011('0x35')]);_0x442701[_0xf011('0x36')]=_0x442701[_0xf011('0x37')];_0x442701['destinationchannel']=[_0x442701['channel'],_0x442701[_0xf011('0x38')]=_0x442701[_0xf011('0x39')]][0x0];_0x442701[_0xf011('0x33')]=_0x442701[_0xf011('0x35')];}else{_0x442701[_0xf011('0x2c')]=_0x442701[_0xf011('0x36')];_0x442701[_0xf011('0x36')]=_0x442701['originatecalleridnum'];if(_0x442701['disposition']=='ANSWERED'){_0x442701['accountcode']=_0x442701['connectedlinenum'];}else{_0x442701[_0xf011('0x1d')]='';}}}}else{_0x442701['callerid']=util[_0xf011('0x20')](_0xf011('0x3a'),_0x442701[_0xf011('0x3b')],_0x442701['calleridnum']);}if(RpcVoiceTransferReport[_0xf011('0x3c')][_0x442701[_0xf011('0x3d')]]){var _0x5bd565=RpcVoiceTransferReport[_0xf011('0x3c')][_0x442701['linkedid']];_0x5bd565[_0xf011('0x3e')]=_0x442701[_0xf011('0x3f')];RpcVoiceTransferReport[_0xf011('0x1b')](_0x5bd565);delete RpcVoiceTransferReport[_0xf011('0x3c')][_0x442701['linkedid']];}RpcVoiceCallReport[_0xf011('0x2b')](_0x442701);if(_0x442701[_0xf011('0x40')]){for(var _0x202dda=0x0;_0x202dda<_0x442701['monitors'][_0xf011('0x41')];_0x202dda+=0x1){_0x442701[_0xf011('0x42')]=_0x442701[_0xf011('0x43')][_0x202dda]['filename'];_0x442701[_0xf011('0x44')]=_0x442701[_0xf011('0x43')][_0x202dda]['createdAt'];if(_0x442701['exten']==_0xf011('0x34')){_0x442701[_0xf011('0x36')]=_0x442701[_0xf011('0x23')];_0x442701[_0xf011('0x3b')]=_0x442701[_0xf011('0x45')];_0x442701[_0xf011('0x23')]=_0x442701[_0xf011('0x1d')];_0x442701[_0xf011('0x45')]=_0x442701[_0xf011('0x46')];_0x442701[_0xf011('0x2d')]=_0x442701['originatecalleridnum'];}else if(_0x442701[_0xf011('0x2d')]==_0xf011('0x47')){_0x442701['calleridnum']=_0x442701[_0xf011('0x2c')];_0x442701[_0xf011('0x2d')]=_0x442701['originatecalleridnum'];}RpcVoiceRecording['create'](_0x442701);}}};Report[_0xf011('0xe')][_0xf011('0x18')]=function(_0x19cdd9){if(_[_0xf011('0x48')](_0x19cdd9)){_0x19cdd9['forEach'](function(_0x596416){RpcVoiceAgentReport[_0xf011('0x2b')](_0x596416);});}else{RpcVoiceAgentReport[_0xf011('0x2b')](_0x19cdd9);}};Report[_0xf011('0xe')]['voiceDialReport']=function(_0x269626){RpcVoiceDialReport['create'](_0x269626);var _0x169b3f;var _0x489b8e;var _0x26431e=_0x269626['channel'];if(_['startsWith'](_0x26431e,_0xf011('0x49'))){_0x489b8e=_0x26431e[_0xf011('0x4a')](_0x26431e['indexOf']('/')+0x1,_0x26431e[_0xf011('0x4b')]('@'));_0x169b3f=_[_0xf011('0x4c')](this['agents'],function(_0x458fe5){return _0x458fe5[_0xf011('0x4d')]==_0x489b8e||_0x458fe5[_0xf011('0x4e')]==_0x489b8e||_0x458fe5[_0xf011('0x1d')]==_0x489b8e;});}else{_0x489b8e=_0x26431e[_0xf011('0x4a')](_0x26431e[_0xf011('0x4b')]('/')+0x1,_0x26431e[_0xf011('0x4f')]('-'));_0x169b3f=this['findAgent'](_0x489b8e);}if(_0x169b3f){_0x269626[_0xf011('0x1f')]=_[_0xf011('0x26')](_0x169b3f[_0xf011('0x1f')])?util[_0xf011('0x20')](_0xf011('0x21'),_0x169b3f[_0xf011('0x1e')]):_0x169b3f[_0xf011('0x1f')];_0x269626[_0xf011('0x46')]=_0x169b3f[_0xf011('0x1e')];_0x269626[_0xf011('0x1d')]=_0x169b3f['accountcode'];RpcMemberReport[_0xf011('0x50')](_0x269626);}};Report['prototype']['blindTransfer']=function(_0xc872b4){RpcVoiceTransferReport[_0xf011('0x3c')][_0xc872b4[_0xf011('0x51')]]=_0xc872b4;};Report['prototype'][_0xf011('0x1c')]=function(_0x27f5f8){RpcVoiceTransferReport[_0xf011('0x1c')](_0x27f5f8);};module[_0xf011('0x52')]=Report;