Built motion from commit (unavailable).|2.4.19
[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 _0x8a38=['connectedlinenum','lastAssignedTo','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','destination','exten','type','dialer','lastapplication','queue','from-voip-provider','callerid','context','from-sip','xcally-motion-preview','calleridnum','originatecalleridnum','destinationchannel','channel','calleridpreview','disposition','ANSWERED','monitor','monitors','monitorFilename','filename','createdAt','calleridname','connectedlinename','xcally-motion-dialer','isArray','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf','SIP/%s','exports','bluebird','lodash','moment','util','../../../config/environment','../../../config/logger','ami','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedtransfer','attendedTransfer','findAgent','accountcode','name','isNil','find','interface','format','length'];(function(_0x1deee5,_0x1d4485){var _0x1d6c3a=function(_0x433abf){while(--_0x433abf){_0x1deee5['push'](_0x1deee5['shift']());}};_0x1d6c3a(++_0x1d4485);}(_0x8a38,0x84));var _0x88a3=function(_0xf3f1ed,_0x57e63e){_0xf3f1ed=_0xf3f1ed-0x0;var _0x3f5837=_0x8a38[_0xf3f1ed];return _0x3f5837;};'use strict';var BPromise=require(_0x88a3('0x0'));var _=require(_0x88a3('0x1'));var moment=require(_0x88a3('0x2'));var util=require(_0x88a3('0x3'));var config=require(_0x88a3('0x4'));var logger=require(_0x88a3('0x5'))(_0x88a3('0x6'));var ami=require(_0x88a3('0x7'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x88a3('0x8'));var RpcVoiceDialReport=require(_0x88a3('0x9'));var RpcMemberReport=require(_0x88a3('0xa'));var RpcVoiceQueueReport=require(_0x88a3('0xb'));var RpcVoiceRecording=require(_0x88a3('0xc'));var RpcVoiceTransferReport=require(_0x88a3('0xd'));var VoiceQueueReport=require(_0x88a3('0xe'));var VoiceCallReport=require(_0x88a3('0xf'));var VoiceAgentReport=require(_0x88a3('0x10'));var VoiceDialReport=require(_0x88a3('0x11'));var UserReport=require(_0x88a3('0x12'));function Report(_0x2c4ed3){this[_0x88a3('0x13')]=_0x2c4ed3;this[_0x88a3('0x14')]=_0x2c4ed3[_0x88a3('0x14')];this[_0x88a3('0x15')]=_0x2c4ed3['telephones'];}Report[_0x88a3('0x16')][_0x88a3('0x17')]=function(_0x561449){var _0x31899a=new VoiceQueueReport(this['realtime']);var _0x1102fb=new VoiceAgentReport(this[_0x88a3('0x13')]);var _0xd258cc=new VoiceDialReport(this[_0x88a3('0x13')]);var _0x3c566b=new VoiceCallReport(this[_0x88a3('0x13')]);var _0x10cce4=new UserReport(this[_0x88a3('0x13')]);if(config[_0x88a3('0x18')]&&config[_0x88a3('0x18')][_0x88a3('0x19')]){ami['on'](_0x88a3('0x1a'),this[_0x88a3('0x1b')][_0x88a3('0x1c')](this));ami['on'](_0x88a3('0x1d'),this[_0x88a3('0x1e')]['bind'](this));ami['on'](_0x88a3('0x1f'),this[_0x88a3('0x20')][_0x88a3('0x1c')](this));ami['on'](_0x88a3('0x21'),this[_0x88a3('0x22')][_0x88a3('0x1c')](this));ami['on']('blindtransfer',this[_0x88a3('0x23')][_0x88a3('0x1c')](this));ami['on'](_0x88a3('0x24'),this[_0x88a3('0x25')][_0x88a3('0x1c')](this));}};Report[_0x88a3('0x16')][_0x88a3('0x26')]=function(_0x50c74b){var _0x4eba08=undefined;_0x4eba08=_['find'](this[_0x88a3('0x14')],function(_0x4053bf){return _0x4053bf[_0x88a3('0x27')]==_0x50c74b||_0x4053bf[_0x88a3('0x28')]==_0x50c74b;});if(_[_0x88a3('0x29')](_0x4eba08)){var _0x25cf60=_[_0x88a3('0x2a')](this[_0x88a3('0x15')],function(_0xb896af){return _0xb896af[_0x88a3('0x27')]==_0x50c74b||_0xb896af['name']==_0x50c74b;});if(_0x25cf60){_0x4eba08=_[_0x88a3('0x2a')](this['agents'],function(_0x299993){return _0x299993[_0x88a3('0x2b')]==util[_0x88a3('0x2c')]('SIP/%s',_0x25cf60[_0x88a3('0x28')]);});}}return _0x4eba08;};Report[_0x88a3('0x16')][_0x88a3('0x1b')]=function(_0x5242b8){for(var _0x14d02e=0x0;_0x14d02e<_0x5242b8[_0x88a3('0x2d')];_0x14d02e+=0x1){var _0x43c014=this['findAgent'](_0x5242b8[_0x14d02e][_0x88a3('0x2e')]);if(_0x43c014){_0x5242b8[_0x14d02e][_0x88a3('0x27')]=_0x43c014[_0x88a3('0x27')];_0x5242b8[_0x14d02e]['assigned']=!![];_0x5242b8[_0x14d02e][_0x88a3('0x2f')]=_0x43c014[_0x88a3('0x28')];_0x5242b8[_0x14d02e][_0x88a3('0x2b')]=_[_0x88a3('0x29')](_0x43c014[_0x88a3('0x2b')])?util[_0x88a3('0x2c')]('SIP/%s',_0x43c014[_0x88a3('0x28')]):_0x43c014['interface'];if(_0x5242b8[_0x14d02e]['queuecallercomplete']){_0x5242b8[_0x14d02e][_0x88a3('0x30')]=moment()[_0x88a3('0x2c')](_0x88a3('0x31'));}if(_0x5242b8[_0x14d02e][_0x88a3('0x32')]){_0x5242b8[_0x14d02e][_0x88a3('0x33')]=moment()[_0x88a3('0x2c')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x88a3('0x1b')](_0x5242b8[_0x14d02e]);}RpcVoiceQueueReport[_0x88a3('0x34')](_0x5242b8[_0x14d02e]);}};function extractCalleridNumber(_0x403c2d){var _0x2a464a=_0x403c2d['match'](/<(.*?)>/);return _0x2a464a?_0x2a464a[0x1]:_0x403c2d;}Report[_0x88a3('0x16')][_0x88a3('0x1e')]=function(_0x21c0ea){_0x21c0ea[_0x88a3('0x35')]=_0x21c0ea[_0x88a3('0x35')]||_0x21c0ea[_0x88a3('0x36')];if(_0x21c0ea[_0x88a3('0x37')]==_0x88a3('0x38')){_0x21c0ea[_0x88a3('0x39')]='queue';_0x21c0ea['lastdata']=_0x21c0ea[_0x88a3('0x3a')];if(_0x21c0ea['context']==_0x88a3('0x3b')){_0x21c0ea[_0x88a3('0x27')]='';_0x21c0ea[_0x88a3('0x35')]=extractCalleridNumber(_0x21c0ea[_0x88a3('0x3c')]);}else if(_0x21c0ea[_0x88a3('0x3d')]==_0x88a3('0x3e')){if(_0x21c0ea[_0x88a3('0x35')]==_0x88a3('0x3f')){_0x21c0ea[_0x88a3('0x35')]=extractCalleridNumber(_0x21c0ea['calleridpreview']);_0x21c0ea[_0x88a3('0x40')]=_0x21c0ea[_0x88a3('0x41')];_0x21c0ea[_0x88a3('0x42')]=[_0x21c0ea[_0x88a3('0x43')],_0x21c0ea[_0x88a3('0x43')]=_0x21c0ea[_0x88a3('0x42')]][0x0];_0x21c0ea[_0x88a3('0x3c')]=_0x21c0ea[_0x88a3('0x44')];}else{_0x21c0ea[_0x88a3('0x35')]=_0x21c0ea[_0x88a3('0x40')];_0x21c0ea[_0x88a3('0x40')]=_0x21c0ea[_0x88a3('0x41')];if(_0x21c0ea[_0x88a3('0x45')]==_0x88a3('0x46')){_0x21c0ea[_0x88a3('0x27')]=_0x21c0ea[_0x88a3('0x2e')];}else{_0x21c0ea['accountcode']='';}}}}else{_0x21c0ea['callerid']=util[_0x88a3('0x2c')]('\x22%s\x22\x20<%s>',_0x21c0ea['calleridname'],_0x21c0ea['calleridnum']);}RpcVoiceCallReport['create'](_0x21c0ea);if(_0x21c0ea[_0x88a3('0x47')]){for(var _0xf7742a=0x0;_0xf7742a<_0x21c0ea[_0x88a3('0x48')][_0x88a3('0x2d')];_0xf7742a+=0x1){_0x21c0ea[_0x88a3('0x49')]=_0x21c0ea[_0x88a3('0x48')][_0xf7742a][_0x88a3('0x4a')];_0x21c0ea[_0x88a3('0x4b')]=_0x21c0ea[_0x88a3('0x48')][_0xf7742a][_0x88a3('0x4b')];if(_0x21c0ea[_0x88a3('0x36')]==_0x88a3('0x3f')){_0x21c0ea[_0x88a3('0x40')]=_0x21c0ea[_0x88a3('0x2e')];_0x21c0ea[_0x88a3('0x4c')]=_0x21c0ea[_0x88a3('0x4d')];_0x21c0ea[_0x88a3('0x2e')]=_0x21c0ea[_0x88a3('0x27')];_0x21c0ea['connectedlinename']=_0x21c0ea['membername'];_0x21c0ea['exten']=_0x21c0ea['originatecalleridnum'];}else if(_0x21c0ea['exten']==_0x88a3('0x4e')){_0x21c0ea[_0x88a3('0x40')]=_0x21c0ea[_0x88a3('0x35')];_0x21c0ea['exten']=_0x21c0ea['originatecalleridnum'];}RpcVoiceRecording['create'](_0x21c0ea);}}};Report[_0x88a3('0x16')][_0x88a3('0x20')]=function(_0x2a4adc){if(_[_0x88a3('0x4f')](_0x2a4adc)){_0x2a4adc['forEach'](function(_0x513056){RpcVoiceAgentReport['create'](_0x513056);});}else{RpcVoiceAgentReport['create'](_0x2a4adc);}};Report['prototype'][_0x88a3('0x22')]=function(_0x469181){RpcVoiceDialReport[_0x88a3('0x34')](_0x469181);var _0x22e319=undefined;var _0x50e36b=_0x469181[_0x88a3('0x43')];if(_[_0x88a3('0x50')](_0x50e36b,_0x88a3('0x51'))){var _0x220367=_0x50e36b[_0x88a3('0x52')](_0x50e36b[_0x88a3('0x53')]('/')+0x1,_0x50e36b[_0x88a3('0x53')]('@'));_0x22e319=_[_0x88a3('0x2a')](this[_0x88a3('0x14')],function(_0x33de6f){return _0x33de6f[_0x88a3('0x54')]==_0x220367||_0x33de6f[_0x88a3('0x55')]==_0x220367||_0x33de6f[_0x88a3('0x27')]==_0x220367;});}else{var _0x220367=_0x50e36b[_0x88a3('0x52')](_0x50e36b[_0x88a3('0x53')]('/')+0x1,_0x50e36b[_0x88a3('0x56')]('-'));_0x22e319=this[_0x88a3('0x26')](_0x220367);}if(_0x22e319){_0x469181['interface']=_[_0x88a3('0x29')](_0x22e319['interface'])?util[_0x88a3('0x2c')](_0x88a3('0x57'),_0x22e319['name']):_0x22e319['interface'];_0x469181['membername']=_0x22e319['name'];_0x469181['accountcode']=_0x22e319['accountcode'];RpcMemberReport['voiceDialReport'](_0x469181);}};Report[_0x88a3('0x16')][_0x88a3('0x23')]=function(_0x4554d2){RpcVoiceTransferReport[_0x88a3('0x23')](_0x4554d2);};Report[_0x88a3('0x16')][_0x88a3('0x25')]=function(_0x2b583f){RpcVoiceTransferReport[_0x88a3('0x25')](_0x2b583f);};module[_0x88a3('0x58')]=Report;