Built motion from commit 3d3e98f2.|2.6.29
[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 _0x1c30=['agents','telephones','prototype','disabled','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','getAgentByInternal','keys','getCallType','channel','internal','destination','exten','type','lastapplication','queue','lastdata','context','from-voip-provider','callerid','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','blindTransfer','UserId','split','membername','create','monitor','monitors','createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','voiceDialReport','Local','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','exports','lodash','moment','util','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./userReport','realtime'];(function(_0x30ba85,_0x503490){var _0x58b533=function(_0x131acf){while(--_0x131acf){_0x30ba85['push'](_0x30ba85['shift']());}};_0x58b533(++_0x503490);}(_0x1c30,0x162));var _0x01c3=function(_0x54c695,_0x5d6677){_0x54c695=_0x54c695-0x0;var _0x3ce06b=_0x1c30[_0x54c695];return _0x3ce06b;};'use strict';var _=require(_0x01c3('0x0'));var moment=require(_0x01c3('0x1'));var util=require(_0x01c3('0x2'));var config=require('../../../config/environment');var ami=require(_0x01c3('0x3'));var RpcVoiceAgentReport=require(_0x01c3('0x4'));var RpcVoiceCallReport=require(_0x01c3('0x5'));var RpcVoiceDialReport=require(_0x01c3('0x6'));var RpcMemberReport=require(_0x01c3('0x7'));var RpcVoiceQueueReport=require(_0x01c3('0x8'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x01c3('0x9'));var VoiceQueueReport=require(_0x01c3('0xa'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x01c3('0xb'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x01c3('0xc'));function Report(_0x116268){this[_0x01c3('0xd')]=_0x116268;this[_0x01c3('0xe')]=_0x116268[_0x01c3('0xe')];this[_0x01c3('0xf')]=_0x116268[_0x01c3('0xf')];}Report[_0x01c3('0x10')]['sync']=function(_0x388504){var _0x20ee55=new VoiceQueueReport(this[_0x01c3('0xd')]);var _0x28b7c1=new VoiceAgentReport(this['realtime']);var _0x42160a=new VoiceDialReport(this[_0x01c3('0xd')]);var _0x4c4637=new VoiceCallReport(this[_0x01c3('0xd')]);var _0x36d0cf=new UserReport(this[_0x01c3('0xd')]);if(config['xdr']&&config['xdr'][_0x01c3('0x11')]){ami['on']('custom:voiceQueueReport',this[_0x01c3('0x12')][_0x01c3('0x13')](this));ami['on'](_0x01c3('0x14'),this[_0x01c3('0x15')][_0x01c3('0x13')](this));ami['on'](_0x01c3('0x16'),this[_0x01c3('0x17')][_0x01c3('0x13')](this));ami['on'](_0x01c3('0x18'),this['voiceDialReport'][_0x01c3('0x13')](this));ami['on'](_0x01c3('0x19'),this['blindTransfer'][_0x01c3('0x13')](this));ami['on'](_0x01c3('0x1a'),this[_0x01c3('0x1b')][_0x01c3('0x13')](this));}};Report[_0x01c3('0x10')][_0x01c3('0x1c')]=function(_0x44eaab){var _0x2a25fe;_0x2a25fe=_[_0x01c3('0x1d')](this[_0x01c3('0xe')],function(_0x2e8ade){return _0x2e8ade[_0x01c3('0x1e')]==_0x44eaab||_0x2e8ade[_0x01c3('0x1f')]==_0x44eaab;});if(_[_0x01c3('0x20')](_0x2a25fe)){var _0xde3262=_[_0x01c3('0x1d')](this['telephones'],function(_0x422cce){return _0x422cce[_0x01c3('0x1e')]==_0x44eaab||_0x422cce[_0x01c3('0x1f')]==_0x44eaab;});if(_0xde3262){_0x2a25fe=_['find'](this[_0x01c3('0xe')],function(_0x594213){return _0x594213[_0x01c3('0x21')]==util[_0x01c3('0x22')](_0x01c3('0x23'),_0xde3262[_0x01c3('0x1f')]);});}}return _0x2a25fe;};Report[_0x01c3('0x10')][_0x01c3('0x12')]=function(_0x38a42c){for(var _0x5b7663=0x0;_0x5b7663<_0x38a42c[_0x01c3('0x24')];_0x5b7663+=0x1){var _0x4ad4f4=this[_0x01c3('0x1c')](_0x38a42c[_0x5b7663][_0x01c3('0x25')]);if(_0x4ad4f4){_0x38a42c[_0x5b7663][_0x01c3('0x1e')]=_0x4ad4f4['accountcode'];_0x38a42c[_0x5b7663][_0x01c3('0x26')]=!![];_0x38a42c[_0x5b7663][_0x01c3('0x27')]=_0x4ad4f4[_0x01c3('0x1f')];_0x38a42c[_0x5b7663]['interface']=_[_0x01c3('0x20')](_0x4ad4f4[_0x01c3('0x21')])?util['format'](_0x01c3('0x23'),_0x4ad4f4[_0x01c3('0x1f')]):_0x4ad4f4[_0x01c3('0x21')];if(_0x38a42c[_0x5b7663][_0x01c3('0x28')]){_0x38a42c[_0x5b7663]['queuecallercompleteAt']=moment()[_0x01c3('0x22')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x38a42c[_0x5b7663][_0x01c3('0x29')]){_0x38a42c[_0x5b7663][_0x01c3('0x2a')]=moment()['format'](_0x01c3('0x2b'));}RpcMemberReport[_0x01c3('0x12')](_0x38a42c[_0x5b7663]);}RpcVoiceQueueReport['create'](_0x38a42c[_0x5b7663]);}};function extractCalleridNumber(_0x4359ae){var _0x3fd47c=_0x4359ae['match'](/<(.*?)>/);return _0x3fd47c?_0x3fd47c[0x1]:_0x4359ae;}Report['prototype'][_0x01c3('0x2c')]=function(_0x49be37){for(var _0x33e590=0x0;_0x33e590<Object[_0x01c3('0x2d')](this['agents'])[_0x01c3('0x24')];_0x33e590++){var _0x53786e=Object[_0x01c3('0x2d')](this['agents'])[_0x33e590];var _0x2b82e4=this[_0x01c3('0xe')][_0x53786e];if(_0x2b82e4[_0x01c3('0x1e')]===Number(_0x49be37))return _0x2b82e4;}return null;};Report[_0x01c3('0x10')][_0x01c3('0x2e')]=function(_0x221570){var _0x2cc471=_0x221570[_0x01c3('0x2f')]['split']('-')[0x0];var _0x511b2e=this[_0x01c3('0xe')][_0x2cc471];if(!_0x511b2e)_0x511b2e=this[_0x01c3('0x2c')](_0x221570['calleridnum']);return!_0x511b2e?'outbound':_0x01c3('0x30');};Report[_0x01c3('0x10')]['voiceCallReport']=function(_0x42d862){_0x42d862[_0x01c3('0x31')]=_0x42d862[_0x01c3('0x31')]||_0x42d862[_0x01c3('0x32')];if(_0x42d862[_0x01c3('0x33')]=='dialer'){_0x42d862[_0x01c3('0x34')]=_0x01c3('0x35');_0x42d862[_0x01c3('0x36')]=_0x42d862[_0x01c3('0x35')];if(_0x42d862[_0x01c3('0x37')]==_0x01c3('0x38')){_0x42d862[_0x01c3('0x1e')]='';_0x42d862[_0x01c3('0x31')]=extractCalleridNumber(_0x42d862[_0x01c3('0x39')]);}else if(_0x42d862[_0x01c3('0x37')]=='from-sip'){if(_0x42d862[_0x01c3('0x31')]==_0x01c3('0x3a')){_0x42d862[_0x01c3('0x31')]=extractCalleridNumber(_0x42d862[_0x01c3('0x3b')]);_0x42d862[_0x01c3('0x3c')]=_0x42d862[_0x01c3('0x3d')];_0x42d862[_0x01c3('0x3e')]=[_0x42d862[_0x01c3('0x2f')],_0x42d862['channel']=_0x42d862[_0x01c3('0x3e')]][0x0];_0x42d862[_0x01c3('0x39')]=_0x42d862[_0x01c3('0x3b')];}else{_0x42d862['destination']=_0x42d862[_0x01c3('0x3c')];_0x42d862['calleridnum']=_0x42d862[_0x01c3('0x3d')];if(_0x42d862[_0x01c3('0x3f')]==_0x01c3('0x40')){_0x42d862['accountcode']=_0x42d862[_0x01c3('0x25')];}else{_0x42d862[_0x01c3('0x1e')]='';}}}}else{_0x42d862['callerid']=util[_0x01c3('0x22')](_0x01c3('0x41'),_0x42d862[_0x01c3('0x42')],_0x42d862['calleridnum']);}if(RpcVoiceTransferReport['transfers'][_0x42d862['linkedid']]){var _0x1b9cda=RpcVoiceTransferReport[_0x01c3('0x43')][_0x42d862[_0x01c3('0x44')]];_0x1b9cda[_0x01c3('0x45')]=_0x42d862[_0x01c3('0x46')];RpcVoiceTransferReport[_0x01c3('0x47')](_0x1b9cda);delete RpcVoiceTransferReport[_0x01c3('0x43')][_0x42d862[_0x01c3('0x44')]];}if(_[_0x01c3('0x20')](_0x42d862[_0x01c3('0x33')])){_0x42d862[_0x01c3('0x33')]=this[_0x01c3('0x2e')](_0x42d862);}if(_[_0x01c3('0x20')](_0x42d862[_0x01c3('0x48')])){var _0x2c67b4=_0x42d862[_0x01c3('0x2f')][_0x01c3('0x49')]('-')[0x0];var _0x182ba7=this[_0x01c3('0xe')][_0x2c67b4];if(!_0x182ba7)_0x182ba7=this['getAgentByInternal'](_0x42d862['accountcode']);if(_0x182ba7){_0x42d862[_0x01c3('0x48')]=_0x182ba7['id'];_0x42d862[_0x01c3('0x4a')]=_0x182ba7[_0x01c3('0x1f')];}}RpcVoiceCallReport[_0x01c3('0x4b')](_0x42d862);if(_0x42d862[_0x01c3('0x4c')]){for(var _0x18073b=0x0;_0x18073b<_0x42d862[_0x01c3('0x4d')][_0x01c3('0x24')];_0x18073b+=0x1){_0x42d862['monitorFilename']=_0x42d862['monitors'][_0x18073b]['filename'];_0x42d862[_0x01c3('0x4e')]=_0x42d862[_0x01c3('0x4d')][_0x18073b][_0x01c3('0x4e')];if(_0x42d862[_0x01c3('0x32')]==_0x01c3('0x3a')){_0x42d862[_0x01c3('0x3c')]=_0x42d862[_0x01c3('0x25')];_0x42d862[_0x01c3('0x42')]=_0x42d862[_0x01c3('0x4f')];_0x42d862[_0x01c3('0x25')]=_0x42d862[_0x01c3('0x1e')];_0x42d862[_0x01c3('0x4f')]=_0x42d862[_0x01c3('0x4a')];_0x42d862[_0x01c3('0x32')]=_0x42d862[_0x01c3('0x3d')];}else if(_0x42d862[_0x01c3('0x32')]==_0x01c3('0x50')){_0x42d862[_0x01c3('0x3c')]=_0x42d862[_0x01c3('0x31')];_0x42d862[_0x01c3('0x32')]=_0x42d862[_0x01c3('0x3d')];}RpcVoiceRecording[_0x01c3('0x4b')](_0x42d862);}}};Report[_0x01c3('0x10')][_0x01c3('0x17')]=function(_0x52c8a3){if(_[_0x01c3('0x51')](_0x52c8a3)){_0x52c8a3[_0x01c3('0x52')](function(_0x104d4b){RpcVoiceAgentReport[_0x01c3('0x4b')](_0x104d4b);});}else{RpcVoiceAgentReport[_0x01c3('0x4b')](_0x52c8a3);}};Report[_0x01c3('0x10')][_0x01c3('0x53')]=function(_0x431f49){RpcVoiceDialReport[_0x01c3('0x4b')](_0x431f49);var _0x20aaf8;var _0x9628bc;var _0x192586=_0x431f49['channel'];if(_['startsWith'](_0x192586,_0x01c3('0x54'))){_0x9628bc=_0x192586[_0x01c3('0x55')](_0x192586[_0x01c3('0x56')]('/')+0x1,_0x192586[_0x01c3('0x56')]('@'));_0x20aaf8=_[_0x01c3('0x1d')](this[_0x01c3('0xe')],function(_0x4c0544){return _0x4c0544[_0x01c3('0x57')]==_0x9628bc||_0x4c0544[_0x01c3('0x58')]==_0x9628bc||_0x4c0544[_0x01c3('0x1e')]==_0x9628bc;});}else{_0x9628bc=_0x192586['substring'](_0x192586[_0x01c3('0x56')]('/')+0x1,_0x192586[_0x01c3('0x59')]('-'));_0x20aaf8=this[_0x01c3('0x1c')](_0x9628bc);}if(_0x20aaf8){_0x431f49['interface']=_['isNil'](_0x20aaf8[_0x01c3('0x21')])?util[_0x01c3('0x22')](_0x01c3('0x23'),_0x20aaf8[_0x01c3('0x1f')]):_0x20aaf8['interface'];_0x431f49[_0x01c3('0x4a')]=_0x20aaf8['name'];_0x431f49[_0x01c3('0x1e')]=_0x20aaf8[_0x01c3('0x1e')];RpcMemberReport[_0x01c3('0x53')](_0x431f49);}};Report[_0x01c3('0x10')]['blindTransfer']=function(_0x4ed27d){RpcVoiceTransferReport['transfers'][_0x4ed27d[_0x01c3('0x5a')]]=_0x4ed27d;};Report[_0x01c3('0x10')][_0x01c3('0x1b')]=function(_0x460e41){RpcVoiceTransferReport[_0x01c3('0x1b')](_0x460e41);};module[_0x01c3('0x5b')]=Report;