57eea9dc1075fe561dd81e7e8851844537652215
[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 _0x7d71=['monitorFilename','filename','createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','startsWith','Local','substring','indexOf','mobile','phone','transfererlinkedid','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','voiceQueueReport','custom:voiceCallReport','voiceAgentReport','bind','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedTransfer','accountcode','name','isNil','find','interface','format','SIP/%s','findAgent','connectedlinenum','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','keys','length','getCallType','channel','split','getAgentByInternal','calleridnum','voiceCallReport','destination','exten','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','originatecalleridnum','destinationchannel','calleridpreview','disposition','ANSWERED','calleridname','transfers','linkedid','type','UserId','membername','monitor','monitors'];(function(_0x11dd5a,_0x3e56c0){var _0x27e002=function(_0x46e90f){while(--_0x46e90f){_0x11dd5a['push'](_0x11dd5a['shift']());}};_0x27e002(++_0x3e56c0);}(_0x7d71,0x17f));var _0x17d7=function(_0x17b6e3,_0x4522ed){_0x17b6e3=_0x17b6e3-0x0;var _0x3906f3=_0x7d71[_0x17b6e3];return _0x3906f3;};'use strict';var _=require(_0x17d7('0x0'));var moment=require(_0x17d7('0x1'));var util=require(_0x17d7('0x2'));var config=require(_0x17d7('0x3'));var ami=require(_0x17d7('0x4'));var RpcVoiceAgentReport=require(_0x17d7('0x5'));var RpcVoiceCallReport=require(_0x17d7('0x6'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x17d7('0x7'));var RpcVoiceQueueReport=require(_0x17d7('0x8'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x17d7('0x9'));var VoiceQueueReport=require(_0x17d7('0xa'));var VoiceCallReport=require(_0x17d7('0xb'));var VoiceAgentReport=require(_0x17d7('0xc'));var VoiceDialReport=require(_0x17d7('0xd'));var UserReport=require(_0x17d7('0xe'));function Report(_0x14d139){this['realtime']=_0x14d139;this[_0x17d7('0xf')]=_0x14d139[_0x17d7('0xf')];this[_0x17d7('0x10')]=_0x14d139[_0x17d7('0x10')];}Report[_0x17d7('0x11')][_0x17d7('0x12')]=function(_0x3e1af4){var _0x5de626=new VoiceQueueReport(this[_0x17d7('0x13')]);var _0x2e2a80=new VoiceAgentReport(this[_0x17d7('0x13')]);var _0x49d6ed=new VoiceDialReport(this[_0x17d7('0x13')]);var _0x1cb77c=new VoiceCallReport(this[_0x17d7('0x13')]);var _0x1f03ff=new UserReport(this['realtime']);if(config[_0x17d7('0x14')]&&config['xdr']['disabled']){ami['on']('custom:voiceQueueReport',this[_0x17d7('0x15')]['bind'](this));ami['on'](_0x17d7('0x16'),this['voiceCallReport']['bind'](this));ami['on']('custom:voiceAgentReport',this[_0x17d7('0x17')][_0x17d7('0x18')](this));ami['on'](_0x17d7('0x19'),this[_0x17d7('0x1a')][_0x17d7('0x18')](this));ami['on'](_0x17d7('0x1b'),this[_0x17d7('0x1c')]['bind'](this));ami['on']('attendedtransfer',this[_0x17d7('0x1d')][_0x17d7('0x18')](this));}};Report[_0x17d7('0x11')]['findAgent']=function(_0xa3baa7){var _0x554638;_0x554638=_['find'](this[_0x17d7('0xf')],function(_0x59b71c){return _0x59b71c[_0x17d7('0x1e')]==_0xa3baa7||_0x59b71c[_0x17d7('0x1f')]==_0xa3baa7;});if(_[_0x17d7('0x20')](_0x554638)){var _0x509c1e=_[_0x17d7('0x21')](this[_0x17d7('0x10')],function(_0x11d8ec){return _0x11d8ec[_0x17d7('0x1e')]==_0xa3baa7||_0x11d8ec['name']==_0xa3baa7;});if(_0x509c1e){_0x554638=_[_0x17d7('0x21')](this[_0x17d7('0xf')],function(_0x17da1f){return _0x17da1f[_0x17d7('0x22')]==util[_0x17d7('0x23')](_0x17d7('0x24'),_0x509c1e['name']);});}}return _0x554638;};Report[_0x17d7('0x11')]['voiceQueueReport']=function(_0x3cd16c){for(var _0x36fc76=0x0;_0x36fc76<_0x3cd16c['length'];_0x36fc76+=0x1){var _0x59cafa=this[_0x17d7('0x25')](_0x3cd16c[_0x36fc76][_0x17d7('0x26')]);if(_0x59cafa){_0x3cd16c[_0x36fc76][_0x17d7('0x1e')]=_0x59cafa[_0x17d7('0x1e')];_0x3cd16c[_0x36fc76]['assigned']=!![];_0x3cd16c[_0x36fc76]['lastAssignedTo']=_0x59cafa[_0x17d7('0x1f')];_0x3cd16c[_0x36fc76][_0x17d7('0x22')]=_[_0x17d7('0x20')](_0x59cafa['interface'])?util[_0x17d7('0x23')]('SIP/%s',_0x59cafa[_0x17d7('0x1f')]):_0x59cafa[_0x17d7('0x22')];if(_0x3cd16c[_0x36fc76][_0x17d7('0x27')]){_0x3cd16c[_0x36fc76][_0x17d7('0x28')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x3cd16c[_0x36fc76][_0x17d7('0x29')]){_0x3cd16c[_0x36fc76][_0x17d7('0x2a')]=moment()['format'](_0x17d7('0x2b'));}RpcMemberReport[_0x17d7('0x15')](_0x3cd16c[_0x36fc76]);}RpcVoiceQueueReport[_0x17d7('0x2c')](_0x3cd16c[_0x36fc76]);}};function extractCalleridNumber(_0x58455b){var _0x5422f0=_0x58455b[_0x17d7('0x2d')](/<(.*?)>/);return _0x5422f0?_0x5422f0[0x1]:_0x58455b;}Report['prototype']['getAgentByInternal']=function(_0x2e6e8c){for(var _0x2142dd=0x0;_0x2142dd<Object[_0x17d7('0x2e')](this[_0x17d7('0xf')])[_0x17d7('0x2f')];_0x2142dd++){var _0x2d309d=Object[_0x17d7('0x2e')](this[_0x17d7('0xf')])[_0x2142dd];var _0x9fb00a=this[_0x17d7('0xf')][_0x2d309d];if(_0x9fb00a['accountcode']===Number(_0x2e6e8c))return _0x9fb00a;}return null;};Report[_0x17d7('0x11')][_0x17d7('0x30')]=function(_0x4c9464){var _0x2b78c9=_0x4c9464[_0x17d7('0x31')][_0x17d7('0x32')]('-')[0x0];var _0x305682=this['agents'][_0x2b78c9];if(!_0x305682)_0x305682=this[_0x17d7('0x33')](_0x4c9464[_0x17d7('0x34')]);return!_0x305682?'outbound':'internal';};Report[_0x17d7('0x11')][_0x17d7('0x35')]=function(_0x172dfe){_0x172dfe[_0x17d7('0x36')]=_0x172dfe[_0x17d7('0x36')]||_0x172dfe[_0x17d7('0x37')];if(_0x172dfe['type']==_0x17d7('0x38')){_0x172dfe['lastapplication']=_0x17d7('0x39');_0x172dfe[_0x17d7('0x3a')]=_0x172dfe[_0x17d7('0x39')];if(_0x172dfe[_0x17d7('0x3b')]==_0x17d7('0x3c')){_0x172dfe['accountcode']='';_0x172dfe[_0x17d7('0x36')]=extractCalleridNumber(_0x172dfe[_0x17d7('0x3d')]);}else if(_0x172dfe[_0x17d7('0x3b')]==_0x17d7('0x3e')){if(_0x172dfe[_0x17d7('0x36')]==_0x17d7('0x3f')){_0x172dfe[_0x17d7('0x36')]=extractCalleridNumber(_0x172dfe['calleridpreview']);_0x172dfe[_0x17d7('0x34')]=_0x172dfe[_0x17d7('0x40')];_0x172dfe['destinationchannel']=[_0x172dfe[_0x17d7('0x31')],_0x172dfe['channel']=_0x172dfe[_0x17d7('0x41')]][0x0];_0x172dfe[_0x17d7('0x3d')]=_0x172dfe[_0x17d7('0x42')];}else{_0x172dfe[_0x17d7('0x36')]=_0x172dfe[_0x17d7('0x34')];_0x172dfe[_0x17d7('0x34')]=_0x172dfe[_0x17d7('0x40')];if(_0x172dfe[_0x17d7('0x43')]==_0x17d7('0x44')){_0x172dfe[_0x17d7('0x1e')]=_0x172dfe[_0x17d7('0x26')];}else{_0x172dfe['accountcode']='';}}}}else{_0x172dfe[_0x17d7('0x3d')]=util[_0x17d7('0x23')]('\x22%s\x22\x20<%s>',_0x172dfe[_0x17d7('0x45')],_0x172dfe[_0x17d7('0x34')]);}if(RpcVoiceTransferReport[_0x17d7('0x46')][_0x172dfe['linkedid']]){var _0x8fddd=RpcVoiceTransferReport[_0x17d7('0x46')][_0x172dfe[_0x17d7('0x47')]];_0x8fddd['transfereelinkedid']=_0x172dfe['uniqueid'];RpcVoiceTransferReport[_0x17d7('0x1c')](_0x8fddd);delete RpcVoiceTransferReport[_0x17d7('0x46')][_0x172dfe[_0x17d7('0x47')]];}if(_['isNil'](_0x172dfe['type'])){_0x172dfe[_0x17d7('0x48')]=this[_0x17d7('0x30')](_0x172dfe);}if(_[_0x17d7('0x20')](_0x172dfe[_0x17d7('0x49')])){var _0x56953c=_0x172dfe[_0x17d7('0x31')][_0x17d7('0x32')]('-')[0x0];var _0x1d38aa=this[_0x17d7('0xf')][_0x56953c];if(!_0x1d38aa)_0x1d38aa=this[_0x17d7('0x33')](_0x172dfe[_0x17d7('0x1e')]);if(_0x1d38aa){_0x172dfe['UserId']=_0x1d38aa['id'];_0x172dfe[_0x17d7('0x4a')]=_0x1d38aa[_0x17d7('0x1f')];}}RpcVoiceCallReport[_0x17d7('0x2c')](_0x172dfe);if(_0x172dfe[_0x17d7('0x4b')]){for(var _0x4f1ead=0x0;_0x4f1ead<_0x172dfe[_0x17d7('0x4c')][_0x17d7('0x2f')];_0x4f1ead+=0x1){_0x172dfe[_0x17d7('0x4d')]=_0x172dfe[_0x17d7('0x4c')][_0x4f1ead][_0x17d7('0x4e')];_0x172dfe[_0x17d7('0x4f')]=_0x172dfe[_0x17d7('0x4c')][_0x4f1ead][_0x17d7('0x4f')];if(_0x172dfe['exten']==_0x17d7('0x3f')){_0x172dfe[_0x17d7('0x34')]=_0x172dfe[_0x17d7('0x26')];_0x172dfe['calleridname']=_0x172dfe['connectedlinename'];_0x172dfe[_0x17d7('0x26')]=_0x172dfe[_0x17d7('0x1e')];_0x172dfe[_0x17d7('0x50')]=_0x172dfe[_0x17d7('0x4a')];_0x172dfe[_0x17d7('0x37')]=_0x172dfe[_0x17d7('0x40')];}else if(_0x172dfe['exten']==_0x17d7('0x51')){_0x172dfe[_0x17d7('0x34')]=_0x172dfe[_0x17d7('0x36')];_0x172dfe['exten']=_0x172dfe[_0x17d7('0x40')];}RpcVoiceRecording[_0x17d7('0x2c')](_0x172dfe);}}};Report[_0x17d7('0x11')]['voiceAgentReport']=function(_0x223f0f){if(_[_0x17d7('0x52')](_0x223f0f)){_0x223f0f[_0x17d7('0x53')](function(_0x131421){RpcVoiceAgentReport[_0x17d7('0x2c')](_0x131421);});}else{RpcVoiceAgentReport['create'](_0x223f0f);}};Report[_0x17d7('0x11')][_0x17d7('0x1a')]=function(_0x3c0f47){RpcVoiceDialReport[_0x17d7('0x2c')](_0x3c0f47);var _0x20b3e9;var _0x136e2b;var _0xf7c3be=_0x3c0f47[_0x17d7('0x31')];if(_[_0x17d7('0x54')](_0xf7c3be,_0x17d7('0x55'))){_0x136e2b=_0xf7c3be[_0x17d7('0x56')](_0xf7c3be['indexOf']('/')+0x1,_0xf7c3be[_0x17d7('0x57')]('@'));_0x20b3e9=_['find'](this['agents'],function(_0x460747){return _0x460747[_0x17d7('0x58')]==_0x136e2b||_0x460747[_0x17d7('0x59')]==_0x136e2b||_0x460747['accountcode']==_0x136e2b;});}else{_0x136e2b=_0xf7c3be[_0x17d7('0x56')](_0xf7c3be[_0x17d7('0x57')]('/')+0x1,_0xf7c3be['lastIndexOf']('-'));_0x20b3e9=this[_0x17d7('0x25')](_0x136e2b);}if(_0x20b3e9){_0x3c0f47['interface']=_[_0x17d7('0x20')](_0x20b3e9[_0x17d7('0x22')])?util[_0x17d7('0x23')]('SIP/%s',_0x20b3e9['name']):_0x20b3e9[_0x17d7('0x22')];_0x3c0f47[_0x17d7('0x4a')]=_0x20b3e9[_0x17d7('0x1f')];_0x3c0f47[_0x17d7('0x1e')]=_0x20b3e9[_0x17d7('0x1e')];RpcMemberReport['voiceDialReport'](_0x3c0f47);}};Report[_0x17d7('0x11')][_0x17d7('0x1c')]=function(_0x25b616){RpcVoiceTransferReport[_0x17d7('0x46')][_0x25b616[_0x17d7('0x5a')]]=_0x25b616;};Report[_0x17d7('0x11')][_0x17d7('0x1d')]=function(_0x18b704){RpcVoiceTransferReport[_0x17d7('0x1d')](_0x18b704);};module[_0x17d7('0x5b')]=Report;