bd9e2b3c9d58dab84f592a25e0a0746d483bf26e
[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 _0x2eb3=['split','create','monitor','monitors','filename','createdAt','xcally-motion-preview','connectedlinename','isArray','startsWith','Local','indexOf','mobile','phone','substring','lastIndexOf','membername','exports','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','custom:voiceQueueReport','voiceQueueReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','interface','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','isNil','queuecallercomplete','queuecallercompleteAt','queuecallerexit','YYYY-MM-DD\x20HH:mm:ss','match','getAgentByInternal','keys','channel','outbound','internal','destination','exten','type','dialer','lastapplication','lastdata','queue','from-voip-provider','from-sip','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','uniqueid','blindTransfer','getCallType','UserId'];(function(_0x5ed5e4,_0x15d7fc){var _0xcc956a=function(_0x53130a){while(--_0x53130a){_0x5ed5e4['push'](_0x5ed5e4['shift']());}};_0xcc956a(++_0x15d7fc);}(_0x2eb3,0x6e));var _0x32eb=function(_0x518ef4,_0x2ea25d){_0x518ef4=_0x518ef4-0x0;var _0x21b8ff=_0x2eb3[_0x518ef4];return _0x21b8ff;};'use strict';var _=require('lodash');var moment=require(_0x32eb('0x0'));var util=require(_0x32eb('0x1'));var config=require(_0x32eb('0x2'));var ami=require(_0x32eb('0x3'));var RpcVoiceAgentReport=require(_0x32eb('0x4'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0x32eb('0x5'));var RpcMemberReport=require(_0x32eb('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x32eb('0x7'));var RpcVoiceTransferReport=require(_0x32eb('0x8'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x32eb('0x9'));var VoiceAgentReport=require(_0x32eb('0xa'));var VoiceDialReport=require(_0x32eb('0xb'));var UserReport=require(_0x32eb('0xc'));function Report(_0x106699){this['realtime']=_0x106699;this['agents']=_0x106699[_0x32eb('0xd')];this[_0x32eb('0xe')]=_0x106699[_0x32eb('0xe')];}Report[_0x32eb('0xf')][_0x32eb('0x10')]=function(_0x3b7ce4){var _0x44d228=new VoiceQueueReport(this[_0x32eb('0x11')]);var _0x231df0=new VoiceAgentReport(this[_0x32eb('0x11')]);var _0xf68629=new VoiceDialReport(this[_0x32eb('0x11')]);var _0x154952=new VoiceCallReport(this['realtime']);var _0x312a76=new UserReport(this['realtime']);if(config[_0x32eb('0x12')]&&config[_0x32eb('0x12')]['disabled']){ami['on'](_0x32eb('0x13'),this[_0x32eb('0x14')]['bind'](this));ami['on']('custom:voiceCallReport',this[_0x32eb('0x15')]['bind'](this));ami['on'](_0x32eb('0x16'),this[_0x32eb('0x17')]['bind'](this));ami['on'](_0x32eb('0x18'),this[_0x32eb('0x19')]['bind'](this));ami['on'](_0x32eb('0x1a'),this['blindTransfer']['bind'](this));ami['on'](_0x32eb('0x1b'),this[_0x32eb('0x1c')]['bind'](this));}};Report['prototype'][_0x32eb('0x1d')]=function(_0x523dae){var _0x31972c;_0x31972c=_[_0x32eb('0x1e')](this[_0x32eb('0xd')],function(_0x9d8ceb){return _0x9d8ceb[_0x32eb('0x1f')]==_0x523dae||_0x9d8ceb[_0x32eb('0x20')]==_0x523dae;});if(_['isNil'](_0x31972c)){var _0x59e2c6=_[_0x32eb('0x1e')](this['telephones'],function(_0x2cfcde){return _0x2cfcde[_0x32eb('0x1f')]==_0x523dae||_0x2cfcde['name']==_0x523dae;});if(_0x59e2c6){_0x31972c=_[_0x32eb('0x1e')](this[_0x32eb('0xd')],function(_0x17486a){return _0x17486a[_0x32eb('0x21')]==util[_0x32eb('0x22')](_0x32eb('0x23'),_0x59e2c6[_0x32eb('0x20')]);});}}return _0x31972c;};Report['prototype'][_0x32eb('0x14')]=function(_0xbec1b3){for(var _0x141f84=0x0;_0x141f84<_0xbec1b3[_0x32eb('0x24')];_0x141f84+=0x1){var _0x3fa54e=this[_0x32eb('0x1d')](_0xbec1b3[_0x141f84][_0x32eb('0x25')]);if(_0x3fa54e){_0xbec1b3[_0x141f84][_0x32eb('0x1f')]=_0x3fa54e['accountcode'];_0xbec1b3[_0x141f84][_0x32eb('0x26')]=!![];_0xbec1b3[_0x141f84][_0x32eb('0x27')]=_0x3fa54e[_0x32eb('0x20')];_0xbec1b3[_0x141f84][_0x32eb('0x21')]=_[_0x32eb('0x28')](_0x3fa54e[_0x32eb('0x21')])?util['format'](_0x32eb('0x23'),_0x3fa54e['name']):_0x3fa54e[_0x32eb('0x21')];if(_0xbec1b3[_0x141f84][_0x32eb('0x29')]){_0xbec1b3[_0x141f84][_0x32eb('0x2a')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0xbec1b3[_0x141f84][_0x32eb('0x2b')]){_0xbec1b3[_0x141f84]['queuecallerexitAt']=moment()['format'](_0x32eb('0x2c'));}RpcMemberReport[_0x32eb('0x14')](_0xbec1b3[_0x141f84]);}RpcVoiceQueueReport['create'](_0xbec1b3[_0x141f84]);}};function extractCalleridNumber(_0x51d6c4){var _0x2ccebd=_0x51d6c4[_0x32eb('0x2d')](/<(.*?)>/);return _0x2ccebd?_0x2ccebd[0x1]:_0x51d6c4;}Report[_0x32eb('0xf')][_0x32eb('0x2e')]=function(_0x5ea675){for(var _0x182d79=0x0;_0x182d79<Object[_0x32eb('0x2f')](this[_0x32eb('0xd')])['length'];_0x182d79++){var _0x214c2a=Object[_0x32eb('0x2f')](this[_0x32eb('0xd')])[_0x182d79];var _0x5423ad=this[_0x32eb('0xd')][_0x214c2a];if(_0x5423ad[_0x32eb('0x1f')]===Number(_0x5ea675))return _0x5423ad;}return null;};Report[_0x32eb('0xf')]['getCallType']=function(_0x2f1e2c){var _0x3f154f=_0x2f1e2c[_0x32eb('0x30')]['split']('-')[0x0];var _0xcb1f8c=this[_0x32eb('0xd')][_0x3f154f];if(!_0xcb1f8c)_0xcb1f8c=this[_0x32eb('0x2e')](_0x2f1e2c['calleridnum']);return!_0xcb1f8c?_0x32eb('0x31'):_0x32eb('0x32');};Report[_0x32eb('0xf')][_0x32eb('0x15')]=function(_0x592e57){_0x592e57[_0x32eb('0x33')]=_0x592e57[_0x32eb('0x33')]||_0x592e57[_0x32eb('0x34')];if(_0x592e57[_0x32eb('0x35')]==_0x32eb('0x36')){_0x592e57[_0x32eb('0x37')]='queue';_0x592e57[_0x32eb('0x38')]=_0x592e57[_0x32eb('0x39')];if(_0x592e57['context']==_0x32eb('0x3a')){_0x592e57[_0x32eb('0x1f')]='';_0x592e57['destination']=extractCalleridNumber(_0x592e57['callerid']);}else if(_0x592e57['context']==_0x32eb('0x3b')){if(_0x592e57[_0x32eb('0x33')]=='xcally-motion-preview'){_0x592e57[_0x32eb('0x33')]=extractCalleridNumber(_0x592e57[_0x32eb('0x3c')]);_0x592e57[_0x32eb('0x3d')]=_0x592e57[_0x32eb('0x3e')];_0x592e57[_0x32eb('0x3f')]=[_0x592e57['channel'],_0x592e57[_0x32eb('0x30')]=_0x592e57['destinationchannel']][0x0];_0x592e57['callerid']=_0x592e57[_0x32eb('0x3c')];}else{_0x592e57[_0x32eb('0x33')]=_0x592e57[_0x32eb('0x3d')];_0x592e57[_0x32eb('0x3d')]=_0x592e57[_0x32eb('0x3e')];if(_0x592e57[_0x32eb('0x40')]==_0x32eb('0x41')){_0x592e57['accountcode']=_0x592e57[_0x32eb('0x25')];}else{_0x592e57['accountcode']='';}}}}else{_0x592e57['callerid']=util[_0x32eb('0x22')](_0x32eb('0x42'),_0x592e57[_0x32eb('0x43')],_0x592e57[_0x32eb('0x3d')]);}if(RpcVoiceTransferReport[_0x32eb('0x44')][_0x592e57[_0x32eb('0x45')]]){var _0x2129eb=RpcVoiceTransferReport[_0x32eb('0x44')][_0x592e57[_0x32eb('0x45')]];_0x2129eb['transfereelinkedid']=_0x592e57[_0x32eb('0x46')];RpcVoiceTransferReport[_0x32eb('0x47')](_0x2129eb);delete RpcVoiceTransferReport[_0x32eb('0x44')][_0x592e57[_0x32eb('0x45')]];}if(_[_0x32eb('0x28')](_0x592e57[_0x32eb('0x35')])){_0x592e57[_0x32eb('0x35')]=this[_0x32eb('0x48')](_0x592e57);}if(_[_0x32eb('0x28')](_0x592e57[_0x32eb('0x49')])){var _0x3838b0=_0x592e57[_0x32eb('0x30')][_0x32eb('0x4a')]('-')[0x0];var _0x14aef3=this[_0x32eb('0xd')][_0x3838b0];if(!_0x14aef3)_0x14aef3=this[_0x32eb('0x2e')](_0x592e57[_0x32eb('0x1f')]);if(_0x14aef3){_0x592e57[_0x32eb('0x49')]=_0x14aef3['id'];_0x592e57['membername']=_0x14aef3[_0x32eb('0x20')];}}RpcVoiceCallReport[_0x32eb('0x4b')](_0x592e57);if(_0x592e57[_0x32eb('0x4c')]){for(var _0x451930=0x0;_0x451930<_0x592e57[_0x32eb('0x4d')]['length'];_0x451930+=0x1){_0x592e57['monitorFilename']=_0x592e57[_0x32eb('0x4d')][_0x451930][_0x32eb('0x4e')];_0x592e57['createdAt']=_0x592e57[_0x32eb('0x4d')][_0x451930][_0x32eb('0x4f')];if(_0x592e57[_0x32eb('0x34')]==_0x32eb('0x50')){_0x592e57[_0x32eb('0x3d')]=_0x592e57[_0x32eb('0x25')];_0x592e57['calleridname']=_0x592e57[_0x32eb('0x51')];_0x592e57[_0x32eb('0x25')]=_0x592e57[_0x32eb('0x1f')];_0x592e57[_0x32eb('0x51')]=_0x592e57['membername'];_0x592e57[_0x32eb('0x34')]=_0x592e57[_0x32eb('0x3e')];}else if(_0x592e57[_0x32eb('0x34')]=='xcally-motion-dialer'){_0x592e57['calleridnum']=_0x592e57[_0x32eb('0x33')];_0x592e57[_0x32eb('0x34')]=_0x592e57[_0x32eb('0x3e')];}RpcVoiceRecording[_0x32eb('0x4b')](_0x592e57);}}};Report[_0x32eb('0xf')][_0x32eb('0x17')]=function(_0x546806){if(_[_0x32eb('0x52')](_0x546806)){_0x546806['forEach'](function(_0x4a9f26){RpcVoiceAgentReport[_0x32eb('0x4b')](_0x4a9f26);});}else{RpcVoiceAgentReport[_0x32eb('0x4b')](_0x546806);}};Report[_0x32eb('0xf')][_0x32eb('0x19')]=function(_0x348330){RpcVoiceDialReport['create'](_0x348330);var _0x38b299;var _0x2c19e0;var _0x4dbe00=_0x348330[_0x32eb('0x30')];if(_[_0x32eb('0x53')](_0x4dbe00,_0x32eb('0x54'))){_0x2c19e0=_0x4dbe00['substring'](_0x4dbe00['indexOf']('/')+0x1,_0x4dbe00[_0x32eb('0x55')]('@'));_0x38b299=_[_0x32eb('0x1e')](this['agents'],function(_0x493d02){return _0x493d02[_0x32eb('0x56')]==_0x2c19e0||_0x493d02[_0x32eb('0x57')]==_0x2c19e0||_0x493d02[_0x32eb('0x1f')]==_0x2c19e0;});}else{_0x2c19e0=_0x4dbe00[_0x32eb('0x58')](_0x4dbe00[_0x32eb('0x55')]('/')+0x1,_0x4dbe00[_0x32eb('0x59')]('-'));_0x38b299=this['findAgent'](_0x2c19e0);}if(_0x38b299){_0x348330['interface']=_[_0x32eb('0x28')](_0x38b299['interface'])?util[_0x32eb('0x22')](_0x32eb('0x23'),_0x38b299[_0x32eb('0x20')]):_0x38b299[_0x32eb('0x21')];_0x348330[_0x32eb('0x5a')]=_0x38b299[_0x32eb('0x20')];_0x348330[_0x32eb('0x1f')]=_0x38b299['accountcode'];RpcMemberReport[_0x32eb('0x19')](_0x348330);}};Report[_0x32eb('0xf')]['blindTransfer']=function(_0x49179a){RpcVoiceTransferReport[_0x32eb('0x44')][_0x49179a['transfererlinkedid']]=_0x49179a;};Report[_0x32eb('0xf')][_0x32eb('0x1c')]=function(_0xc433b){RpcVoiceTransferReport[_0x32eb('0x1c')](_0xc433b);};module[_0x32eb('0x5b')]=Report;