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 _0x1a76=['./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','xdr','disabled','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','blindtransfer','attendedtransfer','attendedTransfer','prototype','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','voiceQueueReport','connectedlinenum','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','match','destination','exten','dialer','lastapplication','queue','context','from-voip-provider','callerid','from-sip','calleridpreview','calleridnum','originatecalleridnum','channel','destinationchannel','disposition','\x22%s\x22\x20<%s>','calleridname','monitor','monitors','length','monitorFilename','createdAt','xcally-motion-preview','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','voiceDialReport','Local','substring','indexOf','mobile','phone','lastIndexOf','blindTransfer','exports','lodash','util','../../../config/logger','ami','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceTransferReport','./voiceQueueReport'];(function(_0x42245d,_0x51758f){var _0x4b211a=function(_0x2634e){while(--_0x2634e){_0x42245d['push'](_0x42245d['shift']());}};_0x4b211a(++_0x51758f);}(_0x1a76,0x139));var _0x61a7=function(_0x1dbbce,_0x48410a){_0x1dbbce=_0x1dbbce-0x0;var _0x30b20d=_0x1a76[_0x1dbbce];return _0x30b20d;};'use strict';var BPromise=require('bluebird');var _=require(_0x61a7('0x0'));var moment=require('moment');var util=require(_0x61a7('0x1'));var config=require('../../../config/environment');var logger=require(_0x61a7('0x2'))(_0x61a7('0x3'));var ami=require(_0x61a7('0x4'));var RpcVoiceAgentReport=require(_0x61a7('0x5'));var RpcVoiceCallReport=require(_0x61a7('0x6'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x61a7('0x7'));var RpcVoiceQueueReport=require(_0x61a7('0x8'));var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x61a7('0x9'));var VoiceQueueReport=require(_0x61a7('0xa'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x61a7('0xb'));var VoiceDialReport=require(_0x61a7('0xc'));var UserReport=require('./userReport');function Report(_0x4bbd5a){this[_0x61a7('0xd')]=_0x4bbd5a;this[_0x61a7('0xe')]=_0x4bbd5a[_0x61a7('0xe')];this[_0x61a7('0xf')]=_0x4bbd5a[_0x61a7('0xf')];}Report['prototype']['sync']=function(_0x361f7b){var _0x5b9335=new VoiceQueueReport(this[_0x61a7('0xd')]);var _0x820425=new VoiceAgentReport(this['realtime']);var _0xabe7b=new VoiceDialReport(this['realtime']);var _0x3e1fe9=new VoiceCallReport(this[_0x61a7('0xd')]);var _0x347f21=new UserReport(this[_0x61a7('0xd')]);if(config[_0x61a7('0x10')]&&config[_0x61a7('0x10')][_0x61a7('0x11')]){ami['on']('custom:voiceQueueReport',this['voiceQueueReport'][_0x61a7('0x12')](this));ami['on'](_0x61a7('0x13'),this[_0x61a7('0x14')][_0x61a7('0x12')](this));ami['on'](_0x61a7('0x15'),this[_0x61a7('0x16')][_0x61a7('0x12')](this));ami['on']('custom:voiceDialReport',this['voiceDialReport'][_0x61a7('0x12')](this));ami['on'](_0x61a7('0x17'),this['blindTransfer'][_0x61a7('0x12')](this));ami['on'](_0x61a7('0x18'),this[_0x61a7('0x19')][_0x61a7('0x12')](this));}};Report[_0x61a7('0x1a')][_0x61a7('0x1b')]=function(_0x1bfc81){var _0x108d83=undefined;_0x108d83=_[_0x61a7('0x1c')](this[_0x61a7('0xe')],function(_0x23cfb4){return _0x23cfb4[_0x61a7('0x1d')]==_0x1bfc81||_0x23cfb4[_0x61a7('0x1e')]==_0x1bfc81;});if(_[_0x61a7('0x1f')](_0x108d83)){var _0x595dcf=_[_0x61a7('0x1c')](this[_0x61a7('0xf')],function(_0x10fe23){return _0x10fe23['accountcode']==_0x1bfc81||_0x10fe23[_0x61a7('0x1e')]==_0x1bfc81;});if(_0x595dcf){_0x108d83=_[_0x61a7('0x1c')](this[_0x61a7('0xe')],function(_0x1eaa11){return _0x1eaa11[_0x61a7('0x20')]==util[_0x61a7('0x21')](_0x61a7('0x22'),_0x595dcf[_0x61a7('0x1e')]);});}}return _0x108d83;};Report['prototype'][_0x61a7('0x23')]=function(_0x1ee09b){for(var _0x2c1a8f=0x0;_0x2c1a8f<_0x1ee09b['length'];_0x2c1a8f+=0x1){var _0x3e6b48=this['findAgent'](_0x1ee09b[_0x2c1a8f][_0x61a7('0x24')]);if(_0x3e6b48){_0x1ee09b[_0x2c1a8f][_0x61a7('0x1d')]=_0x3e6b48[_0x61a7('0x1d')];_0x1ee09b[_0x2c1a8f]['assigned']=!![];_0x1ee09b[_0x2c1a8f][_0x61a7('0x25')]=_0x3e6b48[_0x61a7('0x1e')];_0x1ee09b[_0x2c1a8f][_0x61a7('0x20')]=_[_0x61a7('0x1f')](_0x3e6b48['interface'])?util[_0x61a7('0x21')]('SIP/%s',_0x3e6b48['name']):_0x3e6b48[_0x61a7('0x20')];if(_0x1ee09b[_0x2c1a8f][_0x61a7('0x26')]){_0x1ee09b[_0x2c1a8f][_0x61a7('0x27')]=moment()[_0x61a7('0x21')](_0x61a7('0x28'));}if(_0x1ee09b[_0x2c1a8f][_0x61a7('0x29')]){_0x1ee09b[_0x2c1a8f]['queuecallerexitAt']=moment()[_0x61a7('0x21')](_0x61a7('0x28'));}RpcMemberReport[_0x61a7('0x23')](_0x1ee09b[_0x2c1a8f]);}RpcVoiceQueueReport[_0x61a7('0x2a')](_0x1ee09b[_0x2c1a8f]);}};function extractCalleridNumber(_0x2c173a){var _0x3db392=_0x2c173a[_0x61a7('0x2b')](/<(.*?)>/);return _0x3db392?_0x3db392[0x1]:_0x2c173a;}Report['prototype'][_0x61a7('0x14')]=function(_0x2aedaf){_0x2aedaf[_0x61a7('0x2c')]=_0x2aedaf[_0x61a7('0x2c')]||_0x2aedaf[_0x61a7('0x2d')];if(_0x2aedaf['type']==_0x61a7('0x2e')){_0x2aedaf[_0x61a7('0x2f')]=_0x61a7('0x30');_0x2aedaf['lastdata']=_0x2aedaf[_0x61a7('0x30')];if(_0x2aedaf[_0x61a7('0x31')]==_0x61a7('0x32')){_0x2aedaf[_0x61a7('0x1d')]='';_0x2aedaf['destination']=extractCalleridNumber(_0x2aedaf[_0x61a7('0x33')]);}else if(_0x2aedaf['context']==_0x61a7('0x34')){if(_0x2aedaf[_0x61a7('0x2c')]=='xcally-motion-preview'){_0x2aedaf[_0x61a7('0x2c')]=extractCalleridNumber(_0x2aedaf[_0x61a7('0x35')]);_0x2aedaf[_0x61a7('0x36')]=_0x2aedaf[_0x61a7('0x37')];_0x2aedaf['destinationchannel']=[_0x2aedaf[_0x61a7('0x38')],_0x2aedaf[_0x61a7('0x38')]=_0x2aedaf[_0x61a7('0x39')]][0x0];_0x2aedaf[_0x61a7('0x33')]=_0x2aedaf[_0x61a7('0x35')];}else{_0x2aedaf[_0x61a7('0x2c')]=_0x2aedaf['calleridnum'];_0x2aedaf[_0x61a7('0x36')]=_0x2aedaf[_0x61a7('0x37')];if(_0x2aedaf[_0x61a7('0x3a')]=='ANSWERED'){_0x2aedaf[_0x61a7('0x1d')]=_0x2aedaf[_0x61a7('0x24')];}else{_0x2aedaf[_0x61a7('0x1d')]='';}}}}else{_0x2aedaf[_0x61a7('0x33')]=util['format'](_0x61a7('0x3b'),_0x2aedaf[_0x61a7('0x3c')],_0x2aedaf[_0x61a7('0x36')]);}RpcVoiceCallReport[_0x61a7('0x2a')](_0x2aedaf);if(_0x2aedaf[_0x61a7('0x3d')]){for(var _0x5c0211=0x0;_0x5c0211<_0x2aedaf[_0x61a7('0x3e')][_0x61a7('0x3f')];_0x5c0211+=0x1){_0x2aedaf[_0x61a7('0x40')]=_0x2aedaf[_0x61a7('0x3e')][_0x5c0211]['filename'];_0x2aedaf[_0x61a7('0x41')]=_0x2aedaf['monitors'][_0x5c0211][_0x61a7('0x41')];if(_0x2aedaf[_0x61a7('0x2d')]==_0x61a7('0x42')){_0x2aedaf['calleridnum']=_0x2aedaf[_0x61a7('0x24')];_0x2aedaf['calleridname']=_0x2aedaf['connectedlinename'];_0x2aedaf[_0x61a7('0x24')]=_0x2aedaf[_0x61a7('0x1d')];_0x2aedaf[_0x61a7('0x43')]=_0x2aedaf[_0x61a7('0x44')];_0x2aedaf['exten']=_0x2aedaf[_0x61a7('0x37')];}else if(_0x2aedaf['exten']==_0x61a7('0x45')){_0x2aedaf[_0x61a7('0x36')]=_0x2aedaf[_0x61a7('0x2c')];_0x2aedaf[_0x61a7('0x2d')]=_0x2aedaf[_0x61a7('0x37')];}RpcVoiceRecording[_0x61a7('0x2a')](_0x2aedaf);}}};Report['prototype'][_0x61a7('0x16')]=function(_0x27946b){if(_[_0x61a7('0x46')](_0x27946b)){_0x27946b[_0x61a7('0x47')](function(_0x204d34){RpcVoiceAgentReport[_0x61a7('0x2a')](_0x204d34);});}else{RpcVoiceAgentReport[_0x61a7('0x2a')](_0x27946b);}};Report[_0x61a7('0x1a')][_0x61a7('0x48')]=function(_0x45fe3c){RpcVoiceDialReport[_0x61a7('0x2a')](_0x45fe3c);var _0x420eca=undefined;var _0x70a391=_0x45fe3c[_0x61a7('0x38')];if(_['startsWith'](_0x70a391,_0x61a7('0x49'))){var _0x3f15e1=_0x70a391[_0x61a7('0x4a')](_0x70a391['indexOf']('/')+0x1,_0x70a391[_0x61a7('0x4b')]('@'));_0x420eca=_[_0x61a7('0x1c')](this['agents'],function(_0xb3627a){return _0xb3627a[_0x61a7('0x4c')]==_0x3f15e1||_0xb3627a[_0x61a7('0x4d')]==_0x3f15e1||_0xb3627a[_0x61a7('0x1d')]==_0x3f15e1;});}else{var _0x3f15e1=_0x70a391[_0x61a7('0x4a')](_0x70a391[_0x61a7('0x4b')]('/')+0x1,_0x70a391[_0x61a7('0x4e')]('-'));_0x420eca=this['findAgent'](_0x3f15e1);}if(_0x420eca){_0x45fe3c[_0x61a7('0x20')]=_[_0x61a7('0x1f')](_0x420eca[_0x61a7('0x20')])?util['format'](_0x61a7('0x22'),_0x420eca[_0x61a7('0x1e')]):_0x420eca[_0x61a7('0x20')];_0x45fe3c[_0x61a7('0x44')]=_0x420eca['name'];_0x45fe3c[_0x61a7('0x1d')]=_0x420eca['accountcode'];RpcMemberReport[_0x61a7('0x48')](_0x45fe3c);}};Report[_0x61a7('0x1a')][_0x61a7('0x4f')]=function(_0x411ec7){RpcVoiceTransferReport[_0x61a7('0x4f')](_0x411ec7);};Report['prototype'][_0x61a7('0x19')]=function(_0x747552){RpcVoiceTransferReport['attendedTransfer'](_0x747552);};module[_0x61a7('0x50')]=Report;