Built motion from commit (unavailable).|2.4.20
[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 _0xd7c1=['prototype','sync','xdr','custom:voiceQueueReport','voiceQueueReport','bind','voiceCallReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','accountcode','name','isNil','find','interface','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','format','create','match','destination','exten','type','dialer','lastapplication','lastdata','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','originatecalleridnum','channel','destinationchannel','calleridpreview','calleridnum','disposition','\x22%s\x22\x20<%s>','calleridname','monitors','monitorFilename','filename','createdAt','connectedlinename','membername','voiceAgentReport','forEach','Local','substring','indexOf','mobile','lastIndexOf','bluebird','moment','util','../../../config/environment','../../../config/logger','ami','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones'];(function(_0x234116,_0x2a07f3){var _0x4bfc5e=function(_0x4437e0){while(--_0x4437e0){_0x234116['push'](_0x234116['shift']());}};_0x4bfc5e(++_0x2a07f3);}(_0xd7c1,0x13d));var _0x1d7c=function(_0x317d6f,_0x1eb629){_0x317d6f=_0x317d6f-0x0;var _0x7f8a7=_0xd7c1[_0x317d6f];return _0x7f8a7;};'use strict';var BPromise=require(_0x1d7c('0x0'));var _=require('lodash');var moment=require(_0x1d7c('0x1'));var util=require(_0x1d7c('0x2'));var config=require(_0x1d7c('0x3'));var logger=require(_0x1d7c('0x4'))(_0x1d7c('0x5'));var ami=require('../ami');var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x1d7c('0x6'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x1d7c('0x7'));var RpcVoiceQueueReport=require(_0x1d7c('0x8'));var RpcVoiceRecording=require(_0x1d7c('0x9'));var RpcVoiceTransferReport=require(_0x1d7c('0xa'));var VoiceQueueReport=require(_0x1d7c('0xb'));var VoiceCallReport=require(_0x1d7c('0xc'));var VoiceAgentReport=require(_0x1d7c('0xd'));var VoiceDialReport=require(_0x1d7c('0xe'));var UserReport=require(_0x1d7c('0xf'));function Report(_0x14ce6a){this[_0x1d7c('0x10')]=_0x14ce6a;this['agents']=_0x14ce6a[_0x1d7c('0x11')];this[_0x1d7c('0x12')]=_0x14ce6a[_0x1d7c('0x12')];}Report[_0x1d7c('0x13')][_0x1d7c('0x14')]=function(_0x1e6fa7){var _0x219c0b=new VoiceQueueReport(this['realtime']);var _0x239458=new VoiceAgentReport(this[_0x1d7c('0x10')]);var _0x1dedc1=new VoiceDialReport(this[_0x1d7c('0x10')]);var _0x3a6092=new VoiceCallReport(this['realtime']);var _0x346ecd=new UserReport(this['realtime']);if(config[_0x1d7c('0x15')]&&config[_0x1d7c('0x15')]['disabled']){ami['on'](_0x1d7c('0x16'),this[_0x1d7c('0x17')][_0x1d7c('0x18')](this));ami['on']('custom:voiceCallReport',this[_0x1d7c('0x19')][_0x1d7c('0x18')](this));ami['on']('custom:voiceAgentReport',this['voiceAgentReport'][_0x1d7c('0x18')](this));ami['on'](_0x1d7c('0x1a'),this[_0x1d7c('0x1b')][_0x1d7c('0x18')](this));ami['on'](_0x1d7c('0x1c'),this[_0x1d7c('0x1d')][_0x1d7c('0x18')](this));ami['on'](_0x1d7c('0x1e'),this[_0x1d7c('0x1f')][_0x1d7c('0x18')](this));}};Report[_0x1d7c('0x13')][_0x1d7c('0x20')]=function(_0x3bc29c){var _0x1ceb79=undefined;_0x1ceb79=_['find'](this['agents'],function(_0xf665e5){return _0xf665e5[_0x1d7c('0x21')]==_0x3bc29c||_0xf665e5[_0x1d7c('0x22')]==_0x3bc29c;});if(_[_0x1d7c('0x23')](_0x1ceb79)){var _0x3a477e=_[_0x1d7c('0x24')](this[_0x1d7c('0x12')],function(_0x461cd1){return _0x461cd1['accountcode']==_0x3bc29c||_0x461cd1[_0x1d7c('0x22')]==_0x3bc29c;});if(_0x3a477e){_0x1ceb79=_['find'](this[_0x1d7c('0x11')],function(_0x28fca5){return _0x28fca5[_0x1d7c('0x25')]==util['format'](_0x1d7c('0x26'),_0x3a477e[_0x1d7c('0x22')]);});}}return _0x1ceb79;};Report[_0x1d7c('0x13')]['voiceQueueReport']=function(_0x3d4bcb){for(var _0xfa0558=0x0;_0xfa0558<_0x3d4bcb[_0x1d7c('0x27')];_0xfa0558+=0x1){var _0x5148c5=this[_0x1d7c('0x20')](_0x3d4bcb[_0xfa0558][_0x1d7c('0x28')]);if(_0x5148c5){_0x3d4bcb[_0xfa0558]['accountcode']=_0x5148c5[_0x1d7c('0x21')];_0x3d4bcb[_0xfa0558][_0x1d7c('0x29')]=!![];_0x3d4bcb[_0xfa0558][_0x1d7c('0x2a')]=_0x5148c5['name'];_0x3d4bcb[_0xfa0558][_0x1d7c('0x25')]=_[_0x1d7c('0x23')](_0x5148c5[_0x1d7c('0x25')])?util['format'](_0x1d7c('0x26'),_0x5148c5[_0x1d7c('0x22')]):_0x5148c5[_0x1d7c('0x25')];if(_0x3d4bcb[_0xfa0558][_0x1d7c('0x2b')]){_0x3d4bcb[_0xfa0558][_0x1d7c('0x2c')]=moment()['format'](_0x1d7c('0x2d'));}if(_0x3d4bcb[_0xfa0558][_0x1d7c('0x2e')]){_0x3d4bcb[_0xfa0558][_0x1d7c('0x2f')]=moment()[_0x1d7c('0x30')](_0x1d7c('0x2d'));}RpcMemberReport[_0x1d7c('0x17')](_0x3d4bcb[_0xfa0558]);}RpcVoiceQueueReport[_0x1d7c('0x31')](_0x3d4bcb[_0xfa0558]);}};function extractCalleridNumber(_0x34a9c6){var _0x1d405a=_0x34a9c6[_0x1d7c('0x32')](/<(.*?)>/);return _0x1d405a?_0x1d405a[0x1]:_0x34a9c6;}Report[_0x1d7c('0x13')][_0x1d7c('0x19')]=function(_0x3cad89){_0x3cad89[_0x1d7c('0x33')]=_0x3cad89[_0x1d7c('0x33')]||_0x3cad89[_0x1d7c('0x34')];if(_0x3cad89[_0x1d7c('0x35')]==_0x1d7c('0x36')){_0x3cad89[_0x1d7c('0x37')]='queue';_0x3cad89[_0x1d7c('0x38')]=_0x3cad89[_0x1d7c('0x39')];if(_0x3cad89[_0x1d7c('0x3a')]==_0x1d7c('0x3b')){_0x3cad89[_0x1d7c('0x21')]='';_0x3cad89['destination']=extractCalleridNumber(_0x3cad89[_0x1d7c('0x3c')]);}else if(_0x3cad89['context']==_0x1d7c('0x3d')){if(_0x3cad89[_0x1d7c('0x33')]==_0x1d7c('0x3e')){_0x3cad89[_0x1d7c('0x33')]=extractCalleridNumber(_0x3cad89['calleridpreview']);_0x3cad89['calleridnum']=_0x3cad89[_0x1d7c('0x3f')];_0x3cad89['destinationchannel']=[_0x3cad89[_0x1d7c('0x40')],_0x3cad89['channel']=_0x3cad89[_0x1d7c('0x41')]][0x0];_0x3cad89[_0x1d7c('0x3c')]=_0x3cad89[_0x1d7c('0x42')];}else{_0x3cad89[_0x1d7c('0x33')]=_0x3cad89[_0x1d7c('0x43')];_0x3cad89[_0x1d7c('0x43')]=_0x3cad89['originatecalleridnum'];if(_0x3cad89[_0x1d7c('0x44')]=='ANSWERED'){_0x3cad89[_0x1d7c('0x21')]=_0x3cad89[_0x1d7c('0x28')];}else{_0x3cad89['accountcode']='';}}}}else{_0x3cad89[_0x1d7c('0x3c')]=util[_0x1d7c('0x30')](_0x1d7c('0x45'),_0x3cad89[_0x1d7c('0x46')],_0x3cad89[_0x1d7c('0x43')]);}RpcVoiceCallReport[_0x1d7c('0x31')](_0x3cad89);if(_0x3cad89['monitor']){for(var _0x337f88=0x0;_0x337f88<_0x3cad89[_0x1d7c('0x47')][_0x1d7c('0x27')];_0x337f88+=0x1){_0x3cad89[_0x1d7c('0x48')]=_0x3cad89[_0x1d7c('0x47')][_0x337f88][_0x1d7c('0x49')];_0x3cad89['createdAt']=_0x3cad89[_0x1d7c('0x47')][_0x337f88][_0x1d7c('0x4a')];if(_0x3cad89[_0x1d7c('0x34')]==_0x1d7c('0x3e')){_0x3cad89[_0x1d7c('0x43')]=_0x3cad89['connectedlinenum'];_0x3cad89[_0x1d7c('0x46')]=_0x3cad89[_0x1d7c('0x4b')];_0x3cad89['connectedlinenum']=_0x3cad89[_0x1d7c('0x21')];_0x3cad89[_0x1d7c('0x4b')]=_0x3cad89[_0x1d7c('0x4c')];_0x3cad89[_0x1d7c('0x34')]=_0x3cad89['originatecalleridnum'];}else if(_0x3cad89[_0x1d7c('0x34')]=='xcally-motion-dialer'){_0x3cad89['calleridnum']=_0x3cad89[_0x1d7c('0x33')];_0x3cad89[_0x1d7c('0x34')]=_0x3cad89[_0x1d7c('0x3f')];}RpcVoiceRecording[_0x1d7c('0x31')](_0x3cad89);}}};Report['prototype'][_0x1d7c('0x4d')]=function(_0x4f670d){if(_['isArray'](_0x4f670d)){_0x4f670d[_0x1d7c('0x4e')](function(_0x5298ce){RpcVoiceAgentReport[_0x1d7c('0x31')](_0x5298ce);});}else{RpcVoiceAgentReport[_0x1d7c('0x31')](_0x4f670d);}};Report['prototype'][_0x1d7c('0x1b')]=function(_0xe55a9d){RpcVoiceDialReport[_0x1d7c('0x31')](_0xe55a9d);var _0x7961cb=undefined;var _0x4fb376=_0xe55a9d[_0x1d7c('0x40')];if(_['startsWith'](_0x4fb376,_0x1d7c('0x4f'))){var _0x1ce308=_0x4fb376[_0x1d7c('0x50')](_0x4fb376[_0x1d7c('0x51')]('/')+0x1,_0x4fb376[_0x1d7c('0x51')]('@'));_0x7961cb=_[_0x1d7c('0x24')](this[_0x1d7c('0x11')],function(_0x11acc5){return _0x11acc5[_0x1d7c('0x52')]==_0x1ce308||_0x11acc5['phone']==_0x1ce308||_0x11acc5[_0x1d7c('0x21')]==_0x1ce308;});}else{var _0x1ce308=_0x4fb376[_0x1d7c('0x50')](_0x4fb376[_0x1d7c('0x51')]('/')+0x1,_0x4fb376[_0x1d7c('0x53')]('-'));_0x7961cb=this[_0x1d7c('0x20')](_0x1ce308);}if(_0x7961cb){_0xe55a9d[_0x1d7c('0x25')]=_[_0x1d7c('0x23')](_0x7961cb[_0x1d7c('0x25')])?util[_0x1d7c('0x30')](_0x1d7c('0x26'),_0x7961cb[_0x1d7c('0x22')]):_0x7961cb['interface'];_0xe55a9d[_0x1d7c('0x4c')]=_0x7961cb[_0x1d7c('0x22')];_0xe55a9d[_0x1d7c('0x21')]=_0x7961cb[_0x1d7c('0x21')];RpcMemberReport[_0x1d7c('0x1b')](_0xe55a9d);}};Report[_0x1d7c('0x13')][_0x1d7c('0x1d')]=function(_0xe9006){RpcVoiceTransferReport[_0x1d7c('0x1d')](_0xe9006);};Report[_0x1d7c('0x13')][_0x1d7c('0x1f')]=function(_0xed6f6a){RpcVoiceTransferReport['attendedTransfer'](_0xed6f6a);};module['exports']=Report;