Built motion from commit 43538d75.|2.5.35
[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 _0x241f=['assigned','lastAssignedTo','isNil','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','match','destination','exten','type','dialer','lastapplication','queue','lastdata','context','callerid','from-sip','xcally-motion-preview','calleridpreview','destinationchannel','channel','calleridnum','originatecalleridnum','ANSWERED','calleridname','transfers','linkedid','create','monitors','filename','createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','voiceDialReport','startsWith','Local','substring','indexOf','phone','membername','transfererlinkedid','exports','lodash','moment','../../../config/environment','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','custom:voiceQueueReport','voiceQueueReport','bind','voiceCallReport','voiceAgentReport','custom:voiceDialReport','blindTransfer','attendedTransfer','findAgent','find','accountcode','name','interface','format','SIP/%s','length','connectedlinenum'];(function(_0x3657a7,_0x2395a3){var _0x4a1dc5=function(_0x51a518){while(--_0x51a518){_0x3657a7['push'](_0x3657a7['shift']());}};_0x4a1dc5(++_0x2395a3);}(_0x241f,0x123));var _0xf241=function(_0x599c94,_0x464f0e){_0x599c94=_0x599c94-0x0;var _0x34e215=_0x241f[_0x599c94];return _0x34e215;};'use strict';var _=require(_0xf241('0x0'));var moment=require(_0xf241('0x1'));var util=require('util');var config=require(_0xf241('0x2'));var ami=require('../ami');var RpcVoiceAgentReport=require(_0xf241('0x3'));var RpcVoiceCallReport=require(_0xf241('0x4'));var RpcVoiceDialReport=require(_0xf241('0x5'));var RpcMemberReport=require(_0xf241('0x6'));var RpcVoiceQueueReport=require(_0xf241('0x7'));var RpcVoiceRecording=require(_0xf241('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0xf241('0x9'));var VoiceCallReport=require(_0xf241('0xa'));var VoiceAgentReport=require(_0xf241('0xb'));var VoiceDialReport=require(_0xf241('0xc'));var UserReport=require(_0xf241('0xd'));function Report(_0xc248ac){this[_0xf241('0xe')]=_0xc248ac;this[_0xf241('0xf')]=_0xc248ac[_0xf241('0xf')];this[_0xf241('0x10')]=_0xc248ac[_0xf241('0x10')];}Report[_0xf241('0x11')][_0xf241('0x12')]=function(_0x37c847){var _0x535b09=new VoiceQueueReport(this[_0xf241('0xe')]);var _0x383282=new VoiceAgentReport(this[_0xf241('0xe')]);var _0xf6f74c=new VoiceDialReport(this[_0xf241('0xe')]);var _0xd8a9af=new VoiceCallReport(this[_0xf241('0xe')]);var _0x39b014=new UserReport(this[_0xf241('0xe')]);if(config[_0xf241('0x13')]&&config['xdr']['disabled']){ami['on'](_0xf241('0x14'),this[_0xf241('0x15')][_0xf241('0x16')](this));ami['on']('custom:voiceCallReport',this[_0xf241('0x17')][_0xf241('0x16')](this));ami['on']('custom:voiceAgentReport',this[_0xf241('0x18')][_0xf241('0x16')](this));ami['on'](_0xf241('0x19'),this['voiceDialReport'][_0xf241('0x16')](this));ami['on']('blindtransfer',this[_0xf241('0x1a')][_0xf241('0x16')](this));ami['on']('attendedtransfer',this[_0xf241('0x1b')][_0xf241('0x16')](this));}};Report[_0xf241('0x11')][_0xf241('0x1c')]=function(_0x581d21){var _0x2a3b8f;_0x2a3b8f=_[_0xf241('0x1d')](this['agents'],function(_0x5c6141){return _0x5c6141[_0xf241('0x1e')]==_0x581d21||_0x5c6141[_0xf241('0x1f')]==_0x581d21;});if(_['isNil'](_0x2a3b8f)){var _0x55b267=_[_0xf241('0x1d')](this[_0xf241('0x10')],function(_0x54e3a2){return _0x54e3a2[_0xf241('0x1e')]==_0x581d21||_0x54e3a2[_0xf241('0x1f')]==_0x581d21;});if(_0x55b267){_0x2a3b8f=_['find'](this[_0xf241('0xf')],function(_0x3235d5){return _0x3235d5[_0xf241('0x20')]==util[_0xf241('0x21')](_0xf241('0x22'),_0x55b267[_0xf241('0x1f')]);});}}return _0x2a3b8f;};Report[_0xf241('0x11')]['voiceQueueReport']=function(_0x310425){for(var _0x5113d6=0x0;_0x5113d6<_0x310425[_0xf241('0x23')];_0x5113d6+=0x1){var _0x14318f=this['findAgent'](_0x310425[_0x5113d6][_0xf241('0x24')]);if(_0x14318f){_0x310425[_0x5113d6]['accountcode']=_0x14318f['accountcode'];_0x310425[_0x5113d6][_0xf241('0x25')]=!![];_0x310425[_0x5113d6][_0xf241('0x26')]=_0x14318f[_0xf241('0x1f')];_0x310425[_0x5113d6][_0xf241('0x20')]=_[_0xf241('0x27')](_0x14318f[_0xf241('0x20')])?util[_0xf241('0x21')](_0xf241('0x22'),_0x14318f['name']):_0x14318f['interface'];if(_0x310425[_0x5113d6][_0xf241('0x28')]){_0x310425[_0x5113d6][_0xf241('0x29')]=moment()[_0xf241('0x21')](_0xf241('0x2a'));}if(_0x310425[_0x5113d6][_0xf241('0x2b')]){_0x310425[_0x5113d6]['queuecallerexitAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport['voiceQueueReport'](_0x310425[_0x5113d6]);}RpcVoiceQueueReport['create'](_0x310425[_0x5113d6]);}};function extractCalleridNumber(_0x18d4cd){var _0x2ad5cc=_0x18d4cd[_0xf241('0x2c')](/<(.*?)>/);return _0x2ad5cc?_0x2ad5cc[0x1]:_0x18d4cd;}Report[_0xf241('0x11')][_0xf241('0x17')]=function(_0x3d5ce6){_0x3d5ce6[_0xf241('0x2d')]=_0x3d5ce6[_0xf241('0x2d')]||_0x3d5ce6[_0xf241('0x2e')];if(_0x3d5ce6[_0xf241('0x2f')]==_0xf241('0x30')){_0x3d5ce6[_0xf241('0x31')]=_0xf241('0x32');_0x3d5ce6[_0xf241('0x33')]=_0x3d5ce6[_0xf241('0x32')];if(_0x3d5ce6[_0xf241('0x34')]=='from-voip-provider'){_0x3d5ce6['accountcode']='';_0x3d5ce6[_0xf241('0x2d')]=extractCalleridNumber(_0x3d5ce6[_0xf241('0x35')]);}else if(_0x3d5ce6[_0xf241('0x34')]==_0xf241('0x36')){if(_0x3d5ce6[_0xf241('0x2d')]==_0xf241('0x37')){_0x3d5ce6[_0xf241('0x2d')]=extractCalleridNumber(_0x3d5ce6[_0xf241('0x38')]);_0x3d5ce6['calleridnum']=_0x3d5ce6['originatecalleridnum'];_0x3d5ce6[_0xf241('0x39')]=[_0x3d5ce6['channel'],_0x3d5ce6[_0xf241('0x3a')]=_0x3d5ce6[_0xf241('0x39')]][0x0];_0x3d5ce6[_0xf241('0x35')]=_0x3d5ce6[_0xf241('0x38')];}else{_0x3d5ce6['destination']=_0x3d5ce6[_0xf241('0x3b')];_0x3d5ce6[_0xf241('0x3b')]=_0x3d5ce6[_0xf241('0x3c')];if(_0x3d5ce6['disposition']==_0xf241('0x3d')){_0x3d5ce6['accountcode']=_0x3d5ce6[_0xf241('0x24')];}else{_0x3d5ce6['accountcode']='';}}}}else{_0x3d5ce6[_0xf241('0x35')]=util[_0xf241('0x21')]('\x22%s\x22\x20<%s>',_0x3d5ce6[_0xf241('0x3e')],_0x3d5ce6['calleridnum']);}if(RpcVoiceTransferReport[_0xf241('0x3f')][_0x3d5ce6['linkedid']]){var _0x433f6c=RpcVoiceTransferReport[_0xf241('0x3f')][_0x3d5ce6[_0xf241('0x40')]];_0x433f6c['transfereelinkedid']=_0x3d5ce6['uniqueid'];RpcVoiceTransferReport[_0xf241('0x1a')](_0x433f6c);delete RpcVoiceTransferReport[_0xf241('0x3f')][_0x3d5ce6[_0xf241('0x40')]];}RpcVoiceCallReport[_0xf241('0x41')](_0x3d5ce6);if(_0x3d5ce6['monitor']){for(var _0x2ba930=0x0;_0x2ba930<_0x3d5ce6[_0xf241('0x42')][_0xf241('0x23')];_0x2ba930+=0x1){_0x3d5ce6['monitorFilename']=_0x3d5ce6['monitors'][_0x2ba930][_0xf241('0x43')];_0x3d5ce6[_0xf241('0x44')]=_0x3d5ce6[_0xf241('0x42')][_0x2ba930][_0xf241('0x44')];if(_0x3d5ce6[_0xf241('0x2e')]==_0xf241('0x37')){_0x3d5ce6[_0xf241('0x3b')]=_0x3d5ce6[_0xf241('0x24')];_0x3d5ce6[_0xf241('0x3e')]=_0x3d5ce6['connectedlinename'];_0x3d5ce6[_0xf241('0x24')]=_0x3d5ce6[_0xf241('0x1e')];_0x3d5ce6[_0xf241('0x45')]=_0x3d5ce6['membername'];_0x3d5ce6[_0xf241('0x2e')]=_0x3d5ce6['originatecalleridnum'];}else if(_0x3d5ce6[_0xf241('0x2e')]==_0xf241('0x46')){_0x3d5ce6[_0xf241('0x3b')]=_0x3d5ce6[_0xf241('0x2d')];_0x3d5ce6[_0xf241('0x2e')]=_0x3d5ce6[_0xf241('0x3c')];}RpcVoiceRecording[_0xf241('0x41')](_0x3d5ce6);}}};Report[_0xf241('0x11')]['voiceAgentReport']=function(_0x2513c8){if(_[_0xf241('0x47')](_0x2513c8)){_0x2513c8[_0xf241('0x48')](function(_0x50d0df){RpcVoiceAgentReport[_0xf241('0x41')](_0x50d0df);});}else{RpcVoiceAgentReport[_0xf241('0x41')](_0x2513c8);}};Report[_0xf241('0x11')][_0xf241('0x49')]=function(_0x42a895){RpcVoiceDialReport[_0xf241('0x41')](_0x42a895);var _0x3cc0df;var _0x41407e;var _0x110e1d=_0x42a895[_0xf241('0x3a')];if(_[_0xf241('0x4a')](_0x110e1d,_0xf241('0x4b'))){_0x41407e=_0x110e1d[_0xf241('0x4c')](_0x110e1d[_0xf241('0x4d')]('/')+0x1,_0x110e1d[_0xf241('0x4d')]('@'));_0x3cc0df=_[_0xf241('0x1d')](this[_0xf241('0xf')],function(_0x3ea411){return _0x3ea411['mobile']==_0x41407e||_0x3ea411[_0xf241('0x4e')]==_0x41407e||_0x3ea411['accountcode']==_0x41407e;});}else{_0x41407e=_0x110e1d[_0xf241('0x4c')](_0x110e1d[_0xf241('0x4d')]('/')+0x1,_0x110e1d['lastIndexOf']('-'));_0x3cc0df=this[_0xf241('0x1c')](_0x41407e);}if(_0x3cc0df){_0x42a895[_0xf241('0x20')]=_[_0xf241('0x27')](_0x3cc0df[_0xf241('0x20')])?util['format']('SIP/%s',_0x3cc0df['name']):_0x3cc0df[_0xf241('0x20')];_0x42a895[_0xf241('0x4f')]=_0x3cc0df[_0xf241('0x1f')];_0x42a895[_0xf241('0x1e')]=_0x3cc0df['accountcode'];RpcMemberReport['voiceDialReport'](_0x42a895);}};Report[_0xf241('0x11')]['blindTransfer']=function(_0x52c855){RpcVoiceTransferReport[_0xf241('0x3f')][_0x52c855[_0xf241('0x50')]]=_0x52c855;};Report['prototype']['attendedTransfer']=function(_0x23085c){RpcVoiceTransferReport[_0xf241('0x1b')](_0x23085c);};module[_0xf241('0x51')]=Report;