Built motion from commit (unavailable).|2.4.17
[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 _0x436b=['assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','match','destination','dialer','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','xcally-motion-preview','calleridnum','channel','destinationchannel','callerid','calleridpreview','originatecalleridnum','disposition','ANSWERED','\x22%s\x22\x20<%s>','calleridname','create','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','Local','substring','indexOf','mobile','phone','lastIndexOf','membername','exports','bluebird','lodash','util','../../../config/environment','../../../config/logger','ami','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','xdr','custom:voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','isNil','name','interface','format','SIP/%s','voiceQueueReport','length','connectedlinenum'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x436b,0x1ef));var _0xb436=function(_0x3dfe75,_0xf992f1){_0x3dfe75=_0x3dfe75-0x0;var _0x2982de=_0x436b[_0x3dfe75];return _0x2982de;};'use strict';var BPromise=require(_0xb436('0x0'));var _=require(_0xb436('0x1'));var moment=require('moment');var util=require(_0xb436('0x2'));var config=require(_0xb436('0x3'));var logger=require(_0xb436('0x4'))(_0xb436('0x5'));var ami=require(_0xb436('0x6'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xb436('0x7'));var RpcVoiceDialReport=require(_0xb436('0x8'));var RpcMemberReport=require(_0xb436('0x9'));var RpcVoiceQueueReport=require(_0xb436('0xa'));var RpcVoiceRecording=require(_0xb436('0xb'));var RpcVoiceTransferReport=require(_0xb436('0xc'));var VoiceQueueReport=require(_0xb436('0xd'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0xb436('0xe'));var VoiceDialReport=require(_0xb436('0xf'));var UserReport=require(_0xb436('0x10'));function Report(_0x277bb9){this[_0xb436('0x11')]=_0x277bb9;this['agents']=_0x277bb9[_0xb436('0x12')];this[_0xb436('0x13')]=_0x277bb9['telephones'];}Report[_0xb436('0x14')]['sync']=function(_0x8aa246){var _0x92d7ce=new VoiceQueueReport(this[_0xb436('0x11')]);var _0x507861=new VoiceAgentReport(this['realtime']);var _0x16d8ad=new VoiceDialReport(this['realtime']);var _0x3cce70=new VoiceCallReport(this[_0xb436('0x11')]);var _0x3c586e=new UserReport(this[_0xb436('0x11')]);if(config[_0xb436('0x15')]&&config[_0xb436('0x15')]['disabled']){ami['on'](_0xb436('0x16'),this['voiceQueueReport'][_0xb436('0x17')](this));ami['on'](_0xb436('0x18'),this[_0xb436('0x19')][_0xb436('0x17')](this));ami['on'](_0xb436('0x1a'),this[_0xb436('0x1b')][_0xb436('0x17')](this));ami['on'](_0xb436('0x1c'),this[_0xb436('0x1d')][_0xb436('0x17')](this));ami['on'](_0xb436('0x1e'),this[_0xb436('0x1f')]['bind'](this));ami['on'](_0xb436('0x20'),this[_0xb436('0x21')][_0xb436('0x17')](this));}};Report['prototype'][_0xb436('0x22')]=function(_0xb7686c){var _0x379a5e=undefined;_0x379a5e=_[_0xb436('0x23')](this[_0xb436('0x12')],function(_0x2397aa){return _0x2397aa[_0xb436('0x24')]==_0xb7686c||_0x2397aa['name']==_0xb7686c;});if(_[_0xb436('0x25')](_0x379a5e)){var _0x2776cc=_[_0xb436('0x23')](this[_0xb436('0x13')],function(_0x5493db){return _0x5493db[_0xb436('0x24')]==_0xb7686c||_0x5493db[_0xb436('0x26')]==_0xb7686c;});if(_0x2776cc){_0x379a5e=_[_0xb436('0x23')](this[_0xb436('0x12')],function(_0x5779d5){return _0x5779d5[_0xb436('0x27')]==util[_0xb436('0x28')](_0xb436('0x29'),_0x2776cc[_0xb436('0x26')]);});}}return _0x379a5e;};Report[_0xb436('0x14')][_0xb436('0x2a')]=function(_0x152fc6){for(var _0x129b31=0x0;_0x129b31<_0x152fc6[_0xb436('0x2b')];_0x129b31+=0x1){var _0x52d235=this[_0xb436('0x22')](_0x152fc6[_0x129b31][_0xb436('0x2c')]);if(_0x52d235){_0x152fc6[_0x129b31][_0xb436('0x24')]=_0x52d235[_0xb436('0x24')];_0x152fc6[_0x129b31][_0xb436('0x2d')]=!![];_0x152fc6[_0x129b31][_0xb436('0x2e')]=_0x52d235[_0xb436('0x26')];_0x152fc6[_0x129b31][_0xb436('0x27')]=_[_0xb436('0x25')](_0x52d235['interface'])?util[_0xb436('0x28')](_0xb436('0x29'),_0x52d235[_0xb436('0x26')]):_0x52d235[_0xb436('0x27')];if(_0x152fc6[_0x129b31][_0xb436('0x2f')]){_0x152fc6[_0x129b31][_0xb436('0x30')]=moment()[_0xb436('0x28')](_0xb436('0x31'));}if(_0x152fc6[_0x129b31][_0xb436('0x32')]){_0x152fc6[_0x129b31][_0xb436('0x33')]=moment()[_0xb436('0x28')](_0xb436('0x31'));}RpcMemberReport[_0xb436('0x2a')](_0x152fc6[_0x129b31]);}RpcVoiceQueueReport['create'](_0x152fc6[_0x129b31]);}};function extractCalleridNumber(_0x39039f){var _0x3bbb5f=_0x39039f[_0xb436('0x34')](/<(.*?)>/);return _0x3bbb5f?_0x3bbb5f[0x1]:_0x39039f;}Report[_0xb436('0x14')][_0xb436('0x19')]=function(_0x93f153){_0x93f153[_0xb436('0x35')]=_0x93f153[_0xb436('0x35')]||_0x93f153['exten'];if(_0x93f153['type']==_0xb436('0x36')){_0x93f153[_0xb436('0x37')]=_0xb436('0x38');_0x93f153[_0xb436('0x39')]=_0x93f153['queue'];if(_0x93f153[_0xb436('0x3a')]==_0xb436('0x3b')){_0x93f153[_0xb436('0x24')]='';_0x93f153['destination']=extractCalleridNumber(_0x93f153['callerid']);}else if(_0x93f153['context']==_0xb436('0x3c')){if(_0x93f153['destination']==_0xb436('0x3d')){_0x93f153[_0xb436('0x35')]=extractCalleridNumber(_0x93f153['calleridpreview']);_0x93f153[_0xb436('0x3e')]=_0x93f153['originatecalleridnum'];_0x93f153['destinationchannel']=[_0x93f153[_0xb436('0x3f')],_0x93f153['channel']=_0x93f153[_0xb436('0x40')]][0x0];_0x93f153[_0xb436('0x41')]=_0x93f153[_0xb436('0x42')];}else{_0x93f153['destination']=_0x93f153[_0xb436('0x3e')];_0x93f153[_0xb436('0x3e')]=_0x93f153[_0xb436('0x43')];if(_0x93f153[_0xb436('0x44')]==_0xb436('0x45')){_0x93f153['accountcode']=_0x93f153['connectedlinenum'];}else{_0x93f153[_0xb436('0x24')]='';}}}}else{_0x93f153[_0xb436('0x41')]=util[_0xb436('0x28')](_0xb436('0x46'),_0x93f153[_0xb436('0x47')],_0x93f153['calleridnum']);}RpcVoiceCallReport[_0xb436('0x48')](_0x93f153);if(_0x93f153[_0xb436('0x49')]){for(var _0x25fef5=0x0;_0x25fef5<_0x93f153[_0xb436('0x4a')][_0xb436('0x2b')];_0x25fef5+=0x1){_0x93f153[_0xb436('0x4b')]=_0x93f153['monitors'][_0x25fef5][_0xb436('0x4c')];_0x93f153[_0xb436('0x4d')]=_0x93f153[_0xb436('0x4a')][_0x25fef5][_0xb436('0x4d')];if(_0x93f153['exten']==_0xb436('0x3d')){_0x93f153[_0xb436('0x3e')]=_0x93f153[_0xb436('0x2c')];_0x93f153[_0xb436('0x47')]=_0x93f153[_0xb436('0x4e')];_0x93f153[_0xb436('0x2c')]=_0x93f153[_0xb436('0x24')];_0x93f153['connectedlinename']=_0x93f153['membername'];_0x93f153['exten']=_0x93f153[_0xb436('0x43')];}else if(_0x93f153['exten']==_0xb436('0x4f')){_0x93f153[_0xb436('0x3e')]=_0x93f153['destination'];_0x93f153['exten']=_0x93f153[_0xb436('0x43')];}RpcVoiceRecording['create'](_0x93f153);}}};Report[_0xb436('0x14')][_0xb436('0x1b')]=function(_0x1883cb){if(_[_0xb436('0x50')](_0x1883cb)){_0x1883cb[_0xb436('0x51')](function(_0x23c2b0){RpcVoiceAgentReport['create'](_0x23c2b0);});}else{RpcVoiceAgentReport['create'](_0x1883cb);}};Report[_0xb436('0x14')]['voiceDialReport']=function(_0x374982){RpcVoiceDialReport[_0xb436('0x48')](_0x374982);var _0x3dd707=undefined;var _0x319978=_0x374982[_0xb436('0x3f')];if(_['startsWith'](_0x319978,_0xb436('0x52'))){var _0x43d9a6=_0x319978[_0xb436('0x53')](_0x319978[_0xb436('0x54')]('/')+0x1,_0x319978[_0xb436('0x54')]('@'));_0x3dd707=_['find'](this['agents'],function(_0x5513b9){return _0x5513b9[_0xb436('0x55')]==_0x43d9a6||_0x5513b9[_0xb436('0x56')]==_0x43d9a6||_0x5513b9[_0xb436('0x24')]==_0x43d9a6;});}else{var _0x43d9a6=_0x319978[_0xb436('0x53')](_0x319978[_0xb436('0x54')]('/')+0x1,_0x319978[_0xb436('0x57')]('-'));_0x3dd707=this[_0xb436('0x22')](_0x43d9a6);}if(_0x3dd707){_0x374982[_0xb436('0x27')]=_[_0xb436('0x25')](_0x3dd707[_0xb436('0x27')])?util['format']('SIP/%s',_0x3dd707[_0xb436('0x26')]):_0x3dd707[_0xb436('0x27')];_0x374982[_0xb436('0x58')]=_0x3dd707[_0xb436('0x26')];_0x374982['accountcode']=_0x3dd707[_0xb436('0x24')];RpcMemberReport[_0xb436('0x1d')](_0x374982);}};Report[_0xb436('0x14')]['blindTransfer']=function(_0xc60fc9){RpcVoiceTransferReport[_0xb436('0x1f')](_0xc60fc9);};Report['prototype'][_0xb436('0x21')]=function(_0x4f4a90){RpcVoiceTransferReport[_0xb436('0x21')](_0x4f4a90);};module[_0xb436('0x59')]=Report;