60d9fbdc33cecc2d5fc0b7aae404f4955174d6b5
[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 _0x96fa=['phone','lastIndexOf','transfererlinkedid','exports','moment','util','../../../config/environment','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','realtime','agents','telephones','sync','disabled','custom:voiceQueueReport','bind','voiceCallReport','voiceAgentReport','voiceDialReport','blindtransfer','blindTransfer','attendedTransfer','prototype','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','voiceQueueReport','create','match','getAgentByInternal','keys','getCallType','channel','split','calleridnum','outbound','internal','destination','type','dialer','lastapplication','queue','lastdata','context','callerid','from-sip','xcally-motion-preview','destinationchannel','calleridpreview','originatecalleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','transfers','linkedid','transfereelinkedid','uniqueid','UserId','membername','monitor','monitors','monitorFilename','filename','createdAt','exten','forEach','startsWith','Local','substring','indexOf','mobile'];(function(_0x31e286,_0x4c5014){var _0x1c29a4=function(_0x2df322){while(--_0x2df322){_0x31e286['push'](_0x31e286['shift']());}};_0x1c29a4(++_0x4c5014);}(_0x96fa,0x112));var _0xa96f=function(_0x6dd5cc,_0x515081){_0x6dd5cc=_0x6dd5cc-0x0;var _0x233270=_0x96fa[_0x6dd5cc];return _0x233270;};'use strict';var _=require('lodash');var moment=require(_0xa96f('0x0'));var util=require(_0xa96f('0x1'));var config=require(_0xa96f('0x2'));var ami=require(_0xa96f('0x3'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xa96f('0x4'));var RpcVoiceDialReport=require(_0xa96f('0x5'));var RpcMemberReport=require(_0xa96f('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xa96f('0x7'));var RpcVoiceTransferReport=require(_0xa96f('0x8'));var VoiceQueueReport=require(_0xa96f('0x9'));var VoiceCallReport=require(_0xa96f('0xa'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require('./voiceDialReport');var UserReport=require('./userReport');function Report(_0x5d8d40){this[_0xa96f('0xb')]=_0x5d8d40;this['agents']=_0x5d8d40[_0xa96f('0xc')];this[_0xa96f('0xd')]=_0x5d8d40[_0xa96f('0xd')];}Report['prototype'][_0xa96f('0xe')]=function(_0xa1c59d){var _0x51ad78=new VoiceQueueReport(this['realtime']);var _0x1c27f3=new VoiceAgentReport(this[_0xa96f('0xb')]);var _0x27a99a=new VoiceDialReport(this[_0xa96f('0xb')]);var _0x218c6e=new VoiceCallReport(this[_0xa96f('0xb')]);var _0x5ef058=new UserReport(this['realtime']);if(config['xdr']&&config['xdr'][_0xa96f('0xf')]){ami['on'](_0xa96f('0x10'),this['voiceQueueReport'][_0xa96f('0x11')](this));ami['on']('custom:voiceCallReport',this[_0xa96f('0x12')][_0xa96f('0x11')](this));ami['on']('custom:voiceAgentReport',this[_0xa96f('0x13')][_0xa96f('0x11')](this));ami['on']('custom:voiceDialReport',this[_0xa96f('0x14')][_0xa96f('0x11')](this));ami['on'](_0xa96f('0x15'),this[_0xa96f('0x16')][_0xa96f('0x11')](this));ami['on']('attendedtransfer',this[_0xa96f('0x17')][_0xa96f('0x11')](this));}};Report[_0xa96f('0x18')][_0xa96f('0x19')]=function(_0x26c583){var _0x5462e5;_0x5462e5=_[_0xa96f('0x1a')](this[_0xa96f('0xc')],function(_0x5362ce){return _0x5362ce[_0xa96f('0x1b')]==_0x26c583||_0x5362ce[_0xa96f('0x1c')]==_0x26c583;});if(_[_0xa96f('0x1d')](_0x5462e5)){var _0x180563=_[_0xa96f('0x1a')](this[_0xa96f('0xd')],function(_0x34e454){return _0x34e454['accountcode']==_0x26c583||_0x34e454['name']==_0x26c583;});if(_0x180563){_0x5462e5=_[_0xa96f('0x1a')](this['agents'],function(_0x361c08){return _0x361c08[_0xa96f('0x1e')]==util[_0xa96f('0x1f')](_0xa96f('0x20'),_0x180563[_0xa96f('0x1c')]);});}}return _0x5462e5;};Report[_0xa96f('0x18')]['voiceQueueReport']=function(_0x16d285){for(var _0x49501f=0x0;_0x49501f<_0x16d285[_0xa96f('0x21')];_0x49501f+=0x1){var _0x49e6f0=this['findAgent'](_0x16d285[_0x49501f][_0xa96f('0x22')]);if(_0x49e6f0){_0x16d285[_0x49501f][_0xa96f('0x1b')]=_0x49e6f0[_0xa96f('0x1b')];_0x16d285[_0x49501f][_0xa96f('0x23')]=!![];_0x16d285[_0x49501f][_0xa96f('0x24')]=_0x49e6f0[_0xa96f('0x1c')];_0x16d285[_0x49501f][_0xa96f('0x1e')]=_['isNil'](_0x49e6f0['interface'])?util[_0xa96f('0x1f')](_0xa96f('0x20'),_0x49e6f0[_0xa96f('0x1c')]):_0x49e6f0[_0xa96f('0x1e')];if(_0x16d285[_0x49501f][_0xa96f('0x25')]){_0x16d285[_0x49501f][_0xa96f('0x26')]=moment()[_0xa96f('0x1f')](_0xa96f('0x27'));}if(_0x16d285[_0x49501f][_0xa96f('0x28')]){_0x16d285[_0x49501f]['queuecallerexitAt']=moment()[_0xa96f('0x1f')](_0xa96f('0x27'));}RpcMemberReport[_0xa96f('0x29')](_0x16d285[_0x49501f]);}RpcVoiceQueueReport[_0xa96f('0x2a')](_0x16d285[_0x49501f]);}};function extractCalleridNumber(_0x3d8c8c){var _0x23668c=_0x3d8c8c[_0xa96f('0x2b')](/<(.*?)>/);return _0x23668c?_0x23668c[0x1]:_0x3d8c8c;}Report['prototype'][_0xa96f('0x2c')]=function(_0x24e0b9){for(var _0x1eef2a=0x0;_0x1eef2a<Object[_0xa96f('0x2d')](this[_0xa96f('0xc')])['length'];_0x1eef2a++){var _0x2d548b=Object[_0xa96f('0x2d')](this[_0xa96f('0xc')])[_0x1eef2a];var _0x20d613=this[_0xa96f('0xc')][_0x2d548b];if(_0x20d613[_0xa96f('0x1b')]===Number(_0x24e0b9))return _0x20d613;}return null;};Report[_0xa96f('0x18')][_0xa96f('0x2e')]=function(_0x2e540b){var _0x4b7bfd=_0x2e540b[_0xa96f('0x2f')][_0xa96f('0x30')]('-')[0x0];var _0x5b86d0=this['agents'][_0x4b7bfd];if(!_0x5b86d0)_0x5b86d0=this[_0xa96f('0x2c')](_0x2e540b[_0xa96f('0x31')]);return!_0x5b86d0?_0xa96f('0x32'):_0xa96f('0x33');};Report[_0xa96f('0x18')][_0xa96f('0x12')]=function(_0x1c05d8){_0x1c05d8[_0xa96f('0x34')]=_0x1c05d8['destination']||_0x1c05d8['exten'];if(_0x1c05d8[_0xa96f('0x35')]==_0xa96f('0x36')){_0x1c05d8[_0xa96f('0x37')]=_0xa96f('0x38');_0x1c05d8[_0xa96f('0x39')]=_0x1c05d8[_0xa96f('0x38')];if(_0x1c05d8[_0xa96f('0x3a')]=='from-voip-provider'){_0x1c05d8['accountcode']='';_0x1c05d8['destination']=extractCalleridNumber(_0x1c05d8[_0xa96f('0x3b')]);}else if(_0x1c05d8[_0xa96f('0x3a')]==_0xa96f('0x3c')){if(_0x1c05d8['destination']==_0xa96f('0x3d')){_0x1c05d8[_0xa96f('0x34')]=extractCalleridNumber(_0x1c05d8['calleridpreview']);_0x1c05d8[_0xa96f('0x31')]=_0x1c05d8['originatecalleridnum'];_0x1c05d8[_0xa96f('0x3e')]=[_0x1c05d8[_0xa96f('0x2f')],_0x1c05d8['channel']=_0x1c05d8[_0xa96f('0x3e')]][0x0];_0x1c05d8[_0xa96f('0x3b')]=_0x1c05d8[_0xa96f('0x3f')];}else{_0x1c05d8[_0xa96f('0x34')]=_0x1c05d8[_0xa96f('0x31')];_0x1c05d8[_0xa96f('0x31')]=_0x1c05d8[_0xa96f('0x40')];if(_0x1c05d8[_0xa96f('0x41')]==_0xa96f('0x42')){_0x1c05d8['accountcode']=_0x1c05d8[_0xa96f('0x22')];}else{_0x1c05d8[_0xa96f('0x1b')]='';}}}}else{_0x1c05d8[_0xa96f('0x3b')]=util[_0xa96f('0x1f')](_0xa96f('0x43'),_0x1c05d8['calleridname'],_0x1c05d8[_0xa96f('0x31')]);}if(RpcVoiceTransferReport[_0xa96f('0x44')][_0x1c05d8['linkedid']]){var _0x3b9802=RpcVoiceTransferReport['transfers'][_0x1c05d8[_0xa96f('0x45')]];_0x3b9802[_0xa96f('0x46')]=_0x1c05d8[_0xa96f('0x47')];RpcVoiceTransferReport[_0xa96f('0x16')](_0x3b9802);delete RpcVoiceTransferReport[_0xa96f('0x44')][_0x1c05d8[_0xa96f('0x45')]];}if(_['isNil'](_0x1c05d8[_0xa96f('0x35')])){_0x1c05d8[_0xa96f('0x35')]=this[_0xa96f('0x2e')](_0x1c05d8);}if(_['isNil'](_0x1c05d8[_0xa96f('0x48')])){var _0x2b4ee7=_0x1c05d8[_0xa96f('0x2f')][_0xa96f('0x30')]('-')[0x0];var _0x3eb8c0=this[_0xa96f('0xc')][_0x2b4ee7];if(!_0x3eb8c0)_0x3eb8c0=this['getAgentByInternal'](_0x1c05d8['accountcode']);if(_0x3eb8c0){_0x1c05d8[_0xa96f('0x48')]=_0x3eb8c0['id'];_0x1c05d8[_0xa96f('0x49')]=_0x3eb8c0[_0xa96f('0x1c')];}}RpcVoiceCallReport[_0xa96f('0x2a')](_0x1c05d8);if(_0x1c05d8[_0xa96f('0x4a')]){for(var _0x405b37=0x0;_0x405b37<_0x1c05d8[_0xa96f('0x4b')]['length'];_0x405b37+=0x1){_0x1c05d8[_0xa96f('0x4c')]=_0x1c05d8[_0xa96f('0x4b')][_0x405b37][_0xa96f('0x4d')];_0x1c05d8[_0xa96f('0x4e')]=_0x1c05d8[_0xa96f('0x4b')][_0x405b37][_0xa96f('0x4e')];if(_0x1c05d8[_0xa96f('0x4f')]==_0xa96f('0x3d')){_0x1c05d8[_0xa96f('0x31')]=_0x1c05d8[_0xa96f('0x22')];_0x1c05d8['calleridname']=_0x1c05d8['connectedlinename'];_0x1c05d8['connectedlinenum']=_0x1c05d8[_0xa96f('0x1b')];_0x1c05d8['connectedlinename']=_0x1c05d8[_0xa96f('0x49')];_0x1c05d8['exten']=_0x1c05d8['originatecalleridnum'];}else if(_0x1c05d8[_0xa96f('0x4f')]=='xcally-motion-dialer'){_0x1c05d8['calleridnum']=_0x1c05d8[_0xa96f('0x34')];_0x1c05d8[_0xa96f('0x4f')]=_0x1c05d8[_0xa96f('0x40')];}RpcVoiceRecording['create'](_0x1c05d8);}}};Report[_0xa96f('0x18')][_0xa96f('0x13')]=function(_0x56b59f){if(_['isArray'](_0x56b59f)){_0x56b59f[_0xa96f('0x50')](function(_0x5dbee7){RpcVoiceAgentReport['create'](_0x5dbee7);});}else{RpcVoiceAgentReport['create'](_0x56b59f);}};Report[_0xa96f('0x18')][_0xa96f('0x14')]=function(_0x4fbd9d){RpcVoiceDialReport[_0xa96f('0x2a')](_0x4fbd9d);var _0x29be9f;var _0x15e575;var _0x1ee539=_0x4fbd9d[_0xa96f('0x2f')];if(_[_0xa96f('0x51')](_0x1ee539,_0xa96f('0x52'))){_0x15e575=_0x1ee539[_0xa96f('0x53')](_0x1ee539[_0xa96f('0x54')]('/')+0x1,_0x1ee539[_0xa96f('0x54')]('@'));_0x29be9f=_['find'](this[_0xa96f('0xc')],function(_0x4e789b){return _0x4e789b[_0xa96f('0x55')]==_0x15e575||_0x4e789b[_0xa96f('0x56')]==_0x15e575||_0x4e789b['accountcode']==_0x15e575;});}else{_0x15e575=_0x1ee539['substring'](_0x1ee539[_0xa96f('0x54')]('/')+0x1,_0x1ee539[_0xa96f('0x57')]('-'));_0x29be9f=this[_0xa96f('0x19')](_0x15e575);}if(_0x29be9f){_0x4fbd9d[_0xa96f('0x1e')]=_['isNil'](_0x29be9f[_0xa96f('0x1e')])?util[_0xa96f('0x1f')](_0xa96f('0x20'),_0x29be9f['name']):_0x29be9f[_0xa96f('0x1e')];_0x4fbd9d[_0xa96f('0x49')]=_0x29be9f['name'];_0x4fbd9d[_0xa96f('0x1b')]=_0x29be9f['accountcode'];RpcMemberReport['voiceDialReport'](_0x4fbd9d);}};Report[_0xa96f('0x18')][_0xa96f('0x16')]=function(_0x4c0c64){RpcVoiceTransferReport[_0xa96f('0x44')][_0x4c0c64[_0xa96f('0x58')]]=_0x4c0c64;};Report[_0xa96f('0x18')][_0xa96f('0x17')]=function(_0x546c1c){RpcVoiceTransferReport[_0xa96f('0x17')](_0x546c1c);};module[_0xa96f('0x59')]=Report;