Built motion from commit 3e059bc2.|2.5.32
[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 _0xddea=['xcally-motion-preview','connectedlinename','membername','xcally-motion-dialer','create','voiceAgentReport','isArray','forEach','startsWith','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','attendedTransfer','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedtransfer','prototype','find','accountcode','name','format','length','findAgent','connectedlinenum','assigned','lastAssignedTo','interface','isNil','SIP/%s','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitAt','match','destination','exten','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','callerid','from-sip','calleridpreview','originatecalleridnum','destinationchannel','channel','calleridnum','ANSWERED','\x22%s\x22\x20<%s>','calleridname','linkedid','transfers','transfereelinkedid','uniqueid','blindTransfer','monitor','monitorFilename','monitors','filename','createdAt'];(function(_0x50c745,_0x240a09){var _0x5b2361=function(_0xda029b){while(--_0xda029b){_0x50c745['push'](_0x50c745['shift']());}};_0x5b2361(++_0x240a09);}(_0xddea,0x1d2));var _0xadde=function(_0x484ef4,_0x353abc){_0x484ef4=_0x484ef4-0x0;var _0x7de215=_0xddea[_0x484ef4];return _0x7de215;};'use strict';var _=require(_0xadde('0x0'));var moment=require(_0xadde('0x1'));var util=require(_0xadde('0x2'));var config=require(_0xadde('0x3'));var ami=require(_0xadde('0x4'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0xadde('0x5'));var RpcMemberReport=require(_0xadde('0x6'));var RpcVoiceQueueReport=require(_0xadde('0x7'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0xadde('0x8'));var VoiceQueueReport=require(_0xadde('0x9'));var VoiceCallReport=require(_0xadde('0xa'));var VoiceAgentReport=require(_0xadde('0xb'));var VoiceDialReport=require(_0xadde('0xc'));var UserReport=require('./userReport');function Report(_0x4b2aa7){this[_0xadde('0xd')]=_0x4b2aa7;this[_0xadde('0xe')]=_0x4b2aa7[_0xadde('0xe')];this['telephones']=_0x4b2aa7[_0xadde('0xf')];}Report['prototype'][_0xadde('0x10')]=function(_0x5da535){var _0x2cd53d=new VoiceQueueReport(this['realtime']);var _0x2d1528=new VoiceAgentReport(this['realtime']);var _0x1223f4=new VoiceDialReport(this['realtime']);var _0x590f47=new VoiceCallReport(this[_0xadde('0xd')]);var _0x485ce3=new UserReport(this['realtime']);if(config[_0xadde('0x11')]&&config['xdr'][_0xadde('0x12')]){ami['on'](_0xadde('0x13'),this[_0xadde('0x14')][_0xadde('0x15')](this));ami['on'](_0xadde('0x16'),this[_0xadde('0x17')][_0xadde('0x15')](this));ami['on']('custom:voiceAgentReport',this['voiceAgentReport'][_0xadde('0x15')](this));ami['on'](_0xadde('0x18'),this[_0xadde('0x19')][_0xadde('0x15')](this));ami['on'](_0xadde('0x1a'),this['blindTransfer'][_0xadde('0x15')](this));ami['on'](_0xadde('0x1b'),this['attendedTransfer'][_0xadde('0x15')](this));}};Report[_0xadde('0x1c')]['findAgent']=function(_0x5a328f){var _0x2d2ea1;_0x2d2ea1=_[_0xadde('0x1d')](this[_0xadde('0xe')],function(_0x528d67){return _0x528d67[_0xadde('0x1e')]==_0x5a328f||_0x528d67['name']==_0x5a328f;});if(_['isNil'](_0x2d2ea1)){var _0x13bd54=_['find'](this[_0xadde('0xf')],function(_0x3d58a3){return _0x3d58a3[_0xadde('0x1e')]==_0x5a328f||_0x3d58a3[_0xadde('0x1f')]==_0x5a328f;});if(_0x13bd54){_0x2d2ea1=_[_0xadde('0x1d')](this[_0xadde('0xe')],function(_0x407ba2){return _0x407ba2['interface']==util[_0xadde('0x20')]('SIP/%s',_0x13bd54['name']);});}}return _0x2d2ea1;};Report['prototype']['voiceQueueReport']=function(_0xeb921f){for(var _0x4d4fef=0x0;_0x4d4fef<_0xeb921f[_0xadde('0x21')];_0x4d4fef+=0x1){var _0x3b63a6=this[_0xadde('0x22')](_0xeb921f[_0x4d4fef][_0xadde('0x23')]);if(_0x3b63a6){_0xeb921f[_0x4d4fef]['accountcode']=_0x3b63a6[_0xadde('0x1e')];_0xeb921f[_0x4d4fef][_0xadde('0x24')]=!![];_0xeb921f[_0x4d4fef][_0xadde('0x25')]=_0x3b63a6[_0xadde('0x1f')];_0xeb921f[_0x4d4fef][_0xadde('0x26')]=_[_0xadde('0x27')](_0x3b63a6[_0xadde('0x26')])?util[_0xadde('0x20')](_0xadde('0x28'),_0x3b63a6[_0xadde('0x1f')]):_0x3b63a6[_0xadde('0x26')];if(_0xeb921f[_0x4d4fef][_0xadde('0x29')]){_0xeb921f[_0x4d4fef]['queuecallercompleteAt']=moment()[_0xadde('0x20')](_0xadde('0x2a'));}if(_0xeb921f[_0x4d4fef]['queuecallerexit']){_0xeb921f[_0x4d4fef][_0xadde('0x2b')]=moment()[_0xadde('0x20')](_0xadde('0x2a'));}RpcMemberReport[_0xadde('0x14')](_0xeb921f[_0x4d4fef]);}RpcVoiceQueueReport['create'](_0xeb921f[_0x4d4fef]);}};function extractCalleridNumber(_0x3a4c0d){var _0x3a3df4=_0x3a4c0d[_0xadde('0x2c')](/<(.*?)>/);return _0x3a3df4?_0x3a3df4[0x1]:_0x3a4c0d;}Report[_0xadde('0x1c')][_0xadde('0x17')]=function(_0x1951e9){_0x1951e9[_0xadde('0x2d')]=_0x1951e9[_0xadde('0x2d')]||_0x1951e9[_0xadde('0x2e')];if(_0x1951e9[_0xadde('0x2f')]==_0xadde('0x30')){_0x1951e9[_0xadde('0x31')]=_0xadde('0x32');_0x1951e9[_0xadde('0x33')]=_0x1951e9[_0xadde('0x32')];if(_0x1951e9[_0xadde('0x34')]==_0xadde('0x35')){_0x1951e9[_0xadde('0x1e')]='';_0x1951e9[_0xadde('0x2d')]=extractCalleridNumber(_0x1951e9[_0xadde('0x36')]);}else if(_0x1951e9[_0xadde('0x34')]==_0xadde('0x37')){if(_0x1951e9[_0xadde('0x2d')]=='xcally-motion-preview'){_0x1951e9['destination']=extractCalleridNumber(_0x1951e9[_0xadde('0x38')]);_0x1951e9['calleridnum']=_0x1951e9[_0xadde('0x39')];_0x1951e9[_0xadde('0x3a')]=[_0x1951e9[_0xadde('0x3b')],_0x1951e9[_0xadde('0x3b')]=_0x1951e9[_0xadde('0x3a')]][0x0];_0x1951e9['callerid']=_0x1951e9['calleridpreview'];}else{_0x1951e9[_0xadde('0x2d')]=_0x1951e9['calleridnum'];_0x1951e9[_0xadde('0x3c')]=_0x1951e9[_0xadde('0x39')];if(_0x1951e9['disposition']==_0xadde('0x3d')){_0x1951e9[_0xadde('0x1e')]=_0x1951e9[_0xadde('0x23')];}else{_0x1951e9['accountcode']='';}}}}else{_0x1951e9[_0xadde('0x36')]=util[_0xadde('0x20')](_0xadde('0x3e'),_0x1951e9[_0xadde('0x3f')],_0x1951e9[_0xadde('0x3c')]);}if(RpcVoiceTransferReport['transfers'][_0x1951e9[_0xadde('0x40')]]){var _0x1b6a3a=RpcVoiceTransferReport[_0xadde('0x41')][_0x1951e9[_0xadde('0x40')]];_0x1b6a3a[_0xadde('0x42')]=_0x1951e9[_0xadde('0x43')];RpcVoiceTransferReport[_0xadde('0x44')](_0x1b6a3a);delete RpcVoiceTransferReport['transfers'][_0x1951e9[_0xadde('0x40')]];}RpcVoiceCallReport['create'](_0x1951e9);if(_0x1951e9[_0xadde('0x45')]){for(var _0x4b4253=0x0;_0x4b4253<_0x1951e9['monitors']['length'];_0x4b4253+=0x1){_0x1951e9[_0xadde('0x46')]=_0x1951e9[_0xadde('0x47')][_0x4b4253][_0xadde('0x48')];_0x1951e9[_0xadde('0x49')]=_0x1951e9[_0xadde('0x47')][_0x4b4253][_0xadde('0x49')];if(_0x1951e9['exten']==_0xadde('0x4a')){_0x1951e9['calleridnum']=_0x1951e9[_0xadde('0x23')];_0x1951e9['calleridname']=_0x1951e9[_0xadde('0x4b')];_0x1951e9['connectedlinenum']=_0x1951e9[_0xadde('0x1e')];_0x1951e9[_0xadde('0x4b')]=_0x1951e9[_0xadde('0x4c')];_0x1951e9['exten']=_0x1951e9[_0xadde('0x39')];}else if(_0x1951e9[_0xadde('0x2e')]==_0xadde('0x4d')){_0x1951e9[_0xadde('0x3c')]=_0x1951e9[_0xadde('0x2d')];_0x1951e9[_0xadde('0x2e')]=_0x1951e9[_0xadde('0x39')];}RpcVoiceRecording[_0xadde('0x4e')](_0x1951e9);}}};Report[_0xadde('0x1c')][_0xadde('0x4f')]=function(_0x7ceb54){if(_[_0xadde('0x50')](_0x7ceb54)){_0x7ceb54[_0xadde('0x51')](function(_0x209026){RpcVoiceAgentReport[_0xadde('0x4e')](_0x209026);});}else{RpcVoiceAgentReport[_0xadde('0x4e')](_0x7ceb54);}};Report['prototype'][_0xadde('0x19')]=function(_0x29e50e){RpcVoiceDialReport[_0xadde('0x4e')](_0x29e50e);var _0x589fe5;var _0xd5f562;var _0x40dd0d=_0x29e50e[_0xadde('0x3b')];if(_[_0xadde('0x52')](_0x40dd0d,'Local')){_0xd5f562=_0x40dd0d[_0xadde('0x53')](_0x40dd0d[_0xadde('0x54')]('/')+0x1,_0x40dd0d[_0xadde('0x54')]('@'));_0x589fe5=_['find'](this[_0xadde('0xe')],function(_0x3ad16f){return _0x3ad16f[_0xadde('0x55')]==_0xd5f562||_0x3ad16f[_0xadde('0x56')]==_0xd5f562||_0x3ad16f[_0xadde('0x1e')]==_0xd5f562;});}else{_0xd5f562=_0x40dd0d['substring'](_0x40dd0d[_0xadde('0x54')]('/')+0x1,_0x40dd0d[_0xadde('0x57')]('-'));_0x589fe5=this[_0xadde('0x22')](_0xd5f562);}if(_0x589fe5){_0x29e50e[_0xadde('0x26')]=_[_0xadde('0x27')](_0x589fe5[_0xadde('0x26')])?util[_0xadde('0x20')](_0xadde('0x28'),_0x589fe5[_0xadde('0x1f')]):_0x589fe5[_0xadde('0x26')];_0x29e50e[_0xadde('0x4c')]=_0x589fe5[_0xadde('0x1f')];_0x29e50e[_0xadde('0x1e')]=_0x589fe5[_0xadde('0x1e')];RpcMemberReport[_0xadde('0x19')](_0x29e50e);}};Report['prototype']['blindTransfer']=function(_0x3b0afa){RpcVoiceTransferReport[_0xadde('0x41')][_0x3b0afa[_0xadde('0x58')]]=_0x3b0afa;};Report[_0xadde('0x1c')][_0xadde('0x59')]=function(_0x236939){RpcVoiceTransferReport[_0xadde('0x59')](_0x236939);};module['exports']=Report;