Built motion from commit d5e4af8c.|2.6.23
[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 _0x3476=['voiceCallReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','find','accountcode','name','isNil','interface','format','prototype','length','findAgent','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','getAgentByInternal','keys','channel','split','calleridnum','outbound','internal','destination','exten','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','originatecalleridnum','destinationchannel','callerid','calleridpreview','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','linkedid','transfers','transfereelinkedid','uniqueid','blindTransfer','getCallType','UserId','membername','monitor','monitorFilename','monitors','createdAt','xcally-motion-preview','connectedlinename','xcally-motion-dialer','voiceAgentReport','isArray','startsWith','Local','indexOf','phone','substring','lastIndexOf','SIP/%s','transfererlinkedid','lodash','moment','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','sync','realtime','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind'];(function(_0x3fbeea,_0x59b594){var _0x479753=function(_0x2d874d){while(--_0x2d874d){_0x3fbeea['push'](_0x3fbeea['shift']());}};_0x479753(++_0x59b594);}(_0x3476,0x16d));var _0x6347=function(_0x2064e5,_0x4f6fa2){_0x2064e5=_0x2064e5-0x0;var _0x21a233=_0x3476[_0x2064e5];return _0x21a233;};'use strict';var _=require(_0x6347('0x0'));var moment=require(_0x6347('0x1'));var util=require('util');var config=require('../../../config/environment');var ami=require(_0x6347('0x2'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x6347('0x3'));var RpcVoiceDialReport=require(_0x6347('0x4'));var RpcMemberReport=require(_0x6347('0x5'));var RpcVoiceQueueReport=require(_0x6347('0x6'));var RpcVoiceRecording=require(_0x6347('0x7'));var RpcVoiceTransferReport=require(_0x6347('0x8'));var VoiceQueueReport=require(_0x6347('0x9'));var VoiceCallReport=require(_0x6347('0xa'));var VoiceAgentReport=require(_0x6347('0xb'));var VoiceDialReport=require(_0x6347('0xc'));var UserReport=require(_0x6347('0xd'));function Report(_0x375bb6){this['realtime']=_0x375bb6;this[_0x6347('0xe')]=_0x375bb6[_0x6347('0xe')];this[_0x6347('0xf')]=_0x375bb6[_0x6347('0xf')];}Report['prototype'][_0x6347('0x10')]=function(_0x4b529e){var _0x1f9d67=new VoiceQueueReport(this[_0x6347('0x11')]);var _0xc269ae=new VoiceAgentReport(this[_0x6347('0x11')]);var _0x3f6b8d=new VoiceDialReport(this[_0x6347('0x11')]);var _0x1cabf8=new VoiceCallReport(this[_0x6347('0x11')]);var _0x453f86=new UserReport(this['realtime']);if(config[_0x6347('0x12')]&&config['xdr'][_0x6347('0x13')]){ami['on'](_0x6347('0x14'),this[_0x6347('0x15')][_0x6347('0x16')](this));ami['on']('custom:voiceCallReport',this[_0x6347('0x17')][_0x6347('0x16')](this));ami['on']('custom:voiceAgentReport',this['voiceAgentReport'][_0x6347('0x16')](this));ami['on'](_0x6347('0x18'),this[_0x6347('0x19')]['bind'](this));ami['on'](_0x6347('0x1a'),this['blindTransfer'][_0x6347('0x16')](this));ami['on'](_0x6347('0x1b'),this[_0x6347('0x1c')][_0x6347('0x16')](this));}};Report['prototype']['findAgent']=function(_0x2adc34){var _0x213215;_0x213215=_[_0x6347('0x1d')](this[_0x6347('0xe')],function(_0x442a05){return _0x442a05[_0x6347('0x1e')]==_0x2adc34||_0x442a05[_0x6347('0x1f')]==_0x2adc34;});if(_[_0x6347('0x20')](_0x213215)){var _0x135fda=_[_0x6347('0x1d')](this[_0x6347('0xf')],function(_0x27f1a3){return _0x27f1a3[_0x6347('0x1e')]==_0x2adc34||_0x27f1a3[_0x6347('0x1f')]==_0x2adc34;});if(_0x135fda){_0x213215=_['find'](this[_0x6347('0xe')],function(_0x5c76d9){return _0x5c76d9[_0x6347('0x21')]==util[_0x6347('0x22')]('SIP/%s',_0x135fda['name']);});}}return _0x213215;};Report[_0x6347('0x23')][_0x6347('0x15')]=function(_0x178b2e){for(var _0x2b7203=0x0;_0x2b7203<_0x178b2e[_0x6347('0x24')];_0x2b7203+=0x1){var _0x5b6a58=this[_0x6347('0x25')](_0x178b2e[_0x2b7203][_0x6347('0x26')]);if(_0x5b6a58){_0x178b2e[_0x2b7203]['accountcode']=_0x5b6a58[_0x6347('0x1e')];_0x178b2e[_0x2b7203][_0x6347('0x27')]=!![];_0x178b2e[_0x2b7203][_0x6347('0x28')]=_0x5b6a58[_0x6347('0x1f')];_0x178b2e[_0x2b7203]['interface']=_[_0x6347('0x20')](_0x5b6a58[_0x6347('0x21')])?util[_0x6347('0x22')]('SIP/%s',_0x5b6a58['name']):_0x5b6a58['interface'];if(_0x178b2e[_0x2b7203][_0x6347('0x29')]){_0x178b2e[_0x2b7203][_0x6347('0x2a')]=moment()[_0x6347('0x22')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x178b2e[_0x2b7203][_0x6347('0x2b')]){_0x178b2e[_0x2b7203][_0x6347('0x2c')]=moment()['format'](_0x6347('0x2d'));}RpcMemberReport[_0x6347('0x15')](_0x178b2e[_0x2b7203]);}RpcVoiceQueueReport[_0x6347('0x2e')](_0x178b2e[_0x2b7203]);}};function extractCalleridNumber(_0x52eee3){var _0x2cd0b9=_0x52eee3['match'](/<(.*?)>/);return _0x2cd0b9?_0x2cd0b9[0x1]:_0x52eee3;}Report['prototype'][_0x6347('0x2f')]=function(_0x16f07a){for(var _0x494098=0x0;_0x494098<Object[_0x6347('0x30')](this[_0x6347('0xe')])[_0x6347('0x24')];_0x494098++){var _0x1976fa=Object[_0x6347('0x30')](this['agents'])[_0x494098];var _0x11e3c2=this[_0x6347('0xe')][_0x1976fa];if(_0x11e3c2[_0x6347('0x1e')]===Number(_0x16f07a))return _0x11e3c2;}return null;};Report[_0x6347('0x23')]['getCallType']=function(_0x2f98e2){var _0x5635a6=_0x2f98e2[_0x6347('0x31')][_0x6347('0x32')]('-')[0x0];var _0x42863e=this[_0x6347('0xe')][_0x5635a6];if(!_0x42863e)_0x42863e=this[_0x6347('0x2f')](_0x2f98e2[_0x6347('0x33')]);return!_0x42863e?_0x6347('0x34'):_0x6347('0x35');};Report['prototype'][_0x6347('0x17')]=function(_0x2037de){_0x2037de[_0x6347('0x36')]=_0x2037de[_0x6347('0x36')]||_0x2037de[_0x6347('0x37')];if(_0x2037de[_0x6347('0x38')]==_0x6347('0x39')){_0x2037de[_0x6347('0x3a')]=_0x6347('0x3b');_0x2037de[_0x6347('0x3c')]=_0x2037de[_0x6347('0x3b')];if(_0x2037de[_0x6347('0x3d')]==_0x6347('0x3e')){_0x2037de['accountcode']='';_0x2037de[_0x6347('0x36')]=extractCalleridNumber(_0x2037de['callerid']);}else if(_0x2037de[_0x6347('0x3d')]==_0x6347('0x3f')){if(_0x2037de[_0x6347('0x36')]=='xcally-motion-preview'){_0x2037de[_0x6347('0x36')]=extractCalleridNumber(_0x2037de['calleridpreview']);_0x2037de[_0x6347('0x33')]=_0x2037de[_0x6347('0x40')];_0x2037de[_0x6347('0x41')]=[_0x2037de['channel'],_0x2037de[_0x6347('0x31')]=_0x2037de[_0x6347('0x41')]][0x0];_0x2037de[_0x6347('0x42')]=_0x2037de[_0x6347('0x43')];}else{_0x2037de[_0x6347('0x36')]=_0x2037de[_0x6347('0x33')];_0x2037de[_0x6347('0x33')]=_0x2037de['originatecalleridnum'];if(_0x2037de[_0x6347('0x44')]==_0x6347('0x45')){_0x2037de[_0x6347('0x1e')]=_0x2037de[_0x6347('0x26')];}else{_0x2037de[_0x6347('0x1e')]='';}}}}else{_0x2037de[_0x6347('0x42')]=util[_0x6347('0x22')](_0x6347('0x46'),_0x2037de[_0x6347('0x47')],_0x2037de['calleridnum']);}if(RpcVoiceTransferReport['transfers'][_0x2037de[_0x6347('0x48')]]){var _0x4e302f=RpcVoiceTransferReport[_0x6347('0x49')][_0x2037de[_0x6347('0x48')]];_0x4e302f[_0x6347('0x4a')]=_0x2037de[_0x6347('0x4b')];RpcVoiceTransferReport[_0x6347('0x4c')](_0x4e302f);delete RpcVoiceTransferReport[_0x6347('0x49')][_0x2037de[_0x6347('0x48')]];}if(_['isNil'](_0x2037de['type'])){_0x2037de[_0x6347('0x38')]=this[_0x6347('0x4d')](_0x2037de);}if(_[_0x6347('0x20')](_0x2037de[_0x6347('0x4e')])){var _0x5e5e3d=_0x2037de[_0x6347('0x31')][_0x6347('0x32')]('-')[0x0];var _0x1fda32=this[_0x6347('0xe')][_0x5e5e3d];if(!_0x1fda32)_0x1fda32=this['getAgentByInternal'](_0x2037de[_0x6347('0x1e')]);if(_0x1fda32){_0x2037de['UserId']=_0x1fda32['id'];_0x2037de[_0x6347('0x4f')]=_0x1fda32[_0x6347('0x1f')];}}RpcVoiceCallReport[_0x6347('0x2e')](_0x2037de);if(_0x2037de[_0x6347('0x50')]){for(var _0x5dc96d=0x0;_0x5dc96d<_0x2037de['monitors'][_0x6347('0x24')];_0x5dc96d+=0x1){_0x2037de[_0x6347('0x51')]=_0x2037de[_0x6347('0x52')][_0x5dc96d]['filename'];_0x2037de[_0x6347('0x53')]=_0x2037de[_0x6347('0x52')][_0x5dc96d][_0x6347('0x53')];if(_0x2037de['exten']==_0x6347('0x54')){_0x2037de['calleridnum']=_0x2037de[_0x6347('0x26')];_0x2037de[_0x6347('0x47')]=_0x2037de['connectedlinename'];_0x2037de[_0x6347('0x26')]=_0x2037de['accountcode'];_0x2037de[_0x6347('0x55')]=_0x2037de[_0x6347('0x4f')];_0x2037de['exten']=_0x2037de[_0x6347('0x40')];}else if(_0x2037de['exten']==_0x6347('0x56')){_0x2037de[_0x6347('0x33')]=_0x2037de[_0x6347('0x36')];_0x2037de[_0x6347('0x37')]=_0x2037de[_0x6347('0x40')];}RpcVoiceRecording[_0x6347('0x2e')](_0x2037de);}}};Report[_0x6347('0x23')][_0x6347('0x57')]=function(_0x37f516){if(_[_0x6347('0x58')](_0x37f516)){_0x37f516['forEach'](function(_0x4445e5){RpcVoiceAgentReport[_0x6347('0x2e')](_0x4445e5);});}else{RpcVoiceAgentReport[_0x6347('0x2e')](_0x37f516);}};Report[_0x6347('0x23')]['voiceDialReport']=function(_0x52ca5d){RpcVoiceDialReport['create'](_0x52ca5d);var _0x4865d0;var _0x16a4e9;var _0x594ee6=_0x52ca5d[_0x6347('0x31')];if(_[_0x6347('0x59')](_0x594ee6,_0x6347('0x5a'))){_0x16a4e9=_0x594ee6['substring'](_0x594ee6[_0x6347('0x5b')]('/')+0x1,_0x594ee6[_0x6347('0x5b')]('@'));_0x4865d0=_[_0x6347('0x1d')](this[_0x6347('0xe')],function(_0x5d9f1b){return _0x5d9f1b['mobile']==_0x16a4e9||_0x5d9f1b[_0x6347('0x5c')]==_0x16a4e9||_0x5d9f1b[_0x6347('0x1e')]==_0x16a4e9;});}else{_0x16a4e9=_0x594ee6[_0x6347('0x5d')](_0x594ee6[_0x6347('0x5b')]('/')+0x1,_0x594ee6[_0x6347('0x5e')]('-'));_0x4865d0=this[_0x6347('0x25')](_0x16a4e9);}if(_0x4865d0){_0x52ca5d[_0x6347('0x21')]=_['isNil'](_0x4865d0[_0x6347('0x21')])?util[_0x6347('0x22')](_0x6347('0x5f'),_0x4865d0[_0x6347('0x1f')]):_0x4865d0[_0x6347('0x21')];_0x52ca5d[_0x6347('0x4f')]=_0x4865d0['name'];_0x52ca5d[_0x6347('0x1e')]=_0x4865d0[_0x6347('0x1e')];RpcMemberReport['voiceDialReport'](_0x52ca5d);}};Report[_0x6347('0x23')]['blindTransfer']=function(_0x1a60db){RpcVoiceTransferReport[_0x6347('0x49')][_0x1a60db[_0x6347('0x60')]]=_0x1a60db;};Report['prototype'][_0x6347('0x1c')]=function(_0x4173e6){RpcVoiceTransferReport[_0x6347('0x1c')](_0x4173e6);};module['exports']=Report;