a4244332dd8a6fb008a09b12af601bcb90922271
[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 _0xeedf=['SIP/%s','length','findAgent','assigned','lastAssignedTo','interface','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','getAgentByInternal','keys','getCallType','channel','split','calleridnum','outbound','internal','destination','type','dialer','lastapplication','queue','lastdata','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','disposition','ANSWERED','connectedlinenum','\x22%s\x22\x20<%s>','transfers','linkedid','transfereelinkedid','uniqueid','UserId','membername','monitor','monitorFilename','monitors','filename','createdAt','exten','calleridname','connectedlinename','xcally-motion-dialer','isArray','forEach','startsWith','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','realtime','agents','telephones','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','prototype','name','isNil','find','accountcode','format'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0xeedf,0x9d));var _0xfeed=function(_0x350c7e,_0x158813){_0x350c7e=_0x350c7e-0x0;var _0x4c9c07=_0xeedf[_0x350c7e];return _0x4c9c07;};'use strict';var _=require('lodash');var moment=require('moment');var util=require('util');var config=require('../../../config/environment');var ami=require(_0xfeed('0x0'));var RpcVoiceAgentReport=require(_0xfeed('0x1'));var RpcVoiceCallReport=require(_0xfeed('0x2'));var RpcVoiceDialReport=require(_0xfeed('0x3'));var RpcMemberReport=require(_0xfeed('0x4'));var RpcVoiceQueueReport=require(_0xfeed('0x5'));var RpcVoiceRecording=require(_0xfeed('0x6'));var RpcVoiceTransferReport=require(_0xfeed('0x7'));var VoiceQueueReport=require(_0xfeed('0x8'));var VoiceCallReport=require(_0xfeed('0x9'));var VoiceAgentReport=require(_0xfeed('0xa'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require('./userReport');function Report(_0x2a6ad6){this[_0xfeed('0xb')]=_0x2a6ad6;this[_0xfeed('0xc')]=_0x2a6ad6[_0xfeed('0xc')];this[_0xfeed('0xd')]=_0x2a6ad6['telephones'];}Report['prototype']['sync']=function(_0x1dd2d4){var _0x13857d=new VoiceQueueReport(this[_0xfeed('0xb')]);var _0x28e2a8=new VoiceAgentReport(this[_0xfeed('0xb')]);var _0x2c59ea=new VoiceDialReport(this[_0xfeed('0xb')]);var _0x2d7c21=new VoiceCallReport(this[_0xfeed('0xb')]);var _0x50a339=new UserReport(this[_0xfeed('0xb')]);if(config[_0xfeed('0xe')]&&config[_0xfeed('0xe')][_0xfeed('0xf')]){ami['on'](_0xfeed('0x10'),this[_0xfeed('0x11')][_0xfeed('0x12')](this));ami['on'](_0xfeed('0x13'),this[_0xfeed('0x14')][_0xfeed('0x12')](this));ami['on'](_0xfeed('0x15'),this[_0xfeed('0x16')]['bind'](this));ami['on'](_0xfeed('0x17'),this[_0xfeed('0x18')][_0xfeed('0x12')](this));ami['on'](_0xfeed('0x19'),this[_0xfeed('0x1a')]['bind'](this));ami['on'](_0xfeed('0x1b'),this[_0xfeed('0x1c')]['bind'](this));}};Report[_0xfeed('0x1d')]['findAgent']=function(_0x2cfa6d){var _0x1f1206;_0x1f1206=_['find'](this[_0xfeed('0xc')],function(_0x195ac3){return _0x195ac3['accountcode']==_0x2cfa6d||_0x195ac3[_0xfeed('0x1e')]==_0x2cfa6d;});if(_[_0xfeed('0x1f')](_0x1f1206)){var _0x2e83b2=_[_0xfeed('0x20')](this['telephones'],function(_0xc711bd){return _0xc711bd[_0xfeed('0x21')]==_0x2cfa6d||_0xc711bd[_0xfeed('0x1e')]==_0x2cfa6d;});if(_0x2e83b2){_0x1f1206=_[_0xfeed('0x20')](this[_0xfeed('0xc')],function(_0x41a0eb){return _0x41a0eb['interface']==util[_0xfeed('0x22')](_0xfeed('0x23'),_0x2e83b2[_0xfeed('0x1e')]);});}}return _0x1f1206;};Report['prototype'][_0xfeed('0x11')]=function(_0x159364){for(var _0x3b1796=0x0;_0x3b1796<_0x159364[_0xfeed('0x24')];_0x3b1796+=0x1){var _0x57b7b5=this[_0xfeed('0x25')](_0x159364[_0x3b1796]['connectedlinenum']);if(_0x57b7b5){_0x159364[_0x3b1796][_0xfeed('0x21')]=_0x57b7b5['accountcode'];_0x159364[_0x3b1796][_0xfeed('0x26')]=!![];_0x159364[_0x3b1796][_0xfeed('0x27')]=_0x57b7b5[_0xfeed('0x1e')];_0x159364[_0x3b1796]['interface']=_['isNil'](_0x57b7b5['interface'])?util[_0xfeed('0x22')](_0xfeed('0x23'),_0x57b7b5[_0xfeed('0x1e')]):_0x57b7b5[_0xfeed('0x28')];if(_0x159364[_0x3b1796][_0xfeed('0x29')]){_0x159364[_0x3b1796][_0xfeed('0x2a')]=moment()[_0xfeed('0x22')](_0xfeed('0x2b'));}if(_0x159364[_0x3b1796][_0xfeed('0x2c')]){_0x159364[_0x3b1796][_0xfeed('0x2d')]=moment()['format'](_0xfeed('0x2b'));}RpcMemberReport[_0xfeed('0x11')](_0x159364[_0x3b1796]);}RpcVoiceQueueReport[_0xfeed('0x2e')](_0x159364[_0x3b1796]);}};function extractCalleridNumber(_0x1f0dd2){var _0x2d2c38=_0x1f0dd2['match'](/<(.*?)>/);return _0x2d2c38?_0x2d2c38[0x1]:_0x1f0dd2;}Report[_0xfeed('0x1d')][_0xfeed('0x2f')]=function(_0x26057f){for(var _0x45773e=0x0;_0x45773e<Object[_0xfeed('0x30')](this[_0xfeed('0xc')])['length'];_0x45773e++){var _0x53c5eb=Object[_0xfeed('0x30')](this['agents'])[_0x45773e];var _0x5b1633=this[_0xfeed('0xc')][_0x53c5eb];if(_0x5b1633[_0xfeed('0x21')]===Number(_0x26057f))return _0x5b1633;}return null;};Report[_0xfeed('0x1d')][_0xfeed('0x31')]=function(_0x30be95){var _0x5497ad=_0x30be95[_0xfeed('0x32')][_0xfeed('0x33')]('-')[0x0];var _0x2325d0=this[_0xfeed('0xc')][_0x5497ad];if(!_0x2325d0)_0x2325d0=this[_0xfeed('0x2f')](_0x30be95[_0xfeed('0x34')]);return!_0x2325d0?_0xfeed('0x35'):_0xfeed('0x36');};Report[_0xfeed('0x1d')]['voiceCallReport']=function(_0x4f611d){_0x4f611d[_0xfeed('0x37')]=_0x4f611d['destination']||_0x4f611d['exten'];if(_0x4f611d[_0xfeed('0x38')]==_0xfeed('0x39')){_0x4f611d[_0xfeed('0x3a')]=_0xfeed('0x3b');_0x4f611d[_0xfeed('0x3c')]=_0x4f611d[_0xfeed('0x3b')];if(_0x4f611d['context']==_0xfeed('0x3d')){_0x4f611d[_0xfeed('0x21')]='';_0x4f611d['destination']=extractCalleridNumber(_0x4f611d[_0xfeed('0x3e')]);}else if(_0x4f611d['context']==_0xfeed('0x3f')){if(_0x4f611d[_0xfeed('0x37')]==_0xfeed('0x40')){_0x4f611d[_0xfeed('0x37')]=extractCalleridNumber(_0x4f611d[_0xfeed('0x41')]);_0x4f611d['calleridnum']=_0x4f611d[_0xfeed('0x42')];_0x4f611d[_0xfeed('0x43')]=[_0x4f611d[_0xfeed('0x32')],_0x4f611d['channel']=_0x4f611d[_0xfeed('0x43')]][0x0];_0x4f611d[_0xfeed('0x3e')]=_0x4f611d[_0xfeed('0x41')];}else{_0x4f611d['destination']=_0x4f611d[_0xfeed('0x34')];_0x4f611d[_0xfeed('0x34')]=_0x4f611d[_0xfeed('0x42')];if(_0x4f611d[_0xfeed('0x44')]==_0xfeed('0x45')){_0x4f611d['accountcode']=_0x4f611d[_0xfeed('0x46')];}else{_0x4f611d[_0xfeed('0x21')]='';}}}}else{_0x4f611d[_0xfeed('0x3e')]=util[_0xfeed('0x22')](_0xfeed('0x47'),_0x4f611d['calleridname'],_0x4f611d[_0xfeed('0x34')]);}if(RpcVoiceTransferReport[_0xfeed('0x48')][_0x4f611d['linkedid']]){var _0x129cd7=RpcVoiceTransferReport[_0xfeed('0x48')][_0x4f611d[_0xfeed('0x49')]];_0x129cd7[_0xfeed('0x4a')]=_0x4f611d[_0xfeed('0x4b')];RpcVoiceTransferReport[_0xfeed('0x1a')](_0x129cd7);delete RpcVoiceTransferReport[_0xfeed('0x48')][_0x4f611d[_0xfeed('0x49')]];}if(_[_0xfeed('0x1f')](_0x4f611d[_0xfeed('0x38')])){_0x4f611d[_0xfeed('0x38')]=this[_0xfeed('0x31')](_0x4f611d);}if(_[_0xfeed('0x1f')](_0x4f611d[_0xfeed('0x4c')])){var _0x45775e=_0x4f611d[_0xfeed('0x32')][_0xfeed('0x33')]('-')[0x0];var _0xcbfed4=this[_0xfeed('0xc')][_0x45775e];if(!_0xcbfed4)_0xcbfed4=this[_0xfeed('0x2f')](_0x4f611d[_0xfeed('0x21')]);if(_0xcbfed4){_0x4f611d[_0xfeed('0x4c')]=_0xcbfed4['id'];_0x4f611d[_0xfeed('0x4d')]=_0xcbfed4[_0xfeed('0x1e')];}}RpcVoiceCallReport['create'](_0x4f611d);if(_0x4f611d[_0xfeed('0x4e')]){for(var _0x4082f9=0x0;_0x4082f9<_0x4f611d['monitors'][_0xfeed('0x24')];_0x4082f9+=0x1){_0x4f611d[_0xfeed('0x4f')]=_0x4f611d[_0xfeed('0x50')][_0x4082f9][_0xfeed('0x51')];_0x4f611d[_0xfeed('0x52')]=_0x4f611d[_0xfeed('0x50')][_0x4082f9][_0xfeed('0x52')];if(_0x4f611d[_0xfeed('0x53')]==_0xfeed('0x40')){_0x4f611d[_0xfeed('0x34')]=_0x4f611d[_0xfeed('0x46')];_0x4f611d[_0xfeed('0x54')]=_0x4f611d[_0xfeed('0x55')];_0x4f611d[_0xfeed('0x46')]=_0x4f611d['accountcode'];_0x4f611d['connectedlinename']=_0x4f611d[_0xfeed('0x4d')];_0x4f611d[_0xfeed('0x53')]=_0x4f611d[_0xfeed('0x42')];}else if(_0x4f611d[_0xfeed('0x53')]==_0xfeed('0x56')){_0x4f611d[_0xfeed('0x34')]=_0x4f611d[_0xfeed('0x37')];_0x4f611d['exten']=_0x4f611d[_0xfeed('0x42')];}RpcVoiceRecording[_0xfeed('0x2e')](_0x4f611d);}}};Report[_0xfeed('0x1d')][_0xfeed('0x16')]=function(_0x5b1ae4){if(_[_0xfeed('0x57')](_0x5b1ae4)){_0x5b1ae4[_0xfeed('0x58')](function(_0x4cb397){RpcVoiceAgentReport['create'](_0x4cb397);});}else{RpcVoiceAgentReport[_0xfeed('0x2e')](_0x5b1ae4);}};Report[_0xfeed('0x1d')]['voiceDialReport']=function(_0x151ffb){RpcVoiceDialReport[_0xfeed('0x2e')](_0x151ffb);var _0x5e65dc;var _0x481fae;var _0x24aa46=_0x151ffb['channel'];if(_[_0xfeed('0x59')](_0x24aa46,'Local')){_0x481fae=_0x24aa46[_0xfeed('0x5a')](_0x24aa46[_0xfeed('0x5b')]('/')+0x1,_0x24aa46[_0xfeed('0x5b')]('@'));_0x5e65dc=_['find'](this[_0xfeed('0xc')],function(_0x939b75){return _0x939b75[_0xfeed('0x5c')]==_0x481fae||_0x939b75[_0xfeed('0x5d')]==_0x481fae||_0x939b75[_0xfeed('0x21')]==_0x481fae;});}else{_0x481fae=_0x24aa46[_0xfeed('0x5a')](_0x24aa46['indexOf']('/')+0x1,_0x24aa46[_0xfeed('0x5e')]('-'));_0x5e65dc=this[_0xfeed('0x25')](_0x481fae);}if(_0x5e65dc){_0x151ffb['interface']=_[_0xfeed('0x1f')](_0x5e65dc[_0xfeed('0x28')])?util[_0xfeed('0x22')]('SIP/%s',_0x5e65dc[_0xfeed('0x1e')]):_0x5e65dc['interface'];_0x151ffb[_0xfeed('0x4d')]=_0x5e65dc[_0xfeed('0x1e')];_0x151ffb[_0xfeed('0x21')]=_0x5e65dc[_0xfeed('0x21')];RpcMemberReport[_0xfeed('0x18')](_0x151ffb);}};Report['prototype'][_0xfeed('0x1a')]=function(_0x117d20){RpcVoiceTransferReport['transfers'][_0x117d20[_0xfeed('0x5f')]]=_0x117d20;};Report[_0xfeed('0x1d')][_0xfeed('0x1c')]=function(_0x1d475b){RpcVoiceTransferReport['attendedTransfer'](_0x1d475b);};module['exports']=Report;