Built motion from commit f7863d46.|2.5.41
[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 _0xea58=['voiceCallReport','bind','voiceAgentReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','find','accountcode','name','isNil','interface','format','SIP/%s','voiceQueueReport','findAgent','connectedlinenum','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','match','getAgentByInternal','length','keys','getCallType','channel','split','calleridnum','outbound','destination','exten','type','lastapplication','lastdata','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','disposition','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','UserId','membername','create','monitor','monitorFilename','monitors','filename','createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','startsWith','Local','substring','indexOf','transfererlinkedid','exports','lodash','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','disabled','custom:voiceCallReport'];(function(_0x596bd1,_0x130f12){var _0x3e73ac=function(_0x50ab6c){while(--_0x50ab6c){_0x596bd1['push'](_0x596bd1['shift']());}};_0x3e73ac(++_0x130f12);}(_0xea58,0x15a));var _0x8ea5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xea58[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x8ea5('0x0'));var moment=require('moment');var util=require('util');var config=require(_0x8ea5('0x1'));var ami=require(_0x8ea5('0x2'));var RpcVoiceAgentReport=require(_0x8ea5('0x3'));var RpcVoiceCallReport=require(_0x8ea5('0x4'));var RpcVoiceDialReport=require(_0x8ea5('0x5'));var RpcMemberReport=require(_0x8ea5('0x6'));var RpcVoiceQueueReport=require(_0x8ea5('0x7'));var RpcVoiceRecording=require(_0x8ea5('0x8'));var RpcVoiceTransferReport=require(_0x8ea5('0x9'));var VoiceQueueReport=require(_0x8ea5('0xa'));var VoiceCallReport=require(_0x8ea5('0xb'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x8ea5('0xc'));var UserReport=require(_0x8ea5('0xd'));function Report(_0x5313a7){this['realtime']=_0x5313a7;this[_0x8ea5('0xe')]=_0x5313a7[_0x8ea5('0xe')];this[_0x8ea5('0xf')]=_0x5313a7[_0x8ea5('0xf')];}Report[_0x8ea5('0x10')][_0x8ea5('0x11')]=function(_0x4e91be){var _0xa3c4b3=new VoiceQueueReport(this[_0x8ea5('0x12')]);var _0x52e336=new VoiceAgentReport(this[_0x8ea5('0x12')]);var _0x4f6304=new VoiceDialReport(this['realtime']);var _0x366030=new VoiceCallReport(this[_0x8ea5('0x12')]);var _0x545cc5=new UserReport(this[_0x8ea5('0x12')]);if(config[_0x8ea5('0x13')]&&config[_0x8ea5('0x13')][_0x8ea5('0x14')]){ami['on']('custom:voiceQueueReport',this['voiceQueueReport']['bind'](this));ami['on'](_0x8ea5('0x15'),this[_0x8ea5('0x16')][_0x8ea5('0x17')](this));ami['on']('custom:voiceAgentReport',this[_0x8ea5('0x18')]['bind'](this));ami['on']('custom:voiceDialReport',this[_0x8ea5('0x19')][_0x8ea5('0x17')](this));ami['on'](_0x8ea5('0x1a'),this[_0x8ea5('0x1b')][_0x8ea5('0x17')](this));ami['on'](_0x8ea5('0x1c'),this[_0x8ea5('0x1d')][_0x8ea5('0x17')](this));}};Report[_0x8ea5('0x10')]['findAgent']=function(_0x255889){var _0x114602;_0x114602=_[_0x8ea5('0x1e')](this[_0x8ea5('0xe')],function(_0x3e5f72){return _0x3e5f72[_0x8ea5('0x1f')]==_0x255889||_0x3e5f72[_0x8ea5('0x20')]==_0x255889;});if(_[_0x8ea5('0x21')](_0x114602)){var _0x30c797=_[_0x8ea5('0x1e')](this[_0x8ea5('0xf')],function(_0x1d9e06){return _0x1d9e06['accountcode']==_0x255889||_0x1d9e06['name']==_0x255889;});if(_0x30c797){_0x114602=_[_0x8ea5('0x1e')](this[_0x8ea5('0xe')],function(_0x1e0e37){return _0x1e0e37[_0x8ea5('0x22')]==util[_0x8ea5('0x23')](_0x8ea5('0x24'),_0x30c797[_0x8ea5('0x20')]);});}}return _0x114602;};Report[_0x8ea5('0x10')][_0x8ea5('0x25')]=function(_0x987aa7){for(var _0x4dd59d=0x0;_0x4dd59d<_0x987aa7['length'];_0x4dd59d+=0x1){var _0x1c1199=this[_0x8ea5('0x26')](_0x987aa7[_0x4dd59d][_0x8ea5('0x27')]);if(_0x1c1199){_0x987aa7[_0x4dd59d][_0x8ea5('0x1f')]=_0x1c1199['accountcode'];_0x987aa7[_0x4dd59d]['assigned']=!![];_0x987aa7[_0x4dd59d]['lastAssignedTo']=_0x1c1199[_0x8ea5('0x20')];_0x987aa7[_0x4dd59d][_0x8ea5('0x22')]=_[_0x8ea5('0x21')](_0x1c1199[_0x8ea5('0x22')])?util[_0x8ea5('0x23')](_0x8ea5('0x24'),_0x1c1199[_0x8ea5('0x20')]):_0x1c1199[_0x8ea5('0x22')];if(_0x987aa7[_0x4dd59d][_0x8ea5('0x28')]){_0x987aa7[_0x4dd59d][_0x8ea5('0x29')]=moment()['format'](_0x8ea5('0x2a'));}if(_0x987aa7[_0x4dd59d][_0x8ea5('0x2b')]){_0x987aa7[_0x4dd59d]['queuecallerexitAt']=moment()['format'](_0x8ea5('0x2a'));}RpcMemberReport['voiceQueueReport'](_0x987aa7[_0x4dd59d]);}RpcVoiceQueueReport['create'](_0x987aa7[_0x4dd59d]);}};function extractCalleridNumber(_0x18dc38){var _0x1f6f9a=_0x18dc38[_0x8ea5('0x2c')](/<(.*?)>/);return _0x1f6f9a?_0x1f6f9a[0x1]:_0x18dc38;}Report[_0x8ea5('0x10')][_0x8ea5('0x2d')]=function(_0x4f9e99){for(var _0x1b1cf6=0x0;_0x1b1cf6<Object['keys'](this[_0x8ea5('0xe')])[_0x8ea5('0x2e')];_0x1b1cf6++){var _0x4dc7a9=Object[_0x8ea5('0x2f')](this['agents'])[_0x1b1cf6];var _0x1712d3=this[_0x8ea5('0xe')][_0x4dc7a9];if(_0x1712d3['accountcode']===Number(_0x4f9e99))return _0x1712d3;}return null;};Report[_0x8ea5('0x10')][_0x8ea5('0x30')]=function(_0x1392d9){var _0xb1eb55=_0x1392d9[_0x8ea5('0x31')][_0x8ea5('0x32')]('-')[0x0];var _0x2cff2e=this[_0x8ea5('0xe')][_0xb1eb55];if(!_0x2cff2e)_0x2cff2e=this[_0x8ea5('0x2d')](_0x1392d9[_0x8ea5('0x33')]);return!_0x2cff2e?_0x8ea5('0x34'):'internal';};Report['prototype'][_0x8ea5('0x16')]=function(_0xa8a9c0){_0xa8a9c0[_0x8ea5('0x35')]=_0xa8a9c0[_0x8ea5('0x35')]||_0xa8a9c0[_0x8ea5('0x36')];if(_0xa8a9c0[_0x8ea5('0x37')]=='dialer'){_0xa8a9c0[_0x8ea5('0x38')]='queue';_0xa8a9c0[_0x8ea5('0x39')]=_0xa8a9c0[_0x8ea5('0x3a')];if(_0xa8a9c0[_0x8ea5('0x3b')]==_0x8ea5('0x3c')){_0xa8a9c0[_0x8ea5('0x1f')]='';_0xa8a9c0['destination']=extractCalleridNumber(_0xa8a9c0[_0x8ea5('0x3d')]);}else if(_0xa8a9c0['context']==_0x8ea5('0x3e')){if(_0xa8a9c0[_0x8ea5('0x35')]==_0x8ea5('0x3f')){_0xa8a9c0[_0x8ea5('0x35')]=extractCalleridNumber(_0xa8a9c0[_0x8ea5('0x40')]);_0xa8a9c0['calleridnum']=_0xa8a9c0[_0x8ea5('0x41')];_0xa8a9c0[_0x8ea5('0x42')]=[_0xa8a9c0[_0x8ea5('0x31')],_0xa8a9c0[_0x8ea5('0x31')]=_0xa8a9c0[_0x8ea5('0x42')]][0x0];_0xa8a9c0['callerid']=_0xa8a9c0[_0x8ea5('0x40')];}else{_0xa8a9c0[_0x8ea5('0x35')]=_0xa8a9c0['calleridnum'];_0xa8a9c0[_0x8ea5('0x33')]=_0xa8a9c0['originatecalleridnum'];if(_0xa8a9c0[_0x8ea5('0x43')]=='ANSWERED'){_0xa8a9c0[_0x8ea5('0x1f')]=_0xa8a9c0['connectedlinenum'];}else{_0xa8a9c0[_0x8ea5('0x1f')]='';}}}}else{_0xa8a9c0[_0x8ea5('0x3d')]=util[_0x8ea5('0x23')](_0x8ea5('0x44'),_0xa8a9c0[_0x8ea5('0x45')],_0xa8a9c0[_0x8ea5('0x33')]);}if(RpcVoiceTransferReport[_0x8ea5('0x46')][_0xa8a9c0[_0x8ea5('0x47')]]){var _0x4b43aa=RpcVoiceTransferReport[_0x8ea5('0x46')][_0xa8a9c0[_0x8ea5('0x47')]];_0x4b43aa[_0x8ea5('0x48')]=_0xa8a9c0[_0x8ea5('0x49')];RpcVoiceTransferReport[_0x8ea5('0x1b')](_0x4b43aa);delete RpcVoiceTransferReport[_0x8ea5('0x46')][_0xa8a9c0[_0x8ea5('0x47')]];}if(_[_0x8ea5('0x21')](_0xa8a9c0[_0x8ea5('0x37')])){_0xa8a9c0['type']=this[_0x8ea5('0x30')](_0xa8a9c0);}if(_[_0x8ea5('0x21')](_0xa8a9c0[_0x8ea5('0x4a')])){var _0x52bc9f=_0xa8a9c0[_0x8ea5('0x31')][_0x8ea5('0x32')]('-')[0x0];var _0x1e0efe=this['agents'][_0x52bc9f];if(!_0x1e0efe)_0x1e0efe=this[_0x8ea5('0x2d')](_0xa8a9c0[_0x8ea5('0x1f')]);if(_0x1e0efe){_0xa8a9c0[_0x8ea5('0x4a')]=_0x1e0efe['id'];_0xa8a9c0[_0x8ea5('0x4b')]=_0x1e0efe[_0x8ea5('0x20')];}}RpcVoiceCallReport[_0x8ea5('0x4c')](_0xa8a9c0);if(_0xa8a9c0[_0x8ea5('0x4d')]){for(var _0x3c3043=0x0;_0x3c3043<_0xa8a9c0['monitors'][_0x8ea5('0x2e')];_0x3c3043+=0x1){_0xa8a9c0[_0x8ea5('0x4e')]=_0xa8a9c0[_0x8ea5('0x4f')][_0x3c3043][_0x8ea5('0x50')];_0xa8a9c0[_0x8ea5('0x51')]=_0xa8a9c0[_0x8ea5('0x4f')][_0x3c3043]['createdAt'];if(_0xa8a9c0['exten']==_0x8ea5('0x3f')){_0xa8a9c0[_0x8ea5('0x33')]=_0xa8a9c0[_0x8ea5('0x27')];_0xa8a9c0[_0x8ea5('0x45')]=_0xa8a9c0['connectedlinename'];_0xa8a9c0['connectedlinenum']=_0xa8a9c0[_0x8ea5('0x1f')];_0xa8a9c0[_0x8ea5('0x52')]=_0xa8a9c0['membername'];_0xa8a9c0[_0x8ea5('0x36')]=_0xa8a9c0[_0x8ea5('0x41')];}else if(_0xa8a9c0[_0x8ea5('0x36')]==_0x8ea5('0x53')){_0xa8a9c0['calleridnum']=_0xa8a9c0['destination'];_0xa8a9c0[_0x8ea5('0x36')]=_0xa8a9c0['originatecalleridnum'];}RpcVoiceRecording[_0x8ea5('0x4c')](_0xa8a9c0);}}};Report[_0x8ea5('0x10')][_0x8ea5('0x18')]=function(_0x27ebd8){if(_[_0x8ea5('0x54')](_0x27ebd8)){_0x27ebd8[_0x8ea5('0x55')](function(_0x31897f){RpcVoiceAgentReport[_0x8ea5('0x4c')](_0x31897f);});}else{RpcVoiceAgentReport[_0x8ea5('0x4c')](_0x27ebd8);}};Report[_0x8ea5('0x10')]['voiceDialReport']=function(_0x3a00b8){RpcVoiceDialReport[_0x8ea5('0x4c')](_0x3a00b8);var _0x40fb5c;var _0x39dabb;var _0x4f3da2=_0x3a00b8[_0x8ea5('0x31')];if(_[_0x8ea5('0x56')](_0x4f3da2,_0x8ea5('0x57'))){_0x39dabb=_0x4f3da2[_0x8ea5('0x58')](_0x4f3da2[_0x8ea5('0x59')]('/')+0x1,_0x4f3da2[_0x8ea5('0x59')]('@'));_0x40fb5c=_[_0x8ea5('0x1e')](this[_0x8ea5('0xe')],function(_0x42c45b){return _0x42c45b['mobile']==_0x39dabb||_0x42c45b['phone']==_0x39dabb||_0x42c45b[_0x8ea5('0x1f')]==_0x39dabb;});}else{_0x39dabb=_0x4f3da2[_0x8ea5('0x58')](_0x4f3da2['indexOf']('/')+0x1,_0x4f3da2['lastIndexOf']('-'));_0x40fb5c=this[_0x8ea5('0x26')](_0x39dabb);}if(_0x40fb5c){_0x3a00b8[_0x8ea5('0x22')]=_['isNil'](_0x40fb5c[_0x8ea5('0x22')])?util[_0x8ea5('0x23')](_0x8ea5('0x24'),_0x40fb5c['name']):_0x40fb5c[_0x8ea5('0x22')];_0x3a00b8[_0x8ea5('0x4b')]=_0x40fb5c[_0x8ea5('0x20')];_0x3a00b8[_0x8ea5('0x1f')]=_0x40fb5c[_0x8ea5('0x1f')];RpcMemberReport[_0x8ea5('0x19')](_0x3a00b8);}};Report['prototype']['blindTransfer']=function(_0x41c962){RpcVoiceTransferReport[_0x8ea5('0x46')][_0x41c962[_0x8ea5('0x5a')]]=_0x41c962;};Report[_0x8ea5('0x10')]['attendedTransfer']=function(_0x59f3a3){RpcVoiceTransferReport[_0x8ea5('0x1d')](_0x59f3a3);};module[_0x8ea5('0x5b')]=Report;