940e8c1628943a650d76f4c9c27e6719bb8055ed
[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 _0x872f=['mobile','phone','lastIndexOf','bluebird','util','../../../config/logger','ami','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','find','accountcode','name','isNil','format','length','findAgent','assigned','lastAssignedTo','interface','SIP/%s','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','match','destination','exten','type','dialer','lastapplication','queue','lastdata','context','callerid','from-sip','xcally-motion-preview','calleridnum','originatecalleridnum','destinationchannel','calleridpreview','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','create','monitor','monitors','monitorFilename','filename','createdAt','connectedlinenum','connectedlinename','membername','isArray','forEach','channel','startsWith','substring','indexOf'];(function(_0xee2e7a,_0x58354d){var _0x319dd3=function(_0xa99240){while(--_0xa99240){_0xee2e7a['push'](_0xee2e7a['shift']());}};_0x319dd3(++_0x58354d);}(_0x872f,0xfc));var _0xf872=function(_0x2c2a8e,_0x1dfe39){_0x2c2a8e=_0x2c2a8e-0x0;var _0x3b9e38=_0x872f[_0x2c2a8e];return _0x3b9e38;};'use strict';var BPromise=require(_0xf872('0x0'));var _=require('lodash');var moment=require('moment');var util=require(_0xf872('0x1'));var config=require('../../../config/environment');var logger=require(_0xf872('0x2'))(_0xf872('0x3'));var ami=require(_0xf872('0x4'));var RpcVoiceAgentReport=require(_0xf872('0x5'));var RpcVoiceCallReport=require(_0xf872('0x6'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0xf872('0x7'));var RpcVoiceQueueReport=require(_0xf872('0x8'));var RpcVoiceRecording=require(_0xf872('0x9'));var RpcVoiceTransferReport=require(_0xf872('0xa'));var VoiceQueueReport=require(_0xf872('0xb'));var VoiceCallReport=require(_0xf872('0xc'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0xf872('0xd'));function Report(_0x4aef3b){this[_0xf872('0xe')]=_0x4aef3b;this[_0xf872('0xf')]=_0x4aef3b['agents'];this[_0xf872('0x10')]=_0x4aef3b[_0xf872('0x10')];}Report[_0xf872('0x11')][_0xf872('0x12')]=function(_0x1ff416){var _0x3a7102=new VoiceQueueReport(this[_0xf872('0xe')]);var _0x43c66a=new VoiceAgentReport(this[_0xf872('0xe')]);var _0x255372=new VoiceDialReport(this['realtime']);var _0x4dc9a9=new VoiceCallReport(this['realtime']);var _0x594547=new UserReport(this[_0xf872('0xe')]);if(config[_0xf872('0x13')]&&config[_0xf872('0x13')][_0xf872('0x14')]){ami['on']('custom:voiceQueueReport',this[_0xf872('0x15')][_0xf872('0x16')](this));ami['on'](_0xf872('0x17'),this['voiceCallReport'][_0xf872('0x16')](this));ami['on']('custom:voiceAgentReport',this['voiceAgentReport'][_0xf872('0x16')](this));ami['on'](_0xf872('0x18'),this[_0xf872('0x19')][_0xf872('0x16')](this));ami['on'](_0xf872('0x1a'),this[_0xf872('0x1b')][_0xf872('0x16')](this));ami['on'](_0xf872('0x1c'),this[_0xf872('0x1d')][_0xf872('0x16')](this));}};Report['prototype']['findAgent']=function(_0x5ea65f){var _0x5048bf=undefined;_0x5048bf=_[_0xf872('0x1e')](this[_0xf872('0xf')],function(_0x12ea34){return _0x12ea34[_0xf872('0x1f')]==_0x5ea65f||_0x12ea34[_0xf872('0x20')]==_0x5ea65f;});if(_[_0xf872('0x21')](_0x5048bf)){var _0x39594f=_['find'](this[_0xf872('0x10')],function(_0x32756b){return _0x32756b[_0xf872('0x1f')]==_0x5ea65f||_0x32756b[_0xf872('0x20')]==_0x5ea65f;});if(_0x39594f){_0x5048bf=_[_0xf872('0x1e')](this[_0xf872('0xf')],function(_0x11b995){return _0x11b995['interface']==util[_0xf872('0x22')]('SIP/%s',_0x39594f[_0xf872('0x20')]);});}}return _0x5048bf;};Report[_0xf872('0x11')][_0xf872('0x15')]=function(_0x1adb07){for(var _0x50c21c=0x0;_0x50c21c<_0x1adb07[_0xf872('0x23')];_0x50c21c+=0x1){var _0x49e335=this[_0xf872('0x24')](_0x1adb07[_0x50c21c]['connectedlinenum']);if(_0x49e335){_0x1adb07[_0x50c21c][_0xf872('0x1f')]=_0x49e335['accountcode'];_0x1adb07[_0x50c21c][_0xf872('0x25')]=!![];_0x1adb07[_0x50c21c][_0xf872('0x26')]=_0x49e335[_0xf872('0x20')];_0x1adb07[_0x50c21c]['interface']=_[_0xf872('0x21')](_0x49e335[_0xf872('0x27')])?util[_0xf872('0x22')](_0xf872('0x28'),_0x49e335[_0xf872('0x20')]):_0x49e335[_0xf872('0x27')];if(_0x1adb07[_0x50c21c]['queuecallercomplete']){_0x1adb07[_0x50c21c][_0xf872('0x29')]=moment()[_0xf872('0x22')](_0xf872('0x2a'));}if(_0x1adb07[_0x50c21c][_0xf872('0x2b')]){_0x1adb07[_0x50c21c][_0xf872('0x2c')]=moment()[_0xf872('0x22')](_0xf872('0x2a'));}RpcMemberReport['voiceQueueReport'](_0x1adb07[_0x50c21c]);}RpcVoiceQueueReport['create'](_0x1adb07[_0x50c21c]);}};function extractCalleridNumber(_0x48561e){var _0x3ff95e=_0x48561e[_0xf872('0x2d')](/<(.*?)>/);return _0x3ff95e?_0x3ff95e[0x1]:_0x48561e;}Report[_0xf872('0x11')]['voiceCallReport']=function(_0x1d5726){_0x1d5726[_0xf872('0x2e')]=_0x1d5726[_0xf872('0x2e')]||_0x1d5726[_0xf872('0x2f')];if(_0x1d5726[_0xf872('0x30')]==_0xf872('0x31')){_0x1d5726[_0xf872('0x32')]=_0xf872('0x33');_0x1d5726[_0xf872('0x34')]=_0x1d5726['queue'];if(_0x1d5726[_0xf872('0x35')]=='from-voip-provider'){_0x1d5726[_0xf872('0x1f')]='';_0x1d5726[_0xf872('0x2e')]=extractCalleridNumber(_0x1d5726[_0xf872('0x36')]);}else if(_0x1d5726['context']==_0xf872('0x37')){if(_0x1d5726[_0xf872('0x2e')]==_0xf872('0x38')){_0x1d5726['destination']=extractCalleridNumber(_0x1d5726['calleridpreview']);_0x1d5726[_0xf872('0x39')]=_0x1d5726[_0xf872('0x3a')];_0x1d5726[_0xf872('0x3b')]=[_0x1d5726['channel'],_0x1d5726['channel']=_0x1d5726[_0xf872('0x3b')]][0x0];_0x1d5726[_0xf872('0x36')]=_0x1d5726[_0xf872('0x3c')];}else{_0x1d5726[_0xf872('0x2e')]=_0x1d5726['calleridnum'];_0x1d5726['calleridnum']=_0x1d5726[_0xf872('0x3a')];if(_0x1d5726[_0xf872('0x3d')]==_0xf872('0x3e')){_0x1d5726['accountcode']=_0x1d5726['connectedlinenum'];}else{_0x1d5726[_0xf872('0x1f')]='';}}}}else{_0x1d5726[_0xf872('0x36')]=util[_0xf872('0x22')](_0xf872('0x3f'),_0x1d5726[_0xf872('0x40')],_0x1d5726[_0xf872('0x39')]);}RpcVoiceCallReport[_0xf872('0x41')](_0x1d5726);if(_0x1d5726[_0xf872('0x42')]){for(var _0x11425d=0x0;_0x11425d<_0x1d5726[_0xf872('0x43')][_0xf872('0x23')];_0x11425d+=0x1){_0x1d5726[_0xf872('0x44')]=_0x1d5726[_0xf872('0x43')][_0x11425d][_0xf872('0x45')];_0x1d5726['createdAt']=_0x1d5726[_0xf872('0x43')][_0x11425d][_0xf872('0x46')];if(_0x1d5726[_0xf872('0x2f')]==_0xf872('0x38')){_0x1d5726['calleridnum']=_0x1d5726[_0xf872('0x47')];_0x1d5726[_0xf872('0x40')]=_0x1d5726[_0xf872('0x48')];_0x1d5726[_0xf872('0x47')]=_0x1d5726['accountcode'];_0x1d5726['connectedlinename']=_0x1d5726[_0xf872('0x49')];_0x1d5726[_0xf872('0x2f')]=_0x1d5726[_0xf872('0x3a')];}else if(_0x1d5726['exten']=='xcally-motion-dialer'){_0x1d5726[_0xf872('0x39')]=_0x1d5726[_0xf872('0x2e')];_0x1d5726['exten']=_0x1d5726[_0xf872('0x3a')];}RpcVoiceRecording['create'](_0x1d5726);}}};Report[_0xf872('0x11')]['voiceAgentReport']=function(_0x2748b5){if(_[_0xf872('0x4a')](_0x2748b5)){_0x2748b5[_0xf872('0x4b')](function(_0x31eb45){RpcVoiceAgentReport[_0xf872('0x41')](_0x31eb45);});}else{RpcVoiceAgentReport['create'](_0x2748b5);}};Report['prototype']['voiceDialReport']=function(_0x36ecbc){RpcVoiceDialReport[_0xf872('0x41')](_0x36ecbc);var _0x680614=undefined;var _0xeb3220=_0x36ecbc[_0xf872('0x4c')];if(_[_0xf872('0x4d')](_0xeb3220,'Local')){var _0x490390=_0xeb3220[_0xf872('0x4e')](_0xeb3220['indexOf']('/')+0x1,_0xeb3220[_0xf872('0x4f')]('@'));_0x680614=_[_0xf872('0x1e')](this[_0xf872('0xf')],function(_0x349a55){return _0x349a55[_0xf872('0x50')]==_0x490390||_0x349a55[_0xf872('0x51')]==_0x490390||_0x349a55[_0xf872('0x1f')]==_0x490390;});}else{var _0x490390=_0xeb3220[_0xf872('0x4e')](_0xeb3220[_0xf872('0x4f')]('/')+0x1,_0xeb3220[_0xf872('0x52')]('-'));_0x680614=this['findAgent'](_0x490390);}if(_0x680614){_0x36ecbc[_0xf872('0x27')]=_['isNil'](_0x680614[_0xf872('0x27')])?util[_0xf872('0x22')](_0xf872('0x28'),_0x680614[_0xf872('0x20')]):_0x680614[_0xf872('0x27')];_0x36ecbc[_0xf872('0x49')]=_0x680614['name'];_0x36ecbc['accountcode']=_0x680614['accountcode'];RpcMemberReport[_0xf872('0x19')](_0x36ecbc);}};Report['prototype'][_0xf872('0x1b')]=function(_0x46fc45){RpcVoiceTransferReport[_0xf872('0x1b')](_0x46fc45);};Report['prototype'][_0xf872('0x1d')]=function(_0x11f154){RpcVoiceTransferReport['attendedTransfer'](_0x11f154);};module['exports']=Report;