Built motion from commit (unavailable).|2.5.16
[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 _0xc429=['xcally-motion-dialer','forEach','startsWith','Local','substring','indexOf','phone','exports','lodash','moment','util','../../../config/environment','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./userReport','realtime','agents','telephones','prototype','sync','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','voiceDialReport','blindTransfer','attendedtransfer','findAgent','accountcode','isNil','find','name','interface','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','create','match','destination','exten','type','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','destinationchannel','channel','originatecalleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','monitor','monitors','monitorFilename','filename','createdAt','membername'];(function(_0x21f461,_0x1e5228){var _0x356934=function(_0x3824dd){while(--_0x3824dd){_0x21f461['push'](_0x21f461['shift']());}};_0x356934(++_0x1e5228);}(_0xc429,0x1a2));var _0x9c42=function(_0x16e0c8,_0x4861eb){_0x16e0c8=_0x16e0c8-0x0;var _0xe4b5af=_0xc429[_0x16e0c8];return _0xe4b5af;};'use strict';var _=require(_0x9c42('0x0'));var moment=require(_0x9c42('0x1'));var util=require(_0x9c42('0x2'));var config=require(_0x9c42('0x3'));var ami=require('../ami');var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x9c42('0x4'));var RpcVoiceDialReport=require(_0x9c42('0x5'));var RpcMemberReport=require(_0x9c42('0x6'));var RpcVoiceQueueReport=require(_0x9c42('0x7'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x9c42('0x8'));var VoiceQueueReport=require(_0x9c42('0x9'));var VoiceCallReport=require(_0x9c42('0xa'));var VoiceAgentReport=require(_0x9c42('0xb'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x9c42('0xc'));function Report(_0x21c844){this[_0x9c42('0xd')]=_0x21c844;this[_0x9c42('0xe')]=_0x21c844[_0x9c42('0xe')];this[_0x9c42('0xf')]=_0x21c844[_0x9c42('0xf')];}Report[_0x9c42('0x10')][_0x9c42('0x11')]=function(_0x3ee681){var _0x20af53=new VoiceQueueReport(this[_0x9c42('0xd')]);var _0x3db326=new VoiceAgentReport(this[_0x9c42('0xd')]);var _0x5767c6=new VoiceDialReport(this[_0x9c42('0xd')]);var _0x4a2fa6=new VoiceCallReport(this[_0x9c42('0xd')]);var _0x2bf1eb=new UserReport(this[_0x9c42('0xd')]);if(config['xdr']&&config['xdr'][_0x9c42('0x12')]){ami['on'](_0x9c42('0x13'),this[_0x9c42('0x14')][_0x9c42('0x15')](this));ami['on'](_0x9c42('0x16'),this[_0x9c42('0x17')][_0x9c42('0x15')](this));ami['on']('custom:voiceAgentReport',this[_0x9c42('0x18')]['bind'](this));ami['on']('custom:voiceDialReport',this[_0x9c42('0x19')][_0x9c42('0x15')](this));ami['on']('blindtransfer',this[_0x9c42('0x1a')][_0x9c42('0x15')](this));ami['on'](_0x9c42('0x1b'),this['attendedTransfer']['bind'](this));}};Report[_0x9c42('0x10')][_0x9c42('0x1c')]=function(_0x586588){var _0x56f95b;_0x56f95b=_['find'](this[_0x9c42('0xe')],function(_0x436a1f){return _0x436a1f[_0x9c42('0x1d')]==_0x586588||_0x436a1f['name']==_0x586588;});if(_[_0x9c42('0x1e')](_0x56f95b)){var _0x8de65b=_[_0x9c42('0x1f')](this['telephones'],function(_0x405f05){return _0x405f05[_0x9c42('0x1d')]==_0x586588||_0x405f05[_0x9c42('0x20')]==_0x586588;});if(_0x8de65b){_0x56f95b=_[_0x9c42('0x1f')](this['agents'],function(_0x3ec51d){return _0x3ec51d[_0x9c42('0x21')]==util[_0x9c42('0x22')](_0x9c42('0x23'),_0x8de65b[_0x9c42('0x20')]);});}}return _0x56f95b;};Report['prototype'][_0x9c42('0x14')]=function(_0x4bcc38){for(var _0x367a4f=0x0;_0x367a4f<_0x4bcc38[_0x9c42('0x24')];_0x367a4f+=0x1){var _0x2ba369=this[_0x9c42('0x1c')](_0x4bcc38[_0x367a4f][_0x9c42('0x25')]);if(_0x2ba369){_0x4bcc38[_0x367a4f]['accountcode']=_0x2ba369[_0x9c42('0x1d')];_0x4bcc38[_0x367a4f][_0x9c42('0x26')]=!![];_0x4bcc38[_0x367a4f][_0x9c42('0x27')]=_0x2ba369[_0x9c42('0x20')];_0x4bcc38[_0x367a4f][_0x9c42('0x21')]=_['isNil'](_0x2ba369['interface'])?util['format'](_0x9c42('0x23'),_0x2ba369[_0x9c42('0x20')]):_0x2ba369[_0x9c42('0x21')];if(_0x4bcc38[_0x367a4f][_0x9c42('0x28')]){_0x4bcc38[_0x367a4f]['queuecallercompleteAt']=moment()[_0x9c42('0x22')](_0x9c42('0x29'));}if(_0x4bcc38[_0x367a4f]['queuecallerexit']){_0x4bcc38[_0x367a4f][_0x9c42('0x2a')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x9c42('0x14')](_0x4bcc38[_0x367a4f]);}RpcVoiceQueueReport[_0x9c42('0x2b')](_0x4bcc38[_0x367a4f]);}};function extractCalleridNumber(_0xe1a7af){var _0x3d48c5=_0xe1a7af[_0x9c42('0x2c')](/<(.*?)>/);return _0x3d48c5?_0x3d48c5[0x1]:_0xe1a7af;}Report[_0x9c42('0x10')]['voiceCallReport']=function(_0x2492c1){_0x2492c1['destination']=_0x2492c1[_0x9c42('0x2d')]||_0x2492c1[_0x9c42('0x2e')];if(_0x2492c1[_0x9c42('0x2f')]==_0x9c42('0x30')){_0x2492c1['lastapplication']=_0x9c42('0x31');_0x2492c1[_0x9c42('0x32')]=_0x2492c1['queue'];if(_0x2492c1[_0x9c42('0x33')]==_0x9c42('0x34')){_0x2492c1[_0x9c42('0x1d')]='';_0x2492c1[_0x9c42('0x2d')]=extractCalleridNumber(_0x2492c1[_0x9c42('0x35')]);}else if(_0x2492c1[_0x9c42('0x33')]==_0x9c42('0x36')){if(_0x2492c1[_0x9c42('0x2d')]==_0x9c42('0x37')){_0x2492c1[_0x9c42('0x2d')]=extractCalleridNumber(_0x2492c1[_0x9c42('0x38')]);_0x2492c1[_0x9c42('0x39')]=_0x2492c1['originatecalleridnum'];_0x2492c1[_0x9c42('0x3a')]=[_0x2492c1[_0x9c42('0x3b')],_0x2492c1['channel']=_0x2492c1['destinationchannel']][0x0];_0x2492c1[_0x9c42('0x35')]=_0x2492c1['calleridpreview'];}else{_0x2492c1[_0x9c42('0x2d')]=_0x2492c1['calleridnum'];_0x2492c1[_0x9c42('0x39')]=_0x2492c1[_0x9c42('0x3c')];if(_0x2492c1[_0x9c42('0x3d')]==_0x9c42('0x3e')){_0x2492c1[_0x9c42('0x1d')]=_0x2492c1['connectedlinenum'];}else{_0x2492c1[_0x9c42('0x1d')]='';}}}}else{_0x2492c1[_0x9c42('0x35')]=util[_0x9c42('0x22')](_0x9c42('0x3f'),_0x2492c1[_0x9c42('0x40')],_0x2492c1[_0x9c42('0x39')]);}if(RpcVoiceTransferReport[_0x9c42('0x41')][_0x2492c1[_0x9c42('0x42')]]){var _0x233a4b=RpcVoiceTransferReport[_0x9c42('0x41')][_0x2492c1[_0x9c42('0x42')]];_0x233a4b[_0x9c42('0x43')]=_0x2492c1['uniqueid'];RpcVoiceTransferReport[_0x9c42('0x1a')](_0x233a4b);delete RpcVoiceTransferReport[_0x9c42('0x41')][_0x2492c1['linkedid']];}RpcVoiceCallReport[_0x9c42('0x2b')](_0x2492c1);if(_0x2492c1[_0x9c42('0x44')]){for(var _0x4ddb36=0x0;_0x4ddb36<_0x2492c1[_0x9c42('0x45')][_0x9c42('0x24')];_0x4ddb36+=0x1){_0x2492c1[_0x9c42('0x46')]=_0x2492c1['monitors'][_0x4ddb36][_0x9c42('0x47')];_0x2492c1[_0x9c42('0x48')]=_0x2492c1['monitors'][_0x4ddb36]['createdAt'];if(_0x2492c1[_0x9c42('0x2e')]==_0x9c42('0x37')){_0x2492c1[_0x9c42('0x39')]=_0x2492c1['connectedlinenum'];_0x2492c1[_0x9c42('0x40')]=_0x2492c1['connectedlinename'];_0x2492c1['connectedlinenum']=_0x2492c1[_0x9c42('0x1d')];_0x2492c1['connectedlinename']=_0x2492c1[_0x9c42('0x49')];_0x2492c1[_0x9c42('0x2e')]=_0x2492c1[_0x9c42('0x3c')];}else if(_0x2492c1[_0x9c42('0x2e')]==_0x9c42('0x4a')){_0x2492c1[_0x9c42('0x39')]=_0x2492c1[_0x9c42('0x2d')];_0x2492c1['exten']=_0x2492c1[_0x9c42('0x3c')];}RpcVoiceRecording[_0x9c42('0x2b')](_0x2492c1);}}};Report[_0x9c42('0x10')][_0x9c42('0x18')]=function(_0x525902){if(_['isArray'](_0x525902)){_0x525902[_0x9c42('0x4b')](function(_0x924cc8){RpcVoiceAgentReport[_0x9c42('0x2b')](_0x924cc8);});}else{RpcVoiceAgentReport['create'](_0x525902);}};Report[_0x9c42('0x10')][_0x9c42('0x19')]=function(_0x148f14){RpcVoiceDialReport[_0x9c42('0x2b')](_0x148f14);var _0x25f63d;var _0x4f037f;var _0x441bc9=_0x148f14['channel'];if(_[_0x9c42('0x4c')](_0x441bc9,_0x9c42('0x4d'))){_0x4f037f=_0x441bc9[_0x9c42('0x4e')](_0x441bc9[_0x9c42('0x4f')]('/')+0x1,_0x441bc9[_0x9c42('0x4f')]('@'));_0x25f63d=_['find'](this[_0x9c42('0xe')],function(_0x4cd0c6){return _0x4cd0c6['mobile']==_0x4f037f||_0x4cd0c6[_0x9c42('0x50')]==_0x4f037f||_0x4cd0c6[_0x9c42('0x1d')]==_0x4f037f;});}else{_0x4f037f=_0x441bc9[_0x9c42('0x4e')](_0x441bc9[_0x9c42('0x4f')]('/')+0x1,_0x441bc9['lastIndexOf']('-'));_0x25f63d=this['findAgent'](_0x4f037f);}if(_0x25f63d){_0x148f14[_0x9c42('0x21')]=_[_0x9c42('0x1e')](_0x25f63d[_0x9c42('0x21')])?util[_0x9c42('0x22')]('SIP/%s',_0x25f63d['name']):_0x25f63d[_0x9c42('0x21')];_0x148f14['membername']=_0x25f63d[_0x9c42('0x20')];_0x148f14['accountcode']=_0x25f63d[_0x9c42('0x1d')];RpcMemberReport['voiceDialReport'](_0x148f14);}};Report[_0x9c42('0x10')]['blindTransfer']=function(_0x5ddc19){RpcVoiceTransferReport[_0x9c42('0x41')][_0x5ddc19['transfererlinkedid']]=_0x5ddc19;};Report[_0x9c42('0x10')]['attendedTransfer']=function(_0x582208){RpcVoiceTransferReport['attendedTransfer'](_0x582208);};module[_0x9c42('0x51')]=Report;