Built motion from commit (unavailable).|2.5.11
[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 _0x0caa=['uniqueid','monitor','monitors','monitorFilename','filename','connectedlinename','xcally-motion-dialer','isArray','forEach','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf','membername','attendedTransfer','lodash','moment','util','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','prototype','sync','xdr','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','voiceDialReport','blindTransfer','attendedtransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','length','connectedlinenum','assigned','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','destination','exten','type','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','ANSWERED','\x22%s\x22\x20<%s>','calleridname','linkedid','transfers','transfereelinkedid'];(function(_0x53d709,_0x1906f6){var _0xc1f741=function(_0x5a6643){while(--_0x5a6643){_0x53d709['push'](_0x53d709['shift']());}};_0xc1f741(++_0x1906f6);}(_0x0caa,0x105));var _0xa0ca=function(_0x9307ea,_0x38968a){_0x9307ea=_0x9307ea-0x0;var _0x295554=_0x0caa[_0x9307ea];return _0x295554;};'use strict';var _=require(_0xa0ca('0x0'));var moment=require(_0xa0ca('0x1'));var util=require(_0xa0ca('0x2'));var config=require('../../../config/environment');var ami=require(_0xa0ca('0x3'));var RpcVoiceAgentReport=require(_0xa0ca('0x4'));var RpcVoiceCallReport=require(_0xa0ca('0x5'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0xa0ca('0x6'));var RpcVoiceRecording=require(_0xa0ca('0x7'));var RpcVoiceTransferReport=require(_0xa0ca('0x8'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0xa0ca('0x9'));var VoiceAgentReport=require(_0xa0ca('0xa'));var VoiceDialReport=require(_0xa0ca('0xb'));var UserReport=require('./userReport');function Report(_0x116c6a){this[_0xa0ca('0xc')]=_0x116c6a;this['agents']=_0x116c6a[_0xa0ca('0xd')];this[_0xa0ca('0xe')]=_0x116c6a['telephones'];}Report[_0xa0ca('0xf')][_0xa0ca('0x10')]=function(_0x492a52){var _0x35d4f0=new VoiceQueueReport(this['realtime']);var _0x1a4017=new VoiceAgentReport(this[_0xa0ca('0xc')]);var _0x3b3c5d=new VoiceDialReport(this['realtime']);var _0x353080=new VoiceCallReport(this[_0xa0ca('0xc')]);var _0x52d064=new UserReport(this[_0xa0ca('0xc')]);if(config['xdr']&&config[_0xa0ca('0x11')]['disabled']){ami['on']('custom:voiceQueueReport',this[_0xa0ca('0x12')][_0xa0ca('0x13')](this));ami['on'](_0xa0ca('0x14'),this[_0xa0ca('0x15')][_0xa0ca('0x13')](this));ami['on'](_0xa0ca('0x16'),this[_0xa0ca('0x17')][_0xa0ca('0x13')](this));ami['on']('custom:voiceDialReport',this[_0xa0ca('0x18')][_0xa0ca('0x13')](this));ami['on']('blindtransfer',this[_0xa0ca('0x19')][_0xa0ca('0x13')](this));ami['on'](_0xa0ca('0x1a'),this['attendedTransfer']['bind'](this));}};Report[_0xa0ca('0xf')][_0xa0ca('0x1b')]=function(_0x423be3){var _0x5ccd58;_0x5ccd58=_[_0xa0ca('0x1c')](this[_0xa0ca('0xd')],function(_0x7d5a5c){return _0x7d5a5c[_0xa0ca('0x1d')]==_0x423be3||_0x7d5a5c[_0xa0ca('0x1e')]==_0x423be3;});if(_[_0xa0ca('0x1f')](_0x5ccd58)){var _0x5ae36a=_[_0xa0ca('0x1c')](this[_0xa0ca('0xe')],function(_0x4b9cc1){return _0x4b9cc1[_0xa0ca('0x1d')]==_0x423be3||_0x4b9cc1[_0xa0ca('0x1e')]==_0x423be3;});if(_0x5ae36a){_0x5ccd58=_[_0xa0ca('0x1c')](this[_0xa0ca('0xd')],function(_0x7b26e1){return _0x7b26e1[_0xa0ca('0x20')]==util[_0xa0ca('0x21')](_0xa0ca('0x22'),_0x5ae36a[_0xa0ca('0x1e')]);});}}return _0x5ccd58;};Report[_0xa0ca('0xf')]['voiceQueueReport']=function(_0xf1bca1){for(var _0x381ee2=0x0;_0x381ee2<_0xf1bca1[_0xa0ca('0x23')];_0x381ee2+=0x1){var _0x57200d=this['findAgent'](_0xf1bca1[_0x381ee2][_0xa0ca('0x24')]);if(_0x57200d){_0xf1bca1[_0x381ee2][_0xa0ca('0x1d')]=_0x57200d[_0xa0ca('0x1d')];_0xf1bca1[_0x381ee2][_0xa0ca('0x25')]=!![];_0xf1bca1[_0x381ee2]['lastAssignedTo']=_0x57200d['name'];_0xf1bca1[_0x381ee2][_0xa0ca('0x20')]=_['isNil'](_0x57200d[_0xa0ca('0x20')])?util[_0xa0ca('0x21')](_0xa0ca('0x22'),_0x57200d['name']):_0x57200d[_0xa0ca('0x20')];if(_0xf1bca1[_0x381ee2]['queuecallercomplete']){_0xf1bca1[_0x381ee2]['queuecallercompleteAt']=moment()[_0xa0ca('0x21')](_0xa0ca('0x26'));}if(_0xf1bca1[_0x381ee2][_0xa0ca('0x27')]){_0xf1bca1[_0x381ee2][_0xa0ca('0x28')]=moment()[_0xa0ca('0x21')](_0xa0ca('0x26'));}RpcMemberReport[_0xa0ca('0x12')](_0xf1bca1[_0x381ee2]);}RpcVoiceQueueReport[_0xa0ca('0x29')](_0xf1bca1[_0x381ee2]);}};function extractCalleridNumber(_0x107778){var _0x5ccf5c=_0x107778[_0xa0ca('0x2a')](/<(.*?)>/);return _0x5ccf5c?_0x5ccf5c[0x1]:_0x107778;}Report[_0xa0ca('0xf')]['voiceCallReport']=function(_0x5250ef){_0x5250ef[_0xa0ca('0x2b')]=_0x5250ef[_0xa0ca('0x2b')]||_0x5250ef[_0xa0ca('0x2c')];if(_0x5250ef[_0xa0ca('0x2d')]=='dialer'){_0x5250ef['lastapplication']='queue';_0x5250ef['lastdata']=_0x5250ef[_0xa0ca('0x2e')];if(_0x5250ef[_0xa0ca('0x2f')]==_0xa0ca('0x30')){_0x5250ef[_0xa0ca('0x1d')]='';_0x5250ef['destination']=extractCalleridNumber(_0x5250ef[_0xa0ca('0x31')]);}else if(_0x5250ef[_0xa0ca('0x2f')]==_0xa0ca('0x32')){if(_0x5250ef[_0xa0ca('0x2b')]==_0xa0ca('0x33')){_0x5250ef['destination']=extractCalleridNumber(_0x5250ef[_0xa0ca('0x34')]);_0x5250ef[_0xa0ca('0x35')]=_0x5250ef[_0xa0ca('0x36')];_0x5250ef[_0xa0ca('0x37')]=[_0x5250ef[_0xa0ca('0x38')],_0x5250ef[_0xa0ca('0x38')]=_0x5250ef[_0xa0ca('0x37')]][0x0];_0x5250ef['callerid']=_0x5250ef['calleridpreview'];}else{_0x5250ef[_0xa0ca('0x2b')]=_0x5250ef[_0xa0ca('0x35')];_0x5250ef['calleridnum']=_0x5250ef[_0xa0ca('0x36')];if(_0x5250ef['disposition']==_0xa0ca('0x39')){_0x5250ef[_0xa0ca('0x1d')]=_0x5250ef[_0xa0ca('0x24')];}else{_0x5250ef['accountcode']='';}}}}else{_0x5250ef[_0xa0ca('0x31')]=util[_0xa0ca('0x21')](_0xa0ca('0x3a'),_0x5250ef[_0xa0ca('0x3b')],_0x5250ef['calleridnum']);}if(RpcVoiceTransferReport['transfers'][_0x5250ef[_0xa0ca('0x3c')]]){var _0x167317=RpcVoiceTransferReport[_0xa0ca('0x3d')][_0x5250ef['linkedid']];_0x167317[_0xa0ca('0x3e')]=_0x5250ef[_0xa0ca('0x3f')];RpcVoiceTransferReport['blindTransfer'](_0x167317);delete RpcVoiceTransferReport[_0xa0ca('0x3d')][_0x5250ef[_0xa0ca('0x3c')]];}RpcVoiceCallReport['create'](_0x5250ef);if(_0x5250ef[_0xa0ca('0x40')]){for(var _0x3fbb0c=0x0;_0x3fbb0c<_0x5250ef[_0xa0ca('0x41')][_0xa0ca('0x23')];_0x3fbb0c+=0x1){_0x5250ef[_0xa0ca('0x42')]=_0x5250ef['monitors'][_0x3fbb0c][_0xa0ca('0x43')];_0x5250ef['createdAt']=_0x5250ef[_0xa0ca('0x41')][_0x3fbb0c]['createdAt'];if(_0x5250ef['exten']=='xcally-motion-preview'){_0x5250ef[_0xa0ca('0x35')]=_0x5250ef[_0xa0ca('0x24')];_0x5250ef[_0xa0ca('0x3b')]=_0x5250ef[_0xa0ca('0x44')];_0x5250ef[_0xa0ca('0x24')]=_0x5250ef[_0xa0ca('0x1d')];_0x5250ef[_0xa0ca('0x44')]=_0x5250ef['membername'];_0x5250ef['exten']=_0x5250ef[_0xa0ca('0x36')];}else if(_0x5250ef['exten']==_0xa0ca('0x45')){_0x5250ef['calleridnum']=_0x5250ef['destination'];_0x5250ef[_0xa0ca('0x2c')]=_0x5250ef['originatecalleridnum'];}RpcVoiceRecording[_0xa0ca('0x29')](_0x5250ef);}}};Report[_0xa0ca('0xf')][_0xa0ca('0x17')]=function(_0x24b101){if(_[_0xa0ca('0x46')](_0x24b101)){_0x24b101[_0xa0ca('0x47')](function(_0x51ef10){RpcVoiceAgentReport['create'](_0x51ef10);});}else{RpcVoiceAgentReport[_0xa0ca('0x29')](_0x24b101);}};Report[_0xa0ca('0xf')][_0xa0ca('0x18')]=function(_0x5ecd61){RpcVoiceDialReport[_0xa0ca('0x29')](_0x5ecd61);var _0x1fd18f;var _0x3fa005;var _0x20e363=_0x5ecd61[_0xa0ca('0x38')];if(_[_0xa0ca('0x48')](_0x20e363,_0xa0ca('0x49'))){_0x3fa005=_0x20e363[_0xa0ca('0x4a')](_0x20e363['indexOf']('/')+0x1,_0x20e363[_0xa0ca('0x4b')]('@'));_0x1fd18f=_[_0xa0ca('0x1c')](this[_0xa0ca('0xd')],function(_0x31b716){return _0x31b716[_0xa0ca('0x4c')]==_0x3fa005||_0x31b716[_0xa0ca('0x4d')]==_0x3fa005||_0x31b716['accountcode']==_0x3fa005;});}else{_0x3fa005=_0x20e363[_0xa0ca('0x4a')](_0x20e363[_0xa0ca('0x4b')]('/')+0x1,_0x20e363[_0xa0ca('0x4e')]('-'));_0x1fd18f=this[_0xa0ca('0x1b')](_0x3fa005);}if(_0x1fd18f){_0x5ecd61['interface']=_[_0xa0ca('0x1f')](_0x1fd18f[_0xa0ca('0x20')])?util[_0xa0ca('0x21')](_0xa0ca('0x22'),_0x1fd18f[_0xa0ca('0x1e')]):_0x1fd18f[_0xa0ca('0x20')];_0x5ecd61[_0xa0ca('0x4f')]=_0x1fd18f[_0xa0ca('0x1e')];_0x5ecd61[_0xa0ca('0x1d')]=_0x1fd18f[_0xa0ca('0x1d')];RpcMemberReport[_0xa0ca('0x18')](_0x5ecd61);}};Report[_0xa0ca('0xf')]['blindTransfer']=function(_0x4d00ba){RpcVoiceTransferReport[_0xa0ca('0x3d')][_0x4d00ba['transfererlinkedid']]=_0x4d00ba;};Report[_0xa0ca('0xf')][_0xa0ca('0x50')]=function(_0x444656){RpcVoiceTransferReport[_0xa0ca('0x50')](_0x444656);};module['exports']=Report;