Built motion from commit (unavailable).|2.5.14
[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 _0x01fd=['from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','callerid','disposition','ANSWERED','\x22%s\x22\x20<%s>','transfers','linkedid','transfereelinkedid','uniqueid','blindTransfer','monitor','monitors','length','monitorFilename','filename','createdAt','calleridname','connectedlinename','membername','xcally-motion-dialer','forEach','startsWith','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','exports','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','custom:voiceCallReport','voiceCallReport','bind','custom:voiceAgentReport','voiceAgentReport','voiceDialReport','blindtransfer','attendedTransfer','findAgent','find','name','isNil','accountcode','interface','format','SIP/%s','prototype','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','destination','exten','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider'];(function(_0x8940b9,_0x257c0c){var _0xcc272e=function(_0x57baa1){while(--_0x57baa1){_0x8940b9['push'](_0x8940b9['shift']());}};_0xcc272e(++_0x257c0c);}(_0x01fd,0xd9));var _0xd01f=function(_0x4cfc1d,_0x2c0927){_0x4cfc1d=_0x4cfc1d-0x0;var _0x1c01a0=_0x01fd[_0x4cfc1d];return _0x1c01a0;};'use strict';var _=require('lodash');var moment=require('moment');var util=require(_0xd01f('0x0'));var config=require(_0xd01f('0x1'));var ami=require(_0xd01f('0x2'));var RpcVoiceAgentReport=require(_0xd01f('0x3'));var RpcVoiceCallReport=require(_0xd01f('0x4'));var RpcVoiceDialReport=require(_0xd01f('0x5'));var RpcMemberReport=require(_0xd01f('0x6'));var RpcVoiceQueueReport=require(_0xd01f('0x7'));var RpcVoiceRecording=require(_0xd01f('0x8'));var RpcVoiceTransferReport=require(_0xd01f('0x9'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xd01f('0xa'));var UserReport=require(_0xd01f('0xb'));function Report(_0xb4cc6e){this[_0xd01f('0xc')]=_0xb4cc6e;this[_0xd01f('0xd')]=_0xb4cc6e[_0xd01f('0xd')];this[_0xd01f('0xe')]=_0xb4cc6e[_0xd01f('0xe')];}Report['prototype'][_0xd01f('0xf')]=function(_0x11ad6a){var _0x586db7=new VoiceQueueReport(this[_0xd01f('0xc')]);var _0x5e1544=new VoiceAgentReport(this[_0xd01f('0xc')]);var _0x56d2f4=new VoiceDialReport(this[_0xd01f('0xc')]);var _0x12f08b=new VoiceCallReport(this[_0xd01f('0xc')]);var _0x2ed9a8=new UserReport(this[_0xd01f('0xc')]);if(config['xdr']&&config[_0xd01f('0x10')][_0xd01f('0x11')]){ami['on'](_0xd01f('0x12'),this[_0xd01f('0x13')]['bind'](this));ami['on'](_0xd01f('0x14'),this[_0xd01f('0x15')][_0xd01f('0x16')](this));ami['on'](_0xd01f('0x17'),this[_0xd01f('0x18')][_0xd01f('0x16')](this));ami['on']('custom:voiceDialReport',this[_0xd01f('0x19')]['bind'](this));ami['on'](_0xd01f('0x1a'),this['blindTransfer'][_0xd01f('0x16')](this));ami['on']('attendedtransfer',this[_0xd01f('0x1b')][_0xd01f('0x16')](this));}};Report['prototype'][_0xd01f('0x1c')]=function(_0x5f3959){var _0xfa397;_0xfa397=_[_0xd01f('0x1d')](this[_0xd01f('0xd')],function(_0x2f9475){return _0x2f9475['accountcode']==_0x5f3959||_0x2f9475[_0xd01f('0x1e')]==_0x5f3959;});if(_[_0xd01f('0x1f')](_0xfa397)){var _0x3e6da9=_[_0xd01f('0x1d')](this['telephones'],function(_0x1b7829){return _0x1b7829[_0xd01f('0x20')]==_0x5f3959||_0x1b7829['name']==_0x5f3959;});if(_0x3e6da9){_0xfa397=_[_0xd01f('0x1d')](this[_0xd01f('0xd')],function(_0x168a66){return _0x168a66[_0xd01f('0x21')]==util[_0xd01f('0x22')](_0xd01f('0x23'),_0x3e6da9['name']);});}}return _0xfa397;};Report[_0xd01f('0x24')]['voiceQueueReport']=function(_0x4b2b62){for(var _0x557002=0x0;_0x557002<_0x4b2b62['length'];_0x557002+=0x1){var _0x3fda63=this[_0xd01f('0x1c')](_0x4b2b62[_0x557002][_0xd01f('0x25')]);if(_0x3fda63){_0x4b2b62[_0x557002]['accountcode']=_0x3fda63[_0xd01f('0x20')];_0x4b2b62[_0x557002][_0xd01f('0x26')]=!![];_0x4b2b62[_0x557002][_0xd01f('0x27')]=_0x3fda63[_0xd01f('0x1e')];_0x4b2b62[_0x557002]['interface']=_['isNil'](_0x3fda63[_0xd01f('0x21')])?util[_0xd01f('0x22')](_0xd01f('0x23'),_0x3fda63['name']):_0x3fda63[_0xd01f('0x21')];if(_0x4b2b62[_0x557002][_0xd01f('0x28')]){_0x4b2b62[_0x557002][_0xd01f('0x29')]=moment()[_0xd01f('0x22')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x4b2b62[_0x557002][_0xd01f('0x2a')]){_0x4b2b62[_0x557002][_0xd01f('0x2b')]=moment()['format'](_0xd01f('0x2c'));}RpcMemberReport[_0xd01f('0x13')](_0x4b2b62[_0x557002]);}RpcVoiceQueueReport[_0xd01f('0x2d')](_0x4b2b62[_0x557002]);}};function extractCalleridNumber(_0x541aee){var _0x2e4227=_0x541aee[_0xd01f('0x2e')](/<(.*?)>/);return _0x2e4227?_0x2e4227[0x1]:_0x541aee;}Report[_0xd01f('0x24')][_0xd01f('0x15')]=function(_0x14b3a0){_0x14b3a0[_0xd01f('0x2f')]=_0x14b3a0[_0xd01f('0x2f')]||_0x14b3a0[_0xd01f('0x30')];if(_0x14b3a0[_0xd01f('0x31')]==_0xd01f('0x32')){_0x14b3a0[_0xd01f('0x33')]=_0xd01f('0x34');_0x14b3a0[_0xd01f('0x35')]=_0x14b3a0[_0xd01f('0x34')];if(_0x14b3a0[_0xd01f('0x36')]==_0xd01f('0x37')){_0x14b3a0['accountcode']='';_0x14b3a0[_0xd01f('0x2f')]=extractCalleridNumber(_0x14b3a0['callerid']);}else if(_0x14b3a0[_0xd01f('0x36')]==_0xd01f('0x38')){if(_0x14b3a0[_0xd01f('0x2f')]==_0xd01f('0x39')){_0x14b3a0['destination']=extractCalleridNumber(_0x14b3a0[_0xd01f('0x3a')]);_0x14b3a0[_0xd01f('0x3b')]=_0x14b3a0[_0xd01f('0x3c')];_0x14b3a0[_0xd01f('0x3d')]=[_0x14b3a0[_0xd01f('0x3e')],_0x14b3a0[_0xd01f('0x3e')]=_0x14b3a0[_0xd01f('0x3d')]][0x0];_0x14b3a0[_0xd01f('0x3f')]=_0x14b3a0[_0xd01f('0x3a')];}else{_0x14b3a0[_0xd01f('0x2f')]=_0x14b3a0['calleridnum'];_0x14b3a0[_0xd01f('0x3b')]=_0x14b3a0['originatecalleridnum'];if(_0x14b3a0[_0xd01f('0x40')]==_0xd01f('0x41')){_0x14b3a0['accountcode']=_0x14b3a0[_0xd01f('0x25')];}else{_0x14b3a0[_0xd01f('0x20')]='';}}}}else{_0x14b3a0['callerid']=util[_0xd01f('0x22')](_0xd01f('0x42'),_0x14b3a0['calleridname'],_0x14b3a0[_0xd01f('0x3b')]);}if(RpcVoiceTransferReport[_0xd01f('0x43')][_0x14b3a0[_0xd01f('0x44')]]){var _0x23dd6a=RpcVoiceTransferReport[_0xd01f('0x43')][_0x14b3a0[_0xd01f('0x44')]];_0x23dd6a[_0xd01f('0x45')]=_0x14b3a0[_0xd01f('0x46')];RpcVoiceTransferReport[_0xd01f('0x47')](_0x23dd6a);delete RpcVoiceTransferReport[_0xd01f('0x43')][_0x14b3a0[_0xd01f('0x44')]];}RpcVoiceCallReport[_0xd01f('0x2d')](_0x14b3a0);if(_0x14b3a0[_0xd01f('0x48')]){for(var _0x5b4c0c=0x0;_0x5b4c0c<_0x14b3a0[_0xd01f('0x49')][_0xd01f('0x4a')];_0x5b4c0c+=0x1){_0x14b3a0[_0xd01f('0x4b')]=_0x14b3a0['monitors'][_0x5b4c0c][_0xd01f('0x4c')];_0x14b3a0[_0xd01f('0x4d')]=_0x14b3a0[_0xd01f('0x49')][_0x5b4c0c][_0xd01f('0x4d')];if(_0x14b3a0[_0xd01f('0x30')]=='xcally-motion-preview'){_0x14b3a0[_0xd01f('0x3b')]=_0x14b3a0[_0xd01f('0x25')];_0x14b3a0[_0xd01f('0x4e')]=_0x14b3a0[_0xd01f('0x4f')];_0x14b3a0[_0xd01f('0x25')]=_0x14b3a0[_0xd01f('0x20')];_0x14b3a0[_0xd01f('0x4f')]=_0x14b3a0[_0xd01f('0x50')];_0x14b3a0[_0xd01f('0x30')]=_0x14b3a0[_0xd01f('0x3c')];}else if(_0x14b3a0[_0xd01f('0x30')]==_0xd01f('0x51')){_0x14b3a0[_0xd01f('0x3b')]=_0x14b3a0[_0xd01f('0x2f')];_0x14b3a0[_0xd01f('0x30')]=_0x14b3a0[_0xd01f('0x3c')];}RpcVoiceRecording[_0xd01f('0x2d')](_0x14b3a0);}}};Report[_0xd01f('0x24')][_0xd01f('0x18')]=function(_0x42b9b7){if(_['isArray'](_0x42b9b7)){_0x42b9b7[_0xd01f('0x52')](function(_0x35aba2){RpcVoiceAgentReport[_0xd01f('0x2d')](_0x35aba2);});}else{RpcVoiceAgentReport[_0xd01f('0x2d')](_0x42b9b7);}};Report['prototype']['voiceDialReport']=function(_0x3864c2){RpcVoiceDialReport[_0xd01f('0x2d')](_0x3864c2);var _0x2f74ea;var _0x230788;var _0x3def82=_0x3864c2[_0xd01f('0x3e')];if(_[_0xd01f('0x53')](_0x3def82,'Local')){_0x230788=_0x3def82[_0xd01f('0x54')](_0x3def82[_0xd01f('0x55')]('/')+0x1,_0x3def82[_0xd01f('0x55')]('@'));_0x2f74ea=_[_0xd01f('0x1d')](this[_0xd01f('0xd')],function(_0x1a3255){return _0x1a3255[_0xd01f('0x56')]==_0x230788||_0x1a3255[_0xd01f('0x57')]==_0x230788||_0x1a3255[_0xd01f('0x20')]==_0x230788;});}else{_0x230788=_0x3def82['substring'](_0x3def82[_0xd01f('0x55')]('/')+0x1,_0x3def82[_0xd01f('0x58')]('-'));_0x2f74ea=this[_0xd01f('0x1c')](_0x230788);}if(_0x2f74ea){_0x3864c2[_0xd01f('0x21')]=_[_0xd01f('0x1f')](_0x2f74ea[_0xd01f('0x21')])?util['format'](_0xd01f('0x23'),_0x2f74ea[_0xd01f('0x1e')]):_0x2f74ea[_0xd01f('0x21')];_0x3864c2[_0xd01f('0x50')]=_0x2f74ea[_0xd01f('0x1e')];_0x3864c2[_0xd01f('0x20')]=_0x2f74ea[_0xd01f('0x20')];RpcMemberReport[_0xd01f('0x19')](_0x3864c2);}};Report[_0xd01f('0x24')][_0xd01f('0x47')]=function(_0xb8af4a){RpcVoiceTransferReport['transfers'][_0xb8af4a[_0xd01f('0x59')]]=_0xb8af4a;};Report['prototype'][_0xd01f('0x1b')]=function(_0x35557b){RpcVoiceTransferReport['attendedTransfer'](_0x35557b);};module[_0xd01f('0x5a')]=Report;