Built motion from commit (unavailable).|2.5.23
[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 _0xa8ae=['find','accountcode','name','isNil','interface','SIP/%s','prototype','length','findAgent','connectedlinenum','assigned','lastAssignedTo','format','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','destination','exten','type','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','channel','callerid','calleridnum','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','monitors','filename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','voiceDialReport','startsWith','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','lodash','moment','util','../../../config/environment','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceAgentReport','blindTransfer','attendedTransfer'];(function(_0x485b5a,_0x2b289b){var _0xd2b34d=function(_0x34dcbd){while(--_0x34dcbd){_0x485b5a['push'](_0x485b5a['shift']());}};_0xd2b34d(++_0x2b289b);}(_0xa8ae,0x1ea));var _0xea8a=function(_0x3167a4,_0x2642af){_0x3167a4=_0x3167a4-0x0;var _0x433489=_0xa8ae[_0x3167a4];return _0x433489;};'use strict';var _=require(_0xea8a('0x0'));var moment=require(_0xea8a('0x1'));var util=require(_0xea8a('0x2'));var config=require(_0xea8a('0x3'));var ami=require('../ami');var RpcVoiceAgentReport=require(_0xea8a('0x4'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0xea8a('0x5'));var RpcMemberReport=require(_0xea8a('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xea8a('0x7'));var RpcVoiceTransferReport=require(_0xea8a('0x8'));var VoiceQueueReport=require(_0xea8a('0x9'));var VoiceCallReport=require(_0xea8a('0xa'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xea8a('0xb'));var UserReport=require(_0xea8a('0xc'));function Report(_0x31023c){this[_0xea8a('0xd')]=_0x31023c;this['agents']=_0x31023c[_0xea8a('0xe')];this[_0xea8a('0xf')]=_0x31023c['telephones'];}Report['prototype'][_0xea8a('0x10')]=function(_0x53795b){var _0x23ddff=new VoiceQueueReport(this['realtime']);var _0x47fa09=new VoiceAgentReport(this[_0xea8a('0xd')]);var _0xc227eb=new VoiceDialReport(this[_0xea8a('0xd')]);var _0x4f4022=new VoiceCallReport(this['realtime']);var _0x366202=new UserReport(this[_0xea8a('0xd')]);if(config[_0xea8a('0x11')]&&config['xdr']['disabled']){ami['on'](_0xea8a('0x12'),this[_0xea8a('0x13')][_0xea8a('0x14')](this));ami['on'](_0xea8a('0x15'),this['voiceCallReport'][_0xea8a('0x14')](this));ami['on'](_0xea8a('0x16'),this[_0xea8a('0x17')][_0xea8a('0x14')](this));ami['on']('custom:voiceDialReport',this['voiceDialReport'][_0xea8a('0x14')](this));ami['on']('blindtransfer',this[_0xea8a('0x18')][_0xea8a('0x14')](this));ami['on']('attendedtransfer',this[_0xea8a('0x19')]['bind'](this));}};Report['prototype']['findAgent']=function(_0x56b749){var _0x481913;_0x481913=_[_0xea8a('0x1a')](this[_0xea8a('0xe')],function(_0x53b9a3){return _0x53b9a3[_0xea8a('0x1b')]==_0x56b749||_0x53b9a3[_0xea8a('0x1c')]==_0x56b749;});if(_[_0xea8a('0x1d')](_0x481913)){var _0x1a5e85=_[_0xea8a('0x1a')](this[_0xea8a('0xf')],function(_0x7be431){return _0x7be431[_0xea8a('0x1b')]==_0x56b749||_0x7be431[_0xea8a('0x1c')]==_0x56b749;});if(_0x1a5e85){_0x481913=_['find'](this[_0xea8a('0xe')],function(_0x15905b){return _0x15905b[_0xea8a('0x1e')]==util['format'](_0xea8a('0x1f'),_0x1a5e85[_0xea8a('0x1c')]);});}}return _0x481913;};Report[_0xea8a('0x20')][_0xea8a('0x13')]=function(_0x3573dd){for(var _0x46f88d=0x0;_0x46f88d<_0x3573dd[_0xea8a('0x21')];_0x46f88d+=0x1){var _0x43be07=this[_0xea8a('0x22')](_0x3573dd[_0x46f88d][_0xea8a('0x23')]);if(_0x43be07){_0x3573dd[_0x46f88d][_0xea8a('0x1b')]=_0x43be07[_0xea8a('0x1b')];_0x3573dd[_0x46f88d][_0xea8a('0x24')]=!![];_0x3573dd[_0x46f88d][_0xea8a('0x25')]=_0x43be07[_0xea8a('0x1c')];_0x3573dd[_0x46f88d][_0xea8a('0x1e')]=_['isNil'](_0x43be07['interface'])?util[_0xea8a('0x26')]('SIP/%s',_0x43be07[_0xea8a('0x1c')]):_0x43be07['interface'];if(_0x3573dd[_0x46f88d][_0xea8a('0x27')]){_0x3573dd[_0x46f88d][_0xea8a('0x28')]=moment()[_0xea8a('0x26')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x3573dd[_0x46f88d][_0xea8a('0x29')]){_0x3573dd[_0x46f88d][_0xea8a('0x2a')]=moment()[_0xea8a('0x26')](_0xea8a('0x2b'));}RpcMemberReport[_0xea8a('0x13')](_0x3573dd[_0x46f88d]);}RpcVoiceQueueReport[_0xea8a('0x2c')](_0x3573dd[_0x46f88d]);}};function extractCalleridNumber(_0x1dab78){var _0x406fce=_0x1dab78[_0xea8a('0x2d')](/<(.*?)>/);return _0x406fce?_0x406fce[0x1]:_0x1dab78;}Report[_0xea8a('0x20')]['voiceCallReport']=function(_0x2cbe38){_0x2cbe38[_0xea8a('0x2e')]=_0x2cbe38[_0xea8a('0x2e')]||_0x2cbe38[_0xea8a('0x2f')];if(_0x2cbe38[_0xea8a('0x30')]=='dialer'){_0x2cbe38[_0xea8a('0x31')]=_0xea8a('0x32');_0x2cbe38[_0xea8a('0x33')]=_0x2cbe38[_0xea8a('0x32')];if(_0x2cbe38[_0xea8a('0x34')]==_0xea8a('0x35')){_0x2cbe38[_0xea8a('0x1b')]='';_0x2cbe38[_0xea8a('0x2e')]=extractCalleridNumber(_0x2cbe38['callerid']);}else if(_0x2cbe38[_0xea8a('0x34')]==_0xea8a('0x36')){if(_0x2cbe38[_0xea8a('0x2e')]==_0xea8a('0x37')){_0x2cbe38['destination']=extractCalleridNumber(_0x2cbe38[_0xea8a('0x38')]);_0x2cbe38['calleridnum']=_0x2cbe38[_0xea8a('0x39')];_0x2cbe38[_0xea8a('0x3a')]=[_0x2cbe38[_0xea8a('0x3b')],_0x2cbe38[_0xea8a('0x3b')]=_0x2cbe38[_0xea8a('0x3a')]][0x0];_0x2cbe38[_0xea8a('0x3c')]=_0x2cbe38[_0xea8a('0x38')];}else{_0x2cbe38[_0xea8a('0x2e')]=_0x2cbe38['calleridnum'];_0x2cbe38[_0xea8a('0x3d')]=_0x2cbe38[_0xea8a('0x39')];if(_0x2cbe38['disposition']==_0xea8a('0x3e')){_0x2cbe38['accountcode']=_0x2cbe38[_0xea8a('0x23')];}else{_0x2cbe38[_0xea8a('0x1b')]='';}}}}else{_0x2cbe38['callerid']=util[_0xea8a('0x26')](_0xea8a('0x3f'),_0x2cbe38[_0xea8a('0x40')],_0x2cbe38[_0xea8a('0x3d')]);}if(RpcVoiceTransferReport[_0xea8a('0x41')][_0x2cbe38['linkedid']]){var _0x3f2f68=RpcVoiceTransferReport[_0xea8a('0x41')][_0x2cbe38[_0xea8a('0x42')]];_0x3f2f68[_0xea8a('0x43')]=_0x2cbe38[_0xea8a('0x44')];RpcVoiceTransferReport[_0xea8a('0x18')](_0x3f2f68);delete RpcVoiceTransferReport[_0xea8a('0x41')][_0x2cbe38[_0xea8a('0x42')]];}RpcVoiceCallReport[_0xea8a('0x2c')](_0x2cbe38);if(_0x2cbe38[_0xea8a('0x45')]){for(var _0x39d26c=0x0;_0x39d26c<_0x2cbe38[_0xea8a('0x46')]['length'];_0x39d26c+=0x1){_0x2cbe38['monitorFilename']=_0x2cbe38[_0xea8a('0x46')][_0x39d26c][_0xea8a('0x47')];_0x2cbe38[_0xea8a('0x48')]=_0x2cbe38['monitors'][_0x39d26c][_0xea8a('0x48')];if(_0x2cbe38[_0xea8a('0x2f')]==_0xea8a('0x37')){_0x2cbe38[_0xea8a('0x3d')]=_0x2cbe38[_0xea8a('0x23')];_0x2cbe38[_0xea8a('0x40')]=_0x2cbe38[_0xea8a('0x49')];_0x2cbe38[_0xea8a('0x23')]=_0x2cbe38[_0xea8a('0x1b')];_0x2cbe38[_0xea8a('0x49')]=_0x2cbe38[_0xea8a('0x4a')];_0x2cbe38[_0xea8a('0x2f')]=_0x2cbe38['originatecalleridnum'];}else if(_0x2cbe38['exten']==_0xea8a('0x4b')){_0x2cbe38[_0xea8a('0x3d')]=_0x2cbe38['destination'];_0x2cbe38[_0xea8a('0x2f')]=_0x2cbe38[_0xea8a('0x39')];}RpcVoiceRecording['create'](_0x2cbe38);}}};Report[_0xea8a('0x20')]['voiceAgentReport']=function(_0x4cc363){if(_[_0xea8a('0x4c')](_0x4cc363)){_0x4cc363[_0xea8a('0x4d')](function(_0x44a274){RpcVoiceAgentReport[_0xea8a('0x2c')](_0x44a274);});}else{RpcVoiceAgentReport[_0xea8a('0x2c')](_0x4cc363);}};Report[_0xea8a('0x20')][_0xea8a('0x4e')]=function(_0x1a7eb4){RpcVoiceDialReport[_0xea8a('0x2c')](_0x1a7eb4);var _0x52e81c;var _0x38eff7;var _0x33e424=_0x1a7eb4['channel'];if(_[_0xea8a('0x4f')](_0x33e424,'Local')){_0x38eff7=_0x33e424[_0xea8a('0x50')](_0x33e424[_0xea8a('0x51')]('/')+0x1,_0x33e424[_0xea8a('0x51')]('@'));_0x52e81c=_[_0xea8a('0x1a')](this[_0xea8a('0xe')],function(_0x12ec56){return _0x12ec56[_0xea8a('0x52')]==_0x38eff7||_0x12ec56[_0xea8a('0x53')]==_0x38eff7||_0x12ec56[_0xea8a('0x1b')]==_0x38eff7;});}else{_0x38eff7=_0x33e424[_0xea8a('0x50')](_0x33e424[_0xea8a('0x51')]('/')+0x1,_0x33e424[_0xea8a('0x54')]('-'));_0x52e81c=this['findAgent'](_0x38eff7);}if(_0x52e81c){_0x1a7eb4[_0xea8a('0x1e')]=_[_0xea8a('0x1d')](_0x52e81c['interface'])?util['format'](_0xea8a('0x1f'),_0x52e81c[_0xea8a('0x1c')]):_0x52e81c[_0xea8a('0x1e')];_0x1a7eb4[_0xea8a('0x4a')]=_0x52e81c[_0xea8a('0x1c')];_0x1a7eb4[_0xea8a('0x1b')]=_0x52e81c['accountcode'];RpcMemberReport[_0xea8a('0x4e')](_0x1a7eb4);}};Report[_0xea8a('0x20')][_0xea8a('0x18')]=function(_0x36eac2){RpcVoiceTransferReport[_0xea8a('0x41')][_0x36eac2[_0xea8a('0x55')]]=_0x36eac2;};Report[_0xea8a('0x20')][_0xea8a('0x19')]=function(_0x658ab5){RpcVoiceTransferReport[_0xea8a('0x19')](_0x658ab5);};module['exports']=Report;