Built motion from commit (unavailable).|2.4.18
[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 _0xbf74=['telephones','prototype','xdr','custom:voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','find','name','isNil','accountcode','interface','format','voiceQueueReport','length','findAgent','connectedlinenum','assigned','lastAssignedTo','SIP/%s','queuecallercomplete','queuecallercompleteAt','queuecallerexit','YYYY-MM-DD\x20HH:mm:ss','create','match','destination','exten','dialer','lastapplication','queue','lastdata','context','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','channel','callerid','calleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','monitor','monitorFilename','monitors','createdAt','connectedlinename','xcally-motion-dialer','forEach','startsWith','Local','substring','indexOf','mobile','phone','exports','lodash','util','../../../config/environment','ami','../ami','../rpc/voiceCallReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceDialReport','./userReport','realtime','agents'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbf74,0x94));var _0x4bf7=function(_0xb06b9f,_0x15e74c){_0xb06b9f=_0xb06b9f-0x0;var _0x30d142=_0xbf74[_0xb06b9f];return _0x30d142;};'use strict';var BPromise=require('bluebird');var _=require(_0x4bf7('0x0'));var moment=require('moment');var util=require(_0x4bf7('0x1'));var config=require(_0x4bf7('0x2'));var logger=require('../../../config/logger')(_0x4bf7('0x3'));var ami=require(_0x4bf7('0x4'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x4bf7('0x5'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0x4bf7('0x6'));var RpcVoiceRecording=require(_0x4bf7('0x7'));var RpcVoiceTransferReport=require(_0x4bf7('0x8'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x4bf7('0x9'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0x4bf7('0xa'));var UserReport=require(_0x4bf7('0xb'));function Report(_0x545119){this[_0x4bf7('0xc')]=_0x545119;this[_0x4bf7('0xd')]=_0x545119['agents'];this['telephones']=_0x545119[_0x4bf7('0xe')];}Report[_0x4bf7('0xf')]['sync']=function(_0x4c16ed){var _0x34d233=new VoiceQueueReport(this[_0x4bf7('0xc')]);var _0x523e46=new VoiceAgentReport(this[_0x4bf7('0xc')]);var _0x58bcbd=new VoiceDialReport(this[_0x4bf7('0xc')]);var _0x57d7c9=new VoiceCallReport(this[_0x4bf7('0xc')]);var _0x5dbc22=new UserReport(this[_0x4bf7('0xc')]);if(config[_0x4bf7('0x10')]&&config[_0x4bf7('0x10')]['disabled']){ami['on'](_0x4bf7('0x11'),this['voiceQueueReport'][_0x4bf7('0x12')](this));ami['on'](_0x4bf7('0x13'),this[_0x4bf7('0x14')][_0x4bf7('0x12')](this));ami['on'](_0x4bf7('0x15'),this[_0x4bf7('0x16')][_0x4bf7('0x12')](this));ami['on'](_0x4bf7('0x17'),this[_0x4bf7('0x18')][_0x4bf7('0x12')](this));ami['on'](_0x4bf7('0x19'),this[_0x4bf7('0x1a')][_0x4bf7('0x12')](this));ami['on'](_0x4bf7('0x1b'),this[_0x4bf7('0x1c')][_0x4bf7('0x12')](this));}};Report[_0x4bf7('0xf')]['findAgent']=function(_0x2006c7){var _0x4a1f00=undefined;_0x4a1f00=_[_0x4bf7('0x1d')](this[_0x4bf7('0xd')],function(_0x471cee){return _0x471cee['accountcode']==_0x2006c7||_0x471cee[_0x4bf7('0x1e')]==_0x2006c7;});if(_[_0x4bf7('0x1f')](_0x4a1f00)){var _0x3d6051=_[_0x4bf7('0x1d')](this[_0x4bf7('0xe')],function(_0x4a7c32){return _0x4a7c32[_0x4bf7('0x20')]==_0x2006c7||_0x4a7c32['name']==_0x2006c7;});if(_0x3d6051){_0x4a1f00=_[_0x4bf7('0x1d')](this[_0x4bf7('0xd')],function(_0x22d50d){return _0x22d50d[_0x4bf7('0x21')]==util[_0x4bf7('0x22')]('SIP/%s',_0x3d6051[_0x4bf7('0x1e')]);});}}return _0x4a1f00;};Report[_0x4bf7('0xf')][_0x4bf7('0x23')]=function(_0x23101a){for(var _0x25d28c=0x0;_0x25d28c<_0x23101a[_0x4bf7('0x24')];_0x25d28c+=0x1){var _0x2497ad=this[_0x4bf7('0x25')](_0x23101a[_0x25d28c][_0x4bf7('0x26')]);if(_0x2497ad){_0x23101a[_0x25d28c][_0x4bf7('0x20')]=_0x2497ad[_0x4bf7('0x20')];_0x23101a[_0x25d28c][_0x4bf7('0x27')]=!![];_0x23101a[_0x25d28c][_0x4bf7('0x28')]=_0x2497ad[_0x4bf7('0x1e')];_0x23101a[_0x25d28c][_0x4bf7('0x21')]=_['isNil'](_0x2497ad[_0x4bf7('0x21')])?util['format'](_0x4bf7('0x29'),_0x2497ad[_0x4bf7('0x1e')]):_0x2497ad[_0x4bf7('0x21')];if(_0x23101a[_0x25d28c][_0x4bf7('0x2a')]){_0x23101a[_0x25d28c][_0x4bf7('0x2b')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x23101a[_0x25d28c][_0x4bf7('0x2c')]){_0x23101a[_0x25d28c]['queuecallerexitAt']=moment()[_0x4bf7('0x22')](_0x4bf7('0x2d'));}RpcMemberReport['voiceQueueReport'](_0x23101a[_0x25d28c]);}RpcVoiceQueueReport[_0x4bf7('0x2e')](_0x23101a[_0x25d28c]);}};function extractCalleridNumber(_0x28d78b){var _0x50ea0b=_0x28d78b[_0x4bf7('0x2f')](/<(.*?)>/);return _0x50ea0b?_0x50ea0b[0x1]:_0x28d78b;}Report['prototype']['voiceCallReport']=function(_0xbbb50d){_0xbbb50d['destination']=_0xbbb50d[_0x4bf7('0x30')]||_0xbbb50d[_0x4bf7('0x31')];if(_0xbbb50d['type']==_0x4bf7('0x32')){_0xbbb50d[_0x4bf7('0x33')]=_0x4bf7('0x34');_0xbbb50d[_0x4bf7('0x35')]=_0xbbb50d['queue'];if(_0xbbb50d['context']=='from-voip-provider'){_0xbbb50d[_0x4bf7('0x20')]='';_0xbbb50d['destination']=extractCalleridNumber(_0xbbb50d['callerid']);}else if(_0xbbb50d[_0x4bf7('0x36')]==_0x4bf7('0x37')){if(_0xbbb50d[_0x4bf7('0x30')]==_0x4bf7('0x38')){_0xbbb50d['destination']=extractCalleridNumber(_0xbbb50d[_0x4bf7('0x39')]);_0xbbb50d['calleridnum']=_0xbbb50d[_0x4bf7('0x3a')];_0xbbb50d[_0x4bf7('0x3b')]=[_0xbbb50d[_0x4bf7('0x3c')],_0xbbb50d[_0x4bf7('0x3c')]=_0xbbb50d['destinationchannel']][0x0];_0xbbb50d[_0x4bf7('0x3d')]=_0xbbb50d[_0x4bf7('0x39')];}else{_0xbbb50d['destination']=_0xbbb50d[_0x4bf7('0x3e')];_0xbbb50d[_0x4bf7('0x3e')]=_0xbbb50d[_0x4bf7('0x3a')];if(_0xbbb50d[_0x4bf7('0x3f')]==_0x4bf7('0x40')){_0xbbb50d[_0x4bf7('0x20')]=_0xbbb50d['connectedlinenum'];}else{_0xbbb50d[_0x4bf7('0x20')]='';}}}}else{_0xbbb50d['callerid']=util[_0x4bf7('0x22')](_0x4bf7('0x41'),_0xbbb50d[_0x4bf7('0x42')],_0xbbb50d[_0x4bf7('0x3e')]);}RpcVoiceCallReport[_0x4bf7('0x2e')](_0xbbb50d);if(_0xbbb50d[_0x4bf7('0x43')]){for(var _0x1d4631=0x0;_0x1d4631<_0xbbb50d['monitors'][_0x4bf7('0x24')];_0x1d4631+=0x1){_0xbbb50d[_0x4bf7('0x44')]=_0xbbb50d[_0x4bf7('0x45')][_0x1d4631]['filename'];_0xbbb50d[_0x4bf7('0x46')]=_0xbbb50d['monitors'][_0x1d4631][_0x4bf7('0x46')];if(_0xbbb50d[_0x4bf7('0x31')]==_0x4bf7('0x38')){_0xbbb50d['calleridnum']=_0xbbb50d[_0x4bf7('0x26')];_0xbbb50d['calleridname']=_0xbbb50d[_0x4bf7('0x47')];_0xbbb50d[_0x4bf7('0x26')]=_0xbbb50d[_0x4bf7('0x20')];_0xbbb50d[_0x4bf7('0x47')]=_0xbbb50d['membername'];_0xbbb50d[_0x4bf7('0x31')]=_0xbbb50d[_0x4bf7('0x3a')];}else if(_0xbbb50d[_0x4bf7('0x31')]==_0x4bf7('0x48')){_0xbbb50d['calleridnum']=_0xbbb50d[_0x4bf7('0x30')];_0xbbb50d[_0x4bf7('0x31')]=_0xbbb50d[_0x4bf7('0x3a')];}RpcVoiceRecording[_0x4bf7('0x2e')](_0xbbb50d);}}};Report[_0x4bf7('0xf')][_0x4bf7('0x16')]=function(_0x5afebf){if(_['isArray'](_0x5afebf)){_0x5afebf[_0x4bf7('0x49')](function(_0x114c16){RpcVoiceAgentReport['create'](_0x114c16);});}else{RpcVoiceAgentReport['create'](_0x5afebf);}};Report[_0x4bf7('0xf')][_0x4bf7('0x18')]=function(_0x689a80){RpcVoiceDialReport['create'](_0x689a80);var _0x4381e6=undefined;var _0x3eb9b2=_0x689a80[_0x4bf7('0x3c')];if(_[_0x4bf7('0x4a')](_0x3eb9b2,_0x4bf7('0x4b'))){var _0x2c0297=_0x3eb9b2[_0x4bf7('0x4c')](_0x3eb9b2[_0x4bf7('0x4d')]('/')+0x1,_0x3eb9b2[_0x4bf7('0x4d')]('@'));_0x4381e6=_[_0x4bf7('0x1d')](this['agents'],function(_0x43852f){return _0x43852f[_0x4bf7('0x4e')]==_0x2c0297||_0x43852f[_0x4bf7('0x4f')]==_0x2c0297||_0x43852f[_0x4bf7('0x20')]==_0x2c0297;});}else{var _0x2c0297=_0x3eb9b2['substring'](_0x3eb9b2[_0x4bf7('0x4d')]('/')+0x1,_0x3eb9b2['lastIndexOf']('-'));_0x4381e6=this[_0x4bf7('0x25')](_0x2c0297);}if(_0x4381e6){_0x689a80[_0x4bf7('0x21')]=_[_0x4bf7('0x1f')](_0x4381e6[_0x4bf7('0x21')])?util[_0x4bf7('0x22')](_0x4bf7('0x29'),_0x4381e6['name']):_0x4381e6[_0x4bf7('0x21')];_0x689a80['membername']=_0x4381e6['name'];_0x689a80[_0x4bf7('0x20')]=_0x4381e6[_0x4bf7('0x20')];RpcMemberReport[_0x4bf7('0x18')](_0x689a80);}};Report[_0x4bf7('0xf')][_0x4bf7('0x1a')]=function(_0x1e32d2){RpcVoiceTransferReport[_0x4bf7('0x1a')](_0x1e32d2);};Report['prototype']['attendedTransfer']=function(_0x2966c1){RpcVoiceTransferReport['attendedTransfer'](_0x2966c1);};module[_0x4bf7('0x50')]=Report;